Commit 9900e15d authored by 赵啸非's avatar 赵啸非

更新资源文件

parent a7bc0777
......@@ -11,6 +11,9 @@ package com.mortals.xhx.base.system.menu.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.menu.model.MenuEntity;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import java.util.List;
/**
* <p>Title: 菜单信息</p>
......@@ -22,5 +25,6 @@ import com.mortals.xhx.base.system.menu.model.MenuEntity;
*/
public interface MenuDao extends ICRUDDao<MenuEntity,Long> {
List<MenuEntity> getListByUserId(Long userId);
}
\ No newline at end of file
......@@ -9,11 +9,14 @@
package com.mortals.xhx.base.system.menu.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.framework.model.ParamDto;
import com.mortals.xhx.base.system.menu.dao.MenuDao;
import com.mortals.xhx.base.system.menu.model.MenuEntity;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>Title: 菜单信息</p>
* <p>Description: MenuDaoImpl DAO接口 </p>
......@@ -25,4 +28,10 @@ import org.springframework.stereotype.Repository;
@Repository("menuDao")
public class MenuDaoImpl extends BaseCRUDDaoMybatis<MenuEntity,Long> implements MenuDao {
@Override
public List<MenuEntity> getListByUserId(Long userId) {
ParamDto param = new ParamDto();
param.getCondition().put("userId", userId);
return getSqlSession().selectList(getSqlId("getListByUserId"), param);
}
}
\ No newline at end of file
......@@ -70,6 +70,13 @@ public interface MenuService extends ICRUDService<MenuEntity,Long> {
*/
boolean hasChildByMenuId(Long menuId);
/**
* 构建树
* @param menuList
* @return
*/
List<MenuEntity> buildMenuTree(List<MenuEntity> menuList);
/**
* 构建前端所需要下拉树结构
......
......@@ -21,7 +21,14 @@ import com.mortals.xhx.base.system.menu.model.MenuQuery;
import com.mortals.xhx.base.system.menu.model.MenuTreeSelect;
import com.mortals.xhx.base.system.menu.service.MenuService;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import com.mortals.xhx.base.system.resource.service.ResourceService;
import com.mortals.xhx.base.system.role.model.RoleAuthQuery;
import com.mortals.xhx.base.system.role.model.RoleUserQuery;
import com.mortals.xhx.base.system.role.service.RoleAuthService;
import com.mortals.xhx.base.system.role.service.RoleUserService;
import com.mortals.xhx.common.code.YesNoEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
......@@ -40,6 +47,12 @@ import java.util.stream.Collectors;
@Service("menuService")
public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity, Long> implements MenuService {
@Autowired
private RoleUserService roleUserService;
@Autowired
private RoleAuthService roleAuthService;
@Override
public List<MenuEntity> findAllEnable() throws AppException {
MenuQuery params = new MenuQuery();
......@@ -97,29 +110,38 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
return outlookBar;
}
public List<MenuEntity> findTreeMenu() throws AppException {
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
List<MenuEntity> userModuleList = this.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
if (sysModule == null) {
continue;
}
menuMap.put(sysModule.getId(), sysModule);
}
List<MenuEntity> outlookBar = new ArrayList<MenuEntity>();
for (MenuEntity sysModule : userModuleList) {
if (sysModule.getParentId() == null || sysModule.getParentId().longValue() == 0) {
outlookBar.add(sysModule);
continue;
}
MenuEntity sysModuleParent = menuMap.get(sysModule.getParentId());
if (sysModuleParent != null) {
sysModuleParent.getChildren().add(sysModule);
}
@Override
public List<MenuEntity> findTreeMenu(IUser user) throws AppException {
//todo 重新写 菜单树 通过角色获取菜单
if (user.isAdmin()) {
//全菜单列表获取
MenuQuery menuQuery = new MenuQuery();
List<OrderCol> orderColList = new ArrayList<OrderCol>();
orderColList.add(new OrderCol("parentId"));
orderColList.add(new OrderCol("orderId"));
menuQuery.setOrderColList(orderColList);
List<MenuEntity> list = this.find(menuQuery);
List<MenuEntity> returnTreeList = this.buildMenuTree(list);
return returnTreeList;
}
return outlookBar;
List<MenuEntity> menuEntities = this.getDao().getListByUserId(user.getId()).stream().distinct().collect(Collectors.toList());
/* RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setUserId(user.getId());
List<Long> roleIdList = roleUserService.find(roleUserQuery).stream().map(roleUser -> roleUser.getRoleId()).collect(Collectors.toList());
if(ObjectUtils.isEmpty(roleIdList)) return Collections.EMPTY_LIST;
RoleAuthQuery roleAuthQuery = new RoleAuthQuery();
roleAuthQuery.setRoleIdList(roleIdList);
List<Long> menuIdList = roleAuthService.find(roleAuthQuery).stream().map(roleAuth -> roleAuth.getMenuId()).filter(f -> f != null).collect(Collectors.toList());
if(ObjectUtils.isEmpty(menuIdList)) return Collections.EMPTY_LIST;
MenuQuery menuQuery = new MenuQuery();
menuQuery.setIdList(menuIdList);
List<MenuEntity> menuEntities = this.find(menuQuery);*/
List<MenuEntity> returnTreeList = this.buildMenuTree(menuEntities);
return returnTreeList;
}
@Override
public void upOrDown(Long id, Integer type) {
MenuQuery query = new MenuQuery();
......@@ -190,6 +212,24 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
return list.size() > 0 ? true : false;
}
@Override
public List<MenuEntity> buildMenuTree(List<MenuEntity> list) {
List<MenuEntity> returnList = new ArrayList<>();
List<Long> tempList = list.stream().map(MenuEntity::getId).collect(Collectors.toList());
for (Iterator<MenuEntity> iterator = list.iterator(); iterator.hasNext(); ) {
MenuEntity menuEntity = iterator.next();
if (!tempList.contains(menuEntity.getParentId())) {
recursionFn(list, menuEntity);
returnList.add(menuEntity);
}
}
if (returnList.isEmpty()) {
returnList = list;
}
return returnList;
}
@Override
public List<MenuTreeSelect> buildMenuTreeSelect(List<MenuEntity> list) {
List<MenuEntity> returnList = new ArrayList<>();
......
/**
* 文件:RoleAuthEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.role.model;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.base.system.role.model.vo.RoleAuthVo;
import lombok.Data;
/**
* <p>Title: 角色资源权限</p>
* <p>Description: RoleAuthEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class RoleAuthEntity extends BaseEntityLong{
private static final long serialVersionUID = 1547777703348L;
/** 角色ID */
private Long roleId;
/** 资源ID */
private Long resourceId;
public RoleAuthEntity(){
}
/**
* 获取 角色ID
* @return roleId
*/
public Long getRoleId(){
return this.roleId;
}
/**
* 设置 角色ID
* @param roleId
*/
public void setRoleId(Long roleId){
this.roleId = roleId;
}
/**
* 获取 资源ID
* @return resourceId
*/
public Long getResourceId(){
return this.resourceId;
}
/**
* 设置 资源ID
* @param resourceId
*/
public void setResourceId(Long resourceId){
this.resourceId = resourceId;
}
* 角色资源权限业务实体对象
*
* @author zxfei
* @date 2024-09-06
*/
@Data
public class RoleAuthEntity extends RoleAuthVo {
private static final long serialVersionUID = 1L;
/**
* 角色ID
*/
private Long roleId;
/**
* 菜单ID
*/
private Long menuId;
/**
* 资源ID
*/
private Long resourceId;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 创建用户名称
*/
private String updateUserName;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoleAuthEntity) {
RoleAuthEntity tmp = (RoleAuthEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof RoleAuthEntity) {
RoleAuthEntity tmp = (RoleAuthEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",roleId:").append(getRoleId())
.append(",resourceId:").append(getResourceId());
return sb.toString();
}
public void initAttrValue(){
this.roleId = null;
this.resourceId = null;
}
public void initAttrValue(){
this.roleId = null;
this.menuId = null;
this.resourceId = null;
this.createUserName = "";
this.updateUserName = "";
}
}
\ No newline at end of file
/**
* 文件:RoleEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.role.model;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.base.system.role.model.vo.RoleVo;
import lombok.Data;
/**
* <p>Title: 角色信息</p>
* <p>Description: RoleEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class RoleEntity extends BaseEntityLong{
private static final long serialVersionUID = 1547777703344L;
/** 用户ID */
private Long userId;
/** 角色名称 */
private String name;
/** 备注 */
private String remark;
/** 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2 */
private Integer roleType;
/** 归属客户ID */
private Long customerId;
/** 创建时间 */
private Date createTime;
/** 创建用户 */
private Long createUserId;
/** 创建用户名称 */
private String createUserName;
/** 用户类型,0:系统用户 1:代理商用户 2:品牌商用户 */
private Integer userType;
public RoleEntity(){
}
/**
* 获取 角色名称
* @return name
*/
public String getName(){
return this.name;
}
/**
* 设置 角色名称
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 备注
* @return remark
*/
public String getRemark(){
return this.remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
/**
* 获取 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @return roleType
*/
public Integer getRoleType(){
return this.roleType;
}
/**
* 设置 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleType
*/
public void setRoleType(Integer roleType){
this.roleType = roleType;
}
/**
* 获取 归属客户ID
* @return customerId
*/
public Long getCustomerId(){
return this.customerId;
}
/**
* 设置 归属客户ID
* @param customerId
*/
public void setCustomerId(Long customerId){
this.customerId = customerId;
}
/**
* 获取 创建时间
* @return createTime
*/
public Date getCreateTime(){
return this.createTime;
}
/**
* 设置 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime){
this.createTime = createTime;
}
/**
* 获取 创建用户
* @return createUserId
*/
public Long getCreateUserId(){
return this.createUserId;
}
/**
* 设置 创建用户
* @param createUserId
*/
public void setCreateUserId(Long createUserId){
this.createUserId = createUserId;
}
/**
* 获取 创建用户名称
* @return createUserName
*/
public String getCreateUserName(){
return this.createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @return userType
*/
public Integer getUserType(){
return this.userType;
}
/**
* 设置 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @param userType
*/
public void setUserType(Integer userType){
this.userType = userType;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof RoleEntity) {
RoleEntity tmp = (RoleEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",name:").append(getName())
.append(",remark:").append(getRemark())
.append(",roleType:").append(getRoleType())
.append(",customerId:").append(getCustomerId())
.append(",createTime:").append(getCreateTime())
.append(",createUserId:").append(getCreateUserId())
.append(",createUserName:").append(getCreateUserName())
.append(",userType:").append(getUserType());
return sb.toString();
}
public void initAttrValue(){
this.name = null;
this.remark = null;
this.roleType = 2;
this.customerId = null;
this.createTime = null;
this.createUserId = null;
this.createUserName = null;
this.userType = null;
}
* 角色信息业务实体对象
*
* @author zxfei
* @date 2024-09-06
*/
@Data
public class RoleEntity extends RoleVo {
private static final long serialVersionUID = 1L;
/**
* 角色名称
*/
private String name;
/**
* 备注
*/
private String remark;
/**
* 角色类型 (0.系统内置角色,1.默认系统角色.2.普通角色)
*/
private Integer roleType;
/**
* 归属客户ID
*/
private Long customerId;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 创建用户名称
*/
private String updateUserName;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoleEntity) {
RoleEntity tmp = (RoleEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.name = "";
this.remark = "";
this.roleType = 2;
this.customerId = null;
this.createUserName = "";
this.updateUserName = "";
}
}
\ No newline at end of file
/**
* 文件:RoleUserEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.role.model;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.base.system.role.model.vo.RoleUserVo;
import lombok.Data;
/**
* <p>Title: 角色用户</p>
* <p>Description: RoleUserEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class RoleUserEntity extends BaseEntityLong{
private static final long serialVersionUID = 1547777703351L;
/** 角色ID */
private Long roleId;
/** 用户ID */
private Long userId;
public RoleUserEntity(){
}
/**
* 获取 角色ID
* @return roleId
*/
public Long getRoleId(){
return this.roleId;
}
/**
* 设置 角色ID
* @param roleId
*/
public void setRoleId(Long roleId){
this.roleId = roleId;
}
/**
* 获取 用户ID
* @return userId
*/
public Long getUserId(){
return this.userId;
}
/**
* 设置 用户ID
* @param userId
*/
public void setUserId(Long userId){
this.userId = userId;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof RoleUserEntity) {
RoleUserEntity tmp = (RoleUserEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",roleId:").append(getRoleId())
.append(",userId:").append(getUserId());
return sb.toString();
}
public void initAttrValue(){
this.roleId = null;
this.userId = null;
}
* 角色用户业务实体对象
*
* @author zxfei
* @date 2024-09-06
*/
@Data
public class RoleUserEntity extends RoleUserVo {
private static final long serialVersionUID = 1L;
/**
* 角色ID
*/
private Long roleId;
/**
* 用户ID
*/
private Long userId;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 创建用户名称
*/
private String updateUserName;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoleUserEntity) {
RoleUserEntity tmp = (RoleUserEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.roleId = null;
this.userId = null;
this.createUserName = "";
this.updateUserName = "";
}
}
\ No newline at end of file
......@@ -9,10 +9,12 @@
package com.mortals.xhx.base.system.role.service;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.base.system.role.model.RoleAuthEntity;
import com.mortals.xhx.base.system.role.model.RoleAuthQuery;
/**
* <p>Title: 角色资源权限</p>
* <p>Description: RoleAuthService service接口 </p>
......@@ -24,5 +26,9 @@ import com.mortals.xhx.base.system.role.model.RoleAuthQuery;
public interface RoleAuthService extends ICRUDService<RoleAuthEntity,Long> {
/** 角色分配资源 */
void doDistributionSource(RoleAuthQuery query);
void doDistributionSource(RoleAuthQuery query, Context context);
/** 角色分配菜单 */
void doDistributionMenu(RoleAuthQuery query, Context context);
}
\ No newline at end of file
......@@ -8,6 +8,7 @@
package com.mortals.xhx.base.system.role.service.impl;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.DataUtil;
......@@ -20,6 +21,7 @@ import com.mortals.xhx.common.key.RedisKey;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.*;
......@@ -43,12 +45,21 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro
private ResourceService resourceService;
@Override
public void doDistributionSource(RoleAuthQuery query) {
public void doDistributionSource(RoleAuthQuery query, Context context) {
// 删除角色资源老数据
Long roleId = query.getRoleId();
Map<String, Object> condition = new HashMap<>();
/* Map<String, Object> condition = new HashMap<>();
condition.put("roleId", roleId);
this.dao.delete(condition);
this.dao.delete(condition);*/
//todo
RoleAuthQuery roleAuthQuery = new RoleAuthQuery();
roleAuthQuery.setRoleId(roleId);
Long[] delIds = this.find(roleAuthQuery).stream()
.filter(f -> f.getMenuId() == null)
.map(f -> f.getId()).toArray(Long[]::new);
if(!ObjectUtils.isEmpty(delIds)){
this.remove(delIds,context);
}
List<RoleAuthEntity> list = new ArrayList<>();
for (Long sourceId : query.getResourceIdList()) {
......@@ -62,6 +73,35 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro
this.updateUserMenuUrlCache();
}
@Override
public void doDistributionMenu(RoleAuthQuery query, Context context) {
// 删除角色资源老数据
Long roleId = query.getRoleId();
/* Map<String, Object> condition = new HashMap<>();
condition.put("roleId", roleId);
this.dao.delete(condition);*/
//todo
RoleAuthQuery roleAuthQuery = new RoleAuthQuery();
roleAuthQuery.setRoleId(roleId);
Long[] delIds = this.find(roleAuthQuery).stream()
.filter(f -> f.getMenuId() != null)
.map(f -> f.getId()).toArray(Long[]::new);
if(!ObjectUtils.isEmpty(delIds)){
this.remove(delIds,context);
}
List<RoleAuthEntity> list = new ArrayList<>();
for (Long menuId : query.getMenuIdList()) {
RoleAuthEntity entity = new RoleAuthEntity();
entity.setRoleId(roleId);
entity.setMenuId(menuId);
list.add(entity);
}
this.dao.insertBatch(list);
this.updateUserMenuUrlCache();
}
private void updateUserMenuUrlCache() {
//更新用户菜单
Set<String> hkeys = cacheService.hkeys(RedisKey.KEY_USER_MENU_CACHE);
......
......@@ -33,7 +33,7 @@ public class RoleAuthController extends BaseCRUDJsonBodyMappingController<RoleAu
@PostMapping(value = "distributionSource")
public String distributionUser(@RequestBody RoleAuthQuery query) {
try {
service.doDistributionSource(query);
service.doDistributionSource(query,this.getContext());
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
return ret.toJSONString();
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.base.system.menu.dao.ibatis.MenuDaoImpl">
<!-- 获取列表 -->
<select id="getListByUserId" parameterType="paramDto" resultMap="MenuEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_resource as a
where a.authType in(0,1,2) or a.id IN
(select menuId
from mortals_xhx_role_auth as b
left join mortals_xhx_role_user as c
on b.roleId=c.roleId
where c.userId=#{condition.userId})
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment