mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-07-23 17:49:34 +08:00
学员代码优化
This commit is contained in:
parent
d05e2eecd1
commit
b7e4a2ea35
@ -116,48 +116,16 @@ public class UserController {
|
||||
|
||||
@BackendPermissionMiddleware(slug = BPermissionConstant.USER_STORE)
|
||||
@PostMapping("/create")
|
||||
@Transactional
|
||||
public JsonResponse store(@RequestBody @Validated UserRequest request) {
|
||||
if (userService.emailIsExists(request.getEmail())) {
|
||||
public JsonResponse store(@RequestBody @Validated UserRequest req) {
|
||||
String email = req.getEmail();
|
||||
if (userService.emailIsExists(email)) {
|
||||
return JsonResponse.error("邮箱已存在");
|
||||
}
|
||||
|
||||
String salt = HelperUtil.randomString(6);
|
||||
String password = HelperUtil.MD5(request.getPassword() + salt);
|
||||
|
||||
User user = new User();
|
||||
user.setEmail(request.getEmail());
|
||||
user.setNickname(request.getNickname());
|
||||
user.setName(request.getName());
|
||||
user.setAvatar(request.getAvatar());
|
||||
user.setPassword(password);
|
||||
user.setSalt(salt);
|
||||
user.setIdCard(request.getIdCard());
|
||||
user.setCredit1(request.getCredit1());
|
||||
user.setIsActive(request.getIsActive());
|
||||
user.setIsLock(request.getIsLock());
|
||||
user.setIsVerify(request.getIsVerify());
|
||||
user.setVerifyAt(request.getVerifyAt());
|
||||
user.setIsSetPassword(request.getIsSetPassword());
|
||||
|
||||
user.setCreateIp(SystemConstant.INTERNAL_IP);
|
||||
user.setCreateCity(SystemConstant.INTERNAL_IP_AREA);
|
||||
user.setCreatedAt(new Date());
|
||||
user.setUpdatedAt(new Date());
|
||||
|
||||
userService.save(user);
|
||||
|
||||
if (request.getDepIds() != null && request.getDepIds().length > 0) {
|
||||
List<UserDepartment> userDepartments = new ArrayList<>();
|
||||
for (int i = 0; i < request.getDepIds().length; i++) {
|
||||
UserDepartment userDepartment = new UserDepartment();
|
||||
userDepartment.setUserId(user.getId());
|
||||
userDepartment.setDepId(request.getDepIds()[i]);
|
||||
userDepartments.add(userDepartment);
|
||||
}
|
||||
userDepartmentService.saveBatch(userDepartments);
|
||||
String password = req.getPassword();
|
||||
if (password.length() == 0) {
|
||||
return JsonResponse.error("请输入密码");
|
||||
}
|
||||
|
||||
userService.createWithDepIds(email, req.getName(), req.getAvatar(), req.getPassword(), req.getIdCard(), req.getDepIds());
|
||||
return JsonResponse.success();
|
||||
}
|
||||
|
||||
@ -175,51 +143,15 @@ public class UserController {
|
||||
@BackendPermissionMiddleware(slug = BPermissionConstant.USER_UPDATE)
|
||||
@PutMapping("/{id}")
|
||||
@Transactional
|
||||
public JsonResponse update(@PathVariable(name = "id") Integer id, @RequestBody @Validated UserRequest request) throws NotFoundException {
|
||||
public JsonResponse update(@PathVariable(name = "id") Integer id, @RequestBody @Validated UserRequest req) throws NotFoundException {
|
||||
User user = userService.findOrFail(id);
|
||||
|
||||
if (!request.getEmail().equals(user.getEmail()) && userService.emailIsExists(request.getEmail())) {
|
||||
String email = req.getEmail();
|
||||
if (!email.equals(user.getEmail()) && userService.emailIsExists(email)) {
|
||||
return JsonResponse.error("邮箱已存在");
|
||||
}
|
||||
|
||||
User newUser = new User();
|
||||
newUser.setId(user.getId());
|
||||
newUser.setEmail(request.getEmail());
|
||||
newUser.setNickname(request.getNickname());
|
||||
newUser.setName(request.getName());
|
||||
newUser.setAvatar(request.getAvatar());
|
||||
newUser.setIdCard(request.getIdCard());
|
||||
newUser.setCredit1(request.getCredit1());
|
||||
newUser.setIsActive(request.getIsActive());
|
||||
newUser.setIsLock(request.getIsLock());
|
||||
newUser.setIsVerify(request.getIsVerify());
|
||||
newUser.setVerifyAt(request.getVerifyAt());
|
||||
newUser.setIsSetPassword(request.getIsSetPassword());
|
||||
|
||||
if (request.getPassword() != null && request.getPassword().length() > 0) {//更新密码
|
||||
String salt = HelperUtil.randomString(6);
|
||||
String password = HelperUtil.MD5(request.getPassword());
|
||||
|
||||
newUser.setPassword(password);
|
||||
newUser.setSalt(salt);
|
||||
}
|
||||
|
||||
userService.updateById(newUser);
|
||||
|
||||
//先删除关联关系
|
||||
userService.removeRelateDepartmentsByUserId(user.getId());
|
||||
|
||||
if (request.getDepIds() != null && request.getDepIds().length > 0) { //重新建立关系
|
||||
List<UserDepartment> userDepartments = new ArrayList<>();
|
||||
for (int i = 0; i < request.getDepIds().length; i++) {
|
||||
UserDepartment userDepartment = new UserDepartment();
|
||||
userDepartment.setUserId(user.getId());
|
||||
userDepartment.setDepId(request.getDepIds()[i]);
|
||||
userDepartments.add(userDepartment);
|
||||
}
|
||||
userDepartmentService.saveBatch(userDepartments);
|
||||
}
|
||||
|
||||
userService.updateWithDepIds(user, email, req.getNickname(), req.getName(), req.getAvatar(), req.getPassword(), req.getIdCard(), req.getDepIds());
|
||||
return JsonResponse.success();
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package xyz.playedu.api.request.backend;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
@ -15,42 +16,30 @@ import java.util.Date;
|
||||
@Data
|
||||
public class UserRequest {
|
||||
|
||||
@NotNull(message = "请输入邮箱")
|
||||
@Email(message = "请输入合法邮箱")
|
||||
@NotBlank(message = "请输入邮箱")
|
||||
@NotNull(message = "email参数不存在")
|
||||
@Email(message = "请输入正确的邮箱")
|
||||
private String email;
|
||||
|
||||
@NotNull(message = "请输入昵称")
|
||||
private String nickname;
|
||||
|
||||
@NotNull(message = "name参数不存在")
|
||||
@NotBlank(message = "请输入姓名")
|
||||
@Length(min = 1, max = 20, message = "姓名长度在1-20个字符之间")
|
||||
private String name;
|
||||
|
||||
@NotNull(message = "请上传头像")
|
||||
@Length(min = 1, max = 20, message = "昵称长度在1-20个字符之间")
|
||||
private String nickname;
|
||||
|
||||
@NotNull(message = "avatar参数不存在")
|
||||
@NotBlank(message = "请上传头像")
|
||||
private String avatar;
|
||||
|
||||
@NotNull(message = "请输入密码")
|
||||
@NotNull(message = "password参数不存在")
|
||||
@Length(min = 6, max = 16, message = "密码长度在6-16个字符之间")
|
||||
private String password;
|
||||
|
||||
@JsonProperty("id_card")
|
||||
private String idCard;
|
||||
|
||||
private Integer credit1;
|
||||
|
||||
@JsonProperty("is_active")
|
||||
private Integer isActive;
|
||||
|
||||
@JsonProperty("is_lock")
|
||||
private Integer isLock;
|
||||
|
||||
@JsonProperty("is_verify")
|
||||
private Integer isVerify;
|
||||
|
||||
@JsonProperty("verify_at")
|
||||
private Date verifyAt;
|
||||
|
||||
@JsonProperty("is_set_password")
|
||||
private Integer isSetPassword;
|
||||
|
||||
@JsonProperty("dep_ids")
|
||||
private Integer[] depIds;
|
||||
|
||||
|
@ -23,4 +23,8 @@ public interface UserService extends IService<User> {
|
||||
void removeRelateDepartmentsByUserId(Integer userId);
|
||||
|
||||
User findOrFail(Integer id) throws NotFoundException;
|
||||
|
||||
User createWithDepIds(String email, String name, String avatar, String password, String idCard, Integer[] depIds);
|
||||
|
||||
User updateWithDepIds(User user, String email, String nickname, String name, String avatar, String password, String idCard, Integer[] depIds);
|
||||
}
|
||||
|
@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import xyz.playedu.api.constant.SystemConstant;
|
||||
import xyz.playedu.api.domain.User;
|
||||
import xyz.playedu.api.domain.UserDepartment;
|
||||
import xyz.playedu.api.exception.NotFoundException;
|
||||
@ -14,9 +16,10 @@ import xyz.playedu.api.mapper.UserMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import xyz.playedu.api.types.paginate.PaginationResult;
|
||||
import xyz.playedu.api.types.paginate.UserPaginateFilter;
|
||||
import xyz.playedu.api.util.HelperUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -115,6 +118,81 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public User createWithDepIds(String email, String name, String avatar, String password, String idCard, Integer[] depIds) {
|
||||
String salt = HelperUtil.randomString(6);
|
||||
String passwordHashed = HelperUtil.MD5(password + salt);
|
||||
|
||||
User user = new User();
|
||||
user.setEmail(email);
|
||||
user.setName(name);
|
||||
user.setNickname(name);
|
||||
user.setAvatar(avatar);
|
||||
user.setPassword(passwordHashed);
|
||||
user.setSalt(salt);
|
||||
user.setIdCard(idCard);
|
||||
user.setCredit1(0);
|
||||
user.setIsSetPassword(0);
|
||||
user.setIsActive(1);
|
||||
user.setIsLock(0);
|
||||
user.setCreateIp(SystemConstant.INTERNAL_IP);
|
||||
user.setCreateCity(SystemConstant.INTERNAL_IP_AREA);
|
||||
user.setCreatedAt(new Date());
|
||||
user.setUpdatedAt(new Date());
|
||||
|
||||
if (idCard != null && idCard.length() > 0) {
|
||||
user.setVerifyAt(new Date());
|
||||
user.setIsVerify(1);
|
||||
}
|
||||
|
||||
save(user);
|
||||
userDepartmentService.storeDepIds(user.getId(), depIds);
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public User updateWithDepIds(User user, String email, String nickname, String name, String avatar, String password, String idCard, Integer[] depIds) {
|
||||
User newUser = new User();
|
||||
newUser.setId(user.getId());
|
||||
|
||||
if (!user.getEmail().equals(email)) {
|
||||
newUser.setEmail(email);
|
||||
}
|
||||
if (!user.getNickname().equals(nickname)) {
|
||||
newUser.setNickname(nickname);
|
||||
}
|
||||
if (!user.getName().equals(name)) {
|
||||
newUser.setName(name);
|
||||
}
|
||||
if (!user.getAvatar().equals(avatar)) {
|
||||
newUser.setAvatar(avatar);
|
||||
}
|
||||
if (password != null && password.length() > 0) {
|
||||
newUser.setPassword(HelperUtil.MD5(password + user.getSalt()));
|
||||
}
|
||||
if (!user.getIdCard().equals(idCard)) {
|
||||
newUser.setIdCard(idCard);
|
||||
}
|
||||
|
||||
if (newUser.getName() != null && newUser.getName().length() > 0 && newUser.getIdCard() != null && newUser.getIdCard().length() > 0) {
|
||||
if (user.getVerifyAt() == null) {
|
||||
newUser.setIsVerify(1);
|
||||
newUser.setVerifyAt(new Date());
|
||||
}
|
||||
} else {
|
||||
if (user.getIsVerify() == 1) {
|
||||
newUser.setIsVerify(0);
|
||||
newUser.setVerifyAt(null);
|
||||
}
|
||||
}
|
||||
|
||||
updateById(newUser);
|
||||
userDepartmentService.resetStoreDepIds(newUser.getId(), depIds);
|
||||
return newUser;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package xyz.playedu.api.service.impl.internal;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import xyz.playedu.api.domain.UserDepartment;
|
||||
import xyz.playedu.api.service.internal.UserDepartmentService;
|
||||
import xyz.playedu.api.mapper.UserDepartmentMapper;
|
||||
@ -16,8 +17,7 @@ import java.util.List;
|
||||
* @createDate 2023-02-23 15:08:38
|
||||
*/
|
||||
@Service
|
||||
public class UserDepartmentServiceImpl extends ServiceImpl<UserDepartmentMapper, UserDepartment>
|
||||
implements UserDepartmentService {
|
||||
public class UserDepartmentServiceImpl extends ServiceImpl<UserDepartmentMapper, UserDepartment> implements UserDepartmentService {
|
||||
|
||||
@Override
|
||||
public List<Integer> getUserIdsByDepIds(Integer[] depIds) {
|
||||
@ -30,6 +30,27 @@ public class UserDepartmentServiceImpl extends ServiceImpl<UserDepartmentMapper,
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storeDepIds(Integer userId, Integer[] depIds) {
|
||||
if (depIds == null) {
|
||||
return;
|
||||
}
|
||||
List<UserDepartment> userDepartments = new ArrayList<>();
|
||||
for (int i = 0; i < depIds.length; i++) {
|
||||
UserDepartment userDepartment = new UserDepartment();
|
||||
userDepartment.setUserId(userId);
|
||||
userDepartment.setDepId(depIds[i]);
|
||||
userDepartments.add(userDepartment);
|
||||
}
|
||||
saveBatch(userDepartments);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetStoreDepIds(Integer userId, Integer[] depIds) {
|
||||
remove(query().getWrapper().eq("user_id", userId));
|
||||
storeDepIds(userId, depIds);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -12,4 +12,8 @@ import java.util.List;
|
||||
*/
|
||||
public interface UserDepartmentService extends IService<UserDepartment> {
|
||||
List<Integer> getUserIdsByDepIds(Integer[] depIds);
|
||||
|
||||
void storeDepIds(Integer userId, Integer[] depIds);
|
||||
|
||||
void resetStoreDepIds(Integer userId, Integer[] depIds);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user