Jelajahi Sumber

Merge branch 'master' of D:\company_work\Code with conflicts.

hym 4 tahun lalu
induk
melakukan
c869d63c13

+ 11 - 17
user_center/src/main/java/com/huaxu/controller/UserController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huaxu.common.FileUploadUtil;
+import com.huaxu.dto.UserListDto;
 import com.huaxu.entity.App;
 import com.huaxu.entity.MenuEntity;
 import com.huaxu.entity.UserTagEntity;
@@ -25,9 +26,10 @@ import org.springframework.stereotype.Controller;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.ui.ModelMap;
 
-import java.util.*;
+import java.util.List;
 import java.io.IOException;
-
+import java.util.Map;
+import java.util.Date;
 import org.springframework.web.bind.annotation.*;
 import com.huaxu.entity.UserEntity;
 import com.huaxu.service.UserService;
@@ -97,7 +99,6 @@ public class UserController {
         return new AjaxMessage<>(ResultStatus.OK, userEntity);
     }
 
-
     /**
      * 按用户查询一级菜单信息(入口菜单)
      */
@@ -265,24 +266,17 @@ public class UserController {
         return result;
     }
 
-    @RequestMapping(value = "/findUserIdsByOrgId", method = RequestMethod.POST)
+    @RequestMapping(value = "/findUserIdsByOrgId", method = RequestMethod.GET)
     @ResponseBody
-    public AjaxMessage<List<UserEntity>> findUserIdsByOrgId(Long[] ids) {
-        List list = Arrays.asList(ids.clone());
+    public AjaxMessage<List<UserEntity>> findUserIdsByOrgId(String ids) {
+        List list = JSONObject.parseObject(ids, List.class);
         List<UserEntity> result = userService.findUserIdsByOrgId(list);
         return new AjaxMessage<>(ResultStatus.OK,result);
     }
-
-    @RequestMapping(value = "/findUserIdsByUserIds", method = RequestMethod.POST)
+    @RequestMapping(value = "/findUserList", method = RequestMethod.POST)
     @ResponseBody
-    public Map<Long,String> findUserIdsByUserIds(Long[] ids) {
-        List list = Arrays.asList(ids.clone());
-        List<UserEntity> result = userService.findUserIdsByUserIds(list);
-        Map<Long,String> userInfos = new HashMap<>();
-        for(UserEntity item : result)
-        {
-            userInfos.put(item.getId(),item.getUsername());
-        }
-        return  userInfos;
+    public AjaxMessage<List<UserListDto>> findUserList() {
+        List<UserListDto> userList = userService.findUserList();
+        return new AjaxMessage<>(ResultStatus.OK,userList);
     }
 }

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

@@ -34,7 +34,7 @@ public interface UserMapper extends BaseMapper<UserEntity> {
 
     List<UserEntity> findUserIdsByOrgId(List<Integer> orgIds);
 
-    List<UserEntity> findUserIdsByUserIds(List<Integer> userIds);
+    List<UserEntity> findUserList(@Param("user")UserEntity userEntity);
 
     /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 12 - 0
user_center/src/main/java/com/huaxu/dto/UserListDto.java

@@ -0,0 +1,12 @@
+package com.huaxu.dto;
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class UserListDto {
+    private Long id;
+    private String label;
+    private String value;
+    private List<UserListDto>children;
+}

+ 69 - 15
user_center/src/main/java/com/huaxu/service/UserService.java

@@ -4,6 +4,7 @@ package com.huaxu.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.common.ToolUtil;
 import com.huaxu.dao.UserMapper;
+import com.huaxu.dto.UserListDto;
 import com.huaxu.entity.UserEntity;
 import com.huaxu.entity.UserRoleEntity;
 import com.huaxu.entity.UserTagEntity;
@@ -20,9 +21,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import javax.annotation.Resource;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Arrays;
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  *
  * 用户Service接口
@@ -114,15 +115,15 @@ public class UserService extends ServiceImpl<UserMapper,UserEntity> {
 		if (userEntity != null) {
 			//將禁用的角色放入redis,作为登出判断
 			if (userEntity.getEnableState().equals("0")) {
-				String roleKey = "disableUser:" + id;
-				redisUtil.setExpire(roleKey.getBytes(), ByteArrayUtils.objectToBytes("1").get(), 60 * 60 * 24);//15分钟过期
+			String roleKey = "disableUser:" + id;
+			redisUtil.setExpire(roleKey.getBytes(), ByteArrayUtils.objectToBytes("1").get(), 60 * 60 * 24);//15分钟过期
 
-			}
-			if (userEntity.getEnableState().equals("1")) {
-				String roleKey = "disableUser:" + id;
-				redisUtil.del(roleKey.getBytes());
-			}
 		}
+		if (userEntity.getEnableState().equals("1")) {
+			String roleKey = "disableUser:" + id;
+			redisUtil.del(roleKey.getBytes());
+		}
+	}
 		return this.removeById(id);
 	}
 
@@ -268,12 +269,65 @@ public class UserService extends ServiceImpl<UserMapper,UserEntity> {
 		}
 		return userEntities;
 	}
+	public List<UserListDto> findUserList()
+	{
+		List<UserListDto> userListDtos = new ArrayList<>();
+		LoginUser currentUser = UserUtil.getCurrentUser();
+		UserEntity userEntity=new UserEntity();
+		userEntity.setTenantId(currentUser.getTenantId());
+		userEntity.setProgramItems(currentUser.getProgramItemList());
+		userEntity.setUserType(currentUser.getType());
+		//1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+		userEntity.setPermissonType(currentUser.getPermissonType());
+		List<UserEntity>userEntities=userMapper.findUserList(userEntity);
+		List<UserEntity>companyUser=new ArrayList<>();
+		List<UserEntity>departmentUser=new ArrayList<>();
+		userEntities.forEach(user->{
+			if(user.getDeptOrgId()!=null){
+				departmentUser.add(user);
+			}else{
+				companyUser.add(user);
+			}
+		});
+		Map<Long, List<UserEntity>> companyGroup = companyUser.stream()
+				.collect(Collectors.groupingBy(d -> d.getCompanyOrgId()));
+		Map<Long, List<UserEntity>> departMentGroup = departmentUser.stream()
+				.collect(Collectors.groupingBy(d -> d.getDeptOrgId()));
+		Iterator<List<UserEntity>> companyIterator = companyGroup.values().iterator();
+		Iterator<List<UserEntity>> departmentIterator = departMentGroup.values().iterator();
+		while(companyIterator.hasNext()){
+			List<UserEntity> users = companyIterator.next();
+			UserListDto userListDto=new UserListDto();
+			UserEntity user = users.get(0);
+			userListDto.setLabel(user.getCompanyOrgName());
+			userListDto.setId(user.getCompanyOrgId());
+			userListDto.setValue(user.getCompanyOrgName());
+			userListDto.setChildren(setChildrens(users));
+			userListDtos.add(userListDto);
 
-	public List<UserEntity> findUserIdsByUserIds(List<Integer> userIds) {
-		List<UserEntity> userEntities = new ArrayList<>();
-		if(userIds.size()>0){
-			userEntities=userMapper.findUserIdsByUserIds(userIds);
 		}
-		return userEntities;
+		while(departmentIterator.hasNext()){
+			List<UserEntity> users = departmentIterator.next();
+			UserListDto userListDto=new UserListDto();
+			UserEntity user = users.get(0);
+			userListDto.setLabel(user.getDeptOrgName());
+			userListDto.setId(user.getDeptOrgId());
+			userListDto.setValue(user.getDeptOrgName());
+			userListDto.setChildren(setChildrens(users));
+			userListDtos.add(userListDto);
+
+		}
+		return userListDtos;
+	}
+	private List<UserListDto> setChildrens(List<UserEntity> users){
+		List<UserListDto> childrens=new ArrayList<>();
+		users.forEach(u->{
+			UserListDto children=new UserListDto();
+			children.setLabel(u.getUsername());
+			children.setId(u.getId());
+			children.setValue(u.getUsername());
+			childrens.add(children);
+		});
+		return childrens;
 	}
 }

+ 44 - 10
user_center/src/main/resources/mapper/UserMapper.xml

@@ -157,15 +157,49 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
         )
     </select>
-    <select id="findUserIdsByUserIds"  resultType="com.huaxu.entity.UserEntity">
-        SELECT
-        <include refid="userColumns"/>
-        FROM uims_user a
-        <include refid="sysAreaJoins"/>
-        where a.status=1 and
-        a.id in
-        <foreach collection="list" item="item" open="(" close=")" separator=",">
-            #{item}
-        </foreach>
+    <select id="findUserList" resultType="com.huaxu.entity.UserEntity">
+        select a.id,a.DEPT_ORG_ID,a.COMPANY_ORG_ID,
+               a.USERNAME,company.ORG_NAME
+                   companyOrgName,department.ORG_NAME deptOrgName from uims_user a
+            left join uims_org company on a.COMPANY_ORG_ID=company.ID
+            left join uims_org  department on a.DEPT_ORG_ID=department.ID
+            <where>
+                a.status=1 and a.user_type != -9999
+                <if test="user.tenantId != null  and user.tenantId != ''"> and a.tenant_id = #{user.tenantId} </if>
+
+                <if test="user.deptOrgId != null  and user.deptOrgId != ''">
+                    and (a.DEPT_ORG_ID = #{user.deptOrgId}
+                    or a.COMPANY_ORG_ID = #{user.companyOrgId}
+                    )
+                </if>
+                <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+                    <if test="user.permissonType == 5 or user.permissonType == 2">
+                        and ( a.DEPT_ORG_ID in
+                        <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                        or
+                        a.COMPANY_ORG_ID in
+                        <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                        )
+                    </if>
+                    <if test="user.permissonType == 4 or user.permissonType == 3">
+                        and a.DEPT_ORG_ID in
+                        <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                    </if>
+                    <if test="user.permissonType == 1">
+                        and a.COMPANY_ORG_ID in
+                        <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                        and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
+                    </if>
+                </if>
+            </where>
+
     </select>
 </mapper>