package com.nanjing.water.host.controller.admin;
|
|
import com.nanjing.water.common.ConstantFactory;
|
import com.nanjing.water.common.ExecutedResult;
|
import com.nanjing.water.common.PagerResult;
|
import com.nanjing.water.common.jwt.LoginUserDTO;
|
import com.nanjing.water.common.util.IPUtils;
|
import com.nanjing.water.common.util.ParameterUtil;
|
import com.nanjing.water.common.validator.ParameterValidateResult;
|
import com.nanjing.water.common.validator.ParameterValidator;
|
import com.nanjing.water.entity.enums.EState;
|
import com.nanjing.water.entity.enums.EUserType;
|
import com.nanjing.water.entity.request.ReqChangePassword;
|
import com.nanjing.water.entity.request.adminuser.ReqAdminLogin;
|
import com.nanjing.water.entity.request.adminuser.ReqCreateAdminUser;
|
import com.nanjing.water.entity.request.adminuser.ReqModifyAdminUser;
|
import com.nanjing.water.entity.response.admin.ResAdminLogin;
|
import com.nanjing.water.entity.response.admin.ResAdminPower;
|
import com.nanjing.water.entity.search.SearchAdminUser;
|
import com.nanjing.water.host.BasicController;
|
import com.nanjing.water.host.api.MustAdmin;
|
import com.nanjing.water.host.api.NonLogin;
|
import com.nanjing.water.repository.vo.AdminUserVO;
|
import com.nanjing.water.service.AdminPowerService;
|
import com.nanjing.water.service.AdminService;
|
import com.nanjing.water.service.dto.ResAdminDetail;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
/**
|
* 40.管理员用户相关接口
|
*
|
* @author lin.liu
|
* @date 2023/02/17
|
* @order 40
|
*/
|
@RestController
|
@RequestMapping("admin/user")
|
public class AdminUserController extends BasicController {
|
@Autowired
|
private AdminService service;
|
@Autowired
|
private AdminPowerService adminPowerService;
|
|
/**
|
* 添加后台管理员
|
*
|
* @param request 请求参数
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping("add")
|
public ExecutedResult<Long> add(@RequestBody ReqCreateAdminUser request) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
.addMustEnum(ParameterUtil.named("用户类型"), request.getUserType(), EUserType.class)
|
.addNotNullOrEmpty(ParameterUtil.named("用户名"), request.getUserName())
|
.addLengthMax(ParameterUtil.named("用户名"), request.getUserName(), ConstantFactory.LENGTH_MAX100)
|
.addNotNullOrEmpty(ParameterUtil.named("密码"), request.getPassword())
|
.addLengthMax(ParameterUtil.named("密码"), request.getPassword(), ConstantFactory.LENGTH_MAX50)
|
.addLengthMax(ParameterUtil.named("昵称"), request.getNickName(), ConstantFactory.LENGTH_MAX50)
|
.addLengthMax(ParameterUtil.named("头像"), request.getHeadImg(), ConstantFactory.LENGTH_MAX500)
|
.addLengthMax(ParameterUtil.named("联系方式"), request.getContact(), ConstantFactory.LENGTH_MAX50)
|
.addLengthMax(ParameterUtil.named("联系邮箱"), request.getEmail(), ConstantFactory.LENGTH_MAX50);
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
return service.createAdmin(request);
|
}
|
|
/**
|
* 修改后台管理员
|
*
|
* @param request 请求参数
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping("modify")
|
public ExecutedResult<String> modify(@RequestBody ReqModifyAdminUser request) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
.addGreater(ParameterUtil.named("用户id"), request.getId(), 0L)
|
.addMustEnum(ParameterUtil.named("用户类型"), request.getUserType(), EUserType.class)
|
.addMustEnum(ParameterUtil.named("状态"), request.getStatus(), EState.class)
|
.addLengthMax(ParameterUtil.named("昵称"), request.getNickName(), ConstantFactory.LENGTH_MAX50)
|
.addLengthMax(ParameterUtil.named("头像"), request.getHeadImg(), ConstantFactory.LENGTH_MAX500)
|
.addLengthMax(ParameterUtil.named("联系方式"), request.getContact(), ConstantFactory.LENGTH_MAX50)
|
.addLengthMax(ParameterUtil.named("联系邮箱"), request.getEmail(), ConstantFactory.LENGTH_MAX50);
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
return service.modify(request);
|
}
|
|
/**
|
* 获取指定管理员详情
|
*
|
* @param userId 用户id
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@GetMapping("detail/{userId}")
|
public ExecutedResult<ResAdminDetail> detail(@PathVariable Long userId) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
.addGreater(ParameterUtil.named("用户id"), userId, 0L);
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
return service.detail(userId);
|
}
|
|
/**
|
* 分页查询所有管理员
|
*
|
* @param request 查询参数
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping("search")
|
public ExecutedResult<PagerResult<AdminUserVO>> search(@RequestBody SearchAdminUser request) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator();
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
return service.search(request);
|
}
|
|
/**
|
* 管理员登录
|
*
|
* @param request 请求参数
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@PostMapping("login")
|
@NonLogin
|
public ExecutedResult<ResAdminLogin> adminLogin(@RequestBody ReqAdminLogin request) throws Exception {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
.addNotNullOrEmpty(ParameterUtil.named("验证码已过期,请重新获取"), request.getUuid())
|
.addNotNullOrEmpty(ParameterUtil.named("验证码不允许为空"), request.getCode())
|
.addNotNullOrEmpty(ParameterUtil.named("用户名"), request.getUserName())
|
.addNotNullOrEmpty(ParameterUtil.named("密码"), request.getPassword())
|
.addNotNullOrEmpty(ParameterUtil.named("设备码"), request.getMachineCode());
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
return service.adminLogin(request);
|
}
|
/**
|
* 获取登录设备ip地址
|
*
|
* @param request 获取登录设备ip地址
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@GetMapping("/getIpAddress")
|
@NonLogin
|
public ExecutedResult<String> getIpAddress(HttpServletRequest request) {
|
return ExecutedResult.success(IPUtils.getIpAddress(request));
|
}
|
/**
|
* 保存前端登录验证码
|
*
|
* @param uuid 请求参数
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@GetMapping("/generate")
|
@NonLogin
|
public ExecutedResult<String> generate(@RequestParam String uuid) {
|
//#endregion
|
return service.generate(uuid);
|
}
|
/**
|
* 获取管理员权限列表
|
*
|
* @param userId 用户id
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@GetMapping("getPower/{userId}")
|
public ExecutedResult<ResAdminPower> getPower(@PathVariable Long userId) {
|
return service.getPower(userId);
|
}
|
|
/**
|
* 修改密码
|
*
|
* @param request 请求参数
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@PostMapping("changePassword")
|
public ExecutedResult<String> changePassword(@RequestBody ReqChangePassword request) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
.addNotNullOrEmpty(ParameterUtil.named("旧密码"), request.getOldPassword())
|
.addNotNullOrEmpty(ParameterUtil.named("新密码"), request.getNewPassword())
|
.addLengthMax(ParameterUtil.named("新密码"), request.getNewPassword(), ConstantFactory.LENGTH_MAX50);
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
LoginUserDTO user = super.getTokenUser();
|
return service.changePassword(user, request);
|
}
|
|
/**
|
* 重置管理员密码
|
*
|
* @param userId 用户id
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping("resetPassword/{userId}")
|
public ExecutedResult<String> resetPassword(@PathVariable Long userId) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
.addGreater(ParameterUtil.named("用户id"), userId, 0L);
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
return service.resetPassword(userId);
|
}
|
|
/**
|
* 停用管理员帐号
|
*
|
* @param userId 用户id
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping(value = "stop/{userId}")
|
public ExecutedResult<String> stop(@PathVariable Long userId) {
|
return this.service.stop(userId);
|
}
|
|
/**
|
* 启用管理员帐号
|
*
|
* @param userId 用户id
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping(value = "enable/{userId}")
|
public ExecutedResult<String> enable(@PathVariable Long userId) {
|
return this.service.enable(userId);
|
}
|
|
/**
|
* 删除管理员
|
*
|
* @param userId 用户id
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping("remove/{userId}")
|
public ExecutedResult<String> remove(@PathVariable Long userId) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
.addGreater(ParameterUtil.named("用户id"), userId, 0L);
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return ExecutedResult.failed(result.getErrorMsg());
|
}
|
//#endregion
|
return service.remove(userId);
|
}
|
}
|