diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/RoleController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/RoleController.java index 012402417..5f155d261 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/RoleController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/RoleController.java @@ -73,6 +73,12 @@ public class RoleController { return roleService.allList(); } + @GetMapping(value = "/tenantRoleList") + @ApiOperation(value = "查询租户角色列表") + public List tenantRoleList(HttpServletRequest request)throws Exception { + return roleService.tenantRoleList(); + } + /** * 批量设置状态-启用或者禁用 * @param jsonObject diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/TenantController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/TenantController.java index 503f439de..015d3fafe 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/TenantController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/TenantController.java @@ -1,36 +1,21 @@ package com.jsh.erp.controller; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.jsh.erp.constants.BusinessConstants; -import com.jsh.erp.constants.ExceptionConstants; -import com.jsh.erp.datasource.entities.Tenant; -import com.jsh.erp.datasource.entities.User; -import com.jsh.erp.datasource.entities.UserEx; -import com.jsh.erp.datasource.vo.TreeNodeEx; -import com.jsh.erp.exception.BusinessParamCheckingException; -import com.jsh.erp.service.log.LogService; -import com.jsh.erp.service.redis.RedisService; import com.jsh.erp.service.tenant.TenantService; -import com.jsh.erp.service.user.UserService; -import com.jsh.erp.utils.*; +import com.jsh.erp.utils.ErpInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.UUID; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/TenantEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/TenantEx.java index 25fe88a11..6f4de19b2 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/TenantEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/TenantEx.java @@ -8,6 +8,10 @@ public class TenantEx extends Tenant{ private Integer userCount; + private Long roleId; + + private String roleName; + public String getCreateTimeStr() { return createTimeStr; } @@ -31,4 +35,20 @@ public class TenantEx extends Tenant{ public void setUserCount(Integer userCount) { this.userCount = userCount; } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } } \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java index eb8c2b167..f01b0f7dd 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java @@ -19,4 +19,6 @@ public interface UserBusinessMapperEx { List getBasicDataByKeyIdAndType( @Param("keyId") String keyId, @Param("type") String type); + + void updateValueByTypeAndKeyId(@Param("type") String type, @Param("keyId") String keyId, @Param("ubValue") String ubValue); } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/role/RoleService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/role/RoleService.java index 7e2707aaa..c21c9770b 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/role/RoleService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/role/RoleService.java @@ -39,6 +39,9 @@ public class RoleService { @Resource private UserService userService; + //超管的专用角色 + private static Long MANAGE_ROLE_ID = 4L; + public Role getRole(long id)throws Exception { Role result=null; try{ @@ -75,6 +78,22 @@ public class RoleService { return list; } + public List tenantRoleList() { + List list=null; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + RoleExample example = new RoleExample(); + example.createCriteria().andEnabledEqualTo(true).andTenantIdIsNull().andIdNotEqualTo(MANAGE_ROLE_ID) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id asc"); + list=roleMapper.selectByExample(example); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + public List select(String name, String description, int offset, int rows)throws Exception { List list=null; try{ diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java index de6482864..a41c40852 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java @@ -2,12 +2,14 @@ package com.jsh.erp.service.tenant; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; -import com.jsh.erp.constants.ExceptionConstants; -import com.jsh.erp.datasource.entities.*; +import com.jsh.erp.datasource.entities.Tenant; +import com.jsh.erp.datasource.entities.TenantEx; +import com.jsh.erp.datasource.entities.TenantExample; +import com.jsh.erp.datasource.entities.UserEx; import com.jsh.erp.datasource.mappers.TenantMapper; import com.jsh.erp.datasource.mappers.TenantMapperEx; +import com.jsh.erp.datasource.mappers.UserBusinessMapperEx; import com.jsh.erp.datasource.mappers.UserMapperEx; -import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.exception.JshException; import com.jsh.erp.service.log.LogService; import com.jsh.erp.service.user.UserService; @@ -23,7 +25,8 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.*; +import java.util.ArrayList; +import java.util.List; @Service public class TenantService { @@ -38,6 +41,9 @@ public class TenantService { @Resource private UserMapperEx userMapperEx; + @Resource + private UserBusinessMapperEx userBusinessMapperEx; + @Resource private UserService userService; @@ -125,6 +131,11 @@ public class TenantService { userMapperEx.disableUserByLimit(tenant.getTenantId()); } result = tenantMapper.updateByPrimaryKeySelective(tenant); + //更新租户对应的角色 + if(obj.get("roleId")!=null) { + String ubValue = "[" + obj.getString("roleId") + "]"; + userBusinessMapperEx.updateValueByTypeAndKeyId("UserRole", tenant.getTenantId().toString(), ubValue); + } } }catch(Exception e){ JshException.writeFail(logger, e); diff --git a/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml index 28d2e242a..0af06da6a 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml @@ -3,11 +3,19 @@ + + + + update jsh_user_business + set value= #{ubValue} + where type = #{type} and key_id = #{keyId} + \ No newline at end of file diff --git a/jshERP-web/src/api/api.js b/jshERP-web/src/api/api.js index b80315a17..5745f26b4 100644 --- a/jshERP-web/src/api/api.js +++ b/jshERP-web/src/api/api.js @@ -12,6 +12,7 @@ const addRole = (params)=>postAction("/role/add",params); const editRole = (params)=>putAction("/role/update",params); const checkRole = (params)=>getAction("/role/checkIsNameExist",params); const roleAllList = (params)=>getAction("/role/allList",params); +const getTenantRoleList = (params)=>getAction("/role/tenantRoleList",params); //用户管理 const registerUser = (params)=>postAction("/user/registerUser",params); const addUser = (params)=>postAction("/user/addUser",params); @@ -124,6 +125,7 @@ export { editRole, checkRole, roleAllList, + getTenantRoleList, registerUser, addUser, editUser, diff --git a/jshERP-web/src/views/system/TenantList.vue b/jshERP-web/src/views/system/TenantList.vue index f4f34d33b..4089cd2e3 100644 --- a/jshERP-web/src/views/system/TenantList.vue +++ b/jshERP-web/src/views/system/TenantList.vue @@ -138,6 +138,7 @@ { title: '租户类型',dataIndex: 'type',width:60,align:"center", scopedSlots: { customRender: 'customRenderType' } }, + { title: '租户角色', dataIndex: 'roleName', width: 80, align: "center"}, { title: '租户状态',dataIndex: 'enabled',width:60,align:"center", scopedSlots: { customRender: 'customRenderEnabled' } }, diff --git a/jshERP-web/src/views/system/modules/TenantModal.vue b/jshERP-web/src/views/system/modules/TenantModal.vue index 6ff184bb5..500a89006 100644 --- a/jshERP-web/src/views/system/modules/TenantModal.vue +++ b/jshERP-web/src/views/system/modules/TenantModal.vue @@ -30,6 +30,13 @@ 付费租户 + + + + {{ item.name }} + + + @@ -44,7 +51,7 @@