Compare commits
3 Commits
98dd3e1938
...
344666b50b
| Author | SHA1 | Date |
|---|---|---|
|
|
344666b50b | |
|
|
51caef89ef | |
|
|
183ac999cb |
|
|
@ -32,7 +32,7 @@ public interface RoleMapper extends BaseMapper<Role> {
|
|||
"LEFT JOIN " +
|
||||
" ed_file_info f ON rp.file_id = f.id " +
|
||||
"LEFT JOIN" +
|
||||
" ed_user_role ur ON r.role_id = ur.role_id " +
|
||||
" ed_user_role ur ON r.id = ur.role_id " +
|
||||
"LEFT JOIN" +
|
||||
" ed_users u ON ur.user_id = u.user_id " +
|
||||
"WHERE " +
|
||||
|
|
@ -41,7 +41,7 @@ public interface RoleMapper extends BaseMapper<Role> {
|
|||
" AND ${ew.sqlSegment} " +
|
||||
"</if>" +
|
||||
"GROUP BY " +
|
||||
" r.role_id" +
|
||||
" r.id" +
|
||||
"</script>")
|
||||
Page<RoleDTO> getPageRoleDTO(Page<RoleDTO> page, @Param(Constants.WRAPPER) QueryWrapper<Role> queryWrapper);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,31 +12,6 @@ import java.util.List;
|
|||
@Mapper
|
||||
public interface UserMapper extends BaseMapper<User> {
|
||||
|
||||
/**
|
||||
* 插入
|
||||
*
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
int insert(User user);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
int modify(User user);
|
||||
|
||||
/**
|
||||
* 发布
|
||||
*
|
||||
* @param publishParam
|
||||
* @return
|
||||
*/
|
||||
int publish(PublishParam publishParam);
|
||||
|
||||
/**
|
||||
* 通过工号查询用户
|
||||
*
|
||||
|
|
@ -45,7 +20,7 @@ public interface UserMapper extends BaseMapper<User> {
|
|||
*/
|
||||
User selectUserByWorkNumber(String workNumber);
|
||||
|
||||
/**
|
||||
/*
|
||||
* 通过用户编码查询用户
|
||||
*
|
||||
* @param userId
|
||||
|
|
@ -69,14 +44,6 @@ public interface UserMapper extends BaseMapper<User> {
|
|||
*/
|
||||
int getTotalCount(SearchKeyWords searchKeywords);
|
||||
|
||||
/**
|
||||
* 通过用户ID删除用户
|
||||
*
|
||||
* @param userDeleteKeyWords
|
||||
* @return
|
||||
*/
|
||||
int deleteUser(UserDeleteKeyWords userDeleteKeyWords);
|
||||
|
||||
/**
|
||||
* 查找用户角色名称
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,24 +1,25 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.cons.UserConstants;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.SignUtils;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@TableName("ed_users")
|
||||
@Data
|
||||
public class User {
|
||||
public class User extends BaseModel{
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户编码
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 用户姓名
|
||||
*/
|
||||
|
|
@ -88,35 +89,20 @@ public class User {
|
|||
* 盐
|
||||
*/
|
||||
private String salt;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String creator;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
*/
|
||||
private String creatorName;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date gmtCreate;
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private String modifier;
|
||||
/**
|
||||
* 更新人姓名
|
||||
*/
|
||||
private String modifierName;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date gmtModified;
|
||||
|
||||
/**
|
||||
* 是否有效:0-无效 1-有效
|
||||
*/
|
||||
private Integer effectFlag;
|
||||
|
||||
public void newInit() {
|
||||
String id = IdWorker.getSnowFlakeIdString();
|
||||
String userId = UserThreadLocal.getUserId();
|
||||
this.setId(id);
|
||||
Date now = new Date();
|
||||
this.setCreatedTime(now);
|
||||
this.setUpdatedTime(now);
|
||||
this.setCreatedBy(userId);
|
||||
this.setUpdatedBy(userId);
|
||||
this.setEffectFlag(EffectFlagEnum.EFFECT.code);
|
||||
this.setSalt(RandomUtil.randomString(16));
|
||||
this.setUserPwd(SignUtils.MD5(UserConstants.DEFAULT_PASSWORD + this.getSalt()));
|
||||
this.setIsPublished(UserConstants.DEFAULT_PUBLISH_STATUS);
|
||||
this.setIsActivated(UserConstants.DEFAULT_ACTIVE_STATUS);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,22 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("ed_user_role")
|
||||
public class UserRole {
|
||||
public class UserRole extends BaseModel{
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableField(value = "id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 用户编码
|
||||
|
|
@ -19,4 +30,16 @@ public class UserRole {
|
|||
*/
|
||||
@TableField(value = "role_id")
|
||||
private String roleId;
|
||||
|
||||
public void newInit() {
|
||||
String id = IdWorker.getSnowFlakeIdString();
|
||||
Date now = new Date();
|
||||
String userId = UserThreadLocal.getUserId();
|
||||
this.setId(id);
|
||||
this.setCreatedTime(now);
|
||||
this.setUpdatedTime(now);
|
||||
this.setCreatedBy(userId);
|
||||
this.setUpdatedBy(userId);
|
||||
this.setEffectFlag(EffectFlagEnum.EFFECT.code);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,13 +13,4 @@ public class PublishParam {
|
|||
*/
|
||||
private List<String> userIds;
|
||||
|
||||
/**
|
||||
* 编辑者
|
||||
*/
|
||||
private String modifier;
|
||||
|
||||
/**
|
||||
* 编辑者姓名
|
||||
*/
|
||||
private String modifierName;
|
||||
}
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.other;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
|
@ -11,14 +14,10 @@ public class SingleUserResponse {
|
|||
|
||||
private static final long serialVersionUID = -7475233976453471059L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户编码
|
||||
*/
|
||||
@JsonProperty("id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
|
|
@ -51,11 +50,6 @@ public class SingleUserResponse {
|
|||
*/
|
||||
private String userAccount;
|
||||
|
||||
/**
|
||||
* 登录密码
|
||||
*/
|
||||
// private String userPwd;
|
||||
|
||||
/**
|
||||
* 角色名称拼接字符串
|
||||
*/
|
||||
|
|
@ -98,36 +92,23 @@ public class SingleUserResponse {
|
|||
*/
|
||||
private Integer isDefaultPwd;
|
||||
|
||||
/**
|
||||
* 盐
|
||||
*/
|
||||
// private String salt;
|
||||
|
||||
private Date createdTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String creator;
|
||||
private String createdBy;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
* 最后更新时间
|
||||
*/
|
||||
private String creatorName;
|
||||
private Date updatedTime;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
* 最后更新人
|
||||
*/
|
||||
private Date gmtCreate;
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private String modifier;
|
||||
/**
|
||||
* 更新人姓名
|
||||
*/
|
||||
private String modifierName;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date gmtModified;
|
||||
private String updatedBy;
|
||||
|
||||
/**
|
||||
* 是否有效:0-无效 1-有效
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package com.electromagnetic.industry.software.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.User;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UserService {
|
||||
public interface UserService extends IService<User> {
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
|
|
|
|||
|
|
@ -190,9 +190,9 @@ public class FileRecycleServiceImpl implements FileRecycleService {
|
|||
}
|
||||
|
||||
return userMapper.selectList(Wrappers.<User>lambdaQuery()
|
||||
.select(User::getUserId, User::getUserName)
|
||||
.in(User::getUserId, userIds))
|
||||
.stream().collect(Collectors.toMap(User::getUserId, User::getUserName));
|
||||
.select(User::getId, User::getUserName)
|
||||
.in(User::getId, userIds))
|
||||
.stream().collect(Collectors.toMap(User::getId, User::getUserName));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,8 +92,8 @@ public class UserAccessLogServiceImpl extends ServiceImpl<UserAccessLogMapper, U
|
|||
if (CollUtil.isEmpty(userIds)) {
|
||||
return;
|
||||
}
|
||||
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery(User.class).select(User::getUserId, User::getUserName).in(User::getUserId, userIds);
|
||||
Map<String, String> idNameMap = userMapper.selectList(wrapper).stream().collect(Collectors.toMap(User::getUserId, User::getUserName));
|
||||
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery(User.class).select(User::getId, User::getUserName).in(User::getId, userIds);
|
||||
Map<String, String> idNameMap = userMapper.selectList(wrapper).stream().collect(Collectors.toMap(User::getId, User::getUserName));
|
||||
|
||||
res.forEach(e -> {
|
||||
e.setUserName(idNameMap.get(e.getUserId()));
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ import cn.hutool.core.text.StrFormatter;
|
|||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.electromagnetic.industry.software.common.cons.UserConstants;
|
||||
import com.electromagnetic.industry.software.common.enums.ActiveEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
|
|
@ -16,10 +19,7 @@ import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
|||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.*;
|
||||
import com.electromagnetic.industry.software.manage.mapper.*;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.Role;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.Token;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.User;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.UserRole;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.*;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.PublishParam;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.SearchKeyWords;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.SingleUserResponse;
|
||||
|
|
@ -27,6 +27,7 @@ import com.electromagnetic.industry.software.manage.pojo.other.UserDeleteKeyWord
|
|||
import com.electromagnetic.industry.software.manage.pojo.req.*;
|
||||
import com.electromagnetic.industry.software.manage.pojo.resp.UserLoginResponse;
|
||||
import com.electromagnetic.industry.software.manage.pojo.resp.UserSearchResponse;
|
||||
import com.electromagnetic.industry.software.manage.service.UserRoleService;
|
||||
import com.electromagnetic.industry.software.manage.service.UserService;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import io.jsonwebtoken.SignatureAlgorithm;
|
||||
|
|
@ -36,18 +37,19 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.hutool.core.date.DateTime.now;
|
||||
|
||||
@Service
|
||||
public class UserServiceImpl implements UserService {
|
||||
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
|
||||
|
||||
@Resource
|
||||
private UserMapper userMapper;
|
||||
@Resource
|
||||
private TokenMapper tokenMapper;
|
||||
@Resource
|
||||
private UserRoleMapper userRoleMapper;
|
||||
private UserRoleService userRoleService;
|
||||
@Resource
|
||||
private RoleMapper roleMapper;
|
||||
|
||||
|
|
@ -62,7 +64,7 @@ public class UserServiceImpl implements UserService {
|
|||
UserLoginInfo info = UserMappers.INSTANCE.getUserLoginRequestToModel(loginRequest);
|
||||
String decodePwd = AESUtils.decrypt(info.getUserPwd(), UserConstants.SECRET_KEY);
|
||||
User user = userMapper.selectUserByWorkNumber(info.getWorkNumber());
|
||||
info.setUserId(user.getUserId());
|
||||
info.setUserId(user.getId());
|
||||
info.setUsername(user.getUserName());
|
||||
info.setAdminType(user.getAdminType());
|
||||
if (checkUserValid(user) && matchPassword(user, decodePwd)) {
|
||||
|
|
@ -70,8 +72,8 @@ public class UserServiceImpl implements UserService {
|
|||
createUserToken(user, tokenStr);
|
||||
UserLoginResponse userLoginResponse = new UserLoginResponse();
|
||||
userLoginResponse.setToken(tokenStr);
|
||||
userLoginResponse.setUserId(user.getUserId());
|
||||
UserThreadLocal.setSuccessInfo("", user.getUserId(), StrFormatter.format("用户{}登陆", user.getUserName()));
|
||||
userLoginResponse.setUserId(user.getId());
|
||||
UserThreadLocal.setSuccessInfo("", user.getId(), StrFormatter.format("用户{}登陆", user.getUserName()));
|
||||
return ElectromagneticResultUtil.success(userLoginResponse);
|
||||
}
|
||||
return ElectromagneticResultUtil.fail("500", "用户不存在/密码错误");
|
||||
|
|
@ -79,7 +81,7 @@ public class UserServiceImpl implements UserService {
|
|||
|
||||
public Boolean createUserToken(User user, String tokenStr) {
|
||||
Token token = new Token();
|
||||
token.setUserId(user.getUserId());
|
||||
token.setUserId(user.getId());
|
||||
token.setToken(tokenStr);
|
||||
token.setExpireAt(new DateTime(SystemClock.now() + UserConstants.DEFAULT_EXPIRE_TIME));
|
||||
return tokenMapper.insert(token) > 0;
|
||||
|
|
@ -124,21 +126,14 @@ public class UserServiceImpl implements UserService {
|
|||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> createUser(UserRequest userRequest) {
|
||||
|
||||
Assert.notNull(userRequest, "用户创建请求参数不能为空");
|
||||
User user = UserMappers.INSTANCE.getUserRequestToModel(userRequest);
|
||||
user.setSalt(RandomUtil.randomString(16));
|
||||
user.setUserId(IdWorker.getSnowFlakeIdString());
|
||||
user.setUserPwd(SignUtils.MD5(UserConstants.DEFAULT_PASSWORD + user.getSalt()));
|
||||
user.setIsPublished(UserConstants.DEFAULT_PUBLISH_STATUS);
|
||||
user.setIsActivated(UserConstants.DEFAULT_ACTIVE_STATUS);
|
||||
|
||||
user.newInit();
|
||||
// 暂时将账户设置为工号
|
||||
user.setUserAccount(user.getWorkNumber());
|
||||
|
||||
user.setCreator(UserThreadLocal.getUserId());
|
||||
user.setCreatorName(UserThreadLocal.getUsername());
|
||||
UserThreadLocal.setSuccessInfo("", user.getUserId(), StrFormatter.format("新增了用户{}", user.getUserName()));
|
||||
return ElectromagneticResultUtil.success(userMapper.insert(user) > 0);
|
||||
boolean success = this.save(user);
|
||||
UserThreadLocal.setSuccessInfo("", user.getId(), StrFormatter.format("新增了用户 {} ", user.getUserName()));
|
||||
return ElectromagneticResultUtil.success(success);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -149,11 +144,18 @@ public class UserServiceImpl implements UserService {
|
|||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> modifyUser(UserModiRequest userModiRequest) {
|
||||
Assert.notNull(userModiRequest, "用户修改请求参数不能为空");
|
||||
String userId = userModiRequest.getUserId();
|
||||
Assert.notBlank(userId, "用户ID不能为空");
|
||||
|
||||
// 校验用户存在性
|
||||
User existingUser = this.getById(userId);
|
||||
Assert.notNull(existingUser, StrFormatter.format("用户ID {} 不存在", userId));
|
||||
|
||||
User user = UserMappers.INSTANCE.getUserModiRequestToModel(userModiRequest);
|
||||
user.setModifier(UserThreadLocal.getUserId());
|
||||
user.setModifierName(UserThreadLocal.getUsername());
|
||||
UserThreadLocal.setSuccessInfo("", userModiRequest.getUserId(), StrFormatter.format("更新了用户{}", user.getUserName()));
|
||||
return ElectromagneticResultUtil.success(userMapper.modify(user) > 0);
|
||||
boolean success = this.updateById(user);
|
||||
UserThreadLocal.setSuccessInfo("", userModiRequest.getUserId(), StrFormatter.format("更新了用户 {} ", user.getUserName()));
|
||||
return ElectromagneticResultUtil.success(success);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -164,55 +166,49 @@ public class UserServiceImpl implements UserService {
|
|||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> publishUser(UserPublishRequest userPublishRequest) {
|
||||
Assert.notNull(userPublishRequest, "发布请求参数不能为空");
|
||||
PublishParam model = UserMappers.INSTANCE.getUserPublishRequestToModel(userPublishRequest);
|
||||
model.setModifier(UserThreadLocal.getUserId());
|
||||
model.setModifierName(UserThreadLocal.getUsername());
|
||||
UserThreadLocal.setSuccessInfo("", "", StrFormatter.format("批量发布了用户"));
|
||||
return ElectromagneticResultUtil.success(userMapper.publish(model) > 0);
|
||||
Assert.notEmpty(model.getUserIds(), "待发布用户ID列表不能为空");
|
||||
boolean updateResult = this.update(
|
||||
new LambdaUpdateWrapper<User>()
|
||||
.in(User::getId, model.getUserIds())
|
||||
.set(User::getIsPublished, PublishEnum.PUBLISHED.getCode())
|
||||
);
|
||||
UserThreadLocal.setSuccessInfo("", "", StrFormatter.format("批量发布 {} 个用户", model.getUserIds().size()));
|
||||
return ElectromagneticResultUtil.success(updateResult);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ElectromagneticResult<?> validateWorkNum(UserWorkNumRequest workNumberRequest) {
|
||||
// 将前端请求对象转换为模型对象,包含userId和userWorkNum
|
||||
User user = UserMappers.INSTANCE.getUserWorkNumRequestToModel(workNumberRequest);
|
||||
public ElectromagneticResult<?> validateWorkNum(UserWorkNumRequest request) {
|
||||
|
||||
//根据请求对象的userId判断当前处于什么状态
|
||||
if (user.getUserId() == null) {
|
||||
//userId为空,表示是新增用户阶段
|
||||
//判断数据库中有无该工号对应的用户
|
||||
User existingUser = userMapper.selectUserByWorkNumber(user.getWorkNumber());
|
||||
//如果有该用户就返回false,如果没有(==null)就返回true
|
||||
boolean isWorkNumberUnique = (existingUser == null);
|
||||
return ElectromagneticResultUtil.success(isWorkNumberUnique);
|
||||
} else {
|
||||
//userId不为空,表示是编辑用户阶段
|
||||
//请求对象的userWordNum在数据库中对应的user
|
||||
User existingUser = userMapper.selectUserByWorkNumber(user.getWorkNumber());
|
||||
//判断,请求对象的userId对应的user和请求对象的userWordNum在数据库中对应的user是否为用一个
|
||||
if (existingUser != null) {
|
||||
//请求对象的userWordNum在数据库中对应的user与请求对象的userId对应的user是否为同一个
|
||||
if (user.getUserId().equals(existingUser.getUserId())) {
|
||||
// 如果获取到的用户ID与当前编辑的用户ID相同,说明工号未改变,直接返回true
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
} else {
|
||||
// 如果获取到的用户ID与当前编辑的用户ID不同,说明工号已改变,需要判断新工号是否唯一
|
||||
// 如果根据新工号获取不到用户,说明新工号唯一
|
||||
boolean isWorkNumberUnique = (userMapper.selectUserByWorkNumber(user.getWorkNumber()) == null);
|
||||
return ElectromagneticResultUtil.success(isWorkNumberUnique);
|
||||
}
|
||||
} else {
|
||||
//请求对象的userWordNum在数据库中不存在对应的user
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
}
|
||||
String workNumber = request.getWorkNumber();
|
||||
String currentUserId = request.getUserId();
|
||||
|
||||
boolean exists = lambdaQuery()
|
||||
.eq(User::getWorkNumber, workNumber)
|
||||
.exists(); // 判断工号是否存在
|
||||
|
||||
// 新增 直接返回唯一性结果
|
||||
if (StringUtils.isBlank(currentUserId)) {
|
||||
return ElectromagneticResultUtil.success(!exists);
|
||||
}
|
||||
|
||||
// 编辑 需要排除当前用户
|
||||
if (exists) {
|
||||
User existingUser = lambdaQuery()
|
||||
.eq(User::getWorkNumber, workNumber)
|
||||
.one();
|
||||
return ElectromagneticResultUtil.success(existingUser.getId().equals(currentUserId));
|
||||
}
|
||||
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ElectromagneticResult<?> getSingleUser(GetSingleUserRequest getSingleUserRequest) {
|
||||
User user = userMapper.getSingleUser(getSingleUserRequest.getUserId());
|
||||
SingleUserResponse singleUserResponse = UserMappers.INSTANCE.getSingleUserToResponse(user);
|
||||
UserThreadLocal.setSuccessInfo("", getSingleUserRequest.getUserId(), StrFormatter.format("查询了用户{}详情信息", singleUserResponse.getUserName()));
|
||||
UserThreadLocal.setSuccessInfo("", getSingleUserRequest.getUserId(), StrFormatter.format("查询了用户 {} 详情信息", singleUserResponse.getUserName()));
|
||||
return ElectromagneticResultUtil.success(singleUserResponse);
|
||||
}
|
||||
|
||||
|
|
@ -228,7 +224,7 @@ public class UserServiceImpl implements UserService {
|
|||
for (User user : userList) {
|
||||
SingleUserResponse singleUserResponse = new SingleUserResponse();
|
||||
BeanUtils.copyProperties(user, singleUserResponse);
|
||||
List<String> roleList = userMapper.selectUserRoles(user.getUserId());
|
||||
List<String> roleList = userMapper.selectUserRoles(user.getId());
|
||||
String roles = String.join(",", roleList);
|
||||
singleUserResponse.setRoles(roles);
|
||||
singleUserResponse.setRoleList(roleList);
|
||||
|
|
@ -250,20 +246,22 @@ public class UserServiceImpl implements UserService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ElectromagneticResult<?> deleteUser(UserDeleteRequest userDeleteRequest) {
|
||||
public ElectromagneticResult<?> deleteUser(UserDeleteRequest request) {
|
||||
String userId = request.getUserId();
|
||||
|
||||
// 将请求对象转换为模型对象
|
||||
UserDeleteKeyWords userDeleteKeyWords = UserMappers.INSTANCE.getUserDeleteRequestToModel(userDeleteRequest);
|
||||
userDeleteKeyWords.setModifier(UserThreadLocal.getUserId());
|
||||
userDeleteKeyWords.setModifierName(UserThreadLocal.getUsername());
|
||||
// 校验用户存在性及有效性
|
||||
User user = this.getById(userId);
|
||||
Assert.notNull(user, StrFormatter.format("用户ID {} 无效", userId));
|
||||
Assert.isTrue(user.getEffectFlag().equals(EffectFlagEnum.EFFECT.code),
|
||||
StrFormatter.format("用户 {} 已被删除", user.getUserName()));
|
||||
|
||||
// 检查用户是否已经被逻辑删除
|
||||
User existingUser = userMapper.getSingleUser(userDeleteKeyWords.getUserId());
|
||||
Assert.notNull(existingUser, StrFormatter.format("用户ID {} 无效", userDeleteRequest.getUserId()));
|
||||
Assert.isTrue(EffectFlagEnum.EFFECT.code.equals(existingUser.getEffectFlag()), StrFormatter.format("用户{}已经被逻辑删除", existingUser.getUserName()));
|
||||
// 构建逻辑删除更新
|
||||
boolean success = this.update(new LambdaUpdateWrapper<User>()
|
||||
.eq(User::getId, userId)
|
||||
.set(User::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code));
|
||||
|
||||
UserThreadLocal.setSuccessInfo("", "", StrFormatter.format("删除了用户{}", existingUser.getUserName()));
|
||||
return ElectromagneticResultUtil.success(userMapper.deleteUser(userDeleteKeyWords));
|
||||
UserThreadLocal.setSuccessInfo("", "", StrFormatter.format("删除了用户 {} ", user.getUserName()));
|
||||
return ElectromagneticResultUtil.success(success);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -298,14 +296,16 @@ public class UserServiceImpl implements UserService {
|
|||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> changePassword(String userId, String newPassword) {
|
||||
User user = userMapper.getSingleUser(userId);
|
||||
User user = this.getById(userId);
|
||||
Assert.notNull(user, StrFormatter.format("用户ID {} 无效", userId));
|
||||
|
||||
String decodeNewPwd = AESUtils.decrypt(newPassword, UserConstants.SECRET_KEY);
|
||||
user.setUserPwd(SignUtils.MD5(decodeNewPwd + user.getSalt()));
|
||||
user.setModifier(UserThreadLocal.getUserId());
|
||||
user.setModifierName(UserThreadLocal.getUsername());
|
||||
UserThreadLocal.setSuccessInfo("", UserThreadLocal.getUserId(), StrFormatter.format("修改了用户密码"));
|
||||
return ElectromagneticResultUtil.success(userMapper.modify(user) > 0);
|
||||
|
||||
boolean success = this.updateById(user);
|
||||
|
||||
UserThreadLocal.setSuccessInfo("", userId, StrFormatter.format("修改了用户密码"));
|
||||
return ElectromagneticResultUtil.success(success);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -316,54 +316,86 @@ public class UserServiceImpl implements UserService {
|
|||
@Override
|
||||
@Transactional
|
||||
public Boolean resetPassword(String userId) {
|
||||
User user = userMapper.getSingleUser(userId);
|
||||
User user = this.getById(userId);
|
||||
Assert.notNull(user, StrFormatter.format("用户ID {} 无效", userId));
|
||||
|
||||
user.setUserPwd(SignUtils.MD5(UserConstants.DEFAULT_PASSWORD + user.getSalt()));
|
||||
boolean isModified = userMapper.modify(user) > 0;
|
||||
if (isModified) {
|
||||
boolean success = this.updateById(user);
|
||||
|
||||
if (success) {
|
||||
UserThreadLocal.setSuccessInfo("", userId, StrFormatter.format("重置了用户{}的密码", user.getUserName()));
|
||||
}
|
||||
return isModified;
|
||||
return success;
|
||||
}
|
||||
|
||||
private void activeRole(UserBindRoleDTO dto) {
|
||||
User user = userMapper.getSingleUser(dto.getUserId());
|
||||
if (user.getIsActivated().equals(ActiveEnum.UNACTIVATED.getCode())) {
|
||||
User user = this.getById(dto.getUserId());
|
||||
if (user != null && ActiveEnum.UNACTIVATED.getCode().equals(user.getIsActivated())) {
|
||||
user.setIsActivated(ActiveEnum.ACTIVATED.getCode());
|
||||
userMapper.modify(user);
|
||||
this.updateById(user);
|
||||
}
|
||||
}
|
||||
|
||||
private void bindRole(UserBindRoleDTO dto) {
|
||||
String userId = dto.getUserId();
|
||||
List<String> roleNames = dto.getRoleList();
|
||||
List<String> roleNames = Optional.ofNullable(dto.getRoleList()).orElse(Collections.emptyList());
|
||||
// 删除当前用户原绑定角色
|
||||
QueryWrapper<UserRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("user_id", userId);
|
||||
userRoleMapper.delete(queryWrapper);
|
||||
userRoleService.update(new LambdaUpdateWrapper<UserRole>()
|
||||
.eq(UserRole::getUserId, userId)
|
||||
.set(UserRole::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code));
|
||||
|
||||
if (roleNames != null) {
|
||||
for (String roleName : roleNames) {
|
||||
LambdaQueryWrapper<Role> roleQueryWrapper = new LambdaQueryWrapper<>();
|
||||
roleQueryWrapper.select(Role::getId)
|
||||
.eq(Role::getRoleName, roleName);
|
||||
String roleId = roleMapper.selectOne(roleQueryWrapper).getId();
|
||||
if (!roleNames.isEmpty()) {
|
||||
// 2. 批量获取有效角色ID
|
||||
Map<String, String> roleIdMap = roleMapper.selectList(
|
||||
new LambdaQueryWrapper<Role>()
|
||||
.in(Role::getRoleName, roleNames)
|
||||
.select(Role::getId, Role::getRoleName)
|
||||
).stream().collect(Collectors.toMap(Role::getRoleName, Role::getId));
|
||||
|
||||
UserRole userRole = new UserRole();
|
||||
userRole.setUserId(userId);
|
||||
userRole.setRoleId(roleId);
|
||||
userRoleMapper.insert(userRole);
|
||||
// 3. 处理需要绑定的角色
|
||||
List<UserRole> toSaveRoles = new ArrayList<>();
|
||||
roleNames.stream()
|
||||
.filter(roleIdMap::containsKey)
|
||||
.forEach(roleName -> {
|
||||
String roleId = roleIdMap.get(roleName);
|
||||
|
||||
// 先尝试恢复已存在的记录
|
||||
UserRole existing = userRoleService.getOne(new LambdaQueryWrapper<UserRole>()
|
||||
.eq(UserRole::getUserId, userId)
|
||||
.eq(UserRole::getRoleId, roleId)
|
||||
.last("LIMIT 1"));
|
||||
|
||||
if (existing != null) {
|
||||
// 恢复原有记录
|
||||
userRoleService.update(new LambdaUpdateWrapper<UserRole>()
|
||||
.eq(UserRole::getId, existing.getId())
|
||||
.set(UserRole::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||
} else {
|
||||
// 创建新记录
|
||||
UserRole newRole = new UserRole();
|
||||
newRole.setUserId(userId);
|
||||
newRole.setRoleId(roleId);
|
||||
newRole.newInit(); // 调用初始化方法设置主键和审计字段
|
||||
toSaveRoles.add(newRole);
|
||||
}
|
||||
});
|
||||
|
||||
if (!toSaveRoles.isEmpty()) {
|
||||
userRoleService.saveBatch(toSaveRoles);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ElectromagneticResult<?> validateOldPassword(String userId, String oldInputPassword) {
|
||||
User user = userMapper.getSingleUser(userId);
|
||||
// 使用Service层方法获取用户信息
|
||||
User user = this.getById(userId);
|
||||
Assert.notNull(user, StrFormatter.format("用户不存在,ID为 {}", userId));
|
||||
|
||||
// 解密并验证密码
|
||||
String decodeOldPwd = AESUtils.decrypt(oldInputPassword, UserConstants.SECRET_KEY);
|
||||
Boolean res = matchPassword(user, decodeOldPwd);
|
||||
UserThreadLocal.setSuccessInfo("", "", "校验原始密码,当前密码与原始密码匹配结果 {}", res);
|
||||
return ElectromagneticResultUtil.success(res);
|
||||
Boolean isValid = matchPassword(user, decodeOldPwd);
|
||||
UserThreadLocal.setSuccessInfo("", "", "校验原始密码,当前密码与原始密码匹配结果 {}", isValid ? "通过" : "不通过");
|
||||
return ElectromagneticResultUtil.success(isValid);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,15 +5,15 @@ spring.servlet.multipart.max-file-size=500MB
|
|||
spring.servlet.multipart.max-request-size=500MB
|
||||
spring.mvc.async.request-timeout=3600000
|
||||
#mysql
|
||||
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/em_data_dev?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||
spring.datasource.username=aaa
|
||||
spring.datasource.password=12345
|
||||
spring.datasource.url=jdbc:mysql://139.196.179.195:3306/em_data_dev?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||
spring.datasource.username=em_user_dev
|
||||
spring.datasource.password=Szsd#2O25$dev
|
||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||
# es
|
||||
spring.elasticsearch.password=12345
|
||||
spring.elasticsearch.password=123456
|
||||
spring.elasticsearch.username=elastic
|
||||
spring.elasticsearch.uris=http://127.0.0.1:9200
|
||||
spring.elasticsearch.uris=http://139.196.179.195:9200
|
||||
#ai
|
||||
spring.ai.ollama.base-url=http://localhost:11434
|
||||
spring.ai.ollama.chat.options.model=gemma3:latest
|
||||
|
|
@ -31,26 +31,25 @@ pagehelper.helperDialect=mysql
|
|||
pagehelper.reasonable=false
|
||||
# app
|
||||
server.port=12396
|
||||
winPrefix=D:/tmp
|
||||
prjRootPath=/szsd/data/ele/prj/dev/
|
||||
data.ele.tmp.path=tmp/
|
||||
winPrefix:D:/tmp
|
||||
data.ele.tmp.path=/szsd/data/ele/prj/dev/tmp
|
||||
ai.store.max.docs=200
|
||||
# sys path
|
||||
data.sys.prj.path=sys_project/
|
||||
data.sys.upload.path=sys_upload/
|
||||
data.sys.download.path=sys_download/
|
||||
data.sys.prj.path=/szsd/data/ele/prj/dev/sys_project/
|
||||
data.sys.upload.path=/szsd/data/ele/prj/dev/sys_upload/
|
||||
data.sys.download.path=/szsd/data/ele/prj/dev/sys_download/
|
||||
# user path
|
||||
data.user.prj.path=user_project/
|
||||
data.user.upload.path=user_upload/
|
||||
data.user.download.path=user_download/
|
||||
data.user.prj.path=/szsd/data/ele/prj/dev/user_project/
|
||||
data.user.upload.path=/szsd/data/ele/prj/dev/user_upload/
|
||||
data.user.download.path=/szsd/data/ele/prj/dev/user_download/
|
||||
# repo path
|
||||
data.repo.prj.path=repo_project/
|
||||
data.repo.upload.path=repo_upload/
|
||||
data.repo.download.path=repo_download/
|
||||
data.repo.prj.path=/szsd/data/ele/prj/dev/repo_project/
|
||||
data.repo.upload.path=/szsd/data/ele/prj/dev/repo_upload/
|
||||
data.repo.download.path=/szsd/data/ele/prj/dev/repo_download/
|
||||
prj.folder.max.length=6
|
||||
# backupFiles
|
||||
tmp.file.store.hour=48
|
||||
backup.remote.host=127.0.0.1
|
||||
backup.remote.port=12491
|
||||
backup.remote.port=1111
|
||||
backup.mysql.path=/workspace/mysqlbak/test
|
||||
backup.mysql.script.path=/workspace/mysqlbak/back_dev.sh
|
||||
|
|
@ -2,8 +2,7 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.electromagnetic.industry.software.manage.mapper.UserMapper">
|
||||
<resultMap id="UserResultMap" type="com.electromagnetic.industry.software.manage.pojo.models.User">
|
||||
<id column="id" jdbcType="BIGINT" property="id"/>
|
||||
<result column="user_id" jdbcType="VARCHAR" property="userId"/>
|
||||
<id column="id" jdbcType="VARCHAR" property="id"/>
|
||||
<result column="user_name" jdbcType="VARCHAR" property="userName"/>
|
||||
<result column="work_number" jdbcType="VARCHAR" property="workNumber"/>
|
||||
<result column="mobile" jdbcType="VARCHAR" property="mobile"/>
|
||||
|
|
@ -18,17 +17,15 @@
|
|||
<result column="user_status" jdbcType="VARCHAR" property="userStatus"/>
|
||||
<result column="internship_end_date" jdbcType="DATE" property="internshipEndDate"/>
|
||||
<result column="admin_type" jdbcType="VARCHAR" property="adminType"/>
|
||||
<result column="creator" jdbcType="VARCHAR" property="creator"/>
|
||||
<result column="creator_name" jdbcType="VARCHAR" property="creatorName"/>
|
||||
<result column="gmt_create" jdbcType="TIMESTAMP" property="gmtCreate"/>
|
||||
<result column="modifier" jdbcType="VARCHAR" property="modifier"/>
|
||||
<result column="modifier_name" jdbcType="VARCHAR" property="modifierName"/>
|
||||
<result column="gmt_modified" jdbcType="TIMESTAMP" property="gmtModified"/>
|
||||
<result column="created_by" jdbcType="VARCHAR" property="createdBy"/>
|
||||
<result column="created_time" jdbcType="TIMESTAMP" property="createdTime"/>
|
||||
<result column="updated_by" jdbcType="VARCHAR" property="updatedBy"/>
|
||||
<result column="updated_time" jdbcType="TIMESTAMP" property="updatedTime"/>
|
||||
<result column="effect_flag" jdbcType="TINYINT" property="effectFlag"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectUserVo">
|
||||
select user_id,
|
||||
select id,
|
||||
user_name,
|
||||
work_number,
|
||||
mobile,
|
||||
|
|
@ -43,94 +40,14 @@
|
|||
user_status,
|
||||
internship_end_date,
|
||||
admin_type,
|
||||
creator,
|
||||
creator_name,
|
||||
gmt_create,
|
||||
modifier,
|
||||
modifier_name,
|
||||
gmt_modified,
|
||||
created_time,
|
||||
created_by,
|
||||
updated_by,
|
||||
updated_time,
|
||||
effect_flag
|
||||
from ed_users
|
||||
</sql>
|
||||
|
||||
<insert id="insert" parameterType="com.electromagnetic.industry.software.manage.pojo.models.User">
|
||||
insert into ed_users(
|
||||
<if test="userId != null and userId !='' ">user_id,</if>
|
||||
<if test="userName != null and userName !='' ">user_name,</if>
|
||||
<if test="workNumber != null and workNumber !='' ">work_number,</if>
|
||||
<if test="mobile != null and mobile !='' ">mobile,</if>
|
||||
<if test="userDept != null and userDept !='' ">user_dept,</if>
|
||||
<if test="userTitle != null and userTitle !='' ">user_title,</if>
|
||||
<if test="userAccount != null and userAccount !='' ">user_account,</if>
|
||||
<if test="userPwd != null and userPwd !='' ">user_pwd,</if>
|
||||
<if test="joinTime != null">join_time,</if>
|
||||
<if test="isPublished != null">is_published,</if>
|
||||
<if test="isActivated != null">is_activated,</if>
|
||||
<if test="salt != null and salt !='' ">salt,</if>
|
||||
<if test="userStatus != null and userStatus !='' ">user_status,</if>
|
||||
<if test="internshipEndDate != null">internship_end_date,</if>
|
||||
<if test="creator != null and creator !='' ">creator,</if>
|
||||
<if test="creatorName != null and creatorName !='' ">creator_name,</if>
|
||||
gmt_create,
|
||||
effect_flag)
|
||||
values (
|
||||
<if test="userId != null and userId !='' ">#{userId},</if>
|
||||
<if test="userName != null and userName !='' ">#{userName},</if>
|
||||
<if test="workNumber != null and workNumber !='' ">#{workNumber},</if>
|
||||
<if test="mobile != null and mobile !='' ">#{mobile},</if>
|
||||
<if test="userDept != null and userDept !='' ">#{userDept},</if>
|
||||
<if test="userTitle != null and userTitle !='' ">#{userTitle},</if>
|
||||
<if test="userAccount != null and userAccount !='' ">#{userAccount},</if>
|
||||
<if test="userPwd != null and userPwd !='' ">#{userPwd},</if>
|
||||
<if test="joinTime != null">#{joinTime},</if>
|
||||
<if test="isPublished != null">#{isPublished},</if>
|
||||
<if test="isActivated != null">#{isActivated},</if>
|
||||
<if test="salt != null and salt !='' ">#{salt},</if>
|
||||
<if test="userStatus != null and userStatus !='' ">#{userStatus},</if>
|
||||
<if test="internshipEndDate != null">#{internshipEndDate},</if>
|
||||
<if test="creator != null and creator !='' ">#{creator},</if>
|
||||
<if test="creatorName != null and creatorName !='' ">#{creatorName},</if>
|
||||
now(),
|
||||
1
|
||||
)
|
||||
</insert>
|
||||
<update id="modify" parameterType="com.electromagnetic.industry.software.manage.pojo.models.User">
|
||||
update ed_users
|
||||
<set>
|
||||
<if test="userId != null and userId != ''">user_id = #{userId},</if>
|
||||
<if test="userName != null and userName != ''">user_name = #{userName},</if>
|
||||
<if test="workNumber != null and workNumber != ''">work_number = #{workNumber},</if>
|
||||
<if test="mobile != null and mobile != ''">mobile = #{mobile},</if>
|
||||
<if test="userDept != null and userDept != ''">user_dept = #{userDept},</if>
|
||||
<if test="userTitle != null and userTitle != ''">user_title = #{userTitle},</if>
|
||||
<if test="userAccount != null and userAccount != ''">user_account = #{userAccount},</if>
|
||||
<if test="joinTime != null">join_time = #{joinTime},</if>
|
||||
<if test="userStatus != null and userStatus != ''">user_status = #{userStatus},</if>
|
||||
<if test="isActivated != null and isActivated != ''">is_activated = #{isActivated},</if>
|
||||
<if test="userPwd != null and userPwd != ''">user_pwd = #{userPwd},</if>
|
||||
internship_end_date = #{internshipEndDate},
|
||||
<if test="modifier != null and modifier != ''">modifier = #{modifier},</if>
|
||||
<if test="modifierName != null and modifierName != ''">modifier_name = #{modifierName},</if>
|
||||
gmt_modified=now()
|
||||
</set>
|
||||
where user_id= #{userId}
|
||||
</update>
|
||||
|
||||
|
||||
<update id="publish" parameterType="com.electromagnetic.industry.software.manage.pojo.other.PublishParam">
|
||||
update ed_users
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
is_published = 1,
|
||||
<if test="modifier != null and modifier != ''">modifier = #{modifier},</if>
|
||||
<if test="modifierName != null and modifierName != ''">modifier_name = #{modifierName},</if>
|
||||
gmt_modified = now()
|
||||
</trim>
|
||||
where user_id IN
|
||||
<foreach collection="userIds" item="userId" open="(" separator="," close=")">
|
||||
#{userId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="search" parameterType="com.electromagnetic.industry.software.manage.pojo.other.SearchKeyWords"
|
||||
resultMap="UserResultMap">
|
||||
SELECT *
|
||||
|
|
@ -173,7 +90,7 @@
|
|||
<!-- 动态排序条件 -->
|
||||
<choose>
|
||||
<when test="gmtCreate == 'asc' or gmtCreate == 'desc'">
|
||||
ORDER BY gmt_create ${gmtCreate}
|
||||
ORDER BY created_time ${gmtCreate}
|
||||
</when>
|
||||
<when test="joinTime == 'asc' or joinTime == 'desc'">
|
||||
ORDER BY join_time ${joinTime}
|
||||
|
|
@ -227,7 +144,7 @@
|
|||
<!-- 动态排序条件 -->
|
||||
<choose>
|
||||
<when test="gmtCreate == 'asc' or gmtCreate == 'desc'">
|
||||
ORDER BY gmt_create ${gmtCreate}
|
||||
ORDER BY created_time ${gmtCreate}
|
||||
</when>
|
||||
<when test="joinTime == 'asc' or joinTime == 'desc'">
|
||||
ORDER BY join_time ${joinTime}
|
||||
|
|
@ -245,27 +162,16 @@
|
|||
|
||||
<select id="getSingleUser" parameterType="String" resultMap="UserResultMap">
|
||||
<include refid="selectUserVo"/>
|
||||
where user_id = #{userId}
|
||||
where id = #{userId}
|
||||
</select>
|
||||
|
||||
<update id="deleteUser" parameterType="com.electromagnetic.industry.software.manage.pojo.other.UserDeleteKeyWords">
|
||||
update ed_users
|
||||
<set>
|
||||
effect_flag=0,
|
||||
modifier=#{modifier},
|
||||
modifier_name=#{modifierName},
|
||||
gmt_modified = now()
|
||||
</set>
|
||||
where user_id = #{userId}
|
||||
</update>
|
||||
|
||||
<select id="selectUserRoles" parameterType="String" resultType="String">
|
||||
select r.role_name
|
||||
from ed_role r
|
||||
where r.id in (select ur.role_id
|
||||
from ed_users u
|
||||
left join ed_user_role ur on u.user_id = ur.user_id
|
||||
where u.user_id = #{userId})
|
||||
where r.role_id in (select ur.role_id
|
||||
from ed_users u
|
||||
left join ed_user_role ur on u.id = ur.user_id
|
||||
where u.id = #{userId})
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue