diff --git a/src/main/java/com/dreamchaser/depository_manage/service/UserService.java b/src/main/java/com/dreamchaser/depository_manage/service/UserService.java index a004d18d..78a77342 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/UserService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/UserService.java @@ -4,6 +4,7 @@ import com.dreamchaser.depository_manage.entity.Administration; import com.dreamchaser.depository_manage.entity.UserByPort; import java.util.List; +import java.util.Map; /** * user的service层 @@ -31,6 +32,30 @@ public interface UserService { * @param administration 待获取部门 * @return */ - public List getDepartmentHeaderById(Administration administration); + List getDepartmentHeaderById(Administration administration); + + /** + * 根据条件查询用户信息 + * @param map 待查询条件 + * @return + */ + List findUserByCondition(Map map); + + + /** + * 根据条件查询用户数量 + * @param map 待查询条件 + * @return + */ + Integer findUserCountByCondition(Map map); + + + /** + * 根据企业微信或微信id获取用户信息 + * + * @param workWechat 企业微信id + * @return + */ + UserByPort findUserByWorkWechat(String workWechat); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java index dc34706e..d4498161 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java @@ -2,13 +2,18 @@ package com.dreamchaser.depository_manage.service.impl; import com.dreamchaser.depository_manage.entity.Administration; import com.dreamchaser.depository_manage.entity.UserByPort; +import com.dreamchaser.depository_manage.hrNew_mapper.AdministrativeMapper; import com.dreamchaser.depository_manage.hrNew_mapper.UserMapper; +import com.dreamchaser.depository_manage.pojo.UserByPortP; +import com.dreamchaser.depository_manage.service.AdministrativeService; import com.dreamchaser.depository_manage.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service public class UserServiceImpl implements UserService { @@ -16,24 +21,30 @@ public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; + @Autowired + private AdministrativeService administrativeService; + + /** * 通过id获取用户信息 + * * @param id 待获取用户id * @return */ @Override public UserByPort findUserById(Long id) { - return userMapper.findUserById(id); + return packForOne(userMapper.findUserById(id)); } /** * 通过工号获取用户信息 + * * @param number 待获取用户工号 * @return */ @Override public UserByPort findUserByNumber(String number) { - return userMapper.findUserByNumber(number); + return packForOne(userMapper.findUserByNumber(number)); } @@ -44,7 +55,6 @@ public class UserServiceImpl implements UserService { * @return */ public List getDepartmentHeaderById(Administration administration) { - // 用于存储结果集 List userByPortList = new ArrayList<>(); // 查询数据库中当前部门的负责人 @@ -52,14 +62,69 @@ public class UserServiceImpl implements UserService { for (UserByPort departmentHeader : departmentHeaders) { // 获取当前人员的雇佣关系 Integer emptype = departmentHeader.getEmptype(); - if(emptype > 10){ + if (emptype > 10) { // 如果是离职状态,则不加入 continue; } userByPortList.add(departmentHeader); } - return userByPortList; + return packForMoreOne(userByPortList); + } + + /** + * 根据条件查询用户信息 + * @param map 待查询条件 + * @return + */ + @Override + public List findUserByCondition(Map map) { + return packForMoreOne(userMapper.findUserByCondition(map)); } + /** + * 根据条件查询用户数量 + * @param map 待查询条件 + * @return + */ + public Integer findUserCountByCondition(Map map){ + return userMapper.findUserCountByCondition(map); + } + + /** + * 根据企业微信或微信id获取用户信息 + * + * @param workWechat 企业微信id + * @return + */ + @Override + public UserByPort findUserByWorkWechat(String workWechat) { + return packForOne(userMapper.findUserByWorkWechat(workWechat)); + } + + public UserByPort packForOne(UserByPort userByPort) { + // 获取当前用户所处部门 + Administration departmentByUser = administrativeService.getDepartmentByUser(userByPort); + userByPort.setMaindeparmentname(departmentByUser.getName()); + userByPort.setMaindeparment(departmentByUser.getId()); + return userByPort; + } + + public List packForMoreOne(List userByPortList) { + Map administrationMap = new HashMap<>(); + for (UserByPort userByPort : userByPortList) { + Long maindeparment = userByPort.getMaindeparment(); + Administration departmentByUser = null; + if (administrationMap.containsKey(maindeparment)) { + departmentByUser = administrationMap.get(maindeparment); + } else { + departmentByUser = administrativeService.getDepartmentByUser(userByPort); + administrationMap.put(maindeparment, departmentByUser); + } + // 获取当前用户所处部门 + userByPort.setMaindeparmentname(departmentByUser.getName()); + userByPort.setMaindeparment(departmentByUser.getId()); + } + return userByPortList; + } } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/EncryptionAlgorithm.java b/src/main/java/com/dreamchaser/depository_manage/utils/EncryptionAlgorithmUtil.java similarity index 77% rename from src/main/java/com/dreamchaser/depository_manage/entity/EncryptionAlgorithm.java rename to src/main/java/com/dreamchaser/depository_manage/utils/EncryptionAlgorithmUtil.java index 1a4559f9..f0c381cb 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/EncryptionAlgorithm.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/EncryptionAlgorithmUtil.java @@ -1,5 +1,6 @@ -package com.dreamchaser.depository_manage.entity; +package com.dreamchaser.depository_manage.utils; +import com.dreamchaser.depository_manage.entity.UserByPort; import lombok.Data; import lombok.extern.log4j.Log4j2; import org.apache.commons.codec.digest.DigestUtils; @@ -20,18 +21,21 @@ import java.util.Map; */ @Log4j2 @Data -public class EncryptionAlgorithm { +public class EncryptionAlgorithmUtil { private static String CONSTANT_CONFIG_AppKey = "heng_xin_gao_ke_AppKey"; //应用程序密钥 private String code; private String appkey; - public EncryptionAlgorithm(String code) { + public EncryptionAlgorithmUtil(String code) { this.code = code; this.appkey = CONSTANT_CONFIG_AppKey; } + public EncryptionAlgorithmUtil() { + } + public String Algorithm() { String keyMd5 = DigestUtils.md5Hex(this.appkey); String codeMd51 = DigestUtils.md5Hex(this.code); @@ -51,10 +55,10 @@ public class EncryptionAlgorithm { if(userByPort == null){ return null; } - EncryptionAlgorithm md5EncryptionForNumber = new EncryptionAlgorithm(userByPort.getNumber()); + EncryptionAlgorithmUtil md5EncryptionForNumber = new EncryptionAlgorithmUtil(userByPort.getNumber()); String userKey = md5EncryptionForNumber.Algorithm(); - EncryptionAlgorithm md5Encryption = new EncryptionAlgorithm(CONSTANT_CONFIG_AppKey); + EncryptionAlgorithmUtil md5Encryption = new EncryptionAlgorithmUtil(CONSTANT_CONFIG_AppKey); String sha1Str = userKey + userByPort.getNumber() + userByPort.getPassword() + md5Encryption.Algorithm(); String userToken = DigestUtils.sha1Hex(sha1Str); diff --git a/src/test/java/com/dreamchaser/depository_manage/MoreDatasourceTest.java b/src/test/java/com/dreamchaser/depository_manage/MoreDatasourceTest.java index 72f6d5b7..df0d3ace 100644 --- a/src/test/java/com/dreamchaser/depository_manage/MoreDatasourceTest.java +++ b/src/test/java/com/dreamchaser/depository_manage/MoreDatasourceTest.java @@ -4,6 +4,9 @@ import com.dreamchaser.depository_manage.entity.Administration; import com.dreamchaser.depository_manage.entity.UserByPort; import com.dreamchaser.depository_manage.hrNew_mapper.AdministrativeMapper; import com.dreamchaser.depository_manage.hrNew_mapper.UserMapper; +import com.dreamchaser.depository_manage.service.AdministrativeService; +import com.dreamchaser.depository_manage.service.UserService; +import com.dreamchaser.depository_manage.utils.EncryptionAlgorithmUtil; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -15,109 +18,19 @@ import java.util.*; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @RunWith(SpringRunner.class) public class MoreDatasourceTest { - @Autowired - UserMapper userMapper; - - @Autowired - AdministrativeMapper administrativeMapper; - - @Test - public void test() { - UserByPort userById = userMapper.findUserById(6235L); - } - - - /** - * 获取当前用户所处部门 - * - * @param userByPort 待获取用户 - * @return - */ - public Administration getUserDepartmentId(UserByPort userByPort) { - Long maindeparment = userByPort.getMaindeparment(); - if (Long.compare(309, maindeparment) == 0) { - // 如果是顶级 - return getDepartmentId(userByPort.getAdminorg()); - } - return administrativeMapper.findAdministrationById(maindeparment); - - } - - - /** - * 获取当前用户所处的部门id - * - * @param departmentId 待获取部门id - * @return - */ - public Administration getDepartmentId(Long departmentId) { - List administrationsAll = administrativeMapper.findAdministrationsAll(); - return getDepartmentForRecursion(departmentId, administrationsAll); - } - - /** - * 用于递归获取高科部门级行政组织 - * - * @param departmentId 当前行政组织id - * @param administrationList 行政组织列表 - * @return - */ - public Administration getDepartmentForRecursion(Long departmentId, List administrationList) { - for (Administration administration : administrationList) { - Long administrationId = administration.getId(); - if (Long.compare(administrationId, departmentId) == 0) { - Long superior = administration.getSuperior(); - if (Long.compare(superior, 309) == 0) { - return administration; - } else { - return getDepartmentForRecursion(superior, administrationList); - } - } - } - return null; - } - - - /** - * 获取当前部门的部门负责人 - * - * @param administration 待获取部门 - * @return - */ - public List getDepartmentHeaderById(Administration administration) { - - // 用于存储结果集 - List userByPortList = new ArrayList<>(); - // 查询数据库中当前部门的负责人 - List departmentHeaders = userMapper.findDepartmentHeaders(administration.getId()); - for (UserByPort departmentHeader : departmentHeaders) { - // 获取当前人员的雇佣关系 - Integer emptype = departmentHeader.getEmptype(); - if (emptype > 10) { - // 如果是离职状态,则不加入 - continue; - } - userByPortList.add(departmentHeader); - } - return userByPortList; - } - - - /** - * 根据id获取行政组织 - * - * @param id 待获取id - * @return - */ - public Administration findTopAdministrationById(Long id) { - return administrativeMapper.findAdministrationById(id); - } - - - public UserByPort getUserByWorkWechat(String workWechat) { - - return null; - } + @Autowired + private UserService userService; + + @Autowired + private AdministrativeService administrativeService; + + @Test + public void test(){ + UserByPort userByWorkWechat = userService.findUserByWorkWechat("PangFuZhen"); + EncryptionAlgorithmUtil encryptionAlgorithmUtil = new EncryptionAlgorithmUtil(); + Map userKeyAndUserToken = encryptionAlgorithmUtil.getUserKeyAndUserToken(userByWorkWechat); + System.out.println(userKeyAndUserToken); + }