From 25df5530b89fc57a3f32a0e4c706bb40d3e4b415 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 15 Nov 2023 17:27:58 +0800
Subject: [PATCH] 标签控制+通知详情优化

---
 src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml                   |   53 +++++-
 src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.xml          |   36 ++++-
 src/main/java/org/springblade/modules/system/entity/Menu.java                        |  104 +++++++-------
 src/main/java/org/springblade/modules/house/service/IUserHouseLabelService.java      |    5 
 src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml               |   74 ++++++++++
 src/main/java/org/springblade/modules/system/controller/MenuController.java          |    6 
 src/main/java/org/springblade/modules/article/controller/ArticleController.java      |    2 
 src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java  |   12 +
 src/main/java/org/springblade/modules/article/mapper/ArticleMapper.java              |    2 
 src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java   |    8 +
 src/main/java/org/springblade/modules/house/controller/UserHouseLabelController.java |   16 ++
 src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.java         |    2 
 src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java       |   46 ++++++
 src/main/java/org/springblade/modules/system/service/IMenuService.java               |    2 
 src/main/java/org/springblade/modules/system/controller/UserController.java          |    8 
 src/main/java/org/springblade/modules/article/service/ArticleService.java            |    2 
 16 files changed, 295 insertions(+), 83 deletions(-)

diff --git a/src/main/java/org/springblade/modules/article/controller/ArticleController.java b/src/main/java/org/springblade/modules/article/controller/ArticleController.java
index 117fa69..3fe350a 100644
--- a/src/main/java/org/springblade/modules/article/controller/ArticleController.java
+++ b/src/main/java/org/springblade/modules/article/controller/ArticleController.java
@@ -109,7 +109,7 @@
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入articleoy")
 	public R<Article> detail(Article article) {
-		Article detail = articleService.getOne(Condition.getQueryWrapper(article));
+		Article detail = articleService.getArticleOne(article);
 		UpdateWrapper<Article> objectUpdateWrapper = new UpdateWrapper<>();
 		objectUpdateWrapper.setSql("view_number = view_number + 1");
 		objectUpdateWrapper.eq("id", article.getId());
diff --git a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.java b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.java
index 3c59d53..903c1cf 100644
--- a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.java
+++ b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.java
@@ -53,4 +53,6 @@
 	List<Article> pageCollect(IPage<Article> page, @Param("article") ArticleVO article);
 
 	Boolean upcomment(String ids, String type);
+
+	ArticleVO getArticleOne(Article article);
 }
diff --git a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
index b1ac77a..b423492 100644
--- a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
+++ b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
@@ -51,6 +51,32 @@
           and jn.id = #{id}
     </select>
 
+
+    <sql id="selectArticle">
+        select
+            id,
+            title,
+            type,
+            content,
+            url,
+            video_url,
+            source_id,
+            source_name,
+            article_type,
+            recommend,
+            publish,
+            iscomment,
+            view_number,
+            create_time,
+            update_time,
+            update_user,
+            create_user,
+            is_deleted
+        from
+            jczz_article
+    </sql>
+
+
     <select id="selectArticlePageByApp" resultMap="noticeResultMap">
         select ja.id,
         ja.title,
@@ -340,4 +366,52 @@
         and iswords = "0" and type!=1
         order by id desc
     </select>
+
+
+    <select id="getArticleOne" parameterType="org.springblade.modules.article.vo.ArticleVO" resultMap="noticeResultMap">
+        select ja.id,
+        ja.title,
+        ja.type,
+        ja.url,
+        ja.video_url,
+        ja.source_id,
+        ja.content,
+        ja.source_name,
+        ja.article_type,
+        ja.recommend,
+        ja.publish,
+        ja.iscomment,
+        ja.view_number,
+        ja.create_time,
+        ja.update_time,
+        ja.update_user,
+        ja.create_user,
+        ja.is_deleted,
+        bdb.dict_value dictValue
+        from jczz_article ja LEFT JOIN blade_dict_biz bdb on ja.article_type = bdb.dict_key
+        <where>
+            <if test="id != null "> and ja.id = #{id}</if>
+            <if test="title != null  and title != ''"> and ja.title = #{title}</if>
+            <if test="type != null "> and ja.type = #{type}</if>
+            <if test="content != null  and content != ''"> and ja.content = #{content}</if>
+            <if test="url != null  and url != ''"> and ja.url = #{url}</if>
+            <if test="videoUrl != null  and videoUrl != ''"> and ja.video_url = #{videoUrl}</if>
+            <if test="sourceId != null  and sourceId != ''"> and ja.source_id = #{sourceId}</if>
+            <if test="sourceName != null  and sourceName != ''"> and ja.source_name = #{sourceName}</if>
+            <if test="articleType != null  and articleType != ''"> and ja.article_type = #{articleType}</if>
+            <if test="recommend != null "> and ja.recommend = #{recommend}</if>
+            <if test="publish != null  and publish != ''"> and ja.publish = #{publish}</if>
+            <if test="iscomment != null  and iscomment != ''"> and ja.iscomment = #{iscomment}</if>
+            <if test="viewNumber != null "> and ja.view_number = #{viewNumber}</if>
+            <if test="createTime != null "> and ja.create_time = #{createTime}</if>
+            <if test="updateTime != null "> and ja.update_time = #{updateTime}</if>
+            <if test="updateUser != null "> and ja.update_user = #{updateUser}</if>
+            <if test="createUser != null "> and ja.create_user = #{createUser}</if>
+            <if test="isDeleted != null "> and ja.is_deleted = #{isDeleted}</if>
+        </where>
+        and  ja.is_deleted = 0
+        and ja.publish = 1
+        and bdb.parent_id = '1722966265111248897'
+        order by ja.create_time desc
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/article/service/ArticleService.java b/src/main/java/org/springblade/modules/article/service/ArticleService.java
index 5fde7f0..e4ad61d 100644
--- a/src/main/java/org/springblade/modules/article/service/ArticleService.java
+++ b/src/main/java/org/springblade/modules/article/service/ArticleService.java
@@ -59,4 +59,6 @@
 	IPage<Article> pageCollect(IPage<Article> page, ArticleVO article);
 
 	Boolean upcomment(String ids, String type);
+
+	ArticleVO getArticleOne(Article article);
 }
diff --git a/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java b/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
index 053d5bc..7bf6e0a 100644
--- a/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
+++ b/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
@@ -88,11 +88,17 @@
 
 	/**
 	 * 批量更新
+	 *
 	 * @return
 	 */
 	@Override
 	public Boolean upcomment(String ids, String type) {
-		return baseMapper.upcomment(ids,type);
+		return baseMapper.upcomment(ids, type);
 	}
 
+	@Override
+	public ArticleVO getArticleOne(Article article) {
+		ArticleVO articleVO = baseMapper.getArticleOne(article);
+		return articleVO;
+	}
 }
diff --git a/src/main/java/org/springblade/modules/house/controller/UserHouseLabelController.java b/src/main/java/org/springblade/modules/house/controller/UserHouseLabelController.java
index 3b4700f..d122a9b 100644
--- a/src/main/java/org/springblade/modules/house/controller/UserHouseLabelController.java
+++ b/src/main/java/org/springblade/modules/house/controller/UserHouseLabelController.java
@@ -26,8 +26,11 @@
 
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.AesUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.house.dto.UserHouseLabelDTO;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
@@ -35,6 +38,8 @@
 import org.springblade.modules.house.wrapper.HouseLabelWrapper;
 import org.springblade.modules.house.service.IUserHouseLabelService;
 import org.springblade.core.boot.ctrl.BladeController;
+
+import java.util.List;
 
 /**
  * 房屋-标签 控制器
@@ -83,6 +88,17 @@
 	}
 
 	/**
+	 * 房屋-标签 自定义分页
+	 */
+	@GetMapping("/userLabelList")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "查询用户的标签", notes = "传入houseLabel")
+	public R<List<Integer>> userLabelList() {
+		List<Integer> pages = userHouseLabelService.selectUserLabelList(new UserHouseLabelDTO());
+		return R.data(pages);
+	}
+
+	/**
 	 * 房屋-标签 新增
 	 */
 	@PostMapping("/save")
diff --git a/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.java b/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.java
index a822c9c..577b85d 100644
--- a/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.java
+++ b/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.house.mapper;
 
+import org.springblade.modules.house.dto.UserHouseLabelDTO;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
 import org.springblade.modules.house.vo.HouseLabelVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -40,4 +41,5 @@
 	List<HouseLabelVO> selectHouseLabelPage(IPage page, HouseLabelVO houseLabel);
 
 
+    List<Integer> getUserLabelList(UserHouseLabelDTO userHouseLabelDTO);
 }
diff --git a/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.xml b/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.xml
index 63de322..aae1343 100644
--- a/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/UserHouseLabelMapper.xml
@@ -47,14 +47,34 @@
     <select id="selectHouseLabelPage" resultMap="UserHouseLabelDTOResult">
         <include refid="selectUserHouseLabel"/>
         <where>
-            <if test="houseLabel.id != null "> and id = #{houseLabel.id}</if>
-            <if test="houseLabel.houseCode != null  and houseLabel.houseCode != ''"> and house_code = #{houseLabel.houseCode}</if>
-            <if test="houseLabel.labelId != null "> and label_id = #{houseLabel.labelId}</if>
-            <if test="houseLabel.labelName != null  and houseLabel.labelName != ''"> and label_name = #{houseLabel.labelName}</if>
-            <if test="houseLabel.color != null  and houseLabel.color != ''"> and color = #{houseLabel.color}</if>
-            <if test="houseLabel.remark != null  and remark != ''"> and remark = #{houseLabel.remark}</if>
-            <if test="houseLabel.userId != null "> and user_id = #{houseLabel.userId}</if>
-            <if test="houseLabel.lableType != null "> and lable_type = #{houseLabel.lableType}</if>
+            <if test="houseLabel.id != null ">and id = #{houseLabel.id}</if>
+            <if test="houseLabel.houseCode != null  and houseLabel.houseCode != ''">and house_code =
+                #{houseLabel.houseCode}
+            </if>
+            <if test="houseLabel.labelId != null ">and label_id = #{houseLabel.labelId}</if>
+            <if test="houseLabel.labelName != null  and houseLabel.labelName != ''">and label_name =
+                #{houseLabel.labelName}
+            </if>
+            <if test="houseLabel.color != null  and houseLabel.color != ''">and color = #{houseLabel.color}</if>
+            <if test="houseLabel.remark != null  and remark != ''">and remark = #{houseLabel.remark}</if>
+            <if test="houseLabel.userId != null ">and user_id = #{houseLabel.userId}</if>
+            <if test="houseLabel.lableType != null ">and lable_type = #{houseLabel.lableType}</if>
+        </where>
+    </select>
+
+
+    <select id="getUserLabelList" resultType="java.lang.Integer"  parameterType="org.springblade.modules.house.dto.UserHouseLabelDTO">
+        select label_id
+        from jczz_user_house_label
+        <where>
+            <if test="id != null "> and id = #{id}</if>
+            <if test="houseCode != null  and houseCode != ''"> and house_code = #{houseCode}</if>
+            <if test="labelId != null "> and label_id = #{labelId}</if>
+            <if test="labelName != null  and labelName != ''"> and label_name = #{labelName}</if>
+            <if test="color != null  and color != ''"> and color = #{color}</if>
+            <if test="remark != null  and remark != ''"> and remark = #{remark}</if>
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="lableType != null "> and lable_type = #{lableType}</if>
         </where>
     </select>
 
diff --git a/src/main/java/org/springblade/modules/house/service/IUserHouseLabelService.java b/src/main/java/org/springblade/modules/house/service/IUserHouseLabelService.java
index 016c34c..c665b39 100644
--- a/src/main/java/org/springblade/modules/house/service/IUserHouseLabelService.java
+++ b/src/main/java/org/springblade/modules/house/service/IUserHouseLabelService.java
@@ -17,9 +17,12 @@
 package org.springblade.modules.house.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.modules.house.dto.UserHouseLabelDTO;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
 import org.springblade.modules.house.vo.HouseLabelVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
 
 /**
  * 房屋-标签 服务类
@@ -45,4 +48,6 @@
 	 * @return
 	 */
     boolean saveOrUpdateHouseLabel(UserHouseLabelEntity houseLabel);
+
+	List<Integer> selectUserLabelList(UserHouseLabelDTO userHouseLabelDTO);
 }
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java
index 82a76e3..bb01472 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java
@@ -17,7 +17,10 @@
 package org.springblade.modules.house.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.modules.house.dto.UserHouseLabelDTO;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
 import org.springblade.modules.house.vo.HouseLabelVO;
 import org.springblade.modules.house.mapper.UserHouseLabelMapper;
@@ -27,6 +30,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
 
 /**
  * 房屋-标签 服务实现类
@@ -68,4 +73,11 @@
 		// 插入
 		return save(houseLabel);
 	}
+
+	@Override
+	public List<Integer> selectUserLabelList(UserHouseLabelDTO userHouseLabelDTO) {
+		userHouseLabelDTO.setUserId(AuthUtil.getUserId());
+		List<Integer> list = baseMapper.getUserLabelList(userHouseLabelDTO);
+		return list;
+	}
 }
diff --git a/src/main/java/org/springblade/modules/system/controller/MenuController.java b/src/main/java/org/springblade/modules/system/controller/MenuController.java
index 5f08e22..578148d 100644
--- a/src/main/java/org/springblade/modules/system/controller/MenuController.java
+++ b/src/main/java/org/springblade/modules/system/controller/MenuController.java
@@ -129,8 +129,8 @@
 	 */
 	@GetMapping("/dynamicMenu")
 	@ApiOperation(value = "菜单列表", notes = "传入menu")
-	public R<List<MenuVO>> dynamicMenu(String roleId,Long topMenuId) {
-		List<MenuVO> list = menuService.routes(roleId,topMenuId);
+	public R<List<MenuVO>> dynamicMenu(String roleId, Long topMenuId, @RequestParam(value = "labelType", required = false) Integer labelType) {
+		List<MenuVO> list = menuService.routes(roleId, topMenuId,labelType);
 		return R.data(list);
 	}
 
@@ -191,7 +191,7 @@
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "前端菜单数据", notes = "前端菜单数据")
 	public R<List<MenuVO>> routes(BladeUser user, Long topMenuId) {
-		List<MenuVO> list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId);
+		List<MenuVO> list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId,null);
 		return R.data(list);
 	}
 
diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index 8442fe6..15b1796 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -21,10 +21,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.springblade.common.cache.CacheNames;
 import org.springblade.core.cache.utils.CacheUtil;
@@ -68,10 +65,11 @@
  * @author Chill
  */
 @NonDS
-@ApiIgnore
+//@ApiIgnore
 @RestController
 @RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME+"/user")
 @AllArgsConstructor
+@Api(value = "用户管理", tags = "用户管理")
 public class UserController {
 
 	private final IUserService userService;
diff --git a/src/main/java/org/springblade/modules/system/entity/Menu.java b/src/main/java/org/springblade/modules/system/entity/Menu.java
index 549c7df..3b5259d 100644
--- a/src/main/java/org/springblade/modules/system/entity/Menu.java
+++ b/src/main/java/org/springblade/modules/system/entity/Menu.java
@@ -16,10 +16,7 @@
  */
 package org.springblade.modules.system.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
@@ -57,73 +54,82 @@
 	@ApiModelProperty(value = "菜单父主键")
 	private Long parentId;
 
-	/**
-	 * 菜单编号
-	 */
-	@ApiModelProperty(value = "菜单编号")
+
+	/** 菜单编号 */
+	@ApiModelProperty(value = "菜单编号", example = "")
+	@TableField("code")
 	private String code;
 
-	/**
-	 * 菜单名称
-	 */
-	@ApiModelProperty(value = "菜单名称")
+	/** 菜单名称 */
+	@ApiModelProperty(value = "菜单名称", example = "")
+	@TableField("name")
 	private String name;
 
-	/**
-	 * 菜单别名
-	 */
-	@ApiModelProperty(value = "菜单别名")
+	/** 菜单别名 */
+	@ApiModelProperty(value = "菜单别名", example = "")
+	@TableField("alias")
 	private String alias;
 
-	/**
-	 * 请求地址
-	 */
-	@ApiModelProperty(value = "请求地址")
+	/** 请求地址 */
+	@ApiModelProperty(value = "请求地址", example = "")
+	@TableField("path")
 	private String path;
 
-	/**
-	 * 菜单资源
-	 */
-	@ApiModelProperty(value = "菜单资源")
+	/** 菜单资源 */
+	@ApiModelProperty(value = "菜单资源", example = "")
+	@TableField("source")
 	private String source;
 
-	/**
-	 * 排序
-	 */
-	@ApiModelProperty(value = "排序")
+	/** 排序 */
+	@ApiModelProperty(value = "排序", example = "")
+	@TableField("sort")
 	private Integer sort;
 
-	/**
-	 * 菜单类型
-	 */
-	@ApiModelProperty(value = "菜单类型")
+	/** 菜单类型:菜单,按钮 */
+	@ApiModelProperty(value = "菜单类型:菜单,按钮", example = "")
+	@TableField("category")
 	private Integer category;
 
-	/**
-	 * 操作按钮类型
-	 */
-	@ApiModelProperty(value = "操作按钮类型")
+	/** 操作按钮类型 */
+	@ApiModelProperty(value = "操作按钮类型", example = "")
+	@TableField("action")
 	private Integer action;
 
-	/**
-	 * 是否打开新页面
-	 */
-	@ApiModelProperty(value = "是否打开新页面")
+	/** 是否打开新页面 */
+	@ApiModelProperty(value = "是否打开新页面", example = "")
+	@TableField("is_open")
 	private Integer isOpen;
 
-	/**
-	 * 备注
-	 */
-	@ApiModelProperty(value = "备注")
+	/** 组件地址 */
+	@ApiModelProperty(value = "组件地址", example = "")
+	@TableField("component")
+	private String component;
+
+	/** 备注 */
+	@ApiModelProperty(value = "备注", example = "")
+	@TableField("remark")
 	private String remark;
 
-	/**
-	 * 是否已删除
-	 */
-	@TableLogic
-	@ApiModelProperty(value = "是否已删除")
+	/** 是否已删除 */
+	@ApiModelProperty(value = "是否已删除", example = "")
+	@TableField("is_deleted")
 	private Integer isDeleted;
 
+	/** 图片地址 */
+	@ApiModelProperty(value = "图片地址", example = "")
+	@TableField("picture_img")
+	private String pictureImg;
+
+	/** 标签 */
+	@ApiModelProperty(value = "标签", example = "")
+	@TableField("label_id")
+	private String labelId;
+
+	/** 颜色 */
+	@ApiModelProperty(value = "颜色", example = "")
+	@TableField("background")
+	private String background;
+
 
 	@Override
 	public boolean equals(Object obj) {
diff --git a/src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml b/src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml
index decb219..2bc6a0f 100644
--- a/src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml
@@ -4,19 +4,23 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="menuResultMap" type="org.springblade.modules.system.entity.Menu">
-        <id column="id" property="id"/>
-        <result column="code" property="code"/>
-        <result column="parent_id" property="parentId"/>
-        <result column="name" property="name"/>
-        <result column="alias" property="alias"/>
-        <result column="path" property="path"/>
-        <result column="source" property="source"/>
-        <result column="sort" property="sort"/>
-        <result column="category" property="category"/>
-        <result column="action" property="action"/>
-        <result column="is_open" property="isOpen"/>
-        <result column="remark" property="remark"/>
-        <result column="is_deleted" property="isDeleted"/>
+        <result property="id"    column="id"    />
+        <result property="parentId"    column="parent_id"    />
+        <result property="code"    column="code"    />
+        <result property="name"    column="name"    />
+        <result property="alias"    column="alias"    />
+        <result property="path"    column="path"    />
+        <result property="source"    column="source"    />
+        <result property="sort"    column="sort"    />
+        <result property="category"    column="category"    />
+        <result property="action"    column="action"    />
+        <result property="isOpen"    column="is_open"    />
+        <result property="component"    column="component"    />
+        <result property="remark"    column="remark"    />
+        <result property="isDeleted"    column="is_deleted"    />
+        <result property="pictureImg"    column="picture_img"    />
+        <result property="labelId"    column="label_id"    />
+        <result property="background"    column="background"    />
     </resultMap>
 
     <resultMap id="menuVOResultMap" type="org.springblade.modules.system.vo.MenuVO">
@@ -44,6 +48,29 @@
         <result column="key" property="key"/>
     </resultMap>
 
+    <sql id="selectBladeMenu">
+        select
+            id,
+            parent_id,
+            code,
+            name,
+            alias,
+            path,
+            source,
+            sort,
+            category,
+            action,
+            is_open,
+            component,
+            remark,
+            is_deleted,
+            picture_img,
+            label_id,
+            background
+        from
+            blade_menu
+    </sql>
+
 
     <select id="lazyList" resultMap="menuVOResultMap">
         SELECT
diff --git a/src/main/java/org/springblade/modules/system/service/IMenuService.java b/src/main/java/org/springblade/modules/system/service/IMenuService.java
index 0e819a5..61b3b58 100644
--- a/src/main/java/org/springblade/modules/system/service/IMenuService.java
+++ b/src/main/java/org/springblade/modules/system/service/IMenuService.java
@@ -58,7 +58,7 @@
 	 * @param topMenuId
 	 * @return
 	 */
-	List<MenuVO> routes(String roleId, Long topMenuId);
+	List<MenuVO> routes(String roleId, Long topMenuId,Integer labelType);
 
 	/**
 	 * 菜单树形结构
diff --git a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
index d1f91f6..12c97b4 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
@@ -20,6 +20,8 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.cache.SysCache;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.BladeUser;
@@ -31,6 +33,8 @@
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.modules.house.dto.UserHouseLabelDTO;
+import org.springblade.modules.house.service.IUserHouseLabelService;
 import org.springblade.modules.system.dto.MenuDTO;
 import org.springblade.modules.system.entity.*;
 import org.springblade.modules.system.mapper.MenuMapper;
@@ -43,6 +47,8 @@
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.io.Serializable;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -65,6 +71,9 @@
 	private final static String PARENT_ID = "parentId";
 	private final static Integer MENU_CATEGORY = 1;
 
+	@Resource
+	private IUserHouseLabelService iUserHouseLabelService;
+
 	@Override
 	public List<MenuVO> lazyList(Long parentId, Map<String, Object> param) {
 		if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
@@ -81,8 +90,22 @@
 		return baseMapper.lazyMenuList(parentId, param);
 	}
 
+	public static final List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5, 6, 11, null);
+	public static final List<Integer> list2 = Arrays.asList(1, 11, null);
+
+	/**
+	 * apache测试方法
+	 */
+	public static void main(String[] args) {
+		System.out.println("交集:" + CollectionUtils.intersection(list1, list2)); // 交集
+		System.out.println("补集:" + CollectionUtils.disjunction(list1, list2)); // 补集
+		System.out.println("并集:" + CollectionUtils.union(list1, list2)); // 并集
+		System.out.println("list1的差集:" + CollectionUtils.subtract(list1, list2)); // list1的差集
+		System.out.println("list2的差集:" + CollectionUtils.subtract(list2, list1)); // list2的差集
+	}
+
 	@Override
-	public List<MenuVO> routes(String roleId, Long topMenuId) {
+	public List<MenuVO> routes(String roleId, Long topMenuId, Integer labelType) {
 		if (StringUtil.isBlank(roleId)) {
 			return null;
 		}
@@ -95,6 +118,24 @@
 		// 非超级管理员并且不是顶部菜单请求则返回对应角色权限菜单
 		else if (!AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) {
 			roleMenus = tenantPackageMenu(baseMapper.roleMenuByRoleId(Func.toLongList(roleId)));
+			UserHouseLabelDTO userHouseLabelDTO = new UserHouseLabelDTO();
+			userHouseLabelDTO.setUserId(AuthUtil.getUserId());
+			userHouseLabelDTO.setLableType(labelType);
+			List<Integer> integers = iUserHouseLabelService.selectUserLabelList(userHouseLabelDTO);
+			Iterator<Menu> iterator = roleMenus.iterator();
+			while (iterator.hasNext()) {
+				Menu next = iterator.next();
+				if (!next.getParentId().equals(0)) {
+					if (StringUtils.isNotBlank(next.getLabelId())) {
+						String[] split = next.getLabelId().split(",");
+						List<Integer> integerList = Arrays.stream(split).map(Integer::valueOf).collect(Collectors.toList());
+						Collection<? extends Serializable> union = CollectionUtils.intersection(integerList, integers);
+						if (union.size() == 0) {
+							iterator.remove();
+						}
+					}
+				}
+			}
 		}
 		// 顶部菜单请求返回对应角色权限菜单
 		else {
@@ -110,6 +151,7 @@
 				routes.stream().anyMatch(route -> route.getId().longValue() == x.getId().longValue())
 			).collect(Collectors.toList());
 		}
+
 		return buildRoutes(allMenus, roleMenus);
 	}
 
@@ -280,7 +322,7 @@
 				wrapper -> wrapper.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
 			);
 		} else {
-			menuQueryWrapper.ne(Menu::getId, menu.getId()).and(
+			menuQueryWrapper.ne(Menu::getId, menu.getId()).eq(Menu::getIsDeleted,0).and(
 				wrapper -> wrapper.eq(Menu::getCode, menu.getCode()).or(
 					o -> o.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
 				)

--
Gitblit v1.9.3