Преглед на файлове

加入微信小程序登录限制

wangliang преди 1 година
родител
ревизия
dea5bcce7d

+ 2 - 2
sop-api/src/main/java/com/qmth/sop/server/api/SysController.java

@@ -115,7 +115,7 @@ public class SysController {
             Optional.ofNullable(login.getPassword()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("密码不能为空"));
             sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName, login.getLoginName()).or().eq(SysUser::getMobileNumber, login.getLoginName()));
             if (CollectionUtils.isEmpty(sysUserList)) {
-                throw ExceptionResultEnum.ERROR.exception("用户不存在");
+                throw ExceptionResultEnum.ERROR.exception("对不起,您不是系统用户,无法进行登录!");
             }
             if (sysUserList.size() > 1) {
                 throw ExceptionResultEnum.ERROR.exception("查出多个用户");
@@ -137,7 +137,7 @@ public class SysController {
 
             sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, login.getMobileNumber()));
             if (CollectionUtils.isEmpty(sysUserList)) {
-                throw ExceptionResultEnum.ERROR.exception("用户不存在");
+                throw ExceptionResultEnum.ERROR.exception("对不起,您不是系统用户,无法进行登录!");
             }
             if (sysUserList.size() > 1) {
                 throw ExceptionResultEnum.ERROR.exception("查出多个用户");

+ 4 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/SysUserServiceImpl.java

@@ -73,6 +73,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         AuthBean authBean = commonCacheService.userAuthCache(sysUser.getId());
         Optional.ofNullable(authBean).orElseThrow(() -> ExceptionResultEnum.ROLE_ENABLE_AUTHORIZATION.exception());
 
+        List<SysRole> sysRoleList = authBean.getRoleList().stream().filter(s -> s.getType() == RoleTypeEnum.EFFECT_ENGINEER || s.getType() == RoleTypeEnum.ASSISTANT_ENGINEER).collect(Collectors.toList());
+        if (appSource == AppSourceEnum.WX_APP && CollectionUtils.isEmpty(sysRoleList)) {
+            throw ExceptionResultEnum.ERROR.exception("对不起,您的角色无法登录移动端,请您通过PC端访问平台!");
+        }
         //生成token
         String token = SystemConstant.getNanoId();
         //添加用户会话缓存

+ 6 - 6
sop-business/src/main/java/com/qmth/sop/business/service/impl/TWxappInfoServiceImpl.java

@@ -74,7 +74,7 @@ public class TWxappInfoServiceImpl extends ServiceImpl<TWxappInfoMapper, TWxappI
         Optional.ofNullable(tWxappInfo).orElseThrow(() -> ExceptionResultEnum.WXAPP_OPENID_NO_DATA.exception());
         List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, tWxappInfo.getPhone()));
         if (CollectionUtils.isEmpty(sysUserList)) {
-            throw ExceptionResultEnum.ERROR.exception("用户不存在");
+            throw ExceptionResultEnum.ERROR.exception("对不起,您不是系统用户,无法进行登录!");
         }
         if (sysUserList.size() > 1) {
             throw ExceptionResultEnum.ERROR.exception("查出多个用户");
@@ -83,7 +83,7 @@ public class TWxappInfoServiceImpl extends ServiceImpl<TWxappInfoMapper, TWxappI
         if (!sysUser.getEnable()) {
             throw ExceptionResultEnum.ERROR.exception("该用户已禁用");
         }
-        LoginResult result = sysUserService.login(sysUser.getPassword(), sysUser, AppSourceEnum.SYSTEM);
+        LoginResult result = sysUserService.login(sysUser.getPassword(), sysUser, AppSourceEnum.WX_APP);
         try {
             sysLogService.saveLogWithNoAuth(sysUser.getId(), "用户登录", LogTypeEnum.LOGIN);
         } catch (Exception e) {
@@ -109,7 +109,7 @@ public class TWxappInfoServiceImpl extends ServiceImpl<TWxappInfoMapper, TWxappI
 
         List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, wxappPhoneNumber.getPurePhoneNumber()));
         if (CollectionUtils.isEmpty(sysUserList)) {
-            throw ExceptionResultEnum.ERROR.exception("用户不存在");
+            throw ExceptionResultEnum.ERROR.exception("对不起,您不是系统用户,无法进行登录!");
         }
         if (sysUserList.size() > 1) {
             throw ExceptionResultEnum.ERROR.exception("查出多个用户");
@@ -123,7 +123,7 @@ public class TWxappInfoServiceImpl extends ServiceImpl<TWxappInfoMapper, TWxappI
         TWxappInfo tWxappInfo = tWxappInfoService.getOne(new QueryWrapper<TWxappInfo>().lambda().eq(TWxappInfo::getOpenId, openId));
         tWxappInfo = Objects.isNull(tWxappInfo) ? new TWxappInfo(openId, wxappPhoneNumber.getPurePhoneNumber()) : tWxappInfo;
         tWxappInfoService.saveOrUpdate(tWxappInfo);
-        LoginResult result = sysUserService.login(sysUser.getPassword(), sysUser, AppSourceEnum.SYSTEM);
+        LoginResult result = sysUserService.login(sysUser.getPassword(), sysUser, AppSourceEnum.WX_APP);
         try {
             sysLogService.saveLogWithNoAuth(sysUser.getId(), "用户登录", LogTypeEnum.LOGIN);
         } catch (Exception e) {
@@ -149,7 +149,7 @@ public class TWxappInfoServiceImpl extends ServiceImpl<TWxappInfoMapper, TWxappI
         String phone = jo.getString(SystemConstant.PURE_PHONE_NUMBER);
         List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, phone));
         if (CollectionUtils.isEmpty(sysUserList)) {
-            throw ExceptionResultEnum.ERROR.exception("用户不存在");
+            throw ExceptionResultEnum.ERROR.exception("对不起,您不是系统用户,无法进行登录!");
         }
         if (sysUserList.size() > 1) {
             throw ExceptionResultEnum.ERROR.exception("查出多个用户");
@@ -161,7 +161,7 @@ public class TWxappInfoServiceImpl extends ServiceImpl<TWxappInfoMapper, TWxappI
         TWxappInfo tWxappInfo = tWxappInfoService.getOne(new QueryWrapper<TWxappInfo>().lambda().eq(TWxappInfo::getOpenId, openId));
         tWxappInfo = Objects.isNull(tWxappInfo) ? new TWxappInfo(openId, phone) : tWxappInfo;
         tWxappInfoService.saveOrUpdate(tWxappInfo);
-        LoginResult result = sysUserService.login(sysUser.getPassword(), sysUser, AppSourceEnum.SYSTEM);
+        LoginResult result = sysUserService.login(sysUser.getPassword(), sysUser, AppSourceEnum.WX_APP);
         try {
             sysLogService.saveLogWithNoAuth(sysUser.getId(), "用户登录", LogTypeEnum.LOGIN);
         } catch (Exception e) {

+ 3 - 1
sop-common/src/main/java/com/qmth/sop/common/enums/AppSourceEnum.java

@@ -11,7 +11,9 @@ import java.util.Objects;
  */
 public enum AppSourceEnum {
 
-    SYSTEM("自身应用系统");
+    SYSTEM("自身应用系统"),
+
+    WX_APP("微信小程序");
 
     private String title;