package com.whyc.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.api.R;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.whyc.dto.Response;
|
import com.whyc.pojo.UserInf;
|
import com.whyc.service.UserService;
|
import com.whyc.util.ActionUtil;
|
import com.whyc.util.RSAUtil;
|
import io.swagger.annotations.*;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.io.UnsupportedEncodingException;
|
import java.net.URLDecoder;
|
import java.security.InvalidParameterException;
|
import java.util.List;
|
|
@RestController
|
@RequestMapping("user")
|
@Api(tags = "用户管理-用户")
|
@Slf4j
|
public class UserController {
|
|
@Resource
|
private UserService userService;
|
|
@PostMapping
|
@ApiOperation(value = "添加")
|
public Response add(@RequestBody UserInf user){
|
return userService.add(user);
|
}
|
|
@PostMapping("/addByRSA")
|
@ApiOperation(value = "添加-RSA加密")
|
public Response addByRSA(@RequestBody UserInf user){
|
return userService.addByRSA(user);
|
}
|
|
@GetMapping
|
@ApiOperation(value = "查询byId")
|
public Response<UserInf> getById(@RequestParam int id){
|
return new Response<UserInf>().set(1,userService.getById(id));
|
}
|
|
@GetMapping("all")
|
@ApiOperation(value = "查询所有")
|
public Response<List<UserInf>> getAll(){
|
return new Response<List<UserInf>>().set(1,userService.getAll());
|
}
|
|
@GetMapping("page")
|
@ApiOperation(value = "查询分页")
|
public Response<IPage<UserInf>> getPage(@RequestParam int pageNum,int pageSize){
|
Page<Object> page = new Page<>(pageNum, pageSize);
|
return new Response<IPage<UserInf>>().set(1,userService.getAllWithPage(page));
|
}
|
|
@PutMapping
|
@ApiOperation(value = "编辑")
|
public Response update(@RequestBody UserInf user){
|
userService.update(user);
|
return new Response().setII(1,"更新成功");
|
}
|
|
@DeleteMapping
|
@ApiOperation(value = "删除")
|
public Response delete(@RequestParam int id){
|
userService.delete(id);
|
return new Response().setII(1,"删除成功");
|
}
|
@GetMapping("/searchUKeyToUName")
|
@ApiOperation(value = "根据Ukey查询用户")
|
public Response getUserByUkey(@RequestParam String uKeyId){
|
UserInf userInf = userService.getUserByUKeyId(uKeyId);
|
Response response = new Response();
|
if (userInf!=null){
|
response.set(1,userInf,"UKey有绑定用户");
|
}else{
|
response.set(0,"Ukey没有绑定用户");
|
}
|
return response;
|
}
|
|
@GetMapping("/searchUNameToUKey")
|
@ApiOperation(value = "根据用户名查绑定的Ukey")
|
public Response getUserByUserName(@RequestParam String uKeyId){
|
UserInf userInf = userService.getUserByUKeyId(uKeyId);
|
Response response = new Response();
|
if (userInf!=null){
|
if (StringUtils.isEmpty(userInf.getUkeyId())){
|
response.set(0,"该用户没有绑定Ukey");
|
}else {
|
response.set(1,userInf);
|
}
|
}else{
|
response.set(0,"该用户不存在");
|
}
|
return response;
|
}
|
@PostMapping("/bindUkey")
|
@ApiOperation(value = "绑定uKey")
|
public Response bindUkey(@RequestBody UserInf userInf){
|
boolean b = userService.bindUkey(userInf);
|
if (b){
|
return new Response().set(1,"绑定成功");
|
}else {
|
return new Response().set(0,"绑定失败");
|
}
|
|
}
|
|
@PostMapping("/checkUserPassword")
|
@ApiOperation(value = "检查用户密码")
|
public Response checkUserPassword(@RequestParam String password){
|
UserInf userInf = ActionUtil.getUser();
|
//前端传递的密码解密
|
password = RSAUtil.decryptFrontP(password, RSAUtil.fontSeparator)[0];
|
//内存存储的密码解密
|
String userPassword = userInf.getUpassword();
|
userPassword = RSAUtil.decrypt(userPassword,RSAUtil.getPrivateKey());
|
if (password.equals(userPassword)){
|
return new Response().set(1);
|
}else {
|
return new Response().set(0);
|
}
|
}
|
|
@PostMapping("/checkUserPasswordOfRSA")
|
@ApiOperation(value = "检查用户RSA密码")
|
public Response checkUserPasswordOfREA(@RequestParam String pwd){
|
UserInf userInf = ActionUtil.getUser();
|
String passwordEncrypt = null;
|
try {
|
passwordEncrypt = URLDecoder.decode(pwd, "utf-8");
|
}catch (UnsupportedEncodingException e){
|
e.printStackTrace();
|
}
|
String password = RSAUtil.decryptFront(passwordEncrypt, RSAUtil.fontSeparator)[0];
|
String passwordDB = RSAUtil.decrypt(userInf.getUpassword(),RSAUtil.getPrivateKey());
|
if(passwordDB.equals(password)){
|
return new Response().set(1);
|
}else {
|
return new Response().set(0);
|
}
|
}
|
|
|
@PostMapping("/updatePassword")
|
@ApiOperation(value = "修改密码")
|
public Response updatePassword(@RequestParam String password){
|
UserInf userInf = ActionUtil.getUser();
|
return userService.updatePassword(userInf,password);
|
}
|
|
@PostMapping("/updatePasswordByRSA")
|
@ApiOperation(value = "修改密码-RSA")
|
public Response updatePasswordByRSA(@RequestParam String password){
|
UserInf userInf = ActionUtil.getUser();
|
return userService.updatePasswordByRSA(userInf,password);
|
}
|
|
/**
|
* 1.首次登录,请先修改初始化口令
|
* 2.超过3个月没有修改口令,请修改口令后重新登录
|
*/
|
@PutMapping("updatePassword2")
|
@ApiOperation(value = "修改密码-3个月未登录")
|
public Response updatePassword2(@RequestParam String passwordOld,String passwordNew){
|
//校验老密码
|
String[] dataArr = RSAUtil.decryptFrontP(passwordOld, RSAUtil.fontSeparator);
|
passwordOld = dataArr[0];
|
String passwordMD5 = dataArr[1];
|
if(!ActionUtil.EncryptionMD5(passwordOld).equals(passwordMD5)){
|
throw new InvalidParameterException("参数校验失败");
|
}
|
//校验新密码
|
String[] dataNewArr = RSAUtil.decryptFrontP(passwordNew, RSAUtil.fontSeparator);
|
passwordNew = dataNewArr[0];
|
String passwordNewMD5 = dataNewArr[1];
|
if(!ActionUtil.EncryptionMD5(passwordNew).equals(passwordNewMD5)){
|
throw new InvalidParameterException("参数校验失败");
|
}
|
|
UserInf userInf = ActionUtil.getUser();
|
|
//校验用户名和密码是否包含
|
if(passwordNew.contains(userInf.getUName())){
|
return new Response().set(1,false,"密码包含用户名");
|
}
|
return userService.updatePassword2(userInf,passwordOld,passwordNew);
|
}
|
|
|
@GetMapping("/getUserInf")
|
@ApiOperation(value = "获取当前用户的用户名等信息",notes = "原User_infAction!searchUname(获取用户名)接口")
|
public Response getUserInf(){
|
UserInf userInf = ActionUtil.getUser();
|
return new Response().set(1,userInf);
|
}
|
|
|
|
|
|
}
|