Browse Source

添加hr_new数据库的查询

lwx_dev
erdanergou 2 years ago
parent
commit
9c7babbbfb
  1. 27
      src/main/java/com/dreamchaser/depository_manage/service/UserService.java
  2. 75
      src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java
  3. 14
      src/main/java/com/dreamchaser/depository_manage/utils/EncryptionAlgorithmUtil.java
  4. 119
      src/test/java/com/dreamchaser/depository_manage/MoreDatasourceTest.java

27
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 com.dreamchaser.depository_manage.entity.UserByPort;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* user的service层 * user的service层
@ -31,6 +32,30 @@ public interface UserService {
* @param administration 待获取部门 * @param administration 待获取部门
* @return * @return
*/ */
public List<UserByPort> getDepartmentHeaderById(Administration administration); List<UserByPort> getDepartmentHeaderById(Administration administration);
/**
* 根据条件查询用户信息
* @param map 待查询条件
* @return
*/
List<UserByPort> findUserByCondition(Map<String, Object> map);
/**
* 根据条件查询用户数量
* @param map 待查询条件
* @return
*/
Integer findUserCountByCondition(Map<String, Object> map);
/**
* 根据企业微信或微信id获取用户信息
*
* @param workWechat 企业微信id
* @return
*/
UserByPort findUserByWorkWechat(String workWechat);
} }

75
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.Administration;
import com.dreamchaser.depository_manage.entity.UserByPort; 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.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 com.dreamchaser.depository_manage.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
public class UserServiceImpl implements UserService { public class UserServiceImpl implements UserService {
@ -16,24 +21,30 @@ public class UserServiceImpl implements UserService {
@Autowired @Autowired
private UserMapper userMapper; private UserMapper userMapper;
@Autowired
private AdministrativeService administrativeService;
/** /**
* 通过id获取用户信息 * 通过id获取用户信息
*
* @param id 待获取用户id * @param id 待获取用户id
* @return * @return
*/ */
@Override @Override
public UserByPort findUserById(Long id) { public UserByPort findUserById(Long id) {
return userMapper.findUserById(id); return packForOne(userMapper.findUserById(id));
} }
/** /**
* 通过工号获取用户信息 * 通过工号获取用户信息
*
* @param number 待获取用户工号 * @param number 待获取用户工号
* @return * @return
*/ */
@Override @Override
public UserByPort findUserByNumber(String number) { public UserByPort findUserByNumber(String number) {
return userMapper.findUserByNumber(number); return packForOne(userMapper.findUserByNumber(number));
} }
@ -44,7 +55,6 @@ public class UserServiceImpl implements UserService {
* @return * @return
*/ */
public List<UserByPort> getDepartmentHeaderById(Administration administration) { public List<UserByPort> getDepartmentHeaderById(Administration administration) {
// 用于存储结果集 // 用于存储结果集
List<UserByPort> userByPortList = new ArrayList<>(); List<UserByPort> userByPortList = new ArrayList<>();
// 查询数据库中当前部门的负责人 // 查询数据库中当前部门的负责人
@ -52,14 +62,69 @@ public class UserServiceImpl implements UserService {
for (UserByPort departmentHeader : departmentHeaders) { for (UserByPort departmentHeader : departmentHeaders) {
// 获取当前人员的雇佣关系 // 获取当前人员的雇佣关系
Integer emptype = departmentHeader.getEmptype(); Integer emptype = departmentHeader.getEmptype();
if(emptype > 10){ if (emptype > 10) {
// 如果是离职状态,则不加入 // 如果是离职状态,则不加入
continue; continue;
} }
userByPortList.add(departmentHeader); userByPortList.add(departmentHeader);
} }
return userByPortList; return packForMoreOne(userByPortList);
}
/**
* 根据条件查询用户信息
* @param map 待查询条件
* @return
*/
@Override
public List<UserByPort> findUserByCondition(Map<String, Object> map) {
return packForMoreOne(userMapper.findUserByCondition(map));
} }
/**
* 根据条件查询用户数量
* @param map 待查询条件
* @return
*/
public Integer findUserCountByCondition(Map<String, Object> 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<UserByPort> packForMoreOne(List<UserByPort> userByPortList) {
Map<Long, Administration> 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;
}
} }

14
src/main/java/com/dreamchaser/depository_manage/entity/EncryptionAlgorithm.java → 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.Data;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
@ -20,18 +21,21 @@ import java.util.Map;
*/ */
@Log4j2 @Log4j2
@Data @Data
public class EncryptionAlgorithm { public class EncryptionAlgorithmUtil {
private static String CONSTANT_CONFIG_AppKey = "heng_xin_gao_ke_AppKey"; //应用程序密钥 private static String CONSTANT_CONFIG_AppKey = "heng_xin_gao_ke_AppKey"; //应用程序密钥
private String code; private String code;
private String appkey; private String appkey;
public EncryptionAlgorithm(String code) { public EncryptionAlgorithmUtil(String code) {
this.code = code; this.code = code;
this.appkey = CONSTANT_CONFIG_AppKey; this.appkey = CONSTANT_CONFIG_AppKey;
} }
public EncryptionAlgorithmUtil() {
}
public String Algorithm() { public String Algorithm() {
String keyMd5 = DigestUtils.md5Hex(this.appkey); String keyMd5 = DigestUtils.md5Hex(this.appkey);
String codeMd51 = DigestUtils.md5Hex(this.code); String codeMd51 = DigestUtils.md5Hex(this.code);
@ -51,10 +55,10 @@ public class EncryptionAlgorithm {
if(userByPort == null){ if(userByPort == null){
return null; return null;
} }
EncryptionAlgorithm md5EncryptionForNumber = new EncryptionAlgorithm(userByPort.getNumber()); EncryptionAlgorithmUtil md5EncryptionForNumber = new EncryptionAlgorithmUtil(userByPort.getNumber());
String userKey = md5EncryptionForNumber.Algorithm(); 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 sha1Str = userKey + userByPort.getNumber() + userByPort.getPassword() + md5Encryption.Algorithm();
String userToken = DigestUtils.sha1Hex(sha1Str); String userToken = DigestUtils.sha1Hex(sha1Str);

119
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.entity.UserByPort;
import com.dreamchaser.depository_manage.hrNew_mapper.AdministrativeMapper; import com.dreamchaser.depository_manage.hrNew_mapper.AdministrativeMapper;
import com.dreamchaser.depository_manage.hrNew_mapper.UserMapper; 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.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -15,109 +18,19 @@ import java.util.*;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
public class MoreDatasourceTest { public class MoreDatasourceTest {
@Autowired @Autowired
UserMapper userMapper; private UserService userService;
@Autowired @Autowired
AdministrativeMapper administrativeMapper; private AdministrativeService administrativeService;
@Test @Test
public void test() { public void test(){
UserByPort userById = userMapper.findUserById(6235L); UserByPort userByWorkWechat = userService.findUserByWorkWechat("PangFuZhen");
} EncryptionAlgorithmUtil encryptionAlgorithmUtil = new EncryptionAlgorithmUtil();
Map<String, String> userKeyAndUserToken = encryptionAlgorithmUtil.getUserKeyAndUserToken(userByWorkWechat);
System.out.println(userKeyAndUserToken);
/** }
* 获取当前用户所处部门
*
* @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<Administration> administrationsAll = administrativeMapper.findAdministrationsAll();
return getDepartmentForRecursion(departmentId, administrationsAll);
}
/**
* 用于递归获取高科部门级行政组织
*
* @param departmentId 当前行政组织id
* @param administrationList 行政组织列表
* @return
*/
public Administration getDepartmentForRecursion(Long departmentId, List<Administration> 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<UserByPort> getDepartmentHeaderById(Administration administration) {
// 用于存储结果集
List<UserByPort> userByPortList = new ArrayList<>();
// 查询数据库中当前部门的负责人
List<UserByPort> 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;
}

Loading…
Cancel
Save