From 85d76785cd5a49ee4e942419afd197bc7ee97d68 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 07 六月 2024 11:34:01 +0800
Subject: [PATCH] 工时bug修改+用户过滤10003

---
 user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java |   76 +++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 34 deletions(-)

diff --git a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
index a39fae2..55d622a 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,12 +11,13 @@
 import com.yuanchu.mom.dto.PersonDto;
 import com.yuanchu.mom.dto.UserPageDto;
 import com.yuanchu.mom.exception.ErrorException;
-import com.yuanchu.mom.mapper.DepartmentsMapper;
+import com.yuanchu.mom.mapper.RoleMapper;
 import com.yuanchu.mom.mapper.UserMapper;
-import com.yuanchu.mom.pojo.Departments;
+import com.yuanchu.mom.pojo.Custom;
+import com.yuanchu.mom.pojo.Role;
 import com.yuanchu.mom.pojo.User;
+import com.yuanchu.mom.service.CustomService;
 import com.yuanchu.mom.service.UserService;
-import com.yuanchu.mom.util.HeaderToken;
 import com.yuanchu.mom.utils.QueryWrappers;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -26,7 +28,8 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
 
 @Service
 public class UserServiceImp implements UserService {
@@ -37,10 +40,10 @@
     private GetLook getLook;
 
     @Resource
-    private DepartmentsMapper departmentsMapper;
+    private RoleMapper roleMapper;
 
     @Resource
-    private HeaderToken headerToken;
+    private CustomService customService;
 
     @Override
     public User selectUserByPwd(String account, String password) {
@@ -63,8 +66,25 @@
         map.put("head", PrintChina.printChina(UserPageDto.class));
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectUserList");
         if (map1.get("look") == 1) user.setCreateUser(map1.get("userId"));
-        map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user)));
-        return map;
+        try {
+            if (user.getRoleId() > 10000) {
+                if (user.getRoleId() != 10001) {
+                    List<Integer> ids = roleMapper.getRoleByDepart(user.getRoleId());
+                    user.setRoleId(null);
+                    map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user).in("role_id", ids)));
+                    return map;
+                } else {
+                    user.setRoleId(null);
+                    map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user)));
+                    return map;
+                }
+            }
+            map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user).eq("role_id", user.getRoleId())));
+            return map;
+        } catch (NullPointerException e) {
+            map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user)));
+            return map;
+        }
     }
 
     @Override
@@ -91,7 +111,11 @@
 
     @Override
     public List<User> getUserMenu() {
-        return userMapper.selectList(Wrappers.<User>lambdaQuery().eq(User::getState, 1).select(User::getName, User::getId));
+        List<Integer> roleIds = roleMapper.selectList(Wrappers.<Role>lambdaQuery()
+                .ne(Role::getCategory, 10003).or(wrapper -> wrapper.isNull(Role::getCategory))).stream().map(Role::getId).distinct().collect(Collectors.toList());
+        return userMapper.selectList(Wrappers.<User>lambdaQuery()
+                .in(User::getRoleId, roleIds)
+                .eq(User::getState, 1).select(User::getName, User::getId));
     }
 
     //鑾峰彇璁惧璐熻矗浜�
@@ -103,7 +127,7 @@
     @Override
     public User getUserNow() {
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null);
-        return userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map1.get("userId")).eq(User::getIsCustom, 1).select(User::getId, User::getCompany, User::getName, User::getCode, User::getPhone));
+        return userMapper.getCustom(map1.get("userId"));
     }
 
     @Override
@@ -126,27 +150,10 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addPersonUser(PersonDto personDto) {
-        AtomicReference<String> departId = new AtomicReference<>("1,");
-        AtomicReference<String> companyName = new AtomicReference<>();
-        personDto.getCompany().forEach(company -> {
-            Departments department = departmentsMapper.selectOne(Wrappers.<Departments>lambdaQuery().eq(Departments::getCompanyId, company.getCompanyId()));
-            if (BeanUtil.isEmpty(department)) {
-                department = new Departments();
-                department.setName(company.getCompanyName());
-                department.setCompanyId(company.getCompanyId());
-                Departments department2 = departmentsMapper.selectOne(Wrappers.<Departments>lambdaQuery().eq(Departments::getCompanyId, company.getParentCompanyId()));
-                if (BeanUtil.isEmpty(department2)) {
-                    department.setFatherId(1);
-                } else {
-                    department.setFatherId(department2.getId());
-                }
-                departmentsMapper.insert(department);
-            }
-            departId.set(departId.get() + department.getId() + ",");
-            companyName.set(department.getName());
-        });
         personDto.getPerson().forEach(person -> {
             User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, person.getEmployeeID()));
+            String companyName = personDto.getCompany().stream().filter(a -> a.getCompanyId().equals(person.getCompanyId())).findFirst().get().getCompanyName();
+            Custom custom = customService.getCustomId(companyName);
             if (BeanUtil.isEmpty(user)) {
                 user = new User();
                 user.setName(person.getName());
@@ -155,23 +162,24 @@
                 user.setPhone(person.getPhoneNumber());
                 user.setEmail(person.getCompanyEmail());
                 user.setIsCustom(person.getCompanyId().equals("SC2463") ? 0 : 1);
-                user.setDepartId(departId.get());
 //                user.setPassword(DigestUtils.md5DigestAsHex(headerToken.getPassword(person.getEmployeeID()).getBytes()));
                 user.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()));
-                user.setCompany(companyName.get());
+                user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName);
                 user.setAddress("鏈~鍐�");
+                user.setRoleId(personDto.getRoleId() > 10000 ? 0 : personDto.getRoleId());
+                user.setCompanyId(person.getCompanyId());
                 userMapper.insert(user);
             } else {
                 user.setName(person.getName());
                 user.setPhone(person.getPhoneNumber());
                 user.setEmail(person.getCompanyEmail());
-                user.setIsCustom(person.getCompanyId().equals("SC2463") ? 0 : 1);
-                user.setDepartId(departId.get());
-                user.setCompany(companyName.get());
+                user.setIsCustom(0);
+                user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName);
                 user.setCreateUser(null);
                 user.setCreateTime(null);
                 user.setUpdateUser(null);
                 user.setUpdateTime(null);
+                user.setCompanyId(person.getCompanyId());
                 userMapper.updateById(user);
             }
         });

--
Gitblit v1.9.3