Long 4 дней назад
Родитель
Сommit
524e492447

+ 1 - 1
fs-service/src/main/java/com/fs/his/mapper/FsUserMapper.java

@@ -185,7 +185,7 @@ public interface FsUserMapper
     @Select("select * from fs_user where is_del = 0 and phone=#{phone}")
     FsUser selectFsUserByPhone(String phone);
 
-    @Select("select * from fs_user where phone=#{phone} limit 1")
+    @Select("select * from fs_user where phone=#{phone} and is_del = 0 limit 1")
     FsUser selectFsUserByPhoneLimitOne(String phone);
     @Select({"<script> " +
             "select distinct f1.*,f2.nick_name tui_name,f2.phone tui_phone FROM company_user_user cuu LEFT JOIN fs_user f1 ON cuu.user_id =f1.user_id left JOIN fs_user f2 ON f1.tui_user_id =f2.user_id"+

+ 71 - 107
fs-user-app/src/main/java/com/fs/app/controller/AppLoginController2.java

@@ -92,32 +92,23 @@ public class AppLoginController2 extends AppBaseController{
 //            fsUser = userService.selectFsUserByPhone(encryptPhone(param.getPhone()));
 //        }
 
-        if (fsUser != null && StringUtils.isNotEmpty(fsUser.getPassword())) {
+        if (fsUser != null) {
             return R.error("此账号已经注册");
         }
 
         FsUser user = new FsUser();
-        if (fsUser != null) {
-            // 更新已有用户的密码
-            user.setUserId(fsUser.getUserId());
-            user.setPassword(Md5Utils.hash(param.getPassword()));
-            user.setUpdateTime(new DateTime());
-            userService.updateFsUser(user);
+        // 创建新用户
+        user.setPhone(param.getPhone());
+        user.setNickName("app用户" + param.getPhone().substring(param.getPhone().length() - 4));
+        user.setStatus(1);
+        user.setAvatar("https://cos.his.cdwjyyh.com/fs/20240926/420728ee06e54575ba82665dedb4756b.png");
+        user.setPassword(Md5Utils.hash(param.getPassword()));
+        user.setCreateTime(new Date());
+
+        if (userService.insertFsUser(user) > 0) {
             return R.ok("注册成功");
         } else {
-            // 创建新用户
-            user.setPhone(param.getPhone());
-            user.setNickName("app用户" + param.getPhone().substring(param.getPhone().length() - 4));
-            user.setStatus(1);
-            user.setAvatar("https://cos.his.cdwjyyh.com/fs/20240926/420728ee06e54575ba82665dedb4756b.png");
-            user.setPassword(Md5Utils.hash(param.getPassword()));
-            user.setCreateTime(new Date());
-
-            if (userService.insertFsUser(user) > 0) {
-                return R.ok("注册成功");
-            } else {
-                return R.error("注册失败");
-            }
+            return R.error("注册失败");
         }
 
     }
@@ -144,7 +135,7 @@ public class AppLoginController2 extends AppBaseController{
     @ApiOperation("找回密码")
     @PostMapping("/editPwd")
     public R login(@Validated @RequestBody FsUserEditPwdParam param) {
-        FsUser user = userService.selectFsUserByPhone(encryptPhone(param.getPhone()));
+        FsUser user = findUserByPhone(param.getPhone());
         if (user==null){
             return R.error("用户不存在");
         }
@@ -158,7 +149,7 @@ public class AppLoginController2 extends AppBaseController{
         FsUser userMap=new FsUser();
         userMap.setUserId(user.getUserId());
         userMap.setPassword(Md5Utils.hash(param.getPassword()));
-        if (userService.updateFsUser(userMap)>0){
+        if (userMapper.updateFsUser(userMap)>0){
             return R.ok("新密码设置成功");
         }
         return R.error("新密码设置失败,请稍后再试!");
@@ -263,7 +254,7 @@ public class AppLoginController2 extends AppBaseController{
                 user.setSource(param.getSource());
                 String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
                 user.setLastIp(ipAddr);
-                userService.updateFsUser(user);
+                userMapper.updateFsUser(user);
                 return generateTokenAndReturn(user);
             }
             if (StringUtils.isNotEmpty(userMap.getUnionId())&&!userMap.getUnionId().equals(user.getUnionId())){
@@ -297,7 +288,7 @@ public class AppLoginController2 extends AppBaseController{
             keepUser.setPhone(param.getPhone());
             String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
             keepUser.setLastIp(ipAddr);
-            if (userService.updateFsUser(keepUser)>0){
+            if (userMapper.updateFsUser(keepUser)>0){
                 userService.realDeleteFsUserByUserId(deleteUser.getUserId());
                 return generateTokenAndReturn(keepUser);
             }
@@ -313,7 +304,7 @@ public class AppLoginController2 extends AppBaseController{
         userMap.setPhone(param.getPhone());
         String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
         userMap.setLastIp(ipAddr);
-        if (userService.updateFsUser(userMap)>0){
+        if (userMapper.updateFsUser(userMap)>0){
             return generateTokenAndReturn(user);
         }
         return R.error("绑定手机号失败");
@@ -351,7 +342,7 @@ public class AppLoginController2 extends AppBaseController{
                         user.setUnionId(unionid);
                         String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
                         user.setLastIp(ipAddr);
-                        userService.updateFsUser(user);
+                        userMapper.updateFsUser(user);
                         return generateTokenAndReturn(user);
                     }
                     //改一下合并规则 将unionid存在的用户保留 合并掉手机号存在但unionid不存在的用户,而且如果被合并的用户如果有source 就转移过去用
@@ -400,7 +391,7 @@ public class AppLoginController2 extends AppBaseController{
                     keepUser.setSex(sex);
                     String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
                     keepUser.setLastIp(ipAddr);
-                    if (userService.updateFsUser(keepUser)>0){
+                    if (userMapper.updateFsUser(keepUser)>0){
                         userService.realDeleteFsUserByUserId(deleteUser.getUserId());
                         return generateTokenAndReturn(keepUser);
                     }
@@ -417,7 +408,7 @@ public class AppLoginController2 extends AppBaseController{
                     user.setAppOpenId(openid);
                     String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
                     user.setLastIp(ipAddr);
-                    if (userService.updateFsUser(user)>0){
+                    if (userMapper.updateFsUser(user)>0){
                         return generateTokenAndReturn(user);
                     }
                     else {
@@ -442,7 +433,7 @@ public class AppLoginController2 extends AppBaseController{
         }
         String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
         userMap.setLastIp(ipAddr);
-        userService.updateFsUser(userMap);
+        userMapper.updateFsUser(userMap);
     }
 
     private R generateTokenAndReturn(FsUser user) {
@@ -499,63 +490,46 @@ public class AppLoginController2 extends AppBaseController{
 
     private R handleLoginType3(FsUserLoginParam param) {
         // 根据手机号查询用户
-        FsUser user = null;
-        List<FsUser> usersByPhone = findUsersByPhone(param.getPhone());
-        if (CollectionUtil.isEmpty(usersByPhone)){
+        FsUser user = findUserByPhone(param.getPhone());
+        if (user == null) {
             FsUser newUser = createNewUser(param);
-            if (StringUtils.isNotEmpty(newUser.getJpushId())) {
+//            if (StringUtils.isNotEmpty(newUser.getJpushId())) {
 //                try {
 //                    //发送注册优惠券
 //                    fsUserCouponService.sendRegisterCoupon(newUser);
 //                } catch (Exception e) {
 //                    logger.error("发送注册优惠券失败:{}",e.getMessage());
 //                }
-            }
+//            }
             return R.ok().put("isNew",true).put("phone",encryptPhone(param.getPhone()));
         }
-        if (usersByPhone.size()==1){
-            user = usersByPhone.get(0);
-            if (StringUtils.isEmpty(user.getUnionId())){
-                if (user.getPhone().length()<=11){
-                    FsUser fsUser = new FsUser();
-                    fsUser.setUserId(user.getUserId());
-                    fsUser.setPhone(encryptPhone(param.getPhone()));
-                    String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
-                    fsUser.setLastIp(ipAddr);
-                    userMapper.updateFsUser(fsUser);
-                    logger.info("zyp \n【手机加密】:{}",encryptPhone(param.getPhone()));
-                }
-                return R.ok().put("isNew",true).put("phone",encryptPhone(param.getPhone()));
+
+        if (StringUtils.isEmpty(user.getUnionId())){
+            if (user.getPhone().length()<=11){
+                FsUser fsUser = new FsUser();
+                fsUser.setUserId(user.getUserId());
+                fsUser.setPhone(encryptPhone(param.getPhone()));
+                String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
+                fsUser.setLastIp(ipAddr);
+                userMapper.updateFsUser(fsUser);
+                logger.info("zyp \n【手机加密】:{}",encryptPhone(param.getPhone()));
             }
-            if (StringUtils.isNotEmpty(param.getJpushId())) {
-                updateExistingUserJpushId(user, param.getJpushId());
+            return R.ok().put("isNew",true).put("phone",encryptPhone(param.getPhone()));
+        }
+
+        if (StringUtils.isNotEmpty(param.getJpushId())) {
+            updateExistingUserJpushId(user, param.getJpushId());
 //                try {
 //                    //发送注册优惠券
 //                    fsUserCouponService.sendRegisterCoupon(user);
 //                } catch (Exception e) {
 //                    logger.error("发送注册优惠券失败:{}",e.getMessage());
 //                }
-            }
-        }else {
-            return R.ok().put("users",usersByPhone);
         }
+
         return generateTokenAndReturn(user);
     }
 
-    private List<FsUser> findUsersByPhone(String phone) {
-        // 先根据加密手机号查询用户
-        String jiami = (encryptPhone(phone));
-        List<FsUser> fsUsers = userMapper.selectFsUsersByPhoneLimitOne(jiami);
-        if (CollectionUtil.isEmpty(fsUsers)) {
-            fsUsers = userMapper.selectFsUsersByPhoneLimitOne(encryptPhoneOldKey(phone));
-        }
-        // 如果没有找到用户,再根据手机号查询
-        if (CollectionUtil.isEmpty(fsUsers)) {
-            fsUsers = userMapper.selectFsUsersByPhoneLimitOne(phone);
-
-        }
-        return fsUsers;
-    }
     private FsUser createNewUser(FsUserLoginParam param) {
         FsUser newUser = new FsUser();
         newUser.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
@@ -574,14 +548,17 @@ public class AppLoginController2 extends AppBaseController{
 
     private FsUser findUserByPhone(String phone) {
         // 先根据加密手机号查询用户
-        String jiami = (encryptPhone(phone));
-        FsUser user = userMapper.selectFsUserByPhoneLimitOne(jiami);
+        FsUser user = userMapper.selectFsUserByPhoneLimitOne(encryptPhone(phone));
+
+        if (user == null) {
+            user = userMapper.selectFsUserByPhoneLimitOne(encryptPhoneOldKey(phone));
+        }
 
         // 如果没有找到用户,再根据手机号查询
         if (user == null) {
             user = userMapper.selectFsUserByPhoneLimitOne(phone);
-
         }
+
         return user;
     }
 
@@ -694,35 +671,30 @@ public class AppLoginController2 extends AppBaseController{
     public R loginByPhone(@RequestBody Map<String,String> map){
         String phone = map.get("phone");
         String code = map.get("code");
-        String encryptPhone = encryptPhone(phone);
-        List<FsUser> user = userService.selectFsUserListByPhone(encryptPhone);
-        if (CollectionUtil.isEmpty(user)){
-            user = userService.selectFsUserListByPhone(encryptPhoneOldKey(phone));
-        }
-        if (CollectionUtil.isEmpty(user)){
+
+        FsUser user = findUserByPhone(phone);
+        if (user == null) {
             return R.error("此电话号码未绑定用户");
         }
-        if (user.size()>1){
-            //如果出现了一个手机号多个用户的情况,找出登陆过app的那个用户
-            user.removeIf(fsUser -> StringUtils.isEmpty(fsUser.getHistoryApp()));
-        }
+
         String redisCode = redisCache.getCacheObject("sms:code:" + phone);
-        if (StringUtils.isEmpty(redisCode)){
+        if (StringUtils.isBlank(redisCode)) {
             return R.error("验证码已过期,请重新发送");
         }
+
         if (!redisCode.equals(code)) {
             return R.error("验证码错误");
         }
-        updateExistingUserJpushId(user.get(0), map.get("jpushId"));
+
+        updateExistingUserJpushId(user, map.get("jpushId"));
 
         // 检查是否写入过appCreateTime,没写入则写入
-        checkAppCreateTime(user.get(0));
+        checkAppCreateTime(user);
 
         // 发送消息
-        FsUser finalUser = user.get(0);
-        threadPoolTaskExecutor.execute(() -> sendMessage(finalUser));
+        threadPoolTaskExecutor.execute(() -> sendMessage(user));
 
-        return generateTokenAndReturn(user.get(0));
+        return generateTokenAndReturn(user);
     }
 
     /**
@@ -811,12 +783,9 @@ public class AppLoginController2 extends AppBaseController{
     @PostMapping("/registerSendCode")
     public R registerSendCode(@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)){
+
+        FsUser user = findUserByPhone(phone);
+        if (user != null){
             return R.error("此电话号码已注册");
         }
 
@@ -849,13 +818,9 @@ public class AppLoginController2 extends AppBaseController{
         String phone = map.get("phone");
         String code = map.get("code");
         String password = map.get("password");
-        String encryptPhone = encryptPhone(phone);
-        List<FsUser> users = userService.selectFsUserListByPhone(encryptPhone);
-        if (users == null || CollectionUtil.isEmpty(users)){
-            String s = encryptPhoneOldKey(phone);
-            users = userService.selectFsUserListByPhone(s);
-        }
-        if (!CollectionUtil.isEmpty(users)){
+
+        FsUser user = findUserByPhone(phone);
+        if (user != null){
             return R.error("此账号已经注册");
         }
         String redisCode = redisCache.getCacheObject("sms:code:" + phone);
@@ -865,9 +830,9 @@ public class AppLoginController2 extends AppBaseController{
         if (!redisCode.equals(code)) {
             return R.error("验证码错误");
         }
-        FsUser user = new FsUser();
+        user = new FsUser();
         // 创建新用户
-        user.setPhone(encryptPhone);
+        user.setPhone(phone);
         user.setJpushId(map.get("jpushId"));
         user.setSource(map.get("source"));
         user.setNickName("app用户" + phone.substring(phone.length() - 4));
@@ -891,12 +856,9 @@ public class AppLoginController2 extends AppBaseController{
         if (!newPassword.equals(confirmPassword)){
             throw new ServiceException("两次输入密码不一致,请检查");
         }
-        String encryptPhone = encryptPhone(phone);
-        List<FsUser> user = userService.selectFsUserListByPhone(encryptPhone);
-        if (CollectionUtil.isEmpty(user)){
-            user = userService.selectFsUserListByPhone(encryptPhoneOldKey(phone));
-        }
-        if (CollectionUtil.isEmpty(user)){
+
+        FsUser user = findUserByPhone(phone);
+        if (user == null){
             return R.error("此电话号码未绑定用户");
         }
         String redisCode = redisCache.getCacheObject("sms:code:" + phone);
@@ -907,7 +869,9 @@ public class AppLoginController2 extends AppBaseController{
             return R.error("验证码错误");
         }
         String password = Md5Utils.hash(newPassword);
-        return userService.updatePasswordByPhone(password,encryptPhone);
+        user.setPassword(password);
+        userMapper.updateFsUser(user);
+        return R.ok();
     }
 
 }

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

@@ -178,7 +178,7 @@ public class CompanyUserController extends AppBaseController {
 
         //手机号加密
         user.setPhone(encryptPhone(param.getPhone()));
-        fsUserService.updateFsUser(user);
+        fsUserMapper.updateFsUser(user);
 
         CompanyUserUser map = new CompanyUserUser();
         map.setCompanyUserId(param.getCompanyUserId());
@@ -203,11 +203,11 @@ public class CompanyUserController extends AppBaseController {
         // 先根据加密手机号查询用户
         String jiami = (encryptPhone(phone));
         List<FsUser> fsUsers = fsUserMapper.selectFsUsersByPhoneLimitOne(jiami);
-        if (CollectionUtil.isEmpty(fsUsers)) {
+        if (fsUsers == null || fsUsers.isEmpty()) {
             fsUsers = fsUserMapper.selectFsUsersByPhoneLimitOne(encryptPhoneOldKey(phone));
         }
         // 如果没有找到用户,再根据手机号查询
-        if (CollectionUtil.isEmpty(fsUsers)) {
+        if (fsUsers == null || fsUsers.isEmpty()) {
             fsUsers = fsUserMapper.selectFsUsersByPhoneLimitOne(phone);
 
         }