Ver código fonte

修复微信公众号里边的扫码取件功能,处理公众号用户绑定时手机号输入错误导致后续只能取消关注并重新绑定的问题

XFIOOLS\xfIools 2 anos atrás
pai
commit
b6a5376c90

+ 5 - 0
src/main/java/com/ematou/wxservice/service/UserInfoService.java

@@ -86,6 +86,11 @@ public class UserInfoService {
             logger.error("用户信息为空,不能为空!");
             return null;
         }
+        // 注解:
+        // 这里如果使用openId查询和修改就能完美解决这个问题
+        // 但是手机号是主键,修改时按手机号去修改。
+        // 如果根据openId去修改主键,一来不符合规范,二来历史数据如果再触发此代码就会出问题,会出现主键重复无法修改的问题
+        // 此处解决办法暂为在此系统使用openId查询数据时,增加部分字段不为空的条件,保证取到的数据是唯一且正常的数据
         UserInfo info = queryUserInfoByPhoneNumber(userInfo.getTellPhoneNumber());
         if (null != info) {
 //            System.currentTimeMillis() - info.getTmst().getTime() > (1000 * 60 * 3)

+ 1 - 1
src/main/resources/mybatis/UserInfoMapper.xml

@@ -108,7 +108,7 @@
     </select>
 
     <select id="queryUserInfoByOpenId" resultType="com.ematou.wxservice.entity.pojo.UserInfo">
-        select <include refid="Base_Column_List"/> from user_info where open_id=#{openId}
+        select <include refid="Base_Column_List"/> from user_info where open_id=#{openId} and subscribe_scene is not null
     </select>
 
     <delete id="deleUserInfoService" >