Przeglądaj źródła

fix:用户登录,销售绑定用户手机,销售接收消息uni通知

ct 1 dzień temu
rodzic
commit
c812b23faf

+ 85 - 0
fs-company/src/main/java/com/fs/company/controller/store/FsUserController.java

@@ -1,13 +1,16 @@
 package com.fs.company.controller.store;
 
 import com.alibaba.fastjson.JSON;
+import com.fs.common.VerifyCodeUtil;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.core.redis.RedisCache;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.service.ISmsService;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
@@ -17,6 +20,8 @@ import com.fs.framework.security.SecurityUtils;
 import com.fs.framework.service.TokenService;
 import com.fs.his.domain.FsUser;
 import com.fs.his.domain.FsUserAddress;
+import com.fs.his.mapper.FsUserMapper;
+import com.fs.his.param.FsUserEditPhoneParam;
 import com.fs.his.param.FsUserParam;
 import com.fs.his.service.IFsUserService;
 import com.fs.his.vo.FsUserExportListVO;
@@ -35,6 +40,7 @@ import org.springframework.web.bind.annotation.*;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 import static com.fs.his.utils.PhoneUtil.decryptAutoPhoneMk;
 import static com.fs.his.utils.PhoneUtil.encryptPhone;
@@ -56,6 +62,12 @@ public class FsUserController extends BaseController
     private TokenService tokenService;
     @Autowired
     private IFsUserCompanyUserService userCompanyUserService;
+    @Autowired
+    private RedisCache redisCache;
+    @Autowired
+    private ISmsService smsService;
+    @Autowired
+    private FsUserMapper fsUserMapper;
 
     /**
      * 查询用户列表
@@ -304,4 +316,77 @@ public class FsUserController extends BaseController
         return ResponseResult.ok(r);
     }
 
+    @GetMapping("/sendCode")
+    public R sendCode(@RequestParam String phone) {
+        if (StringUtils.isNotBlank(phone)) {
+            // 验证码 key(3分钟有效)
+            String smsCodeKey = "sms:code:company:" + phone;
+            // 冷却 key(60秒内不能重复发送)
+            String smsCooldownKey = "sms:cooldown:company:" + phone;
+
+            // 判断是否在 60 秒冷却期
+            if (redisCache.getCacheObject(smsCooldownKey) != null) {
+                return R.error("验证码已发送,请稍后再试");
+            }
+
+            // 生成新验证码
+            String smsCode = VerifyCodeUtil.generateCode();
+
+            // 发送短信
+            smsService.sendCaptcha(phone, smsCode, "验证码");
+
+            // 缓存验证码(3分钟有效)
+            redisCache.setCacheObject(smsCodeKey, smsCode, 180, TimeUnit.SECONDS);
+            // 设置冷却时间(60秒内不能再发)
+            redisCache.setCacheObject(smsCooldownKey, "1", 60, TimeUnit.SECONDS);
+
+            return R.ok("验证码已发送");
+        } else {
+            return R.error("接收验证码手机不能为空");
+        }
+    }
+
+
+    @PostMapping("/bindPhone")
+    public R bindPhone(@RequestBody FsUserEditPhoneParam param) {
+        if (param.getUserId() == null){
+            return R.error("用户信息错误");
+        }
+        String code = param.getCode();
+        if (StringUtils.isBlank(code)) {
+            return R.error("y验证码未填写");
+        }
+        //验证码绑定,需要校验验证码
+        String redisCode = redisCache.getCacheObject("sms:code:company:" + param.getPhone());
+        if (org.apache.commons.lang3.StringUtils.isEmpty(redisCode)){
+            return R.error("验证码已过期,请重新发送");
+        }
+        if (!redisCode.equals(param.getCode())) {
+            return R.error("验证码错误");
+        }
+        FsUser userMap = findUserByPhone(param.getPhone());
+        if (userMap!=null && userMap.getUserId() != null) {
+            return R.error("该手机号已绑定其他微信");
+        }
+        FsUser fsUser = new FsUser();
+        fsUser.setUserId(param.getUserId());
+        fsUser.setPhone(param.getPhone());
+        fsUserService.updateFsUser(fsUser);
+        redisCache.deleteObject("sms:code:company:" + param.getPhone());
+        return R.ok("绑定成功!");
+    }
+
+    private FsUser findUserByPhone(String phone) {
+        // 先根据加密手机号查询用户
+        String jiami = (encryptPhone(phone));
+        FsUser user = fsUserMapper.selectFsUserByPhoneLimitOne(jiami);
+
+        // 如果没有找到用户,再根据手机号查询
+        if (user == null) {
+            user = fsUserMapper.selectFsUserByPhoneLimitOne(phone);
+        }
+        return user;
+    }
+
+
 }

+ 1 - 0
fs-service/src/main/java/com/fs/company/param/CompanyUserLoginParam.java

@@ -10,6 +10,7 @@ public class CompanyUserLoginParam extends BaseQueryParam implements Serializabl
 
     private String userName;
     private String password;
+    private String jpushId;
 
 
 }

+ 1 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserVipOrderServiceImpl.java

@@ -241,6 +241,7 @@ public class FsUserVipOrderServiceImpl implements IFsUserVipOrderService
 
 
     @Override
+    @Transactional
     public R appPayment(FsUserVipOrderPayUParam param, HttpServletRequest request) {
         FsUserVipOrder order = fsUserVipOrderMapper.selectFsUserVipOrderByOrderId(param.getOrderId());
         if (order == null) {

+ 25 - 2
fs-service/src/main/java/com/fs/gtPush/service/impl/uniPush2ServiceImpl.java

@@ -17,6 +17,7 @@ import com.fs.gtPush.domain.PushResult;
 import com.fs.gtPush.domain.UniPushLog;
 import com.fs.gtPush.service.UniPushLogService;
 import com.fs.gtPush.service.uniPush2Service;
+import com.fs.his.enums.PushLogTypeEnum;
 import com.fs.im.config.IMConfig;
 import com.fs.im.dto.OpenImResponseDTO;
 import com.fs.im.service.OpenIMService;
@@ -33,6 +34,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 @Service
 @Slf4j
@@ -102,6 +104,17 @@ public class uniPush2ServiceImpl implements uniPush2Service {
 
     }
 
+    /**
+     *
+     * @param userId 接收人id
+     * @param businessId 相关id
+     * @param purl 推送地址
+     * @param title
+     * @param content
+     * @param type 推送类型
+     * @param desType 推送类型详细类型
+     * @param imJsonString
+     */
     @Override
     public void pushIm(Long userId, Long businessId, String purl, String title, String content, Float type, Integer desType, String imJsonString) {
         try {
@@ -262,16 +275,26 @@ public class uniPush2ServiceImpl implements uniPush2Service {
                                    Float type, Integer desType, String imJsonString) {
         if (userId == null) return null;
         String jpushId = "";
-        FsUser fsUser = userService.selectFsUserByUserId(userId);
-        if (fsUser == null){
+        if (Objects.equals(type, PushLogTypeEnum.UTOC.getValue())){
             CompanyUser companyUser = companyUserMapper.selectCompanyUserById(userId);
             if (companyUser == null){
                 return null;
             }
             jpushId = companyUser.getJpushId();
         } else {
+            FsUser fsUser = userService.selectFsUserByUserId(userId);
             jpushId = fsUser.getJpushId();
         }
+//        FsUser fsUser = userService.selectFsUserByUserId(userId);
+//        if (fsUser == null){
+//            CompanyUser companyUser = companyUserMapper.selectCompanyUserById(userId);
+//            if (companyUser == null){
+//                return null;
+//            }
+//            jpushId = companyUser.getJpushId();
+//        } else {
+//            jpushId = fsUser.getJpushId();
+//        }
 
         if (StringUtils.isBlank(jpushId) || "0".equals(jpushId) || "string".equals(jpushId)) {
             return null;

+ 2 - 2
fs-service/src/main/java/com/fs/his/enums/PushLogTypeEnum.java

@@ -17,8 +17,8 @@ public enum PushLogTypeEnum {
     ORDER_INTEGRAL(0.4f,"积分订单通知"),
     HEALTH(1f,"健康管理类通知"),
     MARKET(2f,"营销类通知"),
-    COURSE(3f,"课程类通知");
-
+    COURSE(3f,"课程类通知"),
+    UTOC(4f,"用户发给销售类通知");
 
 
 

+ 39 - 0
fs-service/src/main/java/com/fs/his/param/FsUserEditPhoneParam.java

@@ -0,0 +1,39 @@
+package com.fs.his.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.io.Serializable;
+
+@Data
+public class FsUserEditPhoneParam implements Serializable {
+
+    @NotBlank(message = "手机号不能为空")
+    @Pattern(regexp="^1[3456789]\\d{9}$",message="手机号格式不正确")
+    private String phone;
+    @NotNull(message = "unionId不能为空")
+    private String unionId;
+
+    private String loginDevice; //当前登陆设备
+
+    private String jpushId;
+
+    private String source;
+
+    private String appleKey;
+
+    private String password;
+
+    /**
+     * 是否有SIM卡 0不存在 1存在
+     */
+    private Integer simExist;
+
+    private Integer bindType;
+    //验证码
+    private String code;
+
+    private Long userId;
+}

+ 18 - 15
fs-service/src/main/java/com/fs/his/service/impl/FsInquiryOrderMsgServiceImpl.java

@@ -27,6 +27,7 @@ import com.fs.his.domain.*;
 import com.fs.his.dto.FsInquiryOrderPatientDTO;
 import com.fs.his.dto.PayloadDTO;
 import com.fs.his.enums.PushLogDesTypeEnum;
+import com.fs.his.enums.PushLogTypeEnum;
 import com.fs.his.mapper.*;
 import com.fs.his.param.FsFollowReportParam;
 import com.fs.his.param.FsInquiryOrderMsgListDParam;
@@ -456,11 +457,13 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
 
             }
             String jsonStr = objectMapper.writeValueAsString(openImMsgCallBackVO);
+            PushLogTypeEnum pushLogTypeEnum = PushLogTypeEnum.HEALTH;
             if (msgContentType != null) {
                 if (to.startsWith("U")) {
                     a = to.replace("U", "");
                 } else if (to.startsWith("C")) {
                     a = to.replace("C", "");
+                    pushLogTypeEnum = PushLogTypeEnum.UTOC;
                 }
                 switch (msgContentType) {
                     case 1601:
@@ -485,7 +488,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                         OpenImResponseDTOTest responseDTO1 = JSONUtil.toBean(result1, OpenImResponseDTOTest.class);
                         List<OpenIMServiceImpl.UserInfo> users = responseDTO1.getData().getUsersInfo();
 
-                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", users.get(0).getNickname(), "通话消息", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", users.get(0).getNickname(), "通话消息", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
 
                         break;
                     //普通消息
@@ -493,7 +496,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                         type = 1;
                         jsonNode = objectMapper.readTree(content);
                         cont = jsonNode.get("content").asText();
-                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), cont, 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), cont, pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
 
                         break;
                     //语音消息
@@ -521,7 +524,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
 ////                                deviceSetUpService.sendMp3(deviceSendParam);
 //                            }
 //                        }
-                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "语音消息", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "语音消息", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                         break;
                     //图片消息
                     case 102:
@@ -538,7 +541,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                         openImMsgCallBackVO.setContent("");
                         jsonStr = objectMapper.writeValueAsString(openImMsgCallBackVO);
                         type = 3;
-                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "图片消息", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "图片消息", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                         break;
                     //视频消息
                     case 104:
@@ -555,7 +558,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                         openImMsgCallBackVO.setContent("");
                         jsonStr = objectMapper.writeValueAsString(openImMsgCallBackVO);
                         type = 4;
-                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "视频消息", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "视频消息", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                         break;
                     //文件消息
                     case 105:
@@ -564,7 +567,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                         type = 4;
                         openImMsgCallBackVO.setContent("");
                         jsonStr = objectMapper.writeValueAsString(openImMsgCallBackVO);
-                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "文件消息", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                        uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "文件消息", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                         break;
                     //自定义消息
                     case 110:
@@ -583,7 +586,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             type = 5;
                             user = fsUserMapper.selectFsUserByUserId(Long.parseLong(a));
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "电子处方单", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "电子处方单", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("report")) {
@@ -596,7 +599,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             type = 6;
                             user = fsUserMapper.selectFsUserByUserId(Long.parseLong(a));
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "问诊报告单", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "问诊报告单", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("follow")) {
@@ -605,7 +608,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             //orderId = payload.get("extension").get("followId").asLong();
                             user = fsUserMapper.selectFsUserByUserId(Long.parseLong(a));
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "随访单", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "随访单", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("drugReport")) {
@@ -614,7 +617,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             type = 8;
                             user = fsUserMapper.selectFsUserByUserId(Long.parseLong(a));
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "用药报告单", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "用药报告单", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("package")) {
@@ -628,7 +631,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             openImMsgCallBackVO.setContent("");
                             jsonStr = objectMapper.writeValueAsString(openImMsgCallBackVO);
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "套餐包", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "套餐包", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("couponPackage")) {
@@ -639,7 +642,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             openImMsgCallBackVO.setContent("");
                             jsonStr = objectMapper.writeValueAsString(openImMsgCallBackVO);
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "私域疗法券", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "私域疗法券", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("inquirySelect")) {
@@ -650,7 +653,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             openImMsgCallBackVO.setContent("");
                             jsonStr = objectMapper.writeValueAsString(openImMsgCallBackVO);
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "会诊", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "会诊", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("startInquiry") || data.equals("finishInquiry")) {
@@ -658,7 +661,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             type = 1;
                             user = fsUserMapper.selectFsUserByUserId(Long.parseLong(a));
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "接诊通知", 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), "接诊通知", pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         } else if (data.equals("course")) {
@@ -666,7 +669,7 @@ public class FsInquiryOrderMsgServiceImpl implements IFsInquiryOrderMsgService
                             type = 1;
                             user = fsUserMapper.selectFsUserByUserId(Long.parseLong(a));
                             if (StringUtils.isNotEmpty(user.getJpushId())) {
-                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), cont, 1f, PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
+                                uniPush2Service.pushIm(Long.parseLong(a), 0l, "", openImMsgCallBackVO.getSenderNickname(), cont, pushLogTypeEnum.getValue(), PushLogDesTypeEnum.IM_MSG.getValue(), jsonStr);
                             }
                             break;
                         }

+ 31 - 8
fs-user-app/src/main/java/com/fs/app/controller/AppLoginController.java

@@ -467,12 +467,28 @@ public class AppLoginController extends AppBaseController{
         if (user==null){
             return R.error("用户数据不存在");
         }
+
+        //验证码绑定,需要校验验证码
+        if (param.getBindType()!=null){
+            String redisCode = redisCache.getCacheObject("sms:code:" + param.getPhone());
+            if (StringUtils.isEmpty(redisCode)){
+                return R.error("验证码已过期,请重新发送");
+            }
+            if (!redisCode.equals(param.getCode())) {
+                return R.error("验证码错误");
+            }
+            redisCache.deleteObject("sms:code:" + param.getPhone());
+        }
+
+
+
         FsUser userMap = findUserByPhone(param.getPhone());
         //绑定的手机号已存在用户的情况,将微信登录的时候创建的新号的UnionId移动到老号中,删除新号(将两个号合并)
         if (userMap!=null){
             if (userMap.getUserId().equals(user.getUserId())) {
                 user.setPhone(param.getPhone());
                 user.setLoginDevice(param.getLoginDevice());
+                user.setHistoryApp("app");
                 user.setSource(param.getSource());
                 userService.updateFsUser(user);
                 return generateTokenAndReturn(user);
@@ -492,8 +508,10 @@ public class AppLoginController extends AppBaseController{
             }
             keepUser.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
             keepUser.setSource(param.getSource());
+            keepUser.setHistoryApp("app");
             keepUser.setUnionId(user.getUnionId());
             keepUser.setPhone(param.getPhone());
+            keepUser.setIntegral(keepUser.getIntegral()+deleteUser.getIntegral());
             if (userService.updateFsUser(keepUser)>0){
 //                userService.realDeleteFsUserByUserId(deleteUser.getUserId());
                 userService.deleteFsUserByUserId(deleteUser.getUserId());
@@ -503,10 +521,15 @@ public class AppLoginController extends AppBaseController{
         }
         user.setPhone(param.getPhone());
         user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null );
+        user.setHistoryApp("app");
         user.setSource(param.getSource()!= null ? param.getSource() : null);
         userMap = new FsUser();
         userMap.setLoginDevice(param.getLoginDevice());
+        userMap.setHistoryApp("app");
         userMap.setSource(param.getSource());
+        if (user.getNickName().equals("匿名用户**")) {
+            userMap.setNickName("匿名用户" + param.getPhone().substring(param.getPhone().length() - 4));
+        }
         userMap.setUserId(user.getUserId());
         userMap.setPhone(param.getPhone());
         if (userService.updateFsUser(userMap)>0){
@@ -714,14 +737,14 @@ public class AppLoginController extends AppBaseController{
     @PostMapping("/sendCode")
     public R sendCode(@RequestBody Map<String, String> body){
         String phone = body.get("phone");
-        String encryptPhone = encryptPhone(phone);
-        List<FsUser> user = userService.selectFsUserListByPhone(encryptPhone);
-        if(CollectionUtil.isEmpty(user)){
-            user = userService.selectFsUserListByPhone(encryptPhoneOldKey(phone));
-        }
-        if (CollectionUtil.isEmpty(user)){
-            return R.error("此电话号码未绑定用户");
-        }
+//        String encryptPhone = encryptPhone(phone);
+//        List<FsUser> user = userService.selectFsUserListByPhone(encryptPhone);
+//        if(CollectionUtil.isEmpty(user)){
+//            user = userService.selectFsUserListByPhone(encryptPhoneOldKey(phone));
+//        }
+//        if (CollectionUtil.isEmpty(user)){
+//            return R.error("此电话号码未绑定用户");
+//        }
 
         // 验证码 key(3分钟有效)
         String smsCodeKey = "sms:code:" + phone;

+ 5 - 0
fs-user-app/src/main/java/com/fs/app/controller/CompanyUserController.java

@@ -18,6 +18,7 @@ import com.fs.common.enums.BusinessType;
 import com.fs.common.exception.CustomException;
 import com.fs.common.exception.file.OssException;
 import com.fs.common.utils.SecurityUtils;
+import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.common.utils.sign.Md5Utils;
 import com.fs.company.domain.CompanyUser;
@@ -112,6 +113,10 @@ public class CompanyUserController extends  AppBaseController {
             if(!SecurityUtils.matchesPassword(param.getPassword(),companyUser.getPassword())){
                 return R.error("密码不正确");
             }
+            if (StringUtils.isNotEmpty(param.getJpushId())) {
+                companyUser.setJpushId(param.getJpushId());
+                companyUserService.updateUserProfile(companyUser);
+            }
             redisCache.setCacheObject("company-user-token:"+Md5Utils.hash(companyUser.getUserId().toString()),companyUser.getUserId(),100, TimeUnit.DAYS);
             return R.ok().put("companyUserToken", Md5Utils.hash(companyUser.getUserId().toString())).put("user",companyUser);
         } catch (Exception e){

+ 4 - 0
fs-user-app/src/main/java/com/fs/app/param/FsUserEditPhoneParam.java

@@ -30,4 +30,8 @@ public class FsUserEditPhoneParam implements Serializable {
      * 是否有SIM卡 0不存在 1存在
      */
     private Integer simExist;
+
+    private Integer bindType;
+    //验证码
+    private String code;
 }