Explorar o código

Merge remote-tracking branch 'origin/master'

hym %!s(int64=4) %!d(string=hai) anos
pai
achega
cec8792c4c

+ 1 - 1
common/src/main/java/com/huaxu/model/LoginUser.java

@@ -28,7 +28,7 @@ public class LoginUser implements UserDetails {
     @ApiModelProperty(value="手机号码")
     private String phoneNumber;
 
-    @ApiModelProperty(value="类型,1超级管理,2站点管理员,3普通用户")
+    @ApiModelProperty(value="类型,1超级管理员,-999站点管理员,2普通用户")
     private String type;
     @ApiModelProperty(value="公司id")
     private Integer companyId;

+ 1 - 1
user_center/src/main/java/com/huaxu/config/ResourceServerConfig.java

@@ -17,7 +17,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .and()
                 .authorizeRequests()
                 .antMatchers("/swagger-ui.html","/webjars/**", "/webjars/**", "/swagger-resources/**",
-                       "/v2/**")
+                       "/v2/**","/menu/**","/user/**")
                 .permitAll() //配置不需要身份认证的请求路径
                 .anyRequest().authenticated() //其他所有访问路径都需要身份认证
                 .and()

+ 10 - 5
user_center/src/main/java/com/huaxu/controller/MenuController.java

@@ -109,7 +109,7 @@ public class MenuController {
      */
     @ApiOperation(value = "按ID查询菜单")
     @GetMapping(value = "/findMenuById")
-    public AjaxMessage<MenuEntity> edit(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) {
+    public AjaxMessage<MenuEntity> findMenuById(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) {
         MenuEntity menu = menuService.findMenuById(id);
         return new AjaxMessage<>(ResultStatus.OK, menu);
     }
@@ -138,7 +138,11 @@ public class MenuController {
         if (ids == null || ids.length == 0) {
             return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
         }
-        List<MenuEntity> menuEntityList = menuService.findMenuByParentIds(ids);
+        List<Long> longIds = new ArrayList<>();
+        for (Long item : ids) {
+            longIds.add(item);
+        }
+        List<MenuEntity> menuEntityList = menuService.findMenuByParentIds(longIds);
         if (menuEntityList.size() > 0) {
             return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0);
         }
@@ -156,9 +160,10 @@ public class MenuController {
         if (id == null) {
             return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
         }
-        MenuEntity menuEntity = new MenuEntity();
-        menuEntity.setParentMenuId(id);
-        List<MenuEntity> menuEntityList = menuService.findList(menuEntity);
+
+        List<Long> longIds = new ArrayList<>();
+        longIds.add(id);
+        List<MenuEntity> menuEntityList = menuService.findMenuByParentIds(longIds);
         if (menuEntityList.size() > 0) {
             return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0);
         } else {

+ 10 - 0
user_center/src/main/java/com/huaxu/controller/UserController.java

@@ -72,6 +72,16 @@ public class UserController {
         Pagination<UserEntity> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
+    /**
+     * 查询
+     */
+    @ApiOperation(value = "获取当前登录用户信息")
+    @RequestMapping(value = "/findLoginUserById", method = RequestMethod.POST)
+    public  AjaxMessage<UserEntity>  findLoginUserById() {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        UserEntity userEntity = userService.findUserById(Long.valueOf(currentUser.getId()));
+        return new AjaxMessage<>(ResultStatus.OK, userEntity);
+    }
     /**
      * 查询
      */

+ 21 - 3
user_center/src/main/java/com/huaxu/dao/MenuMapper.java

@@ -29,12 +29,30 @@ public interface MenuMapper extends BaseMapper<MenuEntity> {
 
     List<MenuEntity> findList(MenuEntity menuEntity);
 
-    List<MenuEntity> findMenuByParentIds(@Param("Ids") Long[] Ids);
+    List<MenuEntity> findTenantList(MenuEntity menuEntity);
 
-    List<MenuEntity> findUserFirstMenu(@Param("userId") Integer userId);
+    List<MenuEntity> findUserList(MenuEntity menuEntity);
 
-    List<MenuEntity> findUserMenu(@Param("userId") Integer userId, @Param("appId") String appId);
+    List<MenuEntity> findMenuByParentIds(@Param("Ids") List<Long> Ids);
 
+    List<MenuEntity> findTenantMenuByParentIds(@Param("tenantId") String tenantId,@Param("Ids") List<Long> Ids);
 
+    List<MenuEntity> findUserFirstMenu(@Param("tenantId") String tenantId,@Param("userId") Integer userId);
+
+    List<MenuEntity> findAllFirstMenu();
+
+    MenuEntity findTenantByMenuId(@Param("tenantId") String tenantId,@Param("id") Long Id);
+
+    Boolean  updateState(@Param("Id") Long Id);
+
+    List<MenuEntity> findTenantFirstMenu(@Param("tenantId") String tenantId);
+
+    List<MenuEntity> findUserMenu(@Param("tenantId") String tenantId,@Param("userId") Integer userId, @Param("appId") String appId);
+
+    List<MenuEntity> findSystemUserMenu(@Param("appId") String appId);
+
+    List<MenuEntity> findTenantUserMenu(@Param("tenantId") String tenantId, @Param("appId") String appId);
+
+    MenuEntity findUserMenuById(@Param("tenantId") String tenantId,@Param("id")  Long id);
     /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 24 - 0
user_center/src/main/java/com/huaxu/dao/TenantMenuMapper.java

@@ -0,0 +1,24 @@
+package com.huaxu.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.entity.MenuEntity;
+import com.huaxu.entity.TenantMenuEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *
+ * uims_menuDAO接口
+ * @author: WYY
+ * @date 2020-10-26 16:15
+ */
+@Mapper
+public interface TenantMenuMapper extends BaseMapper<TenantMenuEntity> {
+
+
+}

+ 14 - 0
user_center/src/main/java/com/huaxu/entity/MenuEntity.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
@@ -26,6 +27,11 @@ public class MenuEntity {
     @ApiModelProperty(value = "主键")
     private Long id;
 
+    /** 租户菜单ID */
+    @TableField(exist =  false)
+    @ApiModelProperty(value = "租户菜单ID")
+    private Long tenantMenuId;
+
     /** 应用ID */
     @ApiModelProperty(value = "应用ID")
     private String appId;
@@ -99,6 +105,14 @@ public class MenuEntity {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    /**
+     * 租户标识
+     */
+    @ApiModelProperty(value = "租户标识")
+    @JsonIgnore
+    @TableField(exist = false)
+    private String tenantId;
+
     @ApiModelProperty(value = "子类", position = 100)
     @TableField(exist = false)
     private List<MenuEntity> children;

+ 86 - 0
user_center/src/main/java/com/huaxu/entity/TenantMenuEntity.java

@@ -0,0 +1,86 @@
+package com.huaxu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * uims_menu
+ * @author: WYY
+ * @date 2020-10-26 16:15
+ */
+@Data
+@TableName("uims_tenant_menu")
+public class TenantMenuEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */ 
+    @TableId(value = "id",type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /**
+     * 租户标识
+     */
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+
+    /** 菜单ID */
+    @ApiModelProperty(value = "菜单ID")
+    private Long MenuId;
+
+
+    /** 名称 */
+    @ApiModelProperty(value = "名称")
+    private String menuName;
+
+    /** 图标 */
+    @ApiModelProperty(value = "图标")
+    private String menuImage;
+
+    /** 序列 */
+    @ApiModelProperty(value = "序列")
+    private Long menuSeq;
+
+    /** 链接路径 */
+    @ApiModelProperty(value = "链接路径")
+    private String linkPath;
+
+
+    /** 创建者 */
+    @ApiModelProperty(value = "创建者")
+    private String createBy;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @NotNull(message = "参数值不能为空")
+    @ApiModelProperty(value = "创建时间")
+    private Date dateCreate;
+
+    /** 更新者 */
+    @ApiModelProperty(value = "更新者")
+    private String updateBy;
+
+    /** dateUpdate */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @NotNull(message = "参数值不能为空")
+    @ApiModelProperty(value = "修改时间")
+    private Date dateUpdate;
+
+    /** status */
+    @ApiModelProperty(value = "启用状态")
+    @TableLogic
+    private Integer status;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+}

+ 152 - 23
user_center/src/main/java/com/huaxu/service/MenuService.java

@@ -3,7 +3,9 @@ package com.huaxu.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dao.MenuMapper;
+import com.huaxu.dao.TenantMenuMapper;
 import com.huaxu.entity.MenuEntity;
+import com.huaxu.entity.TenantMenuEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.util.UserUtil;
 import org.springframework.beans.BeanUtils;
@@ -13,9 +15,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import javax.annotation.Resource;
 import org.springframework.transaction.annotation.Transactional;
-import java.util.Map;
-import java.util.List;
-import java.util.Arrays;
+
+import java.util.*;
 
 import static com.google.common.collect.Lists.newArrayList;
 
@@ -30,6 +31,8 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 
 	@Resource
 	private MenuMapper menuMapper;
+	@Resource
+	private TenantMenuMapper tenantMenuMapper;
 
 	/**
 	 * 自定义分页查询,含关联实体对像
@@ -43,7 +46,24 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 	 * 查列表
 	 */
 	public List<MenuEntity> findList(MenuEntity menuEntity) {
-		List<MenuEntity> menuEntities = menuMapper.findList(menuEntity);
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		Integer userId = currentUser.getId();
+		//-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		menuEntity.setTenantId(currentUser.getTenantId());
+		List<MenuEntity> menuEntities = new ArrayList<>();
+		switch (userType) {
+			case "1"://超级管理员查询所有系统菜单
+				menuEntities = menuMapper.findList(menuEntity);
+				break;
+			case "2"://普通用户按角色查询租户菜单
+				menuEntities = menuMapper.findUserList(menuEntity);
+				break;
+			case "-999"://租户管理员查询租户菜单
+				menuEntities = menuMapper.findTenantList(menuEntity);
+				break;
+		}
+
 		List<MenuEntity> menuTree = getMenuTree(menuEntities, Long.valueOf(0), 1);
 		return menuTree;
 	}
@@ -74,25 +94,76 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 	/**
 	 * 按父级节点查列表
 	 */
-	public List<MenuEntity> findMenuByParentIds(Long[] ids) {
-		return menuMapper.findMenuByParentIds(ids);
+	public List<MenuEntity> findMenuByParentIds(List<Long> ids) {
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		Integer userId = currentUser.getId();
+		//-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		List<MenuEntity> menuEntities = new ArrayList<>();
+		switch (userType) {
+			case "1"://超级管理员查询所有系统菜单
+				menuEntities = menuMapper.findMenuByParentIds(ids);
+				break;
+			case "2"://普通用户按角色查询租户菜单
+				menuEntities = menuMapper.findTenantMenuByParentIds(currentUser.getTenantId(), ids);
+				break;
+			case "-999"://租户管理员查询租户菜单
+				menuEntities = menuMapper.findTenantMenuByParentIds(currentUser.getTenantId(), ids);
+				break;
+		}
+		return menuEntities;
 	}
-
 	/**
 	 * 批量删除
 	 */
 	@Transactional(rollbackFor = Exception.class)
 	public boolean delMenuByIds(Long[] ids) {
-		return this.removeByIds(Arrays.asList(ids));
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		Integer userId = currentUser.getId();
+		//-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		boolean isOk = false;
+		for(Long id : ids) {
+			switch (userType) {
+				case "1"://超级管理员直接删除系统菜单
+					isOk = this.removeById(id);
+					break;
+				case "2"://普通用户按角色查询租户菜单
+					isOk = menuMapper.updateState(id);
+					break;
+				case "-999"://租户管理员查询租户菜单
+					isOk = menuMapper.updateState(id);
+					break;
+			}
+		}
+		return isOk;
 	}
 
 	/**
 	 * 单个删除
 	 */
 	public boolean delMenuById(Long id) {
-		return this.removeById(id);
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		Integer userId = currentUser.getId();
+		//-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		boolean isOk = false;
+		switch (userType) {
+			case "1"://超级管理员直接删除系统菜单
+				isOk = this.removeById(id);
+				break;
+			case "2"://普通用户按角色查询租户菜单
+				isOk = menuMapper.updateState(id);
+				break;
+			case "-999"://租户管理员查询租户菜单
+				isOk = menuMapper.updateState(id);
+				break;
+		}
+		return isOk;
 	}
 
+
+
 	/**
 	 * 保存
 	 */
@@ -107,39 +178,97 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 	 * 修改根居ID
 	 */
 	public boolean updateMenuById(MenuEntity menu) {
-		if (this.updateById(menu)) {
-			return true;
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		Integer userId = currentUser.getId();
+         //-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		TenantMenuEntity tenantMenuEntity = new TenantMenuEntity();
+		if(userType.equals("2")||userType.equals("-999")) {
+			MenuEntity menuEntity = menuMapper.findTenantByMenuId(currentUser.getTenantId(), menu.getId());
+			tenantMenuEntity.setId(menuEntity.getId());
+			tenantMenuEntity.setDateUpdate(new Date());
+			tenantMenuEntity.setUpdateBy(currentUser.getUsername());
+			tenantMenuEntity.setLinkPath(menu.getLinkPath());
+			tenantMenuEntity.setMenuImage(menu.getMenuImage());
+			tenantMenuEntity.setMenuName(menu.getName());
+			tenantMenuEntity.setMenuSeq(menu.getSeq());
 		}
-		return false;
+		boolean isOk = false;
+		switch (userType) {
+			case "1"://超级管理员查询所有系统菜单
+				isOk = this.updateById(menu);
+				break;
+			case "2"://普通用户按角色查询租户菜单
+				isOk = tenantMenuMapper.updateById(tenantMenuEntity) > 0 ? true : false;
+				break;
+			case "-999"://租户管理员查询租户菜单
+				isOk = tenantMenuMapper.updateById(tenantMenuEntity) > 0 ? true : false;
+				break;
+		}
+		return isOk;
 	}
-
 	/**
 	 * 根居ID获取对象
 	 */
 	public MenuEntity findMenuById(Long id) {
-		return menuMapper.findMenuById(id);
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		Integer userId = currentUser.getId();
+		//-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		MenuEntity menuEntity = new MenuEntity();
+		switch (userType) {
+			case "1"://超级管理员查询所有系统菜单
+				menuEntity = menuMapper.findMenuById(id);;
+				break;
+			case "2"://普通用户按角色查询租户菜单
+				menuEntity = menuMapper.findUserMenuById(currentUser.getTenantId(),id);
+				break;
+			case "-999"://租户管理员查询租户菜单
+				menuEntity = menuMapper.findUserMenuById(currentUser.getTenantId(),id);
+				break;
+		}
+		return menuEntity;
 	}
 
 	public List<MenuEntity> findUserFirstMenu() {
 		LoginUser currentUser = UserUtil.getCurrentUser();
 		Integer userId = currentUser.getId();
-		//todo 正式使用需注释
-		if (userId == null) {
-			userId = 4;
+		//-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		List<MenuEntity> menuEntities= new ArrayList<>();
+		switch (userType) {
+			case "1"://超级管理员查询所有系统菜单
+				menuEntities = menuMapper.findAllFirstMenu();
+				break;
+			case "2"://普通用户按角色查询租户菜单
+				menuEntities = menuMapper.findUserFirstMenu(currentUser.getTenantId(),userId);
+				break;
+			case "-999"://租户管理员查询租户菜单
+				menuEntities = menuMapper.findTenantFirstMenu(currentUser.getTenantId());
+				break;
 		}
-		List<MenuEntity> menuEntities = menuMapper.findUserFirstMenu(userId);
+
 		return menuEntities;
 	}
 
 	public List<MenuEntity> findUserMenu(String appId) {
 		LoginUser currentUser = UserUtil.getCurrentUser();
 		Integer userId = currentUser.getId();
-		//todo 正式使用需注释
-		if (appId == null || userId == null) {
-			userId = 4;
-			appId = "1001";
+		//-999租户管理员  1超级管理员  2普通用户
+		String userType = currentUser.getType();
+		List<MenuEntity> menuEntities= new ArrayList<>();
+
+		switch (userType) {
+			case "1"://超级管理员查询所有系统菜单
+				menuEntities = menuMapper.findSystemUserMenu(appId);
+				break;
+			case "2"://普通用户按角色查询租户菜单
+				menuEntities = menuMapper.findUserMenu(currentUser.getTenantId(),userId, appId);
+				break;
+			case "-999"://租户管理员查询租户菜单
+				menuEntities = menuMapper.findTenantUserMenu(currentUser.getTenantId(),appId);
+				break;
 		}
-		List<MenuEntity> menuEntities = menuMapper.findUserMenu(userId, appId);
 		List<MenuEntity> menuTree = getMenuTree(menuEntities, Long.valueOf(0), 1);
 		return menuTree;
 	}

+ 4 - 2
user_center/src/main/java/com/huaxu/service/UserService.java

@@ -66,7 +66,8 @@ public class UserService extends ServiceImpl<UserMapper,UserEntity> {
 	}
 
 	public boolean checkMobileUnique(String phone) {
-		int count = this.count(new QueryWrapper<UserEntity>().eq("phone", phone));
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		int count = this.count(new QueryWrapper<UserEntity>().eq("phone", phone).eq("tenant_id",currentUser.getTenantId()));
 		if (count > 0) {
 			return true;
 		}
@@ -74,8 +75,9 @@ public class UserService extends ServiceImpl<UserMapper,UserEntity> {
 	}
 
 	public boolean checkMobileUnique(UserEntity user) {
+		LoginUser currentUser = UserUtil.getCurrentUser();
 		Long userId = ToolUtil.isEmpty(user.getId()) ? -1L : user.getId();
-		UserEntity info = this.getOne(new QueryWrapper<UserEntity>().eq("phone", user.getPhone()));
+		UserEntity info = this.getOne(new QueryWrapper<UserEntity>().eq("phone", user.getPhone()).eq("tenant_id",currentUser.getTenantId()));
 		if (ToolUtil.isNotEmpty(info) && !info.getId().equals(userId)) {
 			return true;
 		}

+ 257 - 7
user_center/src/main/resources/mapper/MenuMapper.xml

@@ -65,6 +65,22 @@
         and a.status=1
     </select>
 
+    <!--  根据主键获取租户菜单  -->
+    <select id="findTenantMenuByParentIds" resultType="com.huaxu.entity.MenuEntity">
+        select a.id
+        from uims_tenant_menu a
+        inner JOIN uims_menu b on a.menu_id=b.id
+        inner join uims_menu c on b.id =c.PARENT_MENU_ID and c.status=1
+        inner join uims_tenant_menu d on d.menu_id=c.id and d.status=1
+        <if test="tenantId != null  and tenantId != ''">
+            and d.TENANT_ID=#{tenantId}
+        </if>
+        WHERE a.id in
+        <foreach collection = "Ids" item = "dramaId" open = "(" close = ")" separator = "," >
+            #{dramaId}
+        </foreach>
+    </select>
+
     <!--  根据获取实体List   -->
     <select id="findList" resultType="com.huaxu.entity.MenuEntity">
         SELECT
@@ -82,27 +98,258 @@
         order by a.seq
     </select>
     <!--  根据获取实体List   -->
-    <select id="findUserFirstMenu" resultType="com.huaxu.entity.MenuEntity">
+    <select id="findTenantList" resultType="com.huaxu.entity.MenuEntity">
+        select
+        b.id as "id" ,
+        b.app_id as "appId" ,
+        b.third_menu_id as "thirdMenuId" ,
+        b.parent_menu_id as "parentMenuId" ,
+        a.id as "tenantMenuId",
+        a.MENU_NAME as "name" ,
+        a.menu_image as "menuImage" ,
+        b.permission_flag as "permissionFlag" ,
+        a.link_path as "linkPath" ,
+        a.MENU_SEQ as "seq" ,
+        b.show_state as "showState" ,
+        a.remark as "remark" ,
+        b.is_tenant as "isTenant" ,
+        b.is_admin as "isAdmin" ,
+        a.date_create as "dateCreate" ,
+        a.create_by as "createBy" ,
+        a.date_update as "dateUpdate" ,
+        a.update_by as "updateBy" ,
+        a.status as "status"
+        from uims_tenant_menu  a
+        inner join uims_menu b on a.MENU_ID=b.id and b.STATUS=1
+        <where>
+            a.status=1
+            <if test="name != null  and name != ''">
+                and a.MENU_NAME LIKE concat('%',#{name},'%')
+            </if>
+            <if test="tenantId != null  and tenantId != ''">
+                and a.tenant_id = #{tenantId}
+            </if>
+        </where>
+        order by a.MENU_SEQ
+    </select>
+    <!--  根据获取实体List   -->
+    <select id="findUserMenuById" resultType="com.huaxu.entity.MenuEntity">
+        select
+        a.id as "id" ,
+        b.app_id as "appId" ,
+        b.third_menu_id as "thirdMenuId" ,
+        b.parent_menu_id as "parentMenuId" ,
+        a.id as "tenantMenuId",
+        a.MENU_NAME as "name" ,
+        a.menu_image as "menuImage" ,
+        b.permission_flag as "permissionFlag" ,
+        a.link_path as "linkPath" ,
+        a.MENU_SEQ as "seq" ,
+        b.show_state as "showState" ,
+        a.remark as "remark" ,
+        b.is_tenant as "isTenant" ,
+        b.is_admin as "isAdmin" ,
+        a.date_create as "dateCreate" ,
+        a.create_by as "createBy" ,
+        a.date_update as "dateUpdate" ,
+        a.update_by as "updateBy" ,
+        a.status as "status"
+        from uims_tenant_menu  a
+        inner join uims_menu b on a.MENU_ID=b.id and b.STATUS=1
+        <where>
+            a.status=1 and b.id = #{id}
+            <if test="tenantId != null  and tenantId != ''">
+                and a.tenant_id = #{tenantId}
+            </if>
+        </where>
+    </select>
+    <!--  根据获取实体List   -->
+    <select id="findUserList" resultType="com.huaxu.entity.MenuEntity">
+        select
+        b.id as "id" ,
+        b.app_id as "appId" ,
+        b.third_menu_id as "thirdMenuId" ,
+        b.parent_menu_id as "parentMenuId" ,
+        a.id as "tenantMenuId",
+        a.MENU_NAME as "name" ,
+        a.menu_image as "menuImage" ,
+        b.permission_flag as "permissionFlag" ,
+        a.link_path as "linkPath" ,
+        a.MENU_SEQ as "seq" ,
+        b.show_state as "showState" ,
+        a.remark as "remark" ,
+        b.is_tenant as "isTenant" ,
+        b.is_admin as "isAdmin" ,
+        a.date_create as "dateCreate" ,
+        a.create_by as "createBy" ,
+        a.date_update as "dateUpdate" ,
+        a.update_by as "updateBy" ,
+        a.status as "status"
+        from uims_user_role  userrole
+        inner join uims_role_menu rolemenu on rolemenu.ROLE_ID=userrole.ROLE_ID and rolemenu.status=1
+        inner join uims_menu b on rolemenu.MENU_ID=b.id and b.STATUS=1
+        inner join uims_tenant_menu a on a.MENU_ID= b.id and a.status=1
+        <if test="tenantId != null  and tenantId != ''">
+            and a.tenant_id = #{tenantId}
+        </if>
+        <where>
+            a.status=1  and  userrole.status=1
+            <if test="name != null  and name != ''">
+                and a.MENU_NAME LIKE concat('%',#{name},'%')
+            </if>
+        </where>
+        order by a.MENU_SEQ
+    </select>
+
+    <!--  超级管理员查询 一级菜单List   -->
+    <select id="findAllFirstMenu" resultType="com.huaxu.entity.MenuEntity">
         SELECT
         <include refid="menuColumns"/>
+        FROM uims_menu a
+        <where>
+            a.status=1 and a.PARENT_MENU_ID=0 and a.SHOW_STATE=1
+        </where>
+        order by a.seq
+    </select>
+    <!--  租户管理员查询租户菜单  -->
+    <select id="findTenantByMenuId" resultType="com.huaxu.entity.MenuEntity">
+        select b.id
+        from uims_tenant_menu b
+        <where>
+            b.status=1  and b.MENU_ID= #{id}
+            <if test="tenantId != null  and tenantId != ''">
+                and b.tenant_id = #{tenantId}
+            </if>
+        </where>
+        limit 1
+    </select>
+    <!--  租户管理员查询租户菜单  -->
+    <select id="findTenantFirstMenu" resultType="com.huaxu.entity.MenuEntity">
+        select
+        a.id as "id" ,
+        a.parent_menu_id as "parentMenuId" ,
+        b.MENU_NAME as "name" ,
+        b.MENU_IMAGE as "menuImage" ,
+        a.permission_flag as "permissionFlag" ,
+        b.LINK_PATH as "linkPath" ,
+        b.MENU_SEQ as "seq" ,
+        a.show_state as "showState" ,
+        b.remark as "remark" ,
+        b.date_create as "dateCreate" ,
+        b.create_by as "createBy" ,
+        b.date_update as "dateUpdate" ,
+        b.update_by as "updateBy" ,
+        b.status as "status"
+        from uims_tenant_menu b
+        inner join uims_menu a on a.id= b.MENU_ID and a.status=1
+        <where>
+            b.status=1 and a.PARENT_MENU_ID=0 and a.show_state=1
+            <if test="tenantId != null  and tenantId != ''">
+                and b.tenant_id = #{tenantId}
+            </if>
+        </where>
+        order by b.MENU_SEQ
+    </select>
+    <!--  普通用户查询租户菜单  -->
+    <select id="findUserFirstMenu" resultType="com.huaxu.entity.MenuEntity">
+        SELECT
+        a.id as "id" ,
+        a.parent_menu_id as "parentMenuId" ,
+        b.MENU_NAME as "name" ,
+        b.MENU_IMAGE as "menuImage" ,
+        a.permission_flag as "permissionFlag" ,
+        b.LINK_PATH as "linkPath" ,
+        b.MENU_SEQ as "seq" ,
+        a.show_state as "showState" ,
+        b.remark as "remark" ,
+        b.date_create as "dateCreate" ,
+        b.create_by as "createBy" ,
+        b.date_update as "dateUpdate" ,
+        b.update_by as "updateBy" ,
+        b.status as "status"
         from uims_user_role  userrole
         inner join uims_role_menu rolemenu on rolemenu.ROLE_ID=userrole.ROLE_ID and rolemenu.status=1
-        inner join uims_menu a on a.id= rolemenu.MENU_ID and a.status=1
+        inner join uims_menu a on a.id=rolemenu.MENU_ID and a.STATUS=1
+        inner join uims_tenant_menu b on a.id= b.MENU_ID and b.status=1
+        <if test="tenantId != null  and tenantId != ''">
+            and b.tenant_id = #{tenantId}
+        </if>
         <where>
             userrole.status=1 and a.PARENT_MENU_ID=0 and a.SHOW_STATE=1
             <if test="userId != null  and userId != ''">
                 and userrole.user_id = #{userId}
             </if>
+
+        </where>
+        order by b.MENU_SEQ
+    </select>
+    <!--  超级管理员获取左侧菜单   -->
+    <select id="findSystemUserMenu" resultType="com.huaxu.entity.MenuEntity">
+        SELECT
+        <include refid="menuColumns"/>
+        FROM uims_menu a
+        <where>
+            a.status=1 and  a.SHOW_STATE=1
+            <if test="appId != null  and appId != ''">
+                and a.app_id = #{appId}
+            </if>
         </where>
         order by a.seq
     </select>
-    <!--  根据获取实体List   -->
+    <!--  租户管理员获取左侧菜单   -->
+    <select id="findTenantUserMenu" resultType="com.huaxu.entity.MenuEntity">
+        select
+        a.id as "id" ,
+        a.parent_menu_id as "parentMenuId" ,
+        b.MENU_NAME as "name" ,
+        b.MENU_IMAGE as "menuImage" ,
+        a.permission_flag as "permissionFlag" ,
+        b.LINK_PATH as "linkPath" ,
+        b.MENU_SEQ as "seq" ,
+        a.show_state as "showState" ,
+        b.remark as "remark" ,
+        b.date_create as "dateCreate" ,
+        b.create_by as "createBy" ,
+        b.date_update as "dateUpdate" ,
+        b.update_by as "updateBy" ,
+        b.status as "status"
+        from uims_tenant_menu b
+        inner join uims_menu a on a.id= b.MENU_ID and a.status=1
+        <where>
+            b.status=1  and a.SHOW_STATE=1
+            <if test="appId != null  and appId != ''">
+                and a.app_id = #{appId}
+            </if>
+            <if test="tenantId != null  and tenantId != ''">
+                and b.tenant_id = #{tenantId}
+            </if>
+        </where>
+        order by b.MENU_SEQ
+    </select>
+    <!--  普通用户获取实体List   -->
     <select id="findUserMenu" resultType="com.huaxu.entity.MenuEntity">
         SELECT
-        <include refid="menuColumns"/>
+        a.id as "id" ,
+        a.parent_menu_id as "parentMenuId" ,
+        b.MENU_NAME as "name" ,
+        b.MENU_IMAGE as "menuImage" ,
+        a.permission_flag as "permissionFlag" ,
+        b.LINK_PATH as "linkPath" ,
+        b.MENU_SEQ as "seq" ,
+        a.show_state as "showState" ,
+        b.remark as "remark" ,
+        b.date_create as "dateCreate" ,
+        b.create_by as "createBy" ,
+        b.date_update as "dateUpdate" ,
+        b.update_by as "updateBy" ,
+        b.status as "status"
         from uims_user_role  userrole
         inner join uims_role_menu rolemenu on rolemenu.ROLE_ID=userrole.ROLE_ID and rolemenu.status=1
-        inner join uims_menu a on a.id= rolemenu.MENU_ID and a.status=1
+        inner join uims_menu a on a.id=rolemenu.MENU_ID and a.STATUS=1
+        inner join uims_tenant_menu b on a.id= b.MENU_ID and b.status=1
+        <if test="tenantId != null  and tenantId != ''">
+            and b.tenant_id = #{tenantId}
+        </if>
         <where>
             userrole.status=1  and a.SHOW_STATE=1
             <if test="userId != null  and userId != ''">
@@ -111,10 +358,10 @@
             <if test="appId != null  and appId != ''">
                 and a.app_id = #{appId}
             </if>
+
         </where>
-        order by a.seq
+        order by b.MENU_SEQ
     </select>
-
     <!--  根据获取实体 page   -->
     <select id="findPage" resultType="com.huaxu.entity.MenuEntity">
         SELECT
@@ -127,4 +374,7 @@
             </if>
         </where>
     </select>
+    <update id="updateState">
+         update uims_tenant_menu set status=0 where id=#{Id}
+    </update>
 </mapper>