package com.yuanchu.mom.service.impl; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; 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.RoleMapper; import com.yuanchu.mom.mapper.UserMapper; 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.utils.QueryWrappers; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.DigestUtils; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Service public class UserServiceImp implements UserService { @Resource UserMapper userMapper; @Resource private GetLook getLook; @Resource private RoleMapper roleMapper; @Resource private CustomService customService; @Override public User selectUserByPwd(String account, String password) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("account", account).eq("password", DigestUtils.md5DigestAsHex(password.getBytes())).eq("state", 1); List list = userMapper.selectList(wrapper); return list.size() > 0 ? list.get(0) : null; } //根据用户id查询用户名 @Override public String selectNameById(Integer id) { User user = userMapper.selectById(id); return user.getName(); } @Override public Map selectUserList(IPage page, UserPageDto user) { Map map = new HashMap<>(); map.put("head", PrintChina.printChina(UserPageDto.class)); Map map1 = getLook.selectPowerByMethodAndUserId("selectUserList"); if (map1.get("look") == 1) user.setCreateUser(map1.get("userId")); try{ if(user.getRoleId()>10000){ if(user.getRoleId()!=10001){ List 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 public Map selectPersonnelOverview(IPage page, UserPageDto user) { Map map = new HashMap<>(); map.put("head", PrintChina.printChina(UserPageDto.class)); Map map1 = getLook.selectPowerByMethodAndUserId("selectUserList"); if (map1.get("look") == 1) user.setCreateUser(map1.get("userId")); map.put("body", userMapper.selectPersonnelOverview(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"); return userMapper.insert(user); } @Override public List getUserMenu() { List roleIds = roleMapper.selectList(Wrappers.lambdaQuery().ne(Role::getCategory, 10003)).stream().map(Role::getId).distinct().collect(Collectors.toList()); return userMapper.selectList(Wrappers.lambdaQuery() .in(User::getRoleId, roleIds) .eq(User::getState, 1).select(User::getName, User::getId)); } //获取设备负责人 @Override public List getDeviceManager() { return userMapper.getDeviceManager(); } @Override public User getUserNow() { Map map1 = getLook.selectPowerByMethodAndUserId(null); return userMapper.getCustom(map1.get("userId")); } @Override public User getUserInfo() { Map map1 = getLook.selectPowerByMethodAndUserId(null); return userMapper.selectOne(Wrappers.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 map = getLook.selectPowerByMethodAndUserId(null); User user = userMapper.selectOne(Wrappers.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) { personDto.getPerson().forEach(person -> { User user = userMapper.selectOne(Wrappers.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()); 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.setPassword(DigestUtils.md5DigestAsHex(headerToken.getPassword(person.getEmployeeID()).getBytes())); user.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes())); 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(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); } }); return 1; } @Override public int upUserDepardLimsId(String ids, String id) { List userIds = JSON.parseArray(ids, Integer.class); return userMapper.update(null, Wrappers.lambdaUpdate().in(User::getId, userIds).set(User::getDepartLimsId, id).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateUser, getLook.selectPowerByMethodAndUserId(null).get("userId"))); } @Override public int delUserDepardLimsId(Integer id) { return userMapper.update(null, Wrappers.lambdaUpdate().eq(User::getId, id).set(User::getDepartLimsId, null).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateUser, getLook.selectPowerByMethodAndUserId(null).get("userId"))); } }