|
@@ -0,0 +1,190 @@
|
|
|
+package com.factory.web.service.impl.remote;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.factory.web.service.remote.UserInfoService;
|
|
|
+import com.factory.web.mapper.remote.DictMapper;
|
|
|
+import com.factory.web.mapper.remote.RoleMapper;
|
|
|
+import com.factory.web.mapper.remote.UserInfoMapper;
|
|
|
+import com.factory.web.mapper.remote.UserRoleMapper;
|
|
|
+import com.factory.web.entity.vo.req.UserInsertReq;
|
|
|
+import com.factory.web.entity.vo.req.UserLockReq;
|
|
|
+import com.factory.web.entity.vo.req.UserPageQueryReq;
|
|
|
+import com.factory.web.entity.vo.res.UserRes;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.factory.base.entity.aggregates.PageBean;
|
|
|
+import com.factory.base.entity.aggregates.ResponseBean;
|
|
|
+import com.factory.base.entity.constant.res.SystemConstant;
|
|
|
+import com.factory.base.entity.po.remote.Dict;
|
|
|
+import com.factory.base.entity.po.remote.Role;
|
|
|
+import com.factory.base.entity.po.remote.UserInfo;
|
|
|
+import com.factory.base.entity.po.remote.UserRole;
|
|
|
+import com.factory.base.util.res.ResponseBeanBuilder;
|
|
|
+import com.factory.user.util.Base64;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private UserRoleMapper userRoleMapper;
|
|
|
+ @Resource
|
|
|
+ private RoleMapper roleMapper;
|
|
|
+ @Resource
|
|
|
+ private DictMapper dictMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getNameById(Long id) {
|
|
|
+ String name = SystemConstant.EMPTY_STRING;
|
|
|
+ if (id == null) {
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ UserInfo userInfo = getById(id);
|
|
|
+ if (userInfo != null) {
|
|
|
+ name = userInfo.getName();
|
|
|
+ }
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public List<UserInfo> getListByNameOrNo(String word) {
|
|
|
+ return list(Wrappers.<UserInfo>lambdaQuery().like(UserInfo::getName, word).or().like(UserInfo::getNo, word));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseBean<PageBean<UserRes>> selectUser(UserPageQueryReq userPageQueryReq) {
|
|
|
+ LambdaQueryWrapper<UserInfo> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.orderByDesc(UserInfo::getId);
|
|
|
+ if (userPageQueryReq.getName() != null) {
|
|
|
+ wrapper.like(UserInfo::getUsername, userPageQueryReq.getName());
|
|
|
+ }
|
|
|
+ if (userPageQueryReq.getRoleId() != null) {
|
|
|
+ List<UserRole> userRoles = userRoleMapper.selectList(Wrappers.<UserRole>lambdaQuery().eq(UserRole::getRoleId, userPageQueryReq.getRoleId()));
|
|
|
+ if (CollUtil.isNotEmpty(userRoles)) {
|
|
|
+ List<Long> userIds = userRoles.stream().map(UserRole::getUserId).collect(Collectors.toList());
|
|
|
+ wrapper.in(UserInfo::getId, userIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ IPage<UserInfo> page = new Page<>(userPageQueryReq.getPage(), userPageQueryReq.getSize());
|
|
|
+ IPage<UserInfo> userInfoPage = baseMapper.selectPage(page, wrapper);
|
|
|
+ List<UserInfo> records = userInfoPage.getRecords();
|
|
|
+ List<UserRes> userResList = records.stream().map(x -> {
|
|
|
+ UserRes userRes = new UserRes();
|
|
|
+ userRes.setId(x.getId());
|
|
|
+ userRes.setUsername(x.getUsername());
|
|
|
+ List<UserRole> userRoles = userRoleMapper.selectList(Wrappers.<UserRole>lambdaQuery().eq(UserRole::getUserId, x.getId()));
|
|
|
+ if (CollUtil.isNotEmpty(userRoles)) {
|
|
|
+ Role role = roleMapper.selectById(userRoles.get(0).getRoleId());
|
|
|
+ userRes.setRoleId(role.getId());
|
|
|
+ userRes.setRoleName(role.getName());
|
|
|
+ }
|
|
|
+ userRes.setShiftId(x.getShiftId());
|
|
|
+ if (x.getShiftId() != null) {
|
|
|
+ Dict dict = dictMapper.selectById(x.getShiftId());
|
|
|
+ if (dict != null) {
|
|
|
+ userRes.setShiftName(dict.getDictVal());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String psd = new String(Base64.decode(x.getPassword()));
|
|
|
+ userRes.setPassWord(psd);
|
|
|
+ userRes.setLock(x.isLock());
|
|
|
+ return userRes;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ return ResponseBeanBuilder.ok(PageBean.<UserRes>builder().row(userResList).total(userInfoPage.getTotal()).page(userInfoPage.getPages()).build());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseBean<String> insertUser(UserInsertReq userInsertReq) {
|
|
|
+ UserInfo userInfo = new UserInfo();
|
|
|
+ if (userInsertReq.getUsername() != null) {
|
|
|
+ Integer count = baseMapper.selectCount(Wrappers.<UserInfo>lambdaQuery().eq(UserInfo::getUsername, userInsertReq.getUsername()));
|
|
|
+ if (count > 0) {
|
|
|
+ return ResponseBeanBuilder.fail("用户名重复!");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return ResponseBeanBuilder.fail("用户名不能为空");
|
|
|
+ }
|
|
|
+ if (userInsertReq.getPassword() == null) {
|
|
|
+ return ResponseBeanBuilder.fail("密码不能为空");
|
|
|
+ }
|
|
|
+ if (userInsertReq.getRoleId() == 55) {
|
|
|
+ if (userInsertReq.getShiftId()==null){
|
|
|
+ return ResponseBeanBuilder.fail("班次不能为空");
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ userInfo.setUsername(userInsertReq.getUsername());
|
|
|
+ String psd = Base64.encode(userInsertReq.getPassword().getBytes());
|
|
|
+ userInfo.setPassword(psd);
|
|
|
+ userInfo.setEffectiveTime(LocalDateTime.now());
|
|
|
+ if (userInsertReq.getShiftId() != null) {
|
|
|
+ userInfo.setShiftId(userInsertReq.getShiftId());
|
|
|
+ }
|
|
|
+ int insert = baseMapper.insert(userInfo);
|
|
|
+ if (insert > 0) {
|
|
|
+ if (userInsertReq.getRoleId() != null) {
|
|
|
+ UserRole userRole = new UserRole();
|
|
|
+ userRole.setUserId(userInfo.getId());
|
|
|
+ userRole.setRoleId(userInsertReq.getRoleId());
|
|
|
+ userRoleMapper.insert(userRole);
|
|
|
+ }
|
|
|
+ return ResponseBeanBuilder.ok("新增成功!");
|
|
|
+ }
|
|
|
+ return ResponseBeanBuilder.ok("新增失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseBean<String> updateUser(UserInsertReq userInsertReq) {
|
|
|
+ UserInfo userInfo = new UserInfo();
|
|
|
+ if (userInsertReq.getUsername() != null) {
|
|
|
+ UserInfo userInfos = baseMapper.selectOne(Wrappers.<UserInfo>lambdaQuery().eq(UserInfo::getUsername, userInsertReq.getUsername()));
|
|
|
+ if(BeanUtil.isNotEmpty(userInfos)){
|
|
|
+ if (!userInfos.getId().equals(userInsertReq.getId())) {
|
|
|
+ return ResponseBeanBuilder.fail("用户名重复!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return ResponseBeanBuilder.fail("用户名不能为空");
|
|
|
+ }
|
|
|
+ if (userInsertReq.getPassword() == null) {
|
|
|
+ return ResponseBeanBuilder.fail("密码不能为空");
|
|
|
+ }
|
|
|
+ userInfo.setUsername(userInsertReq.getUsername());
|
|
|
+ String psd = Base64.encode(userInsertReq.getPassword().getBytes());
|
|
|
+ userInfo.setPassword(psd);
|
|
|
+ userInfo.setShiftId(userInsertReq.getShiftId());
|
|
|
+ userInfo.setId(userInsertReq.getId());
|
|
|
+ int up = baseMapper.updateById(userInfo);
|
|
|
+ if (up > 0) {
|
|
|
+ if (userInsertReq.getRoleId() != null) {
|
|
|
+ UserRole userRole = new UserRole();
|
|
|
+ userRole.setRoleId(userInsertReq.getRoleId());
|
|
|
+ userRoleMapper.update(userRole, Wrappers.<UserRole>lambdaQuery().eq(UserRole::getUserId, userInsertReq.getId()));
|
|
|
+ }
|
|
|
+ return ResponseBeanBuilder.ok("修改成功!");
|
|
|
+ }
|
|
|
+ return ResponseBeanBuilder.ok("修改失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseBean<String> userLock(UserLockReq userLockReq) {
|
|
|
+ UserInfo userInfo = new UserInfo();
|
|
|
+ userInfo.setId(userLockReq.getId());
|
|
|
+ userInfo.setLock(userLockReq.isNo());
|
|
|
+ userInfo.setShiftId(userLockReq.getShiftId());
|
|
|
+ boolean b = this.updateById(userInfo);
|
|
|
+ if (b) {
|
|
|
+ return ResponseBeanBuilder.ok("操作成功!");
|
|
|
+ }
|
|
|
+ return ResponseBeanBuilder.fail("操作失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+}
|