|
|
@@ -17,14 +17,18 @@ import com.middle.platform.system.biz.mapper.SysUserMapper;
|
|
|
import com.middle.platform.system.biz.pojo.req.SysUserPagePara;
|
|
|
import com.middle.platform.system.biz.pojo.req.SysUserPara;
|
|
|
import com.middle.platform.system.biz.pojo.req.SysUserUpdPara;
|
|
|
+import com.middle.platform.system.biz.pojo.res.SysMenuVo;
|
|
|
import com.middle.platform.system.biz.pojo.res.SysUserVo;
|
|
|
+import com.middle.platform.system.biz.pojo.res.UserDetailVo;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
@@ -128,7 +132,7 @@ public class SysUserService {
|
|
|
* @return
|
|
|
*/
|
|
|
private void checkUser(String username) {
|
|
|
- SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username).last("limit 1"));
|
|
|
+ SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username).eq(SysUser::getDelFlag, Global.UN_DEL).last("limit 1"));
|
|
|
if (Objects.nonNull(sysUser)) {
|
|
|
throw new BusinessException("账号已存在");
|
|
|
}
|
|
|
@@ -145,6 +149,8 @@ public class SysUserService {
|
|
|
if (Objects.isNull(sysUser)) {
|
|
|
throw new BusinessException("用户不存在");
|
|
|
}
|
|
|
+ sysUser.setUpdateBy(null);
|
|
|
+ sysUser.setUpdateTime(null);
|
|
|
return sysUser;
|
|
|
}
|
|
|
|
|
|
@@ -167,7 +173,10 @@ public class SysUserService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Object remove(Long id) {
|
|
|
//删除用户
|
|
|
- sysUserMapper.deleteById(id);
|
|
|
+ SysUser sysUser = new SysUser();
|
|
|
+ sysUser.setDeleteTime(LocalDateTime.now());
|
|
|
+ sysUser.setDelFlag(Global.DEL);
|
|
|
+ sysUserMapper.update(sysUser, new LambdaQueryWrapper<SysUser>().eq(SysUser::getId, id).eq(SysUser::getDelFlag, Global.UN_DEL));
|
|
|
//删除用户关联菜单
|
|
|
sysUserMenuService.removeMenu(id);
|
|
|
return true;
|
|
|
@@ -179,22 +188,45 @@ public class SysUserService {
|
|
|
* @param sysUserPara
|
|
|
* @return
|
|
|
*/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Object update(SysUserUpdPara sysUserPara) {
|
|
|
SysUser sysUser = checkUser(sysUserPara.getId());
|
|
|
sysUser.setName(sysUserPara.getName());
|
|
|
sysUser.setSex(sysUserPara.getSex());
|
|
|
sysUser.setPhone(sysUserPara.getPhone());
|
|
|
- if(StringUtils.isNotBlank(sysUserPara.getPassword())){
|
|
|
+ if (StringUtils.isNotBlank(sysUserPara.getPassword())) {
|
|
|
sysUser.setPassword(Optional.of(sysUserPara.getPassword()).map(HashUtil::argon2).orElseGet(() -> HashUtil.argon2(defaultPass)));
|
|
|
}
|
|
|
- sysUser.setStatus(Global.USE);
|
|
|
sysUser.setRemark(sysUserPara.getRemark());
|
|
|
sysUserMapper.updateById(sysUser);
|
|
|
- //用户id主键
|
|
|
- Long id = sysUser.getId();
|
|
|
+ //先删除,再新增
|
|
|
+ sysUserMenuService.removeMenu(sysUser.getId());
|
|
|
if (!CollectionUtils.isEmpty(sysUserPara.getMenu())) {
|
|
|
- sysUserMenuService.save(id, sysUserPara.getMenu());
|
|
|
+ sysUserMenuService.save(sysUser.getId(), sysUserPara.getMenu());
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询详情
|
|
|
+ *
|
|
|
+ * @param id 用户id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Object detail(Long id) {
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(id);
|
|
|
+ if (Objects.isNull(sysUser)) {
|
|
|
+ throw new BusinessException("用户不存在");
|
|
|
+ }
|
|
|
+ SysUserVo sysUserVo = new SysUserVo();
|
|
|
+ BeanUtils.copyProperties(sysUser, sysUserVo);
|
|
|
+ Optional.of(sysUserVo).ifPresent(u -> Optional.ofNullable(dictApi.query(DictType.SEX_TYPE, String.valueOf(u.getSex()))).ifPresent(d -> u.setSexLabel(d.getLabel())));
|
|
|
+ UserDetailVo userDetailVo = new UserDetailVo();
|
|
|
+ userDetailVo.setSysUserVo(sysUserVo);
|
|
|
+
|
|
|
+ //查询用户菜单
|
|
|
+ List<SysMenuVo> query = sysUserMenuService.queryUserMenu(id);
|
|
|
+ userDetailVo.setMenuList(query);
|
|
|
+ return userDetailVo;
|
|
|
+ }
|
|
|
}
|