ソースを参照

1.控制台登录问题

wuhp 2 年 前
コミット
daf9f10a71

+ 32 - 0
src/main/java/com/ydtech/modules/admin/controller/SysLoginController.java

@@ -8,17 +8,21 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.code.kaptcha.Producer;
 import com.ydtech.config.MasterPasswordConfig;
+import com.ydtech.constants.SysConstants;
 import com.ydtech.constants.sys.SysPasswordEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysPassword;
 import com.ydtech.modules.admin.model.SysRole;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.po.SysUserLinkSys;
 import com.ydtech.modules.admin.model.vo.LoginBean;
 import com.ydtech.modules.admin.model.vo.LoginTicket;
 import com.ydtech.modules.admin.model.vo.PhoneLoginVo;
 import com.ydtech.modules.admin.model.vo.QrCodeStatusEnum;
 import com.ydtech.modules.admin.service.SysPasswordService;
+import com.ydtech.modules.admin.service.SysUserLinkSysService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.utils.RedisUtils;
 import com.ydtech.modules.admin.service.SysUserRoleService;
@@ -31,6 +35,7 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.tomcat.util.http.fileupload.IOUtils;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -78,6 +83,7 @@ public class SysLoginController {
 
     private final SysPasswordService sysPasswordService;
 
+    private final SysUserLinkSysService  sysUserLinkSysService;
     @GetMapping("captcha.jpg")
     @ApiOperation(value = "获取验证码", produces = "application/octet-stream")
     public void captcha(HttpServletResponse response, HttpServletRequest request) throws IOException {
@@ -141,6 +147,19 @@ public class SysLoginController {
 //
         // 用户信息
         SysUser user = sysUserService.getById(username);
+
+        /**
+         *  多个系统登录
+         * */
+        if(!SysConstants.ADMIN.equalsIgnoreCase(username) && !"1".equals(loginBean.getSysId())){
+            LambdaQueryWrapper<SysUserLinkSys> sysLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            sysLambdaQueryWrapper.eq(SysUserLinkSys::getUserId, user.getId());
+            sysLambdaQueryWrapper.eq(SysUserLinkSys::getSysId, loginBean.getSysId());
+            List<SysUserLinkSys> list = sysUserLinkSysService.list(sysLambdaQueryWrapper);
+            if(list==null || list.size()==0){
+                throw  new SystemException("该用户未授权");
+            }
+        }
         //验证用户
         SysUser.verifyUser(user);
         SysPassword sysPassword = sysPasswordService.getOne(new LambdaQueryWrapper<SysPassword>().eq(SysPassword::getCode, SysPasswordEnum.GENERAL.getCode()));
@@ -186,6 +205,19 @@ public class SysLoginController {
         // 用户信息
         SysUser user = sysUserService.getById(username);
 
+        /**
+         *  多个系统登录
+         * */
+        if(!SysConstants.ADMIN.equalsIgnoreCase(username) && !"1".equals(loginBean.getSysId())){
+            LambdaQueryWrapper<SysUserLinkSys> sysLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            sysLambdaQueryWrapper.eq(SysUserLinkSys::getUserId, user.getId());
+            sysLambdaQueryWrapper.eq(SysUserLinkSys::getSysId, loginBean.getSysId());
+            List<SysUserLinkSys> list = sysUserLinkSysService.list(sysLambdaQueryWrapper);
+            if(list==null || list.size()==0){
+                throw  new SystemException("该用户未授权");
+            }
+        }
+
         //验证用户
         SysUser.verifyUser(user);
         SysPassword sysPassword = sysPasswordService.getOne(new LambdaQueryWrapper<SysPassword>().eq(SysPassword::getCode, SysPasswordEnum.GENERAL.getCode()));

+ 1 - 0
src/main/java/com/ydtech/modules/admin/controller/SysMenuController.java

@@ -27,6 +27,7 @@ public class SysMenuController {
 //    @PreAuthorize("hasAuthority('sys:menu:add') AND hasAuthority('sys:menu:edit')")
     @PostMapping(value = "/save")
     public HttpResult save(@RequestBody SysMenu record) {
+        record.setSysType("1");
         if (StringUtils.isNullOrEmpty(record.getId()) || record.getId().equalsIgnoreCase("0")) {
             return HttpResult.ok(sysMenuService.save(record));
 //            return HttpResult.ok(sysMenuService.insertSelective(record));

+ 3 - 0
src/main/java/com/ydtech/modules/admin/controller/SysRoleController.java

@@ -52,6 +52,7 @@ public class SysRoleController extends BaseController {
         if ((record.getId() == null || record.getId() == 0) && sysRoleService.findByName(record.getName()) != null) {
             return HttpResult.error("角色名已存在!");
         }
+        record.setSysType("1");
         return HttpResult.ok(sysRoleService.saveOrUpdate(record));
     }
 
@@ -77,6 +78,7 @@ public class SysRoleController extends BaseController {
     public HttpResult findAll() {
         LambdaQueryWrapper<SysRole> lqw = new LambdaQueryWrapper<>();
         lqw.eq(SysRole::getDelFlag, "0");
+        lqw.eq(SysRole::getSysType, "1");
         List<SysRole> list = sysRoleService.list(lqw);
         return HttpResult.ok(list);
     }
@@ -99,6 +101,7 @@ public class SysRoleController extends BaseController {
         }
 
         lqw.eq(SysRole::getDelFlag, "0");
+        lqw.eq(SysRole::getSysType, "1");
         List<SysRole> list = sysRoleService.list(lqw);
         return HttpResult.ok(list);
     }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/dao/SysRoleMenuMapper.java

@@ -11,7 +11,7 @@ import java.util.List;
 public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
 
     String SysMenuSql = "select t.id, t.name, t.parent_id, t.url, t.perms, t.type, t.icon, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag from sys_menu t ";
-    String sysRoleMenuIdSql = " where t.id in (select menu_id from sys_role_menu t1 left join sys_user_role t2 on t1.role_id=t2.role_id where t2.user_id='${userId}') and del_flag=0 ";
+    String sysRoleMenuIdSql = " where t.id in (select menu_id from sys_role_menu t1 left join sys_user_role t2 on t1.role_id=t2.role_id where t2.user_id='${userId}') and del_flag=0  and  t.sys_type='1'";
     String SysMenuSqlT1 = SysMenuSql + sysRoleMenuIdSql;
 
 

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/SysMenu.java

@@ -46,6 +46,12 @@ public class SysMenu implements Serializable {
     @TableField(exist = false)
     private List<SysMenu> children;
 
+    /***
+     * 添加菜单类型 1.车险 2. 控制台
+     */
+    @TableField(value = "sys_type")
+    private String sysType;
+
 
 }
 

+ 7 - 0
src/main/java/com/ydtech/modules/admin/model/SysRole.java

@@ -19,6 +19,9 @@ public class SysRole implements Serializable {
     private Date lastUpdateTime;
     private Integer delFlag;
 
+    private String sysType;
+
+
     public Long getId() {
         return id;
     }
@@ -35,6 +38,10 @@ public class SysRole implements Serializable {
         this.name = name;
     }
 
+    public String getSysType() {return sysType;}
+
+    public void setSysType(String sysType) {this.sysType = sysType;}
+
     public String getRemark() {
         return remark;
     }

+ 1 - 0
src/main/java/com/ydtech/modules/admin/model/vo/LoginBean.java

@@ -14,6 +14,7 @@ public class LoginBean {
     private String account;
     private String password;
     private String captcha;
+    private String sysId;
     //验证码ID
     private String captchaId;
 

+ 3 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysMenuServiceImpl.java

@@ -49,8 +49,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
 
     @Override
     public List<SysMenu> findByUser(String userName) {
-        LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<>();
+         LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<>();
         lqw.eq(SysMenu::getDelFlag, 0);
+        lqw.eq(SysMenu::getSysType, 1);
         if (userName == null || "".equals(userName) || SysConstants.ADMIN.equalsIgnoreCase(userName)) {
 //            return selectList(" where 1=1 and del_flag=0", null);
             return list(lqw);
@@ -79,6 +80,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
         LambdaQueryWrapper<SysMenu> smlqw = new LambdaQueryWrapper<>();
         smlqw.eq(SysMenu::getDelFlag, 0);
         smlqw.in(SysMenu::getId, longs);
+        smlqw.in(SysMenu::getSysType, "1");
         return list(smlqw);