Просмотр исходного кода

添加短信验证和快捷登录方式

夏文涛 2 лет назад
Родитель
Сommit
3e7e7883cb

+ 1 - 1
src/main/java/com/template/api/WechatScanLoginControllerAPI.java

@@ -95,7 +95,7 @@ public interface WechatScanLoginControllerAPI {
 
     @RequestMapping(value = "/vertifyMessage")
     @ResponseBody
-    public CommonResult vertifyMessage(String phone,String code, String wxcode);
+    public CommonResult vertifyMessage(String phone,String code, String wxcode, Integer loginType);
 
     @RequestMapping(value = "/operatePhoneBook")
     @ResponseBody

+ 31 - 18
src/main/java/com/template/controller/SmartUserController.java

@@ -2556,29 +2556,42 @@ public class SmartUserController implements SmartUserControllerAPI {
         }
         //endregion
 
+
         //最后都要把数据加入到数据库中
-        int result = smartUserService.insertSmartUser(su);
-        if (result > 0 && isur.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue() && isur.getIsr() != null && isur.getIsr().size() > 0) {
-            List<SmartTeaching> teachings = new ArrayList<>();
-            for (isrRequest sv : isur.getIsr()) {
-                if (sv.getIds() != null && sv.getIds().size() > 0) {
-                    SmartTeaching st = new SmartTeaching();
-                    st.setUserId(result);
-                    st.setSubjectId(sv.getIds().size() > 0 ? sv.getIds().get(0) : 0);
-                    st.setGradeId(sv.getIds().size() > 1 ? sv.getIds().get(1) : 0);
-                    st.setClassId(sv.getIds().size() > 2 ? sv.getIds().get(2) : 0);
-                    teachings.add(st);
+        if (org.springframework.util.StringUtils.hasText(isur.getPhone())) {
+            //多身份
+            List<SmartUser> users = smartUserService.getPhoneUsers(isur.getPhone());
+            if (users != null && users.size() > 0) {
+                Optional<SmartUser> ownerUser = users.stream().filter(e -> org.springframework.util.StringUtils.hasText(e.getXOpenId())).findFirst();
+                if(ownerUser != null && ownerUser.isPresent()){
+                    su.setXOpenId(ownerUser.get().getXOpenId());
                 }
             }
-            if (teachings != null && teachings.size() > 0) {
-                boolean insertBatch = smartTeachingService.saveBatch(teachings);
-                if (!insertBatch) {
-                    return CommonResult.fail("任课数据添加失败");
+        }
+
+        int result = smartUserService.insertSmartUser(su);
+        if (result > 0) {
+            if (isur.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue() && isur.getIsr() != null && isur.getIsr().size() > 0) {
+                List<SmartTeaching> teachings = new ArrayList<>();
+                for (isrRequest sv : isur.getIsr()) {
+                    if (sv.getIds() != null && sv.getIds().size() > 0) {
+                        SmartTeaching st = new SmartTeaching();
+                        st.setUserId(result);
+                        st.setSubjectId(sv.getIds().size() > 0 ? sv.getIds().get(0) : 0);
+                        st.setGradeId(sv.getIds().size() > 1 ? sv.getIds().get(1) : 0);
+                        st.setClassId(sv.getIds().size() > 2 ? sv.getIds().get(2) : 0);
+                        teachings.add(st);
+                    }
+                }
+                if (teachings != null && teachings.size() > 0) {
+                    boolean insertBatch = smartTeachingService.saveBatch(teachings);
+                    if (!insertBatch) {
+                        return CommonResult.fail("任课数据添加失败");
+                    }
                 }
             }
+            //新增用户得将用户信息通过接口推送到希沃、百胜
         }
-        //新增用户得将用户信息通过接口推送到希沃、百胜
-
         return result > 0 ? CommonResult.ok("添加成功") : CommonResult.fail("添加失败");
     }
     //endregion
@@ -4301,7 +4314,7 @@ public class SmartUserController implements SmartUserControllerAPI {
                         ids[1] = gradeId;
                         Integer classId = new Integer(ownerTeaching.getClassId());
                         ids[2] = classId;
-                        ir.setIds(Arrays.asList(ids) );
+                        ir.setIds(Arrays.asList(ids));
                         subjectVos.add(ir);
                     }
 

+ 25 - 16
src/main/java/com/template/controller/WechatScanLoginController.java

@@ -530,7 +530,6 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
         }
 
         jsonObject.put("user", userDatas);
-        jsonObject.put("userhead", AesUtils.encrypt(String.valueOf(user.get(0).getId())));
 
         return CommonResult.ok(jsonObject.toString());
     }
@@ -596,21 +595,31 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
     @Override
     @PassToken
     @DESRespondSecret(validated = true)
-    public CommonResult vertifyMessage(String phone, String code, String wxcode) {
-        QueryWrapper<SmsCode> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq("deleted", 0);
-        queryWrapper1.eq("is_verify", 0);
-        queryWrapper1.eq("phone_number", phone);
-        queryWrapper1.eq("code", code);
-        queryWrapper1.ge("expiration_time", new Date());
-        List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper1);
-        if (listc.isEmpty()) {
-            return CommonResult.ok("验证码已失效");
-        }
-        //核销验证码
-        for (SmsCode smsCode : listc) {
-            smsCode.setIsVerify("1");
-            smsCodeService.updateSmsCode(smsCode);
+    public CommonResult vertifyMessage(String phone, String code, String wxcode, Integer loginType) {
+        /**
+         * loginType:登录方式
+         * 短信验证登录:1
+         * 快捷登录:2
+         */
+        if(loginType == null){
+            return CommonResult.fail("请选择登录方式");
+        }
+        if(loginType.intValue() == 1){
+            QueryWrapper<SmsCode> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("deleted", 0);
+            queryWrapper1.eq("is_verify", 0);
+            queryWrapper1.eq("phone_number", phone);
+            queryWrapper1.eq("code", code);
+            queryWrapper1.ge("expiration_time", new Date());
+            List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper1);
+            if (listc.isEmpty()) {
+                return CommonResult.ok("验证码已失效");
+            }
+            //核销验证码
+            for (SmsCode smsCode : listc) {
+                smsCode.setIsVerify("1");
+                smsCodeService.updateSmsCode(smsCode);
+            }
         }
 
         if (StringUtils.isBlank(wxcode)) {

+ 7 - 0
src/main/java/com/template/services/SmartUserService.java

@@ -108,6 +108,13 @@ public interface SmartUserService extends IService<SmartUser> {
     SmartUser getPhoneUser(String phone);
 
     /**
+     * 通过手机号找到对应的人
+     * @param phone
+     * @return
+     */
+    List<SmartUser> getPhoneUsers(String phone);
+
+    /**
      * 通过关联人找到对应用户
      * @param affiliate
      * @return

+ 7 - 0
src/main/java/com/template/services/impl/SmartUserServiceImpl.java

@@ -310,6 +310,13 @@ public class SmartUserServiceImpl extends ServiceImpl<SmartUserMapper, SmartUser
         return smartUser;
     }
 
+    @Override
+    public List<SmartUser> getPhoneUsers(String phone) {
+        QueryWrapper<SmartUser> queryWrapper = new QueryWrapper();
+        queryWrapper.eq("phone", phone);
+        List<SmartUser> result = smartUserMapper.selectList(queryWrapper);
+        return result;
+    }
 
     @Override
     public List<SmartUser> getAffiliateUser(String affiliate) {