刘俊驰 1 سال پیش
والد
کامیت
988d673bc2

+ 2 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/SmsCodeController.java

@@ -37,8 +37,8 @@ public class SmsCodeController extends BaseController {
     @ApiImplicitParams({@ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"),
             @ApiImplicitParam(name = "type", value = "类型(PASSWD:修改密码,LOGIN:登录或注册,BANK:绑定银行卡,PHONE:修改手机号)", required = true, dataType = "String")})
     @PostMapping(value = "/sendSmsCode")
-    public Object sendLoginVerifyCode(String mobile, String type,String code) throws Exception {
-        smsCodeService.sendValidCode(mobile, type, ClientEnum.WEBSITE, code);
+    public Object sendLoginVerifyCode(String mobile, String type,String code,String client) throws Exception {
+        smsCodeService.sendValidCode(mobile, type, ClientEnum.WEBSITE, code,client);
         return succeed();
     }
 

+ 19 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/service/DefaultUserDetailsService.java

@@ -108,6 +108,25 @@ public class DefaultUserDetailsService implements UserDetailsService {
                 // 账号被锁定
                 throw new UsernameNotFoundException("MA:5005:" + openid);
             }
+        } else if ("WEBSITE".equals(clientId)) {
+            String loginUserType = WebUtil.getParameter("loginUserType").toUpperCase();
+            if (SysUserType.STUDENT.getCode().equals(loginUserType)) {
+                StudentApi data = adminFeignService.getStudent(sysUser.getId()).getData();
+                if (data == null) {
+                    throw new UsernameNotFoundException("账户不存在");
+                }
+                if (UserLockFlag.LOCKED.equals(data.getLockFlag())) {
+                    throw new LockedException("账户被锁定");
+                }
+            }else if(SysUserType.TEACHER.getCode().equals(loginUserType)) {
+                TeacherApi data = adminFeignService.getTeacher(sysUser.getId()).getData();
+                if (data == null) {
+                    throw new UsernameNotFoundException("账户不存在");
+                }
+                if (UserLockFlag.LOCKED.equals(data.getLockFlag())) {
+                    throw new LockedException("账户被锁定");
+                }
+            }
         }
 
         List<GrantedAuthority> authorities = null;

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SmsCodeService.java

@@ -18,4 +18,6 @@ public interface SmsCodeService {
 	 * @return
 	 */
 	boolean sendValidCode(String mobile, String type, ClientEnum platform, String code) throws Exception;
+
+    boolean sendValidCode(String mobile, String type, ClientEnum platform, String code, String client);
 }

+ 18 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SmsCodeServiceImpl.java

@@ -1,9 +1,5 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
-import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
-import com.yonge.cooleshow.api.feign.dto.StudentApi;
-import com.yonge.cooleshow.api.feign.dto.TeacherApi;
-import com.yonge.cooleshow.api.feign.dto.TenantWrapper;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.*;
@@ -12,9 +8,7 @@ import com.yonge.cooleshow.biz.dal.enums.MessageSendMode;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
-import com.yonge.cooleshow.common.enums.SysUserType;
 import com.yonge.cooleshow.common.enums.UserLockFlag;
-import com.yonge.cooleshow.common.security.SecurityConstants;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.apache.commons.lang3.StringUtils;
@@ -77,8 +71,13 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 		return false;
 	}
 
+    @Override
+    public boolean sendValidCode(String mobile, String type, ClientEnum platform, String code) {
+        return sendValidCode(mobile, type, platform, code, null);
+    }
+
 	@Override
-	public boolean sendValidCode(String mobile, String type, ClientEnum platform, String code) {
+	public boolean sendValidCode(String mobile, String type, ClientEnum platform, String code, String client) {
 
         String configValue = sysConfigService.findConfigValue(SysConfigConstant.SMS_SEND_VERIFY);
         if((StringUtils.isNotEmpty(configValue) && "1".equals(configValue)) || StringUtils.isNotBlank(code)) {
@@ -145,6 +144,18 @@ public class SmsCodeServiceImpl implements SmsCodeService {
                             throw new LockedException("账号已冻结,请联系管理员");
                         }
                     }
+                } else if (ClientEnum.WEBSITE == platform && StringUtils.isNotBlank(client)) {
+                    if (client.equals(ClientEnum.STUDENT.name())) {
+                        Student student = studentService.getById(userId);
+                        if (student != null && UserLockFlag.LOCKED.equals(student.getLockFlag())) {
+                            throw new LockedException("账号已冻结,请联系管理员");
+                        }
+                    } else if (client.equals(ClientEnum.TEACHER.name())) {
+                        Teacher teacher = teacherService.getById(userId);
+                        if (teacher !=null && UserLockFlag.LOCKED.equals(teacher.getLockFlag())) {
+                            throw new LockedException("账号已冻结,请联系管理员");
+                        }
+                    }
                 }
             }
 		} else {