Commit 57883159 authored by 王向伟's avatar 王向伟

添加修改密码的功能,删除角色时同时删除用户角色关系表中的相关数据

parent 5404a7a5
package cn.quantgroup.cashloanflowboss.api.manytomany;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import javax.persistence.*;
import java.util.List;
/**
* @author Wang Xiangwei
* @version 2020/3/10
*/
@Data
@Entity
@Table(name = "student")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@ManyToMany(cascade = { CascadeType.MERGE })
@JsonIgnore
@JoinTable(name = "student_teacher", joinColumns = { @JoinColumn(name = "student_id", referencedColumnName = "id") }, inverseJoinColumns = {
@JoinColumn(name = "teacher_id", referencedColumnName = "id") })
private List<Teacher> teachers;
}
package cn.quantgroup.cashloanflowboss.api.manytomany;
import cn.quantgroup.cashloanflowboss.core.persistence.CashLoanFlowBossPubConfDataSource;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* Created by WeiWei on 2019/7/22.
*/
@CashLoanFlowBossPubConfDataSource
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {
}
package cn.quantgroup.cashloanflowboss.api.manytomany;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import javax.persistence.*;
import java.util.List;
/**
* @author Wang Xiangwei
* @version 2020/3/10
*/
@Data
@Entity
@Table(name = "teacher")
public class Teacher {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@ManyToMany(cascade = { CascadeType.MERGE })
@JsonIgnore
@JoinTable(name = "student_teacher", joinColumns = { @JoinColumn(name = "teacher_id", referencedColumnName = "id") }, inverseJoinColumns = {
@JoinColumn(name = "student_id", referencedColumnName = "id") })
private List<Student> students;
}
package cn.quantgroup.cashloanflowboss.api.manytomany;
import cn.quantgroup.cashloanflowboss.core.persistence.CashLoanFlowBossPubConfDataSource;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* Created by WeiWei on 2019/7/22.
*/
@CashLoanFlowBossPubConfDataSource
@Repository
public interface TeacherRepository extends JpaRepository<Teacher, Long> {
}
package cn.quantgroup.cashloanflowboss.api.manytomany;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Random;
/**
* @author Wang Xiangwei
* @version 2020/3/10
*/
@RestController
@RequestMapping("/test")
public class TestController123 {
@Autowired
private StudentRepository studentRepository;
@Autowired
private TeacherRepository teacherRepository;
@GetMapping("/add/teacher/relation/{id}")
public String test1(@PathVariable Long id){
Student one = studentRepository.findOne(id);
List<Teacher> all = teacherRepository.findAll();
one.setTeachers(all);
studentRepository.save(one);
return "www";
}
@GetMapping("/del/student/{id}")
public String test2(@PathVariable Long id){
studentRepository.delete(id);
return "www";
}
@GetMapping("/del/teacher/{id}")
public String test3(@PathVariable Long id){
teacherRepository.delete(id);
return "www";
}
@GetMapping("/add/student")
public String test4(){
Student student = new Student();
Random random = new Random();
student.setName(random.nextInt()+"");
studentRepository.save(student);
return "ww";
}
@GetMapping("/add/teacher")
public String test5(){
Teacher student = new Teacher();
Random random = new Random();
student.setName(random.nextInt()+"");
teacherRepository.save(student);
return "ww";
}
@GetMapping("/add/student/relation/{id}")
public String test6(@PathVariable Long id){
List<Student> all = studentRepository.findAll();
Teacher one = teacherRepository.findOne(id);
one.setStudents(all);
teacherRepository.save(one);
return "ww";
}
}
...@@ -15,7 +15,6 @@ import java.util.List; ...@@ -15,7 +15,6 @@ import java.util.List;
@Repository @Repository
public interface UserRoleMappingRepository extends JpaRepository<UserRoleMapping, Long> { public interface UserRoleMappingRepository extends JpaRepository<UserRoleMapping, Long> {
List<UserRoleMapping> findAllByRoleId(Long roleId);
@Transactional @Transactional
void deleteAllByRoleId(Long roleId); void deleteAllByRoleId(Long roleId);
......
...@@ -149,7 +149,6 @@ public class RoleServiceImpl implements RoleService { ...@@ -149,7 +149,6 @@ public class RoleServiceImpl implements RoleService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result<Boolean> deleteRole(Long roleId) { public Result<Boolean> deleteRole(Long roleId) {
final String LOG_PRE = "RoleServiceImpl.deleteRole"; final String LOG_PRE = "RoleServiceImpl.deleteRole";
userRoleMappingRepository.deleteAllByRoleId(roleId);
log.info("{} 删除角色 roleId={}", LOG_PRE, roleId); log.info("{} 删除角色 roleId={}", LOG_PRE, roleId);
if(roleId == null){ if(roleId == null){
log.error("{} 删除角色失败 id为空"); log.error("{} 删除角色失败 id为空");
...@@ -157,7 +156,7 @@ public class RoleServiceImpl implements RoleService { ...@@ -157,7 +156,7 @@ public class RoleServiceImpl implements RoleService {
} }
if (roleRepository.exists(roleId)) { if (roleRepository.exists(roleId)) {
roleRepository.delete(roleId); roleRepository.delete(roleId);
List<UserRoleMapping> allByRoleId = userRoleMappingRepository.findAllByRoleId(roleId); userRoleMappingRepository.deleteAllByRoleId(roleId);
} }
return Result.buildSuccess(true); return Result.buildSuccess(true);
......
...@@ -202,5 +202,10 @@ public class UserController { ...@@ -202,5 +202,10 @@ public class UserController {
return Result.buildSuccess(list); return Result.buildSuccess(list);
} }
@PutMapping("/update/password")
// @Security(authorityId = "User.update")
public Result<Boolean> modifyUser(@RequestBody @Valid UpdatePasswordParam param){
return userService.updatePassword(param);
}
} }
package cn.quantgroup.cashloanflowboss.api.user.model;
import cn.quantgroup.cashloanflowboss.component.validator.constraints.NotEmpty;
import lombok.Data;
/**
* @author Wang Xiangwei
* @version 2020/3/11
*/
@Data
public class UpdatePasswordParam {
@NotEmpty(message = "请输入账号")
private String username;
@NotEmpty(message = "请输入旧密码")
private String oldPassword;
@NotEmpty(message = "请输入新密码")
private String newPassword;
}
...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.api.user.service; ...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.api.user.service;
import cn.quantgroup.cashloanflowboss.api.user.entity.User; import cn.quantgroup.cashloanflowboss.api.user.entity.User;
import cn.quantgroup.cashloanflowboss.api.user.model.*; import cn.quantgroup.cashloanflowboss.api.user.model.*;
import cn.quantgroup.cashloanflowboss.api.user.model.UpdatePasswordParam;
import cn.quantgroup.cashloanflowboss.core.base.Result; import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.core.base.Tuple; import cn.quantgroup.cashloanflowboss.core.base.Tuple;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
...@@ -50,5 +51,8 @@ public interface UserService { ...@@ -50,5 +51,8 @@ public interface UserService {
Result<Page<User>> getUserList(QueryUserListModel queryUserListModel); Result<Page<User>> getUserList(QueryUserListModel queryUserListModel);
Result<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam);
} }
...@@ -9,6 +9,7 @@ import cn.quantgroup.cashloanflowboss.api.user.model.QueryUserListModel; ...@@ -9,6 +9,7 @@ import cn.quantgroup.cashloanflowboss.api.user.model.QueryUserListModel;
import cn.quantgroup.cashloanflowboss.api.user.model.UserDetailInfo; import cn.quantgroup.cashloanflowboss.api.user.model.UserDetailInfo;
import cn.quantgroup.cashloanflowboss.api.user.model.UserInfoModel; import cn.quantgroup.cashloanflowboss.api.user.model.UserInfoModel;
import cn.quantgroup.cashloanflowboss.api.user.model.UserModelVo; import cn.quantgroup.cashloanflowboss.api.user.model.UserModelVo;
import cn.quantgroup.cashloanflowboss.api.user.model.UpdatePasswordParam;
import cn.quantgroup.cashloanflowboss.api.user.repository.UserRepository; import cn.quantgroup.cashloanflowboss.api.user.repository.UserRepository;
import cn.quantgroup.cashloanflowboss.core.Application; import cn.quantgroup.cashloanflowboss.core.Application;
import cn.quantgroup.cashloanflowboss.core.asserts.Assert; import cn.quantgroup.cashloanflowboss.core.asserts.Assert;
...@@ -325,4 +326,26 @@ public class UserServiceImpl implements UserService { ...@@ -325,4 +326,26 @@ public class UserServiceImpl implements UserService {
return Result.buildSuccess(userPage); return Result.buildSuccess(userPage);
} }
@Override
public Result<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam) {
String logPre = "UserServiceImpl.updatePassword";
log.info("{},修改密码,updatePasswordParam={}", logPre, updatePasswordParam);
User user = userRepository.getUserByUsername(updatePasswordParam.getUsername());
if(Objects.isNull(user)){
log.info("{} 不存在 {} 用户",logPre, updatePasswordParam.getUsername());
return Result.buildFail("用户不存在,不能修改密码");
}
String md5 = MD5Tools.md5(updatePasswordParam.getOldPassword());
if(!md5.equals(user.getPassword())){
log.info("{} 旧密码不正确不能修改密码 username={}",logPre,updatePasswordParam.getUsername());
return Result.buildFail("旧密码错误,不能修改密码");
}
String newPassword = MD5Tools.md5(updatePasswordParam.getNewPassword());
user.setPassword(newPassword);
userRepository.save(user);
return Result.buildSuccess(true);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment