Commit 8933be26 authored by 33's avatar 33

后台角色管理,版权申请审核人员记录

parent 66ec46e0
package com.fzm.admin.controller; package com.fzm.admin.controller;
import cn.hutool.core.lang.Assert;
import com.fzm.admin.params.LoginParam; import com.fzm.admin.params.LoginParam;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.constant.RedisConstant; import com.fzm.common.constant.RedisConstant;
import com.fzm.common.constant.TokenConstant; import com.fzm.common.constant.TokenConstant;
import com.fzm.common.entity.Admin; import com.fzm.common.entity.Admin;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.interceptor.LoginUserInfo;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.AdminService; import com.fzm.common.service.AdminService;
import com.fzm.common.utils.JwtUtil; import com.fzm.common.utils.JwtUtil;
import com.fzm.common.utils.RedisUtil; import com.fzm.common.utils.RedisUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -28,23 +35,51 @@ import java.util.concurrent.TimeUnit; ...@@ -28,23 +35,51 @@ import java.util.concurrent.TimeUnit;
@RestController @RestController
@RequestMapping("/admin") @RequestMapping("/admin")
@Api(tags = "后台用户管理") @Api(tags = "后台用户管理")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class AdminController { public class AdminController {
@Resource private final AdminService adminService;
private AdminService adminService; private final RedisUtil redisUtil;
private final PasswordEncoder passwordEncoder;
@Resource
private RedisUtil redisUtil;
@PostMapping("/login") @PostMapping("/login")
@ApiOperation(value = "登录") @ApiOperation(value = "登录")
public ResponseModel<Map<String, Object>> login(@Validated @RequestBody LoginParam loginParam) { public ResponseModel<Map<String, Object>> login(@Validated @RequestBody LoginParam loginParam) {
Admin admin = adminService.login(loginParam.getUsername(), loginParam.getPassword()); Admin admin = adminService.login(loginParam.getUsername(), loginParam.getPassword());
Integer freezeState = admin.getFreezeState();
if (freezeState != null && freezeState == 1) {
throw GlobalException.newException(ResultCode.FREEZE);
}
String token = JwtUtil.generateToken(admin); String token = JwtUtil.generateToken(admin);
redisUtil.setEx(RedisConstant.ADMIN_USER_TOKEN_PREFIX + admin.getId(), token, 2L, TimeUnit.HOURS); redisUtil.setEx(RedisConstant.ADMIN_USER_TOKEN_PREFIX + admin.getId(), token, 2L, TimeUnit.HOURS);
HashMap<String, Object> result = new HashMap<>(); HashMap<String, Object> result = new HashMap<>();
result.put("user", admin); result.put("user", admin);
result.put(TokenConstant.TOKEN_HEADER, token); result.put(TokenConstant.TOKEN_HEADER, token);
Integer needResetPassword = admin.getNeedResetPassword();
if (needResetPassword != null && needResetPassword == 1) {
return ResponseModel.fail(ResultCode.RESET_PASSWORD, result);
}
return ResponseModel.success(result); return ResponseModel.success(result);
} }
@Authentication
@PostMapping("/password")
@ApiOperation(value = "修改密码")
public ResponseModel<Object> password(@RequestBody LoginParam loginParam) {
String password = loginParam.getPassword();
Assert.notBlank(password, "密码不能为空");
String username = LoginUserInfo.getLoginUser().getUsername();
Admin admin = new Admin();
admin.setUsername(username);
admin.setPassword(passwordEncoder.encode(password));
admin.setNeedResetPassword(0);
adminService.updateByUserNameIf(admin);
return ResponseModel.success();
}
} }
...@@ -8,11 +8,14 @@ import com.fzm.common.entity.Admin; ...@@ -8,11 +8,14 @@ import com.fzm.common.entity.Admin;
import com.fzm.common.entity.AdminRole; import com.fzm.common.entity.AdminRole;
import com.fzm.common.enums.ResultCode; import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.interceptor.LoginUserInfo;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.AdminRoleService; import com.fzm.common.service.AdminRoleService;
import com.fzm.common.service.AdminService; import com.fzm.common.service.AdminService;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -35,6 +38,20 @@ public class AdminRoleController { ...@@ -35,6 +38,20 @@ public class AdminRoleController {
private final AdminRoleService adminRoleService; private final AdminRoleService adminRoleService;
private final PasswordEncoder passwordEncoder; private final PasswordEncoder passwordEncoder;
@GetMapping("/pages")
@ApiOperation(value = "分页查询")
public ResponseModel<PageInfo<Admin>> pages(@ApiParam(value = "页码", required = true) @RequestParam Integer pageNum,
@ApiParam(value = "每页记录数", required = true) @RequestParam Integer pageSize,
@ApiParam(value = "用户名") @RequestParam(required = false) String username,
@ApiParam(value = "昵称") @RequestParam(required = false) String nickname,
@ApiParam(value = "角色类型") @RequestParam(required = false) Integer roleId) {
if (roleId != null) {
List<AdminRole> adminRoles = adminRoleService.listAll();
Assert.isTrue(adminRoles.stream().map(AdminRole::getRoleId).anyMatch(id -> id.equals(roleId)), "请选择正确的权限ID");
}
PageInfo<Admin> pageInfo = adminService.pages(pageNum, pageSize, username, nickname, roleId);
return ResponseModel.success(pageInfo);
}
@GetMapping("/list") @GetMapping("/list")
@ApiOperation(value = "查询所有权限") @ApiOperation(value = "查询所有权限")
...@@ -45,11 +62,19 @@ public class AdminRoleController { ...@@ -45,11 +62,19 @@ public class AdminRoleController {
@PostMapping("/add") @PostMapping("/add")
@ApiOperation("新增权限") @ApiOperation("新增权限")
public ResponseModel<Object> add(@RequestBody AdminRoleParam adminRoleParam) { public ResponseModel<Object> add(@RequestBody AdminRoleParam adminRoleParam) {
// 只有超级管理员能编辑权限
Integer loginRoleId = LoginUserInfo.getLoginUser().getRoleId();
if (loginRoleId != 1) {
throw GlobalException.newException(ResultCode.FORBIDDEN);
}
String nickname = adminRoleParam.getNickname(); String nickname = adminRoleParam.getNickname();
Assert.notBlank(nickname, "昵称不能为空"); Assert.notBlank(nickname, "昵称不能为空");
String username = adminRoleParam.getUsername(); String username = adminRoleParam.getUsername();
Assert.notBlank(username, "用户名不能为空"); Assert.notBlank(username, "用户名不能为空");
Admin addUser = adminService.selectByUsername(username);
Assert.isNull(addUser, "用户名已存在");
String password = adminRoleParam.getPassword(); String password = adminRoleParam.getPassword();
Assert.notBlank(password, "密码不能为空"); Assert.notBlank(password, "密码不能为空");
...@@ -57,10 +82,11 @@ public class AdminRoleController { ...@@ -57,10 +82,11 @@ public class AdminRoleController {
Integer roleId = adminRoleParam.getRoleId(); Integer roleId = adminRoleParam.getRoleId();
Assert.notNull(roleId, "权限ID不能为空"); Assert.notNull(roleId, "权限ID不能为空");
List<AdminRole> adminRoles = adminRoleService.listAll(); List<AdminRole> adminRoles = adminRoleService.listAll();
Assert.isTrue(adminRoles.stream().map(AdminRole::getRoleId).anyMatch(id -> id.equals(roleId)), "请选择正确的权限"); Assert.isTrue(adminRoles.stream().map(AdminRole::getRoleId).anyMatch(id -> id.equals(roleId)), "请选择正确的权限ID");
Admin admin = BeanUtil.copyProperties(adminRoleParam, Admin.class); Admin admin = BeanUtil.copyProperties(adminRoleParam, Admin.class);
admin.setPassword(passwordEncoder.encode(password)); admin.setPassword(passwordEncoder.encode(password));
admin.setNeedResetPassword(1);
adminService.save(admin); adminService.save(admin);
...@@ -70,25 +96,40 @@ public class AdminRoleController { ...@@ -70,25 +96,40 @@ public class AdminRoleController {
@PostMapping("/update") @PostMapping("/update")
@ApiOperation("编辑权限") @ApiOperation("编辑权限")
public ResponseModel<Object> update(@RequestBody AdminRoleParam adminRoleParam) { public ResponseModel<Object> update(@RequestBody AdminRoleParam adminRoleParam) {
Integer loginRoleId = LoginUserInfo.getLoginUser().getRoleId();
if (loginRoleId != 1) {
throw GlobalException.newException(ResultCode.FORBIDDEN);
}
String username = adminRoleParam.getUsername(); String username = adminRoleParam.getUsername();
Assert.notBlank(username, "用户名不能为空"); Assert.notBlank(username, "用户名不能为空");
Admin updateUser = adminService.selectByUsername(username);
Assert.notNull(updateUser, "用户名不存在");
int needResetPassword = 0;
String password = adminRoleParam.getPassword(); String password = adminRoleParam.getPassword();
if (StringUtils.isNotBlank(password)) { if (StringUtils.isNotBlank(password)) {
adminRoleParam.setPassword(passwordEncoder.encode(password)); adminRoleParam.setPassword(passwordEncoder.encode(password));
needResetPassword = 1;
} }
Integer roleId = adminRoleParam.getRoleId(); Integer roleId = adminRoleParam.getRoleId();
if (roleId != null) { if (roleId != null) {
List<AdminRole> adminRoles = adminRoleService.listAll(); List<AdminRole> adminRoles = adminRoleService.listAll();
Assert.isTrue(adminRoles.stream().map(AdminRole::getRoleId).anyMatch(id -> id.equals(roleId)), "请选择正确的权限"); Assert.isTrue(adminRoles.stream().map(AdminRole::getRoleId).anyMatch(id -> id.equals(roleId)), "请选择正确的权限ID");
}
Integer freezeState = adminRoleParam.getFreezeState();
if (freezeState != null) {
Assert.isTrue(freezeState == 0 || freezeState == 1, "冻结状态码错误");
} }
if (StringUtils.isAnyBlank(adminRoleParam.getNickname(), password) && roleId == null) { if (StringUtils.isAllBlank(adminRoleParam.getNickname(), password) && roleId == null && freezeState == null) {
throw GlobalException.newException(ResultCode.VALIDATE_FAILED); throw GlobalException.newException(ResultCode.VALIDATE_FAILED);
} }
Admin admin = BeanUtil.copyProperties(adminRoleParam, Admin.class); Admin admin = BeanUtil.copyProperties(adminRoleParam, Admin.class);
admin.setNeedResetPassword(needResetPassword);
adminService.updateByUserNameIf(admin); adminService.updateByUserNameIf(admin);
......
...@@ -20,4 +20,7 @@ public class AdminRoleParam { ...@@ -20,4 +20,7 @@ public class AdminRoleParam {
@ApiModelProperty("角色编号") @ApiModelProperty("角色编号")
private Integer roleId; private Integer roleId;
@ApiModelProperty("是否已被冻结,0未冻结,1已冻结")
private Integer freezeState;
} }
...@@ -34,6 +34,15 @@ public class Admin extends AbstractUser { ...@@ -34,6 +34,15 @@ public class Admin extends AbstractUser {
@ApiModelProperty("角色id") @ApiModelProperty("角色id")
private Integer roleId; private Integer roleId;
@ApiModelProperty("是否需要更新密码")
private Integer needResetPassword;
@ApiModelProperty("是否已被冻结,0未冻结,1已冻结")
private Integer freezeState;
@ApiModelProperty("最后登录时间")
private Date lastLoginTime;
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private Date createDate; private Date createDate;
......
...@@ -98,6 +98,9 @@ public class CopyrightApply { ...@@ -98,6 +98,9 @@ public class CopyrightApply {
@ApiModelProperty(value = "版权申请后台核验通过时间") @ApiModelProperty(value = "版权申请后台核验通过时间")
private Date passTime; private Date passTime;
@ApiModelProperty(value = "审核人员")
private String checkUsername;
// 参考枚举类-com.fzm.common.enums.CopyrightApplyState // 参考枚举类-com.fzm.common.enums.CopyrightApplyState
@ApiModelProperty(value = "登记状态 -2:待支付 -1:已撤回 0:待核验 2:提交审核 3:已驳回 4:审核成功 5:驳回 6:待审核 7:待终审") @ApiModelProperty(value = "登记状态 -2:待支付 -1:已撤回 0:待核验 2:提交审核 3:已驳回 4:审核成功 5:驳回 6:待审核 7:待终审")
private Integer registerState; private Integer registerState;
......
...@@ -42,5 +42,6 @@ public class CopyrightApplyVo { ...@@ -42,5 +42,6 @@ public class CopyrightApplyVo {
@ApiModelProperty(value = "申请时间") @ApiModelProperty(value = "申请时间")
private Date applyTime; private Date applyTime;
@ApiModelProperty(value = "审核人员")
private String checkUsername;
} }
...@@ -3,8 +3,10 @@ package com.fzm.common.enums; ...@@ -3,8 +3,10 @@ package com.fzm.common.enums;
public enum ResultCode implements IErrorCode { public enum ResultCode implements IErrorCode {
SUCCESS(200, "success"), SUCCESS(200, "success"),
FAILED(500, "failed"), FAILED(500, "failed"),
RESET_PASSWORD(303, "请重置密码"),
VALIDATE_FAILED(405, "参数检验失败"), VALIDATE_FAILED(405, "参数检验失败"),
UNAUTHORIZED(401, "认证失败"), UNAUTHORIZED(401, "认证失败"),
FREEZE(402, "用户账号被冻结"),
FORBIDDEN(403, "没有相关权限"), FORBIDDEN(403, "没有相关权限"),
DATA_ERROR(601, "没找到相关数据"), DATA_ERROR(601, "没找到相关数据"),
REGISTER_ERROR(410, "注册失败"), REGISTER_ERROR(410, "注册失败"),
...@@ -25,8 +27,8 @@ public enum ResultCode implements IErrorCode { ...@@ -25,8 +27,8 @@ public enum ResultCode implements IErrorCode {
; ;
private Integer code; private final Integer code;
private String message; private final String message;
ResultCode(Integer code, String message) { ResultCode(Integer code, String message) {
this.code = code; this.code = code;
......
...@@ -4,7 +4,8 @@ import cn.hutool.core.date.DateUtil; ...@@ -4,7 +4,8 @@ import cn.hutool.core.date.DateUtil;
import com.fzm.common.annotation.Authentication; import com.fzm.common.annotation.Authentication;
import com.fzm.common.constant.RedisConstant; import com.fzm.common.constant.RedisConstant;
import com.fzm.common.constant.TokenConstant; import com.fzm.common.constant.TokenConstant;
import com.fzm.common.entity.AbstractUser; import com.fzm.common.entity.Admin;
import com.fzm.common.entity.User;
import com.fzm.common.enums.ResultCode; import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.service.AdminService; import com.fzm.common.service.AdminService;
...@@ -64,20 +65,43 @@ public class AuthenticationInterceptor implements HandlerInterceptor { ...@@ -64,20 +65,43 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
} }
String appId = JwtUtil.getAppIdFromToken(token); String appId = JwtUtil.getAppIdFromToken(token);
Integer userId = JwtUtil.getUserIdFromToken(token); Integer userId = JwtUtil.getUserIdFromToken(token);
AbstractUser user;
String redisToken; String redisToken;
String username;
Integer roleId;
if (TokenConstant.TOKEN_APP_ID_PORTAL.equals(appId)) { if (TokenConstant.TOKEN_APP_ID_PORTAL.equals(appId)) {
// h5用户 // h5用户
user = userService.getById(userId); User user = userService.getById(userId);
if (user == null) {
throw GlobalException.newException(ResultCode.UNAUTHORIZED, "非法用户请求");
}
redisToken = redisUtil.get(RedisConstant.PORTAL_USER_TOKEN_PREFIX + userId); redisToken = redisUtil.get(RedisConstant.PORTAL_USER_TOKEN_PREFIX + userId);
roleId = null;
username = null;
} else { } else {
// 后台管理用户 // 后台管理用户
user = adminService.getById(userId); Admin admin = adminService.getById(userId);
redisToken = redisUtil.get(RedisConstant.ADMIN_USER_TOKEN_PREFIX + userId); if (admin == null) {
}
if (user == null) {
throw GlobalException.newException(ResultCode.UNAUTHORIZED, "非法用户请求"); throw GlobalException.newException(ResultCode.UNAUTHORIZED, "非法用户请求");
} }
// 判断冻结和更改密码
Integer freezeState = admin.getFreezeState();
if (freezeState != null && freezeState == 1) {
throw GlobalException.newException(ResultCode.FREEZE);
}
Integer needResetPassword = admin.getNeedResetPassword();
String requestURI = request.getRequestURI();
if (needResetPassword != null && needResetPassword == 1 && requestURI != null && !requestURI.contains("/admin/password")) {
throw GlobalException.newException(ResultCode.RESET_PASSWORD);
}
redisToken = redisUtil.get(RedisConstant.ADMIN_USER_TOKEN_PREFIX + userId);
roleId = admin.getRoleId();
username = admin.getUsername();
}
if (StringUtils.isBlank(redisToken)) { if (StringUtils.isBlank(redisToken)) {
throw GlobalException.newException(ResultCode.UNAUTHORIZED, "登录已过期"); throw GlobalException.newException(ResultCode.UNAUTHORIZED, "登录已过期");
} }
...@@ -96,6 +120,12 @@ public class AuthenticationInterceptor implements HandlerInterceptor { ...@@ -96,6 +120,12 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
} }
}*/ }*/
LoginUser loginUser = new LoginUser();
loginUser.setUserId(userId);
loginUser.setUsername(username);
loginUser.setAppId(appId);
loginUser.setRoleId(roleId);
LoginUserInfo.setUserInfo(loginUser);
} }
return true; return true;
} }
...@@ -107,7 +137,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor { ...@@ -107,7 +137,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
@Override @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
LoginUserInfo.delUserInfo();
} }
public static void main(String[] args) { public static void main(String[] args) {
......
package com.fzm.common.interceptor;
import lombok.Data;
/**
* @author wt
* @date 2022/3/14
*/
@Data
public class LoginUser {
private String appId;
private String username;
private Integer userId;
private Integer roleId;
}
package com.fzm.common.interceptor;
/**
* @author wt
* @date 2022/3/14
*/
public class LoginUserInfo {
private static final ThreadLocal<LoginUser> localUser = new ThreadLocal<>();
public static void setUserInfo(LoginUser loginUser) {
localUser.set(loginUser);
}
public static LoginUser getLoginUser() {
return localUser.get();
}
public static void delUserInfo() {
localUser.remove();
}
}
...@@ -3,6 +3,9 @@ package com.fzm.common.mapper; ...@@ -3,6 +3,9 @@ package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.Admin; import com.fzm.common.entity.Admin;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author tangtuo * @author tangtuo
...@@ -12,4 +15,6 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -12,4 +15,6 @@ import org.apache.ibatis.annotations.Mapper;
public interface AdminMapper extends BaseMapper<Admin> { public interface AdminMapper extends BaseMapper<Admin> {
void updateByUserNameIf(Admin admin); void updateByUserNameIf(Admin admin);
List<Admin> listAdmin(@Param("username") String username, @Param("nickname") String nickname, @Param("roleId") Integer roleId);
} }
...@@ -45,6 +45,10 @@ public class ResponseModel<T> { ...@@ -45,6 +45,10 @@ public class ResponseModel<T> {
return new ResponseModel<>(errorCode, null); return new ResponseModel<>(errorCode, null);
} }
public static <T> ResponseModel<T> fail(IErrorCode errorCode, T data) {
return new ResponseModel<>(errorCode, data);
}
public static ResponseModel<String> fail(IErrorCode errorCode, String errorMsg) { public static ResponseModel<String> fail(IErrorCode errorCode, String errorMsg) {
return new ResponseModel<>(errorCode, errorMsg); return new ResponseModel<>(errorCode, errorMsg);
} }
......
...@@ -2,6 +2,7 @@ package com.fzm.common.service; ...@@ -2,6 +2,7 @@ package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.Admin; import com.fzm.common.entity.Admin;
import com.github.pagehelper.PageInfo;
/** /**
* @author tangtuo * @author tangtuo
...@@ -10,5 +11,9 @@ import com.fzm.common.entity.Admin; ...@@ -10,5 +11,9 @@ import com.fzm.common.entity.Admin;
public interface AdminService extends IService<Admin> { public interface AdminService extends IService<Admin> {
Admin login(String username, String password); Admin login(String username, String password);
PageInfo<Admin> pages(Integer pageNum, Integer pageSize, String username, String nickname, Integer roleId);
void updateByUserNameIf(Admin admin); void updateByUserNameIf(Admin admin);
Admin selectByUsername(String username);
} }
...@@ -7,11 +7,16 @@ import com.fzm.common.enums.ResultCode; ...@@ -7,11 +7,16 @@ import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.AdminMapper; import com.fzm.common.mapper.AdminMapper;
import com.fzm.common.service.AdminService; import com.fzm.common.service.AdminService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/** /**
* @author tangtuo * @author tangtuo
* @date 2021/7/5 15:09 * @date 2021/7/5 15:09
...@@ -34,11 +39,31 @@ public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements ...@@ -34,11 +39,31 @@ public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements
if (!passwordEncoder.matches(password, admin.getPassword())) { if (!passwordEncoder.matches(password, admin.getPassword())) {
throw GlobalException.newException(ResultCode.UNAUTHORIZED, "密码有误"); throw GlobalException.newException(ResultCode.UNAUTHORIZED, "密码有误");
} }
Admin updateAdmin = new Admin();
updateAdmin.setUsername(username);
updateAdmin.setLastLoginTime(new Date());
AdminMapper.updateByUserNameIf(updateAdmin);
return admin; return admin;
} }
@Override @Override
public PageInfo<Admin> pages(Integer pageNum, Integer pageSize, String username, String nickname, Integer roleId) {
PageHelper.startPage(pageNum, pageSize);
List<Admin> list = AdminMapper.listAdmin(username, nickname, roleId);
return new PageInfo<>(list);
}
@Override
public void updateByUserNameIf(Admin admin) { public void updateByUserNameIf(Admin admin) {
AdminMapper.updateByUserNameIf(admin); AdminMapper.updateByUserNameIf(admin);
} }
@Override
public Admin selectByUsername(String username) {
QueryWrapper<Admin> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username", username);
return getOne(queryWrapper);
}
} }
...@@ -19,6 +19,7 @@ import com.fzm.common.entity.vo.CopyrightCertificateVo; ...@@ -19,6 +19,7 @@ import com.fzm.common.entity.vo.CopyrightCertificateVo;
import com.fzm.common.entity.vo.CopyrightVo; import com.fzm.common.entity.vo.CopyrightVo;
import com.fzm.common.enums.*; import com.fzm.common.enums.*;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.interceptor.LoginUserInfo;
import com.fzm.common.mapper.CopyrightApplyMapper; import com.fzm.common.mapper.CopyrightApplyMapper;
import com.fzm.common.mq.NotifyPublisher; import com.fzm.common.mq.NotifyPublisher;
import com.fzm.common.properties.CopyrightProperties; import com.fzm.common.properties.CopyrightProperties;
...@@ -360,6 +361,7 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper, ...@@ -360,6 +361,7 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
} }
copyright.setRegisterState(CopyrightApplyState.REJECTED.getCode()); copyright.setRegisterState(CopyrightApplyState.REJECTED.getCode());
copyright.setRejectReason(rejectReason); copyright.setRejectReason(rejectReason);
copyright.setCheckUsername(LoginUserInfo.getLoginUser().getUsername());
updateById(copyright); updateById(copyright);
// 管理员驳回后,需要自动发起退款 // 管理员驳回后,需要自动发起退款
Order order = orderService.getByPaySceneAndProductId(PayScene.COPYRIGHT.getCode(), id, OrderStatus.PAYED.getStatus()); Order order = orderService.getByPaySceneAndProductId(PayScene.COPYRIGHT.getCode(), id, OrderStatus.PAYED.getStatus());
...@@ -415,6 +417,7 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper, ...@@ -415,6 +417,7 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
copyright.setRegisterState(CopyrightApplyState.SUBMITTED.getCode()); copyright.setRegisterState(CopyrightApplyState.SUBMITTED.getCode());
copyright.setRejectReason(""); copyright.setRejectReason("");
copyright.setPassTime(new Date()); copyright.setPassTime(new Date());
copyright.setCheckUsername(LoginUserInfo.getLoginUser().getUsername());
boolean updateResult = updateById(copyright); boolean updateResult = updateById(copyright);
// 发送系统消息 // 发送系统消息
......
...@@ -14,8 +14,32 @@ ...@@ -14,8 +14,32 @@
<if test="roleId != null"> <if test="roleId != null">
role_id = #{roleId}, role_id = #{roleId},
</if> </if>
<if test="needResetPassword != null">
need_reset_password = #{needResetPassword},
</if>
<if test="freezeState != null">
freeze_state = #{freezeState},
</if>
<if test="lastLoginTime != null">
last_login_time = #{lastLoginTime},
</if>
update_date = now() update_date = now()
</set> </set>
where username = #{username} where username = #{username}
</update> </update>
<select id="listAdmin" resultType="com.fzm.common.entity.Admin">
select id, username, nickname, role_id, freeze_state, create_date, last_login_time
from tb_admin where true
<if test="username != null and username != ''">
and username = #{username}
</if>
<if test="roleId != null">
and role_id = #{roleId}
</if>
<if test="nickname != null and nickname != ''">
and nickname like CONCAT('%', #{nickname}, '%')
</if>
order by id desc
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
c.opus_name, c.opus_name,
c.nft_hash, c.nft_hash,
c.apply_time, c.apply_time,
c.check_username,
u.nickname, u.nickname,
u.telephone u.telephone
FROM tb_copyright_apply c FROM tb_copyright_apply c
......
...@@ -6,9 +6,9 @@ import com.fzm.common.entity.NotifyState; ...@@ -6,9 +6,9 @@ import com.fzm.common.entity.NotifyState;
import com.fzm.common.entity.vo.NotifyVO; import com.fzm.common.entity.vo.NotifyVO;
import com.fzm.common.enums.ResultCode; import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.interceptor.LoginUserInfo;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.NotifyService; import com.fzm.common.service.NotifyService;
import com.fzm.common.utils.JwtUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -17,7 +17,10 @@ import lombok.RequiredArgsConstructor; ...@@ -17,7 +17,10 @@ import lombok.RequiredArgsConstructor;
import lombok.val; import lombok.val;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/** /**
* @author wt * @author wt
...@@ -34,24 +37,23 @@ public class NotifyController { ...@@ -34,24 +37,23 @@ public class NotifyController {
@GetMapping("/pages") @GetMapping("/pages")
@ApiOperation(value = "分页查询") @ApiOperation(value = "分页查询")
public ResponseModel<PageInfo<NotifyVO>> pages(@ApiParam(value = "页码", required = true) @RequestParam Integer pageNum, public ResponseModel<PageInfo<NotifyVO>> pages(@ApiParam(value = "页码", required = true) @RequestParam Integer pageNum,
@ApiParam(value = "每页记录数", required = true) @RequestParam Integer pageSize, @ApiParam(value = "每页记录数", required = true) @RequestParam Integer pageSize) {
@RequestHeader String Authorization) { Integer userId = LoginUserInfo.getLoginUser().getUserId();
Integer userId = JwtUtil.getUserIdFromToken(Authorization);
PageInfo<NotifyVO> pageInfo = notifyService.pages(userId, pageNum, pageSize); PageInfo<NotifyVO> pageInfo = notifyService.pages(userId, pageNum, pageSize);
return ResponseModel.success(pageInfo); return ResponseModel.success(pageInfo);
} }
@ApiOperation("未读消息数量") @ApiOperation("未读消息数量")
@GetMapping("/count") @GetMapping("/count")
public ResponseModel<NotifyState> messageCount(@RequestHeader String Authorization) { public ResponseModel<NotifyState> messageCount() {
Integer userId = JwtUtil.getUserIdFromToken(Authorization); Integer userId = LoginUserInfo.getLoginUser().getUserId();
NotifyState notifyState = notifyService.selectByUid(userId); NotifyState notifyState = notifyService.selectByUid(userId);
return ResponseModel.success(notifyState); return ResponseModel.success(notifyState);
} }
@ApiOperation("查询详细") @ApiOperation("查询详细")
@GetMapping("/detail") @GetMapping("/detail")
public ResponseModel<NotifyVO> getById(@RequestParam Integer id, @RequestHeader String Authorization) { public ResponseModel<NotifyVO> getById(@RequestParam Integer id) {
if (id == null || id <= 0) { if (id == null || id <= 0) {
throw GlobalException.newException(ResultCode.VALIDATE_FAILED); throw GlobalException.newException(ResultCode.VALIDATE_FAILED);
} }
...@@ -59,7 +61,7 @@ public class NotifyController { ...@@ -59,7 +61,7 @@ public class NotifyController {
NotifyVO vo = notifyService.selectById(id); NotifyVO vo = notifyService.selectById(id);
if (vo != null) { if (vo != null) {
Integer userId = JwtUtil.getUserIdFromToken(Authorization); Integer userId = LoginUserInfo.getLoginUser().getUserId();
NotifyState notifyState = notifyService.selectByUid(userId); NotifyState notifyState = notifyService.selectByUid(userId);
if (notifyState != null) { if (notifyState != null) {
val nids = notifyState.getNids(); val nids = notifyState.getNids();
...@@ -78,8 +80,8 @@ public class NotifyController { ...@@ -78,8 +80,8 @@ public class NotifyController {
@ApiOperation("全部已读") @ApiOperation("全部已读")
@GetMapping("/all-read") @GetMapping("/all-read")
public ResponseModel<Boolean> allRead(@RequestHeader String Authorization) { public ResponseModel<Boolean> allRead() {
Integer userId = JwtUtil.getUserIdFromToken(Authorization); Integer userId = LoginUserInfo.getLoginUser().getUserId();
NotifyState notifyState = notifyService.selectByUid(userId); NotifyState notifyState = notifyService.selectByUid(userId);
if (notifyState != null) { if (notifyState != null) {
notifyState.setNumber(0); notifyState.setNumber(0);
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId> <artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version> <version>1.1.20</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.spring4all</groupId> <groupId>com.spring4all</groupId>
......
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