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