Parcourir la source

Merge remote-tracking branch 'origin/master'

hym il y a 4 ans
Parent
commit
6631637711

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

@@ -105,6 +105,7 @@ public enum ResultStatus {
 
     EXSIT_IS_PARENT_ERROR(800001,"存在下级信息不能删除"),
     EXSIT_IS_DICTCODE_ERROR(800002,"存在相同字典编码不能新增"),
+    EXSIT_IS_ACCOUNT_ERROR(800003,"登录用户不能删除当前登录用户信息"),
 
     SYSTEM_ERROR(999999, "系统错误"),
     PARAM_ERROR(700001, "参数缺失"),

+ 7 - 1
user_center/src/main/java/com/huaxu/controller/LoginLogController.java

@@ -26,6 +26,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @description 登录日志管理控制层
@@ -141,7 +142,12 @@ public class LoginLogController {
         loginLogDto.setTenantId(loginUser.getTenantId());
         loginLogDto.setCondition(condition);
         loginLogDto.setDepartmentId(departmentId);
-        loginLogDto.setProgramItems(loginUser.getProgramItemList());
+
+        //系统管理员不过滤权限,机构信息为null的去掉
+        if((!loginUser.getType().equals("-9999")) && !loginUser.getType().equals("-999")   ){
+            loginLogDto.setProgramItems(loginUser.getProgramItemList().stream().filter(p -> p.getOrgId() != null).collect(Collectors.toList()));
+        }
+
         try {
             if(StringUtils.isNotBlank(beginTime)){
                 loginLogDto.setBeginTime(f.parse(beginTime));

+ 6 - 1
user_center/src/main/java/com/huaxu/controller/MenuController.java

@@ -57,7 +57,12 @@ public class MenuController {
         List<MenuEntity> menuEntities = menuService.findList(menuEntity);
         return new AjaxMessage<>(ResultStatus.OK, menuEntities);
     }
-
+    @ApiOperation(value = "查询权限标志")
+    @RequestMapping(value = "/selectAuthCode", method = RequestMethod.POST)
+    public AjaxMessage<List<String>> allList() {
+        List<String> menuEntities = menuService.getAuthCode();
+        return new AjaxMessage<>(ResultStatus.OK, menuEntities);
+    }
     /**
      * 新增
      */

+ 6 - 1
user_center/src/main/java/com/huaxu/controller/OperateLogController.java

@@ -23,6 +23,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @description
@@ -136,7 +137,11 @@ public class OperateLogController {
         operateLogDto.setTenantId(loginUser.getTenantId());
         operateLogDto.setCondition(condition);
         operateLogDto.setDepartmentId(departmentId);
-        operateLogDto.setProgramItems(loginUser.getProgramItemList());
+        //系统管理员不过滤权限,数据为null的去掉
+        if((!loginUser.getType().equals("-9999")) && !loginUser.getType().equals("-999")   ){
+            operateLogDto.setProgramItems(loginUser.getProgramItemList().stream().filter(p -> p.getOrgId() != null).collect(Collectors.toList()));
+        }
+
         try {
             if(StringUtils.isNotBlank(beginTime)){
                 operateLogDto.setBeginTime(f.parse(beginTime));

+ 37 - 14
user_center/src/main/java/com/huaxu/controller/UserController.java

@@ -51,10 +51,10 @@ public class UserController {
 
     @ApiOperation(value = "分页查询用户信息(按参数)")
     @RequestMapping(value = "/selectPageByParm", method = RequestMethod.POST)
-    public  AjaxMessage<Pagination<UserEntity>> list(@RequestParam Integer pageNum, @RequestParam Integer pageSize,@RequestParam(value = "contion",required = false) String contion,@RequestParam(value = "deptId",required = false) Long deptId) {
+    public AjaxMessage<Pagination<UserEntity>> list(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam(value = "contion", required = false) String contion, @RequestParam(value = "deptId", required = false) Long deptId) {
         IPage<UserEntity> iPage = new Page<>(pageNum, pageSize);
-        UserEntity  userEntity = new UserEntity();
-        if(contion!=null&&contion!="") {
+        UserEntity userEntity = new UserEntity();
+        if (contion != null && contion != "") {
             userEntity.setUsername(contion.trim());
             userEntity.setPhone(contion.trim());
         }
@@ -65,59 +65,65 @@ public class UserController {
         Pagination<UserEntity> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
+
     @ApiOperation(value = "分页查询用户信息")
     @RequestMapping(value = "/selectPage", method = RequestMethod.POST)
-    public  AjaxMessage<Pagination<UserEntity>> selectPageByParm(@RequestParam Integer pageNum, @RequestParam Integer pageSize,@ApiParam(value = "", required = false)@RequestBody UserEntity userEntity) {
+    public AjaxMessage<Pagination<UserEntity>> selectPageByParm(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @ApiParam(value = "", required = false) @RequestBody UserEntity userEntity) {
         IPage<UserEntity> iPage = new Page<>(pageNum, pageSize);
         iPage = userService.findPage(iPage, userEntity);
         Pagination<UserEntity> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
+
     /**
      * 查询
      */
     @ApiOperation(value = "获取当前登录用户信息")
     @RequestMapping(value = "/findLoginUserById", method = RequestMethod.POST)
-    public  AjaxMessage<UserEntity>  findLoginUserById() {
+    public AjaxMessage<UserEntity> findLoginUserById() {
         LoginUser currentUser = UserUtil.getCurrentUser();
         UserEntity userEntity = userService.findUserById(Long.valueOf(currentUser.getId()));
         return new AjaxMessage<>(ResultStatus.OK, userEntity);
     }
+
     /**
      * 查询
      */
     @ApiOperation(value = "按ID查询用户信息")
     @RequestMapping(value = "/findUserById", method = RequestMethod.POST)
-    public  AjaxMessage<UserEntity>  findUserById(@ApiParam(value = "用户ID", required = true) @RequestParam Long id) {
+    public AjaxMessage<UserEntity> findUserById(@ApiParam(value = "用户ID", required = true) @RequestParam Long id) {
         UserEntity userEntity = userService.findUserById(id);
         return new AjaxMessage<>(ResultStatus.OK, userEntity);
     }
+
     /**
      * 按用户查询一级菜单信息(入口菜单)
      */
     @ApiOperation(value = "查询用户一级菜单信息(入口菜单-用户)")
     @RequestMapping(value = "/findUserFirstMenu", method = RequestMethod.GET)
-    public  AjaxMessage<List<MenuEntity>>  findUserFirstMenu() {
+    public AjaxMessage<List<MenuEntity>> findUserFirstMenu() {
 
         List<MenuEntity> menuEntityList = menuService.findUserFirstMenu();
         return new AjaxMessage<>(ResultStatus.OK, menuEntityList);
     }
+
     /**
      * 按应用查询菜单信息(系统菜单-用户)
      */
     @ApiOperation(value = "查询应用菜单信息")
     @RequestMapping(value = "/findUserMenu", method = RequestMethod.GET)
-    public  AjaxMessage<List<MenuEntity>>  findUserMenu(@ApiParam(value = "应用ID", required = true) @RequestParam String appId) {
+    public AjaxMessage<List<MenuEntity>> findUserMenu(@ApiParam(value = "应用ID", required = true) @RequestParam String appId) {
         List<MenuEntity> menuEntityList = menuService.findUserMenu(appId);
         return new AjaxMessage<>(ResultStatus.OK, menuEntityList);
     }
+
     /**
      * 新增
      */
     @ApiOperation(value = "用户头像")
     @RequestMapping(value = "addUserPhoto", method = RequestMethod.POST)
     @ResponseBody
-    public  AjaxMessage<String>  addUserPhoto(@ApiParam(value = "用户头像", required = true)@RequestParam("avatarfile") MultipartFile file) {
+    public AjaxMessage<String> addUserPhoto(@ApiParam(value = "用户头像", required = true) @RequestParam("avatarfile") MultipartFile file) {
         String avatar = "";
         if (!file.isEmpty()) {
             try {
@@ -136,7 +142,7 @@ public class UserController {
     @ApiOperation(value = "新增用户信息")
     @RequestMapping(value = "addUser", method = RequestMethod.POST)
     @ResponseBody
-    public  AjaxMessage<Integer>  addUser( @ApiParam(value = "用户信息", required = true)@RequestBody  UserEntity user) {
+    public AjaxMessage<Integer> addUser(@ApiParam(value = "用户信息", required = true) @RequestBody UserEntity user) {
         if (user.getPhone() != null) {
             boolean isExsit = userService.checkMobileUnique(user.getPhone());
             if (isExsit) {
@@ -144,7 +150,7 @@ public class UserController {
             }
         }
         LoginUser currentUser = UserUtil.getCurrentUser();
-        if(currentUser!=null) {
+        if (currentUser != null) {
             user.setUpdateBy(currentUser.getUsername());
             user.setCreateBy(currentUser.getUsername());
             user.setDateCreate(new Date());
@@ -163,7 +169,7 @@ public class UserController {
     @ApiOperation(value = "更新用户信息")
     @RequestMapping(value = "/updateUserById", method = RequestMethod.POST)
     @ResponseBody
-    public AjaxMessage<Integer> editUser(@ApiParam(value = "用户信息", required = true) @RequestBody  UserEntity user) {
+    public AjaxMessage<Integer> editUser(@ApiParam(value = "用户信息", required = true) @RequestBody UserEntity user) {
         if (user.getPhone() != null) {
             boolean isExsit = userService.checkMobileUnique(user);
             if (isExsit) {
@@ -171,7 +177,7 @@ public class UserController {
             }
         }
         LoginUser currentUser = UserUtil.getCurrentUser();
-        if(currentUser!=null) {
+        if (currentUser != null) {
             user.setUpdateBy(currentUser.getUsername());
             user.setDateUpdate(new Date());
             user.setTenantId(currentUser.getTenantId());
@@ -188,9 +194,20 @@ public class UserController {
     @RequestMapping(value = "/deleteUserByIds", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<Integer> deleteUserByIds(@ApiParam(value = "用户ID", required = true) @RequestBody Long[] ids) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        Integer userId = currentUser.getId();
+        boolean isOk = true;
+        for (Long id : ids) {
+            if (userId.toString().equals(id.toString())) {
+                isOk = false;
+            }
+        }
+        if (!isOk)
+            return new AjaxMessage<>(ResultStatus.EXSIT_IS_ACCOUNT_ERROR, 0);
         int result = userService.delUserByIds(ids) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
+
     /**
      * 删除
      */
@@ -198,7 +215,13 @@ public class UserController {
     @ApiOperation(value = "按ID进行单个删除")
     @RequestMapping(value = "/deleteUserById", method = RequestMethod.POST)
     @ResponseBody
-    public AjaxMessage<Integer> deleteUserById(@ApiParam(value = "用户ID", required = true)@RequestParam Long id) {
+    public AjaxMessage<Integer> deleteUserById(@ApiParam(value = "用户ID", required = true) @RequestParam Long id) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        Integer userId = currentUser.getId();
+        System.out.println("userId"+userId);
+        if (userId.toString().equals(id.toString())) {
+            return new AjaxMessage<>(ResultStatus.EXSIT_IS_ACCOUNT_ERROR, 0);
+        }
         int result = userService.delUserById(id) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }

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

@@ -31,7 +31,7 @@ public interface MenuMapper extends BaseMapper<MenuEntity> {
 
     List<MenuEntity> findTenantList(MenuEntity menuEntity);
 
-    List<MenuEntity> findUserList(MenuEntity menuEntity);
+    List<MenuEntity> findUserList(@Param("name") String name,@Param("tenantId") String tenantId,@Param(value = "userId")Integer userId);
 
     List<MenuEntity> findMenuByParentIds(@Param("Ids") List<Long> Ids);
 

+ 1 - 1
user_center/src/main/java/com/huaxu/dao/UserMapper.java

@@ -23,7 +23,7 @@ public interface UserMapper extends BaseMapper<UserEntity> {
      * @param  page 
      * @param  userEntity 实体类
      */
-     Page<UserEntity> findPage(IPage<UserEntity> page, @Param("user") UserEntity userEntity, @Param("userType") String userType,@Param("list") Long[] list);
+     Page<UserEntity> findPage(IPage<UserEntity> page, @Param("user") UserEntity userEntity);
 
      UserEntity findUserById(Serializable id);
 

+ 5 - 0
user_center/src/main/java/com/huaxu/entity/UserEntity.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.huaxu.model.ProgramItem;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -116,4 +117,8 @@ public class UserEntity implements Serializable {
     @ApiModelProperty(value = "用户组")
     @TableField(exist = false)
     private Long userGroupId;
+
+    @ApiModelProperty(value ="权限",hidden = true)
+    @TableField(exist = false)
+    private List<ProgramItem> programItems;
 }

+ 15 - 2
user_center/src/main/java/com/huaxu/service/MenuService.java

@@ -41,6 +41,17 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 		Page<MenuEntity> ipage = menuMapper.findPage(page, menuEntity);
 		return ipage;
 	}
+	/**
+	 * 查询权限标志
+	 */
+	public List<String> getAuthCode() {
+		List<String> list = new ArrayList<>();
+		List<MenuEntity> menuEntities = findList(new MenuEntity());
+		for (MenuEntity menuEntity : menuEntities) {
+			list.add(menuEntity.getPermissionFlag());
+		}
+		return list;
+	}
 
 	/**
 	 * 查列表
@@ -50,7 +61,9 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 		Integer userId = currentUser.getId();
 		//-999租户管理员  -9999超级管理员  2普通用户
 		String userType = currentUser.getType();
-		menuEntity.setTenantId(currentUser.getTenantId());
+		String tenantId = currentUser.getTenantId();
+		String name = menuEntity.getName();
+		menuEntity.setTenantId(tenantId);
 		List<MenuEntity> menuEntities = new ArrayList<>();
 		switch (userType) {
 			case "-9999"://超级管理员查询所有系统菜单
@@ -60,7 +73,7 @@ public class MenuService extends ServiceImpl<MenuMapper,MenuEntity> {
 				menuEntities = menuMapper.findTenantList(menuEntity);
 				break;
 			default://普通用户按角色查询租户菜单
-				menuEntities = menuMapper.findUserList(menuEntity);
+				menuEntities = menuMapper.findUserList(name,tenantId,userId);
 				break;
 		}
 

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

@@ -41,19 +41,10 @@ public class UserService extends ServiceImpl<UserMapper,UserEntity> {
 	 */
 	public IPage<UserEntity> findPage(IPage<UserEntity> page, UserEntity userEntity) {
 		LoginUser currentUser = UserUtil.getCurrentUser();
-		List<ProgramItem> programItems = new ArrayList<ProgramItem>();
-		Long[] ids = null;
-		if (currentUser != null) {
-			userEntity.setTenantId(currentUser.getTenantId());
-			programItems = currentUser.getProgramItemList();
-			if (programItems!=null &&programItems.size() > 0) {
-				ids = new Long[programItems.size()];
-				for ( int i=0;i< programItems.size();i++) {
-					ids[i]= Long.valueOf(programItems.get(i).getOrgId());
-				}
-			}
-		}
-		Page<UserEntity> userPage = userMapper.findPage(page, userEntity, currentUser.getType(), ids);
+		userEntity.setTenantId(currentUser.getTenantId());
+		userEntity.setProgramItems(currentUser.getProgramItemList());
+		userEntity.setUserType(currentUser.getType());
+		Page<UserEntity> userPage = userMapper.findPage(page, userEntity);
 		return userPage;
 	}
 

+ 1 - 1
user_center/src/main/resources/mapper/MenuMapper.xml

@@ -193,7 +193,7 @@
             and a.tenant_id = #{tenantId}
         </if>
         <where>
-            a.status=1  and  userrole.status=1  and b.is_tenant=1
+            a.status=1  and  userrole.status=1  and b.is_tenant=1  and userrole.user_id=#{userId}
             <if test="name != null  and name != ''">
                 and a.MENU_NAME LIKE concat('%',#{name},'%')
             </if>

+ 5 - 5
user_center/src/main/resources/mapper/UserMapper.xml

@@ -97,15 +97,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                      or a.COMPANY_ORG_ID = #{user.companyOrgId}
                   )
             </if>
-           <if test="userType != null  and userType != '' and '2'.toString() == userType.toString() and list != null">
+            <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
                 and ( a.DEPT_ORG_ID in
-                       <foreach collection="list" item="item" open="(" close=")" separator=",">
-                           #{item}
+                       <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                           #{item.orgId}
                        </foreach>
                        or
                      a.COMPANY_ORG_ID in
-                        <foreach collection="list" item="item" open="(" close=")" separator=",">
-                            #{item}
+                        <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
                         </foreach>
                 )
            </if>