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. 107
      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 java.util.List;
import java.util.Map;
/**
* user的service层
@ -31,6 +32,30 @@ public interface UserService {
* @param administration 待获取部门
* @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.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<UserByPort> getDepartmentHeaderById(Administration administration) {
// 用于存储结果集
List<UserByPort> 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<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.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);

107
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;
@ -16,107 +19,17 @@ import java.util.*;
@RunWith(SpringRunner.class)
public class MoreDatasourceTest {
@Autowired
UserMapper userMapper;
private UserService userService;
@Autowired
AdministrativeMapper administrativeMapper;
private AdministrativeService administrativeService;
@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<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;
public void test(){
UserByPort userByWorkWechat = userService.findUserByWorkWechat("PangFuZhen");
EncryptionAlgorithmUtil encryptionAlgorithmUtil = new EncryptionAlgorithmUtil();
Map<String, String> userKeyAndUserToken = encryptionAlgorithmUtil.getUserKeyAndUserToken(userByWorkWechat);
System.out.println(userKeyAndUserToken);
}

Loading…
Cancel
Save