Selaa lähdekoodia

3.2.7 验证码校验

xiaofei 1 vuosi sitten
vanhempi
commit
1c7b78ba15

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -442,12 +442,18 @@ public class SysController {
             map.put(SystemConstant.LOGO, basicSchool.getLogo());
             map.put("name", basicSchool.getName());
             map.put("accountSmsVerify", Objects.nonNull(sysConfig) ? Boolean.valueOf(sysConfig.getConfigValue()) : false);
+            // 若为在线激活,则允许手机号登录
+            map.put("phoneLogin", authInfoService.allowPhoneLogin(basicSchool.getId()));
         } else {
             SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.ADMIN_LOGO_URL);
             map.put(SystemConstant.LOGO, Objects.nonNull(sysConfig) ? sysConfig.getConfigValue() : null);
             map.put("name", null);
             map.put("accountSmsVerify", false);
+            // 若为在线激活,则允许手机号登录,超管默认false
+            map.put("phoneLogin", false);
         }
+
+
         return ResultUtil.ok(map);
     }
 

+ 7 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/AuthInfoService.java

@@ -70,4 +70,11 @@ public interface AuthInfoService {
      * @param orgCodesMap
      */
     public void updateSchoolEnable(Map<String, String> orgCodesMap);
+
+    /**
+     * 是否允许手机号登录
+     * @param schoolId 学校ID
+     * @return
+     */
+    public Boolean allowPhoneLogin(Long schoolId);
 }

+ 16 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AuthInfoServiceImpl.java

@@ -21,7 +21,9 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.awt.*;
 import java.util.*;
+import java.util.List;
 
 /**
  * @Description: 授权信息service
@@ -287,6 +289,20 @@ public class AuthInfoServiceImpl implements AuthInfoService {
         }
     }
 
+    /**
+     * 是否允许手机号登录
+     *
+     * @param schoolId 学校ID
+     * @return
+     */
+    @Override
+    public Boolean allowPhoneLogin(Long schoolId) {
+        QueryWrapper<TSAuth> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(TSAuth::getSchoolId, schoolId);
+        TSAuth tsAuth = tsAuthService.getOne(queryWrapper);
+        return tsAuth != null && AuthEnum.ON_LINE.equals(tsAuth.getType());
+    }
+
     /**
      * 强制从db更新激活信息
      *

+ 5 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -219,10 +219,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             sysUser.setPassword(newPwd);
         }
         if (SystemConstant.strNotNull(mobileNumber)) {
-            // 参数中存在手机号 -》 更新手机号
-            if (!SystemConstant.strNotNull(verifyCode)) {
-                throw ExceptionResultEnum.ERROR.exception("验证码不存在");
-            }
+            // 校验验证码
             this.checkSmsCode(user.getId(), mobileNumber, verifyCode);
             // 更新电话
 
@@ -839,22 +836,22 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         SysConfig value = sysConfigService.getByKey("sys.code.enable");
         if (Objects.nonNull(value) && value.getConfigValue().equals("true")) {
             if (Objects.isNull(code)) {
-                throw ExceptionResultEnum.ERROR.exception("验证码为空");
+                throw ExceptionResultEnum.ERROR.exception("验证码不能为空");
             }
             SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.SMS_NORMAL_CODE);
             Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置万能短信验证码"));
             if (!sysConfig.getConfigValue().equals(code)) {
                 List<VerifyCodeCheckDto> verifyCodeCheckDtoList = this.baseMapper.findVerifyCodeByUser(userId, mobileNumber);
                 if (verifyCodeCheckDtoList.size() < 1) {
-                    throw ExceptionResultEnum.ERROR.exception("请确认已经发送了验证码");
+                    throw ExceptionResultEnum.ERROR.exception("验证码错误");
                 }
                 VerifyCodeCheckDto accessControl = verifyCodeCheckDtoList.get(0);
                 if (accessControl == null || !accessControl.getVerifyCode().equals(code)) {
-                    throw ExceptionResultEnum.ERROR.exception("短信验证码错误,请仔细核对后再次输入");
+                    throw ExceptionResultEnum.ERROR.exception("验证码错误");
                 }
 
                 if (new Date(accessControl.getExpireTime()).before(new Date())) {
-                    throw ExceptionResultEnum.ERROR.exception("短信验证码已过期");
+                    throw ExceptionResultEnum.ERROR.exception("验证码已过期");
                 }
             }
         }

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/SmsSendUtil.java

@@ -70,7 +70,7 @@ public class SmsSendUtil {
             smsResponseResult.setCode(OK);
             smsResponseResult.setMessage(smsSendResponse.getBizId());
         } catch (ApiException e) {
-            smsResponseResult.setCode(OK);
+            smsResponseResult.setCode(ERROR);
             smsResponseResult.setMessage(e.getMessage());
         }
         return smsResponseResult;