value
2024-05-17 2b30df90a4e281c2a37c2933a7389ea0c149ffcc
user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
@@ -1,40 +1,51 @@
package com.yuanchu.mom.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
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.UserMapper;
import com.yuanchu.mom.pojo.Departments;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.UserService;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.util.HeaderToken;
import com.yuanchu.mom.utils.QueryWrappers;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
@Service
@AllArgsConstructor
public class UserServiceImp implements UserService {
    @Resource
    UserMapper userMapper;
    Jwt jwt;
    @Resource
    private GetLook getLook;
    @Resource
    private DepartmentsMapper departmentsMapper;
    @Resource
    private HeaderToken headerToken;
    @Override
    public User selectUserByPwd(String account, String password) {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("account", account).eq("password", DigestUtils.md5DigestAsHex(password.getBytes())).eq("state", 1);
        List<User> list = userMapper.selectList(wrapper);
        return list.size()>0?list.get(0):null;
        return list.size() > 0 ? list.get(0) : null;
    }
    //根据用户id查询用户名
@@ -49,18 +60,20 @@
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(UserPageDto.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectUserList");
        if(map1.get("look")==1) user.setCreateUser(map1.get("userId"));
        if (map1.get("look") == 1) user.setCreateUser(map1.get("userId"));
        map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user)));
        return map;
    }
    @Override
    public int updateUser(User user) {
        user.setDepartId("1,"+user.getDepartId());
        return userMapper.updateById(user);
    }
    @Override
    public int addUser(User user) {
        user.setDepartId("1,"+user.getDepartId());
        return userMapper.insert(user);
    }
@@ -69,8 +82,87 @@
        return userMapper.selectList(Wrappers.<User>lambdaQuery().eq(User::getState, 1).select(User::getName, User::getId));
    }
    //获取设备负责人
    @Override
    public List<User> getDeviceManager() {
        return userMapper.getDeviceManager();
    }
    @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));
    }
    @Override
    public User getUserInfo() {
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null);
        return userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map1.get("userId")).select(User::getId, User::getCompany, User::getName, User::getCode));
    }
    @Override
    public int upUserPassword(String oldPassword, String newPassWord) {
        Map<String, Integer> map = getLook.selectPowerByMethodAndUserId(null);
        User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map.get("userId")).eq(User::getPassword, DigestUtils.md5DigestAsHex(oldPassword.getBytes())).select(User::getId));
        if (BeanUtil.isEmpty(user)) {
            throw new ErrorException("密码不正确");
        }
        user.setPassword(DigestUtils.md5DigestAsHex(newPassWord.getBytes()));
        return userMapper.updateById(user);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int addPersonUser(PersonDto personDto) {
        AtomicReference<String> departId = new AtomicReference<>("");
        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()));
            if(BeanUtil.isEmpty(user)){
                user = new User();
                user.setName(person.getName());
                user.setNameEn("not write");
                user.setAccount(person.getEmployeeID());
                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.setAddress("未填写");
                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.setCreateUser(null);
                user.setCreateTime(null);
                user.setUpdateUser(null);
                user.setUpdateTime(null);
                userMapper.updateById(user);
            }
        });
        return 1;
    }
}