Browse Source

权限变更重新登录

tudc 4 years ago
parent
commit
334a75d3f1

+ 6 - 0
sc-service/src/main/java/com/huyi/service/base/entity/SysUser.java

@@ -105,6 +105,12 @@ public class SysUser implements Serializable {
     private String idCardFile;
 
     /**
+     * 最后登录token
+     */
+    @TableField("login_token")
+    private String loginToken;
+
+    /**
      * 最后登录时间
      */
     @TableField("login_date")

+ 57 - 43
sc-service/src/main/java/com/huyi/service/conmany/controller/OwnCompanyManageController.java

@@ -1000,53 +1000,67 @@ public class OwnCompanyManageController extends BaseController
         lambdaQueryWrapper.eq(SysRole::getCompanyId,scyId);
         lambdaQueryWrapper.eq(SysRole::getIsAuto,"0");
         List<SysRole> roleList = iSysRoleService.findSysRoles(lambdaQueryWrapper);
-            //如果没有角色,把产品换掉
-            if(roleList.size() == 0){
-                //查询出此企业的企业产品关联Id
-                LambdaQueryWrapper<SysCompanyProduct> companyProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
-                companyProductLambdaQueryWrapper.eq(SysCompanyProduct::getScpCompanyId,scyId);
-                companyProductLambdaQueryWrapper.eq(SysCompanyProduct::getScpIsDel,"00");
-                List<SysCompanyProduct> companyProductList = iSysCompanyProductService.findSysCompanyProducts(companyProductLambdaQueryWrapper);
-                for (SysCompanyProduct companyProduct : companyProductList) {
-                    String scpId = companyProduct.getScpId();
-                    //实体赋值
-                    SysCompanyProduct sysCompanyProduct = new SysCompanyProduct();
-                    sysCompanyProduct.setScpId(scpId);
-                    sysCompanyProduct.setScpCompanyId(scyId);
-                    sysCompanyProduct.setScpProducId(productId);
-                    sysCompanyProduct.setUpdateTime(DateUtils.getNowDate());
-                    //修改
-                    iSysCompanyProductService.updateById(sysCompanyProduct);
-                }
-            }else {
-                //如果有角色,查出角色与菜单关系
-                for (SysRole sysRole : roleList) {
-                    //查出角色下的菜单Id
-                    Long roleId = sysRole.getRoleId();
-                    LambdaQueryWrapper<SysRoleMenu> roleMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
-                    roleMenuLambdaQueryWrapper.eq(SysRoleMenu::getRoleId,roleId);
-                    List<SysRoleMenu> menuList = iSysRoleMenuService.findSysRoleMenus(roleMenuLambdaQueryWrapper);
-                    for(SysRoleMenu sysRoleMenu : menuList){
-                        //每个菜单Id与核心企业产品Id比较
-                        Long menuId = sysRoleMenu.getMenuId();
-                        for(SysProductMenu sysProductMenu : productMenuList) {
-                            //如果相同,则删除角色与菜单关联表的数据
-                            if (menuId.equals(sysProductMenu.getSpmMenuId())) {
-                                LambdaQueryWrapper<SysRoleMenu> sysRoleMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
-                                sysRoleMenuLambdaQueryWrapper.eq(SysRoleMenu::getMenuId,menuId);
-                                sysRoleMenuLambdaQueryWrapper.eq(SysRoleMenu::getRoleId,roleId);
-                                iSysRoleMenuService.deleteSysRoleMenu(sysRoleMenuLambdaQueryWrapper);
-                            }
+        //如果没有角色,把产品换掉
+        if(roleList.size() == 0){
+            //查询出此企业的企业产品关联Id
+            LambdaQueryWrapper<SysCompanyProduct> companyProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            companyProductLambdaQueryWrapper.eq(SysCompanyProduct::getScpCompanyId,scyId);
+            companyProductLambdaQueryWrapper.eq(SysCompanyProduct::getScpIsDel,"00");
+            List<SysCompanyProduct> companyProductList = iSysCompanyProductService.findSysCompanyProducts(companyProductLambdaQueryWrapper);
+            for (SysCompanyProduct companyProduct : companyProductList) {
+                String scpId = companyProduct.getScpId();
+                //实体赋值
+                SysCompanyProduct sysCompanyProduct = new SysCompanyProduct();
+                sysCompanyProduct.setScpId(scpId);
+                sysCompanyProduct.setScpCompanyId(scyId);
+                sysCompanyProduct.setScpProducId(productId);
+                sysCompanyProduct.setUpdateTime(DateUtils.getNowDate());
+                //修改
+                iSysCompanyProductService.updateById(sysCompanyProduct);
+            }
+        }else {
+            //如果有角色,查出角色与菜单关系
+            for (SysRole sysRole : roleList) {
+                //查出角色下的菜单Id
+                Long roleId = sysRole.getRoleId();
+                LambdaQueryWrapper<SysRoleMenu> roleMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                roleMenuLambdaQueryWrapper.eq(SysRoleMenu::getRoleId,roleId);
+                List<SysRoleMenu> menuList = iSysRoleMenuService.findSysRoleMenus(roleMenuLambdaQueryWrapper);
+                for(SysRoleMenu sysRoleMenu : menuList){
+                    //每个菜单Id与核心企业产品Id比较
+                    Long menuId = sysRoleMenu.getMenuId();
+                    for(SysProductMenu sysProductMenu : productMenuList) {
+                        //如果相同,则删除角色与菜单关联表的数据
+                        if (menuId.equals(sysProductMenu.getSpmMenuId())) {
+                            LambdaQueryWrapper<SysRoleMenu> sysRoleMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                            sysRoleMenuLambdaQueryWrapper.eq(SysRoleMenu::getMenuId,menuId);
+                            sysRoleMenuLambdaQueryWrapper.eq(SysRoleMenu::getRoleId,roleId);
+                            iSysRoleMenuService.deleteSysRoleMenu(sysRoleMenuLambdaQueryWrapper);
                         }
                     }
                 }
             }
-            //修改企业类型为核心企业
-            SysCompany sysCompany = new SysCompany();
-            sysCompany.setScyId(scyId);
-            sysCompany.setScyType("01");
-            sysCompany.setUpdateTime(DateUtils.getNowDate());
-            iSysCompanyService.updateById(sysCompany);
+        }
+        //修改企业类型为核心企业
+        SysCompany sysCompany = new SysCompany();
+        sysCompany.setScyId(scyId);
+        sysCompany.setScyType("01");
+        sysCompany.setUpdateTime(DateUtils.getNowDate());
+        iSysCompanyService.updateById(sysCompany);
+
+        // 企业权限变更
+        LambdaQueryWrapper<SysUserCompanyRel> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper1.eq(SysUserCompanyRel::getSucrCompanyId, scyId);
+        List<SysUserCompanyRel> sysUserCompanyRelList = iSysUserCompanyRelService.findSysUserCompanyRels(lambdaQueryWrapper1);
+        for (SysUserCompanyRel userCompanyRel : sysUserCompanyRelList) {
+            SysUser sysUser = iSysUserService.getById(userCompanyRel.getSucrUserId());
+            LoginUser lastLoginUser = tokenService.getLoginUser(sysUser.getLoginToken());
+            if (lastLoginUser != null) {
+                lastLoginUser.setSingle("2");
+                tokenService.setLoginUser(lastLoginUser);
+            }
+        }
+
         return R.ok();
     }
 

+ 1 - 0
sc-service/src/main/resources/mapper/base/SysUserMapper.xml

@@ -17,6 +17,7 @@
         <result column="login_ip" property="loginIp" />
         <result column="id_card" property="idCard" />
         <result column="id_card_file" property="idCardFile" />
+        <result column="login_token" property="loginToken" />
         <result column="login_date" property="loginDate" />
         <result column="create_by" property="createBy" />
         <result column="create_time" property="createTime" />