Browse Source

用户端登陆接口添加验证码字段,并校验

lt 1 month ago
parent
commit
efc811549d

+ 4 - 22
alien-store/src/main/java/shop/alien/store/controller/LifeUserController.java

@@ -43,31 +43,13 @@ public class LifeUserController {
     @ApiOperation("用户登录")
     @ApiOperationSupport(order = 1)
     @ApiImplicitParams({@ApiImplicitParam(name = "phoneNum", value = "手机号", dataType = "String", paramType = "query", required = true),
-                        @ApiImplicitParam(name = "inviteCode", value = "邀请码", dataType = "String", paramType = "query", required = false)})
+                        @ApiImplicitParam(name = "inviteCode", value = "邀请码", dataType = "String", paramType = "query", required = false),
+            @ApiImplicitParam(name = "verificationCode", value = "验证码", dataType = "String", paramType = "query", required = true)})
     @GetMapping("/userLogin")
     public R<LifeUserVo> userLogin(@RequestParam("phoneNum") String phoneNum,  @RequestParam(required = false) String inviteCode,
-                                   @RequestParam(value = "macIp",required = false) String macIp) {
+                                   @RequestParam(value = "macIp",required = false) String macIp,@RequestParam(value = "verificationCode",required = true) String verificationCode) {
         log.info("LifeUserController.userLogin?phoneNum={}", phoneNum);
-        LifeUserVo userVo = service.userLogin(phoneNum, inviteCode, macIp);
-        if (null == userVo) {
-            return R.fail("账户不存在请先注册");
-        }
-        return R.data(userVo);
-    }
-
-    @ApiOperation("用户注册")
-    @ApiOperationSupport(order = 1)
-    @ApiImplicitParams({@ApiImplicitParam(name = "phoneNum", value = "手机号", dataType = "String", paramType = "query", required = true),
-            @ApiImplicitParam(name = "inviteCode", value = "邀请码", dataType = "String", paramType = "query", required = false)})
-    @GetMapping("/userRegister")
-    public R<LifeUserVo> userRegister(@RequestParam("phoneNum") String phoneNum,  @RequestParam(required = false) String inviteCode,
-                                   @RequestParam(value = "macIp",required = false) String macIp) {
-        log.info("LifeUserController.userLogin?phoneNum={}", phoneNum);
-        LifeUserVo userVo = service.userRegister(phoneNum, inviteCode, macIp);
-        if (null == userVo ) {
-            return R.fail("注册失败请稍后再试");
-        }
-        return R.data(userVo);
+        return service.userLogin(phoneNum, inviteCode, macIp,verificationCode);
     }
 
     @ApiOperation("查询用户信息")

+ 51 - 51
alien-store/src/main/java/shop/alien/store/service/LifeUserService.java

@@ -20,10 +20,10 @@ import shop.alien.config.properties.RiskControlProperties;
 import shop.alien.entity.second.LifeUserLog;
 import shop.alien.entity.result.R;
 import shop.alien.entity.second.SecondRiskControlRecord;
-import shop.alien.entity.second.SecondUserCredit;
 import shop.alien.entity.store.LifeFans;
 import shop.alien.entity.store.LifeNotice;
 import shop.alien.entity.store.LifeUser;
+import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.LifeMessageVo;
 import shop.alien.entity.store.vo.LifeUserVo;
 import shop.alien.entity.store.vo.WebSocketVo;
@@ -161,66 +161,66 @@ public class LifeUserService extends ServiceImpl<LifeUserMapper, LifeUser> {
         return voList;
     }
 
-    public LifeUserVo userLogin(String phoneNum, String inviteCode, String macIp) {
-        LifeUser user = getUserByPhone(phoneNum);
-        if (user != null) {
-            LifeUserVo userVo = new LifeUserVo();
-            BeanUtils.copyProperties(user, userVo);
-            Map<String, String> tokenMap = new HashMap<>();
-            tokenMap.put("phone", phoneNum);
-            tokenMap.put("userName", user.getUserName());
-            tokenMap.put("userId", user.getId().toString());
-            tokenMap.put("userType", "user");
-            String token = getToken(phoneNum, user.getUserName(), tokenMap);
-            userVo.setToken(token);
-            baseRedisService.setString("user_" + phoneNum, token);
-            if (StringUtils.isNotEmpty(inviteCode)) {
-                // 生成邀请记录
-                activityInviteConfigService.bindInviteCode(user.getId(), inviteCode);
-            }
-            // 二手平台登录log,同一个macip登录多账号记录
-            addLifeUserLogInfo(user, macIp);
-            return userVo;
-        } else {
-            return null;
-        }
-    }
-
-    public LifeUserVo userRegister(String phoneNum, String inviteCode, String macIp) {
-        LifeUser user = getUserByPhone(phoneNum);
-        LifeUserVo userVo = new LifeUserVo();
-        if (user == null) {
-            LifeUser lifeUser = new LifeUser();
-            lifeUser.setUserPhone(phoneNum);
-            lifeUser.setUserName(phoneNum);
-            lifeUser.setRealName(phoneNum);
-            lifeUser.setCreatedTime(new Date());
-            int ret = lifeUserMapper.insert(lifeUser);
-            if (ret == 1) {
-                LifeUser user2 = getUserByPhone(phoneNum);
-                BeanUtils.copyProperties(user2, userVo);
+    public R<LifeUserVo> userLogin(String phoneNum, String inviteCode, String macIp, String verificationCode) {
+        String key = "verification_" + phoneNum;
+        String redisVerificationCode = baseRedisService.getString(key);
+        //判断验证码是否输入正确
+        if (!StringUtils.isEmpty(redisVerificationCode) && redisVerificationCode.equals(verificationCode)) {
+            LifeUser user = getUserByPhone(phoneNum);
+            //如果用户不存在则自动注册账号
+            if (user == null) {
+                LifeUser lifeUser = new LifeUser();
+                lifeUser.setUserPhone(phoneNum);
+                lifeUser.setUserName(phoneNum);
+                lifeUser.setRealName(phoneNum);
+                lifeUser.setCreatedTime(new Date());
+                int ret = lifeUserMapper.insert(lifeUser);
+                if (ret == 1) {
+                    LifeUser user2 = getUserByPhone(phoneNum);
+                    LifeUserVo userVo = new LifeUserVo();
+                    BeanUtils.copyProperties(user2, userVo);
+                    Map<String, String> tokenMap = new HashMap<>();
+                    tokenMap.put("phone", phoneNum);
+                    tokenMap.put("userName", lifeUser.getUserName());
+                    tokenMap.put("userId", lifeUser.getId().toString());
+                    tokenMap.put("userType", "user");
+//                userVo.setToken(JWTUtils1.createToken(tokenMap));
+                    String token = getToken(phoneNum, userVo.getUserName(), tokenMap);
+                    userVo.setToken(token);
+                    baseRedisService.setString("user_" + phoneNum, token);
+                    // 生成邀请记录
+                    if (StringUtils.isNotEmpty(inviteCode)) {
+                        activityInviteConfigService.bindInviteCode(lifeUser.getId(), inviteCode);
+                    }
+                    // 二手平台登录log,同一个macip登录多账号记录
+                    addLifeUserLogInfo(user2, macIp);
+                    return R.data(userVo);
+                } else {
+                    return R.fail("数据库处理错误,请稍后再试");
+                }
+            } else {
+                LifeUserVo userVo = new LifeUserVo();
+                BeanUtils.copyProperties(user, userVo);
                 Map<String, String> tokenMap = new HashMap<>();
                 tokenMap.put("phone", phoneNum);
-                tokenMap.put("userName", lifeUser.getUserName());
-                tokenMap.put("userId", lifeUser.getId().toString());
+                tokenMap.put("userName", user.getUserName());
+                tokenMap.put("userId", user.getId().toString());
                 tokenMap.put("userType", "user");
-//                userVo.setToken(JWTUtils1.createToken(tokenMap));
-                String token = getToken(phoneNum, userVo.getUserName(), tokenMap);
+                String token = getToken(phoneNum, user.getUserName(), tokenMap);
                 userVo.setToken(token);
-                userVo.setRegisterFlag(false);
                 baseRedisService.setString("user_" + phoneNum, token);
-                // 生成邀请记录
                 if (StringUtils.isNotEmpty(inviteCode)) {
-                    activityInviteConfigService.bindInviteCode(lifeUser.getId(), inviteCode);
+                    // 生成邀请记录
+                    activityInviteConfigService.bindInviteCode(user.getId(), inviteCode);
                 }
                 // 二手平台登录log,同一个macip登录多账号记录
-                addLifeUserLogInfo(user2, macIp);
-                return userVo;
-            } else {
-                return null;
+                addLifeUserLogInfo(user, macIp);
+                return R.data(userVo);
             }
+        } else {
+            return R.fail(400,"验证码错误");
         }
-        return userVo;
+
     }
 
     private String getToken(String phoneNum, String userVo, Map<String, String> tokenMap) {