package com.wms_admin.sys.controller;
|
|
|
import com.wms_admin.clients.UserLoginUtils;
|
import com.wms_admin.sys.entity.User;
|
import com.wms_admin.sys.service.UserService;
|
import com.wms_admin.utils.JwtUtils;
|
import com.wms_admin.utils.RedisUtil;
|
import com.wms_admin.utils.Result;
|
import com.wms_admin.utils.SpringUtil;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.ObjectUtils;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* <p>
|
* 前端控制器
|
* </p>
|
*
|
* @author 江苏鵷雏网络科技有限公司
|
* @since 2023-05-24
|
*/
|
|
@Api(tags = "账号密码登录")
|
@RestController
|
@RequestMapping("/user")
|
public class UserController {
|
|
@Autowired
|
private UserService service;
|
|
@ApiOperation(value = "添加用户接口")
|
@PostMapping("/add")
|
public Result<?> UserAdd(User user) {
|
Boolean insertIsSuccess = service.AddUser(user);
|
if (insertIsSuccess){
|
return Result.success("添加用户【"+ user.getUsername() +"】成功!");
|
}
|
return Result.fail("添加用户【"+ user.getUsername() +"】失败!可能账号重复");
|
}
|
|
@ApiOperation(value = "账号登录")
|
@ApiImplicitParams(value = {
|
@ApiImplicitParam(name = "password", value = "密码", dataTypeClass = String.class, required = true),
|
@ApiImplicitParam(name = "username", value = "账号", dataTypeClass = String.class, required = true)
|
})
|
@PostMapping("/login/account")
|
public Result<Map<String, Object>> Login(String username, String password) {
|
return service.login(username, password);
|
}
|
|
@ApiOperation(value = "根据token获取用户详细信息")
|
@GetMapping("/info")
|
public Result<Map<String,Object>> getUserInfo(@RequestHeader("X-Token") String token){
|
//根据token获取用户信息
|
Map<String,Object> data = service.getUserInfo(token);
|
if (data != null){
|
return Result.success(data);
|
}
|
return Result.fail(202,"用户登录信息无效,请重新登录");
|
}
|
|
@ApiOperation(value = "获取所有用户信息")
|
@GetMapping("/list")
|
public Result<Map<String,Object>> getUserList(){
|
//根据token获取用户信息
|
List<User> data = service.getUserList();
|
if (!ObjectUtils.isEmpty(data)){
|
Map<String, Object> map = new HashMap<>();
|
map.put("user", data);
|
return Result.success(map);
|
}
|
return Result.fail("获取失败!可能为空");
|
}
|
|
@ApiOperation(value = "修改头像")
|
@PostMapping(value = "/update")
|
public Result<?> Photo(@RequestHeader("X-Token") String token,
|
@RequestPart("file") MultipartFile file) throws IOException {
|
Result<?> result = service.storeFile(token, file.getBytes(), file.getOriginalFilename());
|
return Result.success(result);
|
}
|
|
@ApiOperation(value = "修改密码")
|
@ApiImplicitParams(value = {
|
@ApiImplicitParam(name = "oldPassword", value = "旧密码", dataTypeClass = String.class, required = true),
|
@ApiImplicitParam(name = "newPassword", value = "新密码", dataTypeClass = String.class, required = true)
|
})
|
@PutMapping("/update/password")
|
public Result<?> UpdatePassword(@RequestHeader("X-Token") String token,
|
String oldPassword,
|
String newPassword) {
|
Integer user = service.UpdatePassword(token, oldPassword, newPassword);
|
if (user == 1) {
|
return Result.success("修改成功,请重新登录");
|
} else if (user == 0) {
|
return Result.fail("原密码错误,无法修改");
|
} else {
|
return Result.fail("新密码不能与原密码重复,请重新输入!");
|
}
|
}
|
|
@ApiOperation(value = "根据ID删除用户")
|
@ApiImplicitParams(value = {
|
@ApiImplicitParam(name = "id", value = "需要删除的用户ID", dataTypeClass = String.class, required = true),
|
@ApiImplicitParam(name = "username", value = "用户名称,用于成功提醒", dataTypeClass = String.class, required = true)
|
})
|
@DeleteMapping("/delete")
|
public Result<?> DeleteUser(String id, String username) {
|
if (id.equals("1")){
|
return Result.fail("删除【" + username + "】失败,【admin】账号不可删除!");
|
}
|
Integer userIsDelete = service.DeleteUserId(id);
|
if (userIsDelete == 1){
|
return Result.success("删除【" + username + "】成功");
|
}
|
return Result.fail("删除【" + username + "】失败");
|
}
|
|
@ApiOperation(value = "根据token修改用户名与账号")
|
@ApiImplicitParams(value = {
|
@ApiImplicitParam(name = "username", value = "用户名称", dataTypeClass = String.class, required = true),
|
@ApiImplicitParam(name = "account", value = "账号", dataTypeClass = String.class, required = true)
|
})
|
@PutMapping("/update/user")
|
public Result<?> UpdateUser(@RequestHeader("X-Token") String token, String username, String account) {
|
Integer userIsDelete = service.UpdateUser(token, username, account);
|
if (userIsDelete == 1){
|
return Result.success("删除【" + username + "】成功");
|
}
|
return Result.fail("删除【" + username + "】失败");
|
}
|
|
//注销方法
|
@ApiOperation(value = "退出登录")
|
@PostMapping(value = "/logout")
|
public Result<?> logout(@RequestHeader("X-Token") String token){
|
service.logout(token);
|
return Result.success();
|
}
|
|
//注销方法
|
@ApiOperation(value = "刷新token:如果前端检测到10010即可调用该接口")
|
@PostMapping(value = "/login/refresh")
|
public Result<Map<String, Object>> LoginRefresh(String refresh){
|
String account = JwtUtils.getClaimFiled(refresh, "account");
|
if (!ObjectUtils.isEmpty(account)){
|
Map map = (Map)RedisUtil.get(account);
|
if (!ObjectUtils.isEmpty(map)){
|
String token = map.get("token").toString();
|
User user = (User)RedisUtil.getAndDelete(token);
|
UserLoginUtils bean = SpringUtil.getBean(UserLoginUtils.class);
|
return bean.LoginExamine(user);
|
}
|
}
|
return Result.fail("刷新错误");
|
}
|
}
|