增加用户昵称字段

master
toesbieya 6 years ago
parent cd9b08dbe4
commit 1873d34bbf
  1. 3
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysUser.java
  2. 1
      java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SecurityFilter.java
  3. 3
      java/cloud/nacos-config/jxc-gateway.yml
  4. 10
      java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/RestExceptionAspect.java
  5. 2
      java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ThreadUtil.java
  6. 15
      java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/controller/AccountController.java
  7. 35
      java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/service/AccountService.java
  8. 2
      java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginSuccessInfo.java
  9. 6
      java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/RegisterParam.java
  10. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseInboundController.java
  11. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseOrderController.java
  12. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOrderController.java
  13. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOutboundController.java
  14. 8
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseInboundService.java
  15. 8
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseOrderService.java
  16. 8
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOrderService.java
  17. 8
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOutboundService.java
  18. 6
      java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/ManageController.java
  19. 2
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/RoleController.java
  20. 14
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/UserController.java
  21. 3
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/UserSearch.java
  22. 45
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/UserService.java
  23. 10
      java/local/src/main/java/cn/toesbieya/jxc/aspect/RestExceptionAspect.java
  24. 2
      java/local/src/main/java/cn/toesbieya/jxc/config/WebConfig.java
  25. 15
      java/local/src/main/java/cn/toesbieya/jxc/controller/AccountController.java
  26. 4
      java/local/src/main/java/cn/toesbieya/jxc/controller/doc/PurchaseInboundController.java
  27. 4
      java/local/src/main/java/cn/toesbieya/jxc/controller/doc/PurchaseOrderController.java
  28. 4
      java/local/src/main/java/cn/toesbieya/jxc/controller/doc/SellOrderController.java
  29. 4
      java/local/src/main/java/cn/toesbieya/jxc/controller/doc/SellOutboundController.java
  30. 6
      java/local/src/main/java/cn/toesbieya/jxc/controller/msg/ManageController.java
  31. 2
      java/local/src/main/java/cn/toesbieya/jxc/controller/sys/RoleController.java
  32. 14
      java/local/src/main/java/cn/toesbieya/jxc/controller/sys/UserController.java
  33. 3
      java/local/src/main/java/cn/toesbieya/jxc/interceptor/SecurityInterceptor.java
  34. 3
      java/local/src/main/java/cn/toesbieya/jxc/model/entity/SysUser.java
  35. 2
      java/local/src/main/java/cn/toesbieya/jxc/model/vo/LoginSuccessInfo.java
  36. 6
      java/local/src/main/java/cn/toesbieya/jxc/model/vo/RegisterParam.java
  37. 3
      java/local/src/main/java/cn/toesbieya/jxc/model/vo/search/UserSearch.java
  38. 33
      java/local/src/main/java/cn/toesbieya/jxc/service/AccountService.java
  39. 8
      java/local/src/main/java/cn/toesbieya/jxc/service/doc/BizPurchaseInboundService.java
  40. 8
      java/local/src/main/java/cn/toesbieya/jxc/service/doc/BizPurchaseOrderService.java
  41. 8
      java/local/src/main/java/cn/toesbieya/jxc/service/doc/BizSellOrderService.java
  42. 8
      java/local/src/main/java/cn/toesbieya/jxc/service/doc/BizSellOutboundService.java
  43. 45
      java/local/src/main/java/cn/toesbieya/jxc/service/sys/SysUserService.java
  44. 2
      java/local/src/main/java/cn/toesbieya/jxc/util/ThreadUtil.java
  45. 10
      vue/src/api/account/index.js
  46. 2
      vue/src/config/index.js
  47. 2
      vue/src/store/module/socket.js
  48. 38
      vue/src/view/app/login/RegisterForm.vue
  49. 49
      vue/src/view/system/user/component/EditDialog.vue
  50. 23
      vue/src/view/system/user/indexPage.vue
  51. 12
      vue/src/view/userCenter/component/UserCard.vue

@ -8,7 +8,8 @@ import java.io.Serializable;
public class SysUser implements Serializable { public class SysUser implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
private String name; private String loginName;
private String nickName;
private String pwd; private String pwd;
private Integer role; private Integer role;
private String avatar; private String avatar;

@ -67,6 +67,7 @@ public class SecurityFilter {
//没有权限 //没有权限
if (!ResourceConfig.authority(user, requestUrl)) { if (!ResourceConfig.authority(user, requestUrl)) {
log.warn("权限拦截,访问路径:{},用户:{}", requestUrl, user.getNickName());
return responseJSON(response, R.noPermission()); return responseJSON(response, R.noPermission());
} }

@ -62,4 +62,5 @@ spring:
- /account/login - /account/login
- /account/logout - /account/logout
- /account/register - /account/register
- /account/checkName - /account/checkLoginName
- /account/checkNickName

@ -11,7 +11,9 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.Reference; import org.apache.dubbo.config.annotation.Reference;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingServletRequestParameterException; import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
@ -36,6 +38,14 @@ public class RestExceptionAspect {
return R.fail("请求方法有误"); return R.fail("请求方法有误");
} }
//校验不通过
@ExceptionHandler(MethodArgumentNotValidException.class)
public R handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
String error = bindingResult.getFieldErrors().get(0).getDefaultMessage();
return R.fail(error);
}
//@RequestParam没有匹配到值 //@RequestParam没有匹配到值
@ExceptionHandler(MissingServletRequestParameterException.class) @ExceptionHandler(MissingServletRequestParameterException.class)
public R handle(MissingServletRequestParameterException e) { public R handle(MissingServletRequestParameterException e) {

@ -19,7 +19,7 @@ public class ThreadUtil {
RecUserAction RecUserAction
.builder() .builder()
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.ip(IpUtil.getIp(request)) .ip(IpUtil.getIp(request))
.url(request.getServletPath()) .url(request.getServletPath())
.build(); .build();

@ -69,13 +69,22 @@ public class AccountController {
return R.success("校验通过"); return R.success("校验通过");
} }
@GetMapping("checkName") @GetMapping("checkLoginName")
public R checkName(@RequestParam(required = false) Integer id, @RequestParam String name) { public R checkLoginName(@RequestParam(required = false) Integer id, @RequestParam String name) {
if (StringUtils.isEmpty(name)) { if (StringUtils.isEmpty(name)) {
return R.success(); return R.success();
} }
return R.success(service.checkName(name, id) ? "该用户名已存在" : null); return R.success(service.isLoginNameExist(name, id) ? "该登录名已存在" : null);
}
@GetMapping("checkNickName")
public R checkNickName(@RequestParam(required = false) Integer id, @RequestParam String name) {
if (StringUtils.isEmpty(name)) {
return R.success();
}
return R.success(service.isNickNameExist(name, id) ? "该昵称已存在" : null);
} }
private String validateUpdatePwdParam(PasswordUpdateParam vo) { private String validateUpdatePwdParam(PasswordUpdateParam vo) {

@ -52,7 +52,7 @@ public class AccountService {
SysUser user = userMapper.selectOne( SysUser user = userMapper.selectOne(
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, param.getUsername()) .eq(SysUser::getLoginName, param.getUsername())
.eq(SysUser::getPwd, param.getPassword()) .eq(SysUser::getPwd, param.getPassword())
); );
@ -138,7 +138,7 @@ public class AccountService {
RecLoginHistory RecLoginHistory
.builder() .builder()
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.ip(ip) .ip(ip)
.login(true) .login(true)
.time(now) .time(now)
@ -154,7 +154,7 @@ public class AccountService {
RecLoginHistory RecLoginHistory
.builder() .builder()
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.ip(ip) .ip(ip)
.login(false) .login(false)
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -168,13 +168,18 @@ public class AccountService {
public R register(RegisterParam param) { public R register(RegisterParam param) {
String name = param.getUsername(); String name = param.getUsername();
String nick = param.getNick();
if (checkName(name, null)) { if (isLoginNameExist(name, null)) {
return R.fail("该用户名称已存在"); return R.fail("该登录名已存在");
}
if (isNickNameExist(nick, null)) {
return R.fail("该昵称已存在");
} }
SysUser user = new SysUser(); SysUser user = new SysUser();
user.setName(name); user.setLoginName(name);
user.setNickName(nick);
user.setPwd(param.getPassword()); user.setPwd(param.getPassword());
user.setRole(1); user.setRole(1);
user.setDept(1); user.setDept(1);
@ -224,13 +229,23 @@ public class AccountService {
return R.fail("上传头像失败"); return R.fail("上传头像失败");
} }
//用户名重复时返回true //登录名重复时返回true
public boolean checkName(String name, Integer id) { public boolean isLoginNameExist(String name, Integer id) {
Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getLoginName, name)
.ne(id != null, SysUser::getId, id)
);
return num != null && num > 0;
}
//用户昵称重复时返回true
public boolean isNickNameExist(String name, Integer id) {
Integer num = userMapper.selectCount( Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, name) .eq(SysUser::getNickName, name)
.ne(id != null, SysUser::getId, id) .ne(id != null, SysUser::getId, id)
); );
return num == null || num.equals(0); return num != null && num > 0;
} }
} }

@ -20,7 +20,7 @@ public class LoginSuccessInfo {
public LoginSuccessInfo(SysUser user) { public LoginSuccessInfo(SysUser user) {
this.id = user.getId(); this.id = user.getId();
this.name = user.getName(); this.name = user.getNickName();
this.avatar = user.getAvatar(); this.avatar = user.getAvatar();
this.admin = user.isAdmin(); this.admin = user.isAdmin();
} }

@ -3,9 +3,15 @@ package cn.toesbieya.jxc.account.vo;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
@Data @Data
@ToString(callSuper = true) @ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class RegisterParam extends LoginParam { public class RegisterParam extends LoginParam {
@NotNull(message = "昵称不能为空")
@Length(max = 100, message = "昵称太长了")
private String nick;
} }

@ -56,7 +56,7 @@ public class PurchaseInboundController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
@ -84,7 +84,7 @@ public class PurchaseInboundController {
if (isFirst) { if (isFirst) {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }
return service.commit(vo); return service.commit(vo);

@ -67,7 +67,7 @@ public class PurchaseOrderController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
vo.setFinish(DocFinishEnum.TO_BE_STARTED.getCode()); vo.setFinish(DocFinishEnum.TO_BE_STARTED.getCode());
@ -97,7 +97,7 @@ public class PurchaseOrderController {
if (isFirst) { if (isFirst) {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }

@ -61,7 +61,7 @@ public class SellOrderController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
@ -91,7 +91,7 @@ public class SellOrderController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }

@ -56,7 +56,7 @@ public class SellOutboundController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
@ -85,7 +85,7 @@ public class SellOutboundController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }
return service.commit(vo); return service.commit(vo);

@ -136,7 +136,7 @@ public class PurchaseInboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -166,7 +166,7 @@ public class PurchaseInboundService {
Wrappers.lambdaUpdate(BizPurchaseInbound.class) Wrappers.lambdaUpdate(BizPurchaseInbound.class)
.set(BizPurchaseInbound::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizPurchaseInbound::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizPurchaseInbound::getVid, user.getId()) .set(BizPurchaseInbound::getVid, user.getId())
.set(BizPurchaseInbound::getVname, user.getName()) .set(BizPurchaseInbound::getVname, user.getNickName())
.set(BizPurchaseInbound::getVtime, now) .set(BizPurchaseInbound::getVtime, now)
.eq(BizPurchaseInbound::getId, id) .eq(BizPurchaseInbound::getId, id)
.eq(BizPurchaseInbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizPurchaseInbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -232,7 +232,7 @@ public class PurchaseInboundService {
BizDocHistory BizDocHistory
.builder() .builder()
.pid(id).type(DocHistoryEnum.PASS.getCode()) .pid(id).type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()).uname(user.getName()) .uid(user.getId()).uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now).info(info) .time(now).info(info)
@ -258,7 +258,7 @@ public class PurchaseInboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -128,7 +128,7 @@ public class PurchaseOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -152,7 +152,7 @@ public class PurchaseOrderService {
Wrappers.lambdaUpdate(BizPurchaseOrder.class) Wrappers.lambdaUpdate(BizPurchaseOrder.class)
.set(BizPurchaseOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizPurchaseOrder::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizPurchaseOrder::getVid, user.getId()) .set(BizPurchaseOrder::getVid, user.getId())
.set(BizPurchaseOrder::getVname, user.getName()) .set(BizPurchaseOrder::getVname, user.getNickName())
.set(BizPurchaseOrder::getVtime, now) .set(BizPurchaseOrder::getVtime, now)
.eq(BizPurchaseOrder::getId, id) .eq(BizPurchaseOrder::getId, id)
.eq(BizPurchaseOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizPurchaseOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -165,7 +165,7 @@ public class PurchaseOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.PASS.getCode()) .type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now) .time(now)
@ -192,7 +192,7 @@ public class PurchaseOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -131,7 +131,7 @@ public class SellOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -155,7 +155,7 @@ public class SellOrderService {
Wrappers.lambdaUpdate(BizSellOrder.class) Wrappers.lambdaUpdate(BizSellOrder.class)
.set(BizSellOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizSellOrder::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizSellOrder::getVid, user.getId()) .set(BizSellOrder::getVid, user.getId())
.set(BizSellOrder::getVname, user.getName()) .set(BizSellOrder::getVname, user.getNickName())
.set(BizSellOrder::getVtime, now) .set(BizSellOrder::getVtime, now)
.eq(BizSellOrder::getId, id) .eq(BizSellOrder::getId, id)
.eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -168,7 +168,7 @@ public class SellOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.PASS.getCode()) .type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now) .time(now)
@ -195,7 +195,7 @@ public class SellOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -139,7 +139,7 @@ public class SellOutboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -168,7 +168,7 @@ public class SellOutboundService {
Wrappers.lambdaUpdate(BizSellOutbound.class) Wrappers.lambdaUpdate(BizSellOutbound.class)
.set(BizSellOutbound::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizSellOutbound::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizSellOutbound::getVid, user.getId()) .set(BizSellOutbound::getVid, user.getId())
.set(BizSellOutbound::getVname, user.getName()) .set(BizSellOutbound::getVname, user.getNickName())
.set(BizSellOutbound::getVtime, now) .set(BizSellOutbound::getVtime, now)
.eq(BizSellOutbound::getId, id) .eq(BizSellOutbound::getId, id)
.eq(BizSellOutbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizSellOutbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -236,7 +236,7 @@ public class SellOutboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.PASS.getCode()) .type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now) .time(now)
@ -263,7 +263,7 @@ public class SellOutboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -58,7 +58,7 @@ public class ManageController {
if (isFirstCreate) setAddInfo(user, msg); if (isFirstCreate) setAddInfo(user, msg);
msg.setPid(user.getId()); msg.setPid(user.getId());
msg.setPname(user.getName()); msg.setPname(user.getNickName());
msg.setPtime(System.currentTimeMillis()); msg.setPtime(System.currentTimeMillis());
msg.setStatus(MsgConstant.STATUS_PUBLISHED); msg.setStatus(MsgConstant.STATUS_PUBLISHED);
@ -72,7 +72,7 @@ public class ManageController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
msg.setWid(user.getId()); msg.setWid(user.getId());
msg.setWname(user.getName()); msg.setWname(user.getNickName());
msg.setWtime(System.currentTimeMillis()); msg.setWtime(System.currentTimeMillis());
return service.withdraw(msg); return service.withdraw(msg);
@ -86,7 +86,7 @@ public class ManageController {
private void setAddInfo(SysUser user, Msg msg) { private void setAddInfo(SysUser user, Msg msg) {
msg.setId(null); msg.setId(null);
msg.setCid(user.getId()); msg.setCid(user.getId());
msg.setCname(user.getName()); msg.setCname(user.getNickName());
msg.setCtime(System.currentTimeMillis()); msg.setCtime(System.currentTimeMillis());
msg.setStatus(MsgConstant.STATUS_DRAFT); msg.setStatus(MsgConstant.STATUS_DRAFT);
} }

@ -37,7 +37,7 @@ public class RoleController {
role.setId(null); role.setId(null);
role.setCid(user.getId()); role.setCid(user.getId());
role.setCname(user.getName()); role.setCname(user.getNickName());
role.setCtime(System.currentTimeMillis()); role.setCtime(System.currentTimeMillis());
return service.add(role); return service.add(role);

@ -59,7 +59,7 @@ public class UserController {
return R.fail("参数错误"); return R.fail("参数错误");
} }
RecUserAction action = ThreadUtil.getAction(); RecUserAction action = ThreadUtil.getAction();
List<String> names = users.stream().map(SysUser::getName).collect(Collectors.toList()); List<String> names = users.stream().map(SysUser::getLoginName).collect(Collectors.toList());
action.setAction("踢出用户:【" + String.join(",", names) + "】"); action.setAction("踢出用户:【" + String.join(",", names) + "】");
return service.kick(users); return service.kick(users);
@ -67,7 +67,7 @@ public class UserController {
@PostMapping("resetPwd") @PostMapping("resetPwd")
public R resetPwd(@RequestBody SysUser user) { public R resetPwd(@RequestBody SysUser user) {
if (user.getId() == null || StringUtils.isEmpty(user.getName())) { if (user.getId() == null || StringUtils.isEmpty(user.getLoginName())) {
return R.fail("参数错误"); return R.fail("参数错误");
} }
return service.resetPwd(user); return service.resetPwd(user);
@ -75,14 +75,20 @@ public class UserController {
private String validateUserCreateParam(SysUser user) { private String validateUserCreateParam(SysUser user) {
if (user.getId() != null) return "创建失败,参数错误"; if (user.getId() != null) return "创建失败,参数错误";
if (StringUtils.isEmpty(user.getName())) return "创建失败,用户名称不能为空"; if (StringUtils.isEmpty(user.getLoginName())
||StringUtils.isEmpty(user.getNickName())) {
return "创建失败,用户名称不能为空";
}
if (user.getRole() == null) return "创建失败,用户角色不能为空"; if (user.getRole() == null) return "创建失败,用户角色不能为空";
return null; return null;
} }
private String validateUserUpdateParam(SysUser user) { private String validateUserUpdateParam(SysUser user) {
if (user.getId() == null) return "修改失败,参数错误"; if (user.getId() == null) return "修改失败,参数错误";
if (StringUtils.isEmpty(user.getName())) return "修改失败,用户名称不能为空"; if (StringUtils.isEmpty(user.getLoginName())
||StringUtils.isEmpty(user.getNickName())) {
return "创建失败,用户名称不能为空";
}
if (user.getRole() == null) return "修改失败,用户角色不能为空"; if (user.getRole() == null) return "修改失败,用户角色不能为空";
return null; return null;
} }

@ -10,7 +10,8 @@ import lombok.ToString;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserSearch extends BaseSearch { public class UserSearch extends BaseSearch {
private Integer id; private Integer id;
private String name; private String loginName;
private String nickName;
private String role; private String role;
private Long startTime; private Long startTime;
private Long endTime; private Long endTime;

@ -36,7 +36,8 @@ public class UserService {
public PageResult<UserVo> search(UserSearch vo) { public PageResult<UserVo> search(UserSearch vo) {
Integer id = vo.getId(); Integer id = vo.getId();
String name = vo.getName(); String loginName = vo.getLoginName();
String nickName = vo.getNickName();
String roleIds = vo.getRole(); String roleIds = vo.getRole();
Boolean enable = vo.getEnable(); Boolean enable = vo.getEnable();
Long startTime = vo.getStartTime(); Long startTime = vo.getStartTime();
@ -46,7 +47,8 @@ public class UserService {
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::isAdmin, false) .eq(SysUser::isAdmin, false)
.eq(id != null, SysUser::getId, id) .eq(id != null, SysUser::getId, id)
.like(!StringUtils.isEmpty(name), SysUser::getName, name) .like(!StringUtils.isEmpty(loginName), SysUser::getLoginName, loginName)
.like(!StringUtils.isEmpty(nickName), SysUser::getNickName, nickName)
.inSql(!StringUtils.isEmpty(roleIds), SysUser::getRole, roleIds) .inSql(!StringUtils.isEmpty(roleIds), SysUser::getRole, roleIds)
.eq(enable != null, SysUser::isEnable, enable) .eq(enable != null, SysUser::isEnable, enable)
.ge(startTime != null, SysUser::getCtime, startTime) .ge(startTime != null, SysUser::getCtime, startTime)
@ -107,10 +109,13 @@ public class UserService {
return new PageResult<>(pageResult.getTotal(), result); return new PageResult<>(pageResult.getTotal(), result);
} }
@UserAction("'添加用户:'+#user.name") @UserAction("'添加用户:'+#user.loginName")
public R add(SysUser user) { public R add(SysUser user) {
if (isNameExist(user.getName(), null)) { if (isLoginNameExist(user.getLoginName(), null)) {
return R.fail("该用户名称已存在"); return R.fail("该登录名已存在");
}
if (isNickNameExist(user.getNickName(), null)) {
return R.fail("该用户昵称已存在");
} }
user.setId(null); user.setId(null);
@ -121,19 +126,19 @@ public class UserService {
return R.success("添加成功"); return R.success("添加成功");
} }
@UserAction("'修改用户:'+#user.name") @UserAction("'修改用户:'+#user.loginName")
public R update(SysUser user) { public R update(SysUser user) {
Integer id = user.getId(); Integer id = user.getId();
String name = user.getName(); String name = user.getNickName();
if (isNameExist(name, id)) { if (isNickNameExist(name, id)) {
return R.fail("该用户称已存在"); return R.fail("该用户称已存在");
} }
userMapper.update( userMapper.update(
null, null,
Wrappers.lambdaUpdate(SysUser.class) Wrappers.lambdaUpdate(SysUser.class)
.set(SysUser::getName, name) .set(SysUser::getNickName, name)
.set(SysUser::getRole, user.getRole()) .set(SysUser::getRole, user.getRole())
.set(SysUser::getDept, user.getDept()) .set(SysUser::getDept, user.getDept())
.set(SysUser::isEnable, user.isEnable()) .set(SysUser::isEnable, user.isEnable())
@ -143,7 +148,7 @@ public class UserService {
return R.success("修改成功"); return R.success("修改成功");
} }
@UserAction("'删除用户:'+#user.name") @UserAction("'删除用户:'+#user.loginName")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R del(SysUser user) { public R del(SysUser user) {
int rows = userMapper.delete( int rows = userMapper.delete(
@ -168,7 +173,7 @@ public class UserService {
return R.success("踢出成功"); return R.success("踢出成功");
} }
@UserAction("'重置用户密码:'+#user.name") @UserAction("'重置用户密码:'+#user.loginName")
public R resetPwd(SysUser user) { public R resetPwd(SysUser user) {
int rows = userMapper.update( int rows = userMapper.update(
null, null,
@ -179,11 +184,21 @@ public class UserService {
return rows > 0 ? R.success() : R.fail("重置失败,未匹配到用户"); return rows > 0 ? R.success() : R.fail("重置失败,未匹配到用户");
} }
//用户名重复时返回true //登录名重复时返回true
private boolean isNameExist(String name, Integer id) { private boolean isLoginNameExist(String name, Integer id) {
Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getLoginName, name)
.ne(id != null, SysUser::getId, id)
);
return num != null && num > 0;
}
//用户昵称重复时返回true
private boolean isNickNameExist(String name, Integer id) {
Integer num = userMapper.selectCount( Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, name) .eq(SysUser::getNickName, name)
.ne(id != null, SysUser::getId, id) .ne(id != null, SysUser::getId, id)
); );
return num != null && num > 0; return num != null && num > 0;

@ -10,7 +10,9 @@ import cn.toesbieya.jxc.util.WebUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingServletRequestParameterException; import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
@ -37,6 +39,14 @@ public class RestExceptionAspect {
return R.fail("请求方法有误"); return R.fail("请求方法有误");
} }
//校验不通过
@ExceptionHandler(MethodArgumentNotValidException.class)
public R handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
String error = bindingResult.getFieldErrors().get(0).getDefaultMessage();
return R.fail(error);
}
//@RequestParam没有匹配到值 //@RequestParam没有匹配到值
@ExceptionHandler(MissingServletRequestParameterException.class) @ExceptionHandler(MissingServletRequestParameterException.class)
public R handle(MissingServletRequestParameterException e) { public R handle(MissingServletRequestParameterException e) {

@ -36,7 +36,7 @@ public class WebConfig implements WebMvcConfigurer {
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
String[] exclude = {"/test/**", "/account/login", "/account/logout", "/account/register", "/account/checkName", "/error"}; String[] exclude = {"/test/**", "/account/login", "/account/logout", "/account/register", "/account/checkLoginName", "/account/checkNickName", "/error"};
addInterceptor(registry, new SecurityInterceptor(), exclude); addInterceptor(registry, new SecurityInterceptor(), exclude);
} }

@ -68,13 +68,22 @@ public class AccountController {
return R.success("校验通过"); return R.success("校验通过");
} }
@GetMapping("checkName") @GetMapping("checkLoginName")
public R checkName(@RequestParam(required = false) Integer id, @RequestParam String name) { public R checkLoginName(@RequestParam(required = false) Integer id, @RequestParam String name) {
if (StringUtils.isEmpty(name)) { if (StringUtils.isEmpty(name)) {
return R.success(); return R.success();
} }
return R.success(service.checkName(name, id) ? "该用户名已存在" : null); return R.success(service.isLoginNameExist(name, id) ? "该登录名已存在" : null);
}
@GetMapping("checkNickName")
public R checkNickName(@RequestParam(required = false) Integer id, @RequestParam String name) {
if (StringUtils.isEmpty(name)) {
return R.success();
}
return R.success(service.isNickNameExist(name, id) ? "该昵称已存在" : null);
} }
private String validateUpdatePwdParam(PasswordUpdateParam vo) { private String validateUpdatePwdParam(PasswordUpdateParam vo) {

@ -55,7 +55,7 @@ public class PurchaseInboundController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
@ -83,7 +83,7 @@ public class PurchaseInboundController {
if (isFirst) { if (isFirst) {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }
return service.commit(vo); return service.commit(vo);

@ -60,7 +60,7 @@ public class PurchaseOrderController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
@ -89,7 +89,7 @@ public class PurchaseOrderController {
if (isFirst) { if (isFirst) {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }

@ -61,7 +61,7 @@ public class SellOrderController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
@ -91,7 +91,7 @@ public class SellOrderController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }

@ -56,7 +56,7 @@ public class SellOutboundController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
vo.setStatus(DocStatusEnum.DRAFT.getCode()); vo.setStatus(DocStatusEnum.DRAFT.getCode());
@ -85,7 +85,7 @@ public class SellOutboundController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
vo.setCid(user.getId()); vo.setCid(user.getId());
vo.setCname(user.getName()); vo.setCname(user.getNickName());
vo.setCtime(System.currentTimeMillis()); vo.setCtime(System.currentTimeMillis());
} }
return service.commit(vo); return service.commit(vo);

@ -57,7 +57,7 @@ public class ManageController {
if (isFirstCreate) setAddInfo(user, msg); if (isFirstCreate) setAddInfo(user, msg);
msg.setPid(user.getId()); msg.setPid(user.getId());
msg.setPname(user.getName()); msg.setPname(user.getNickName());
msg.setPtime(System.currentTimeMillis()); msg.setPtime(System.currentTimeMillis());
msg.setStatus(MsgConstant.STATUS_PUBLISHED); msg.setStatus(MsgConstant.STATUS_PUBLISHED);
@ -71,7 +71,7 @@ public class ManageController {
UserVo user = SessionUtil.get(); UserVo user = SessionUtil.get();
msg.setWid(user.getId()); msg.setWid(user.getId());
msg.setWname(user.getName()); msg.setWname(user.getNickName());
msg.setWtime(System.currentTimeMillis()); msg.setWtime(System.currentTimeMillis());
return service.withdraw(msg); return service.withdraw(msg);
@ -85,7 +85,7 @@ public class ManageController {
private void setAddInfo(UserVo user, Msg msg) { private void setAddInfo(UserVo user, Msg msg) {
msg.setId(null); msg.setId(null);
msg.setCid(user.getId()); msg.setCid(user.getId());
msg.setCname(user.getName()); msg.setCname(user.getNickName());
msg.setCtime(System.currentTimeMillis()); msg.setCtime(System.currentTimeMillis());
msg.setStatus(MsgConstant.STATUS_DRAFT); msg.setStatus(MsgConstant.STATUS_DRAFT);
} }

@ -37,7 +37,7 @@ public class RoleController {
role.setId(null); role.setId(null);
role.setCid(user.getId()); role.setCid(user.getId());
role.setCname(user.getName()); role.setCname(user.getNickName());
role.setCtime(System.currentTimeMillis()); role.setCtime(System.currentTimeMillis());
return service.add(role); return service.add(role);

@ -59,7 +59,7 @@ public class UserController {
return R.fail("参数错误"); return R.fail("参数错误");
} }
RecUserAction action = ThreadUtil.getAction(); RecUserAction action = ThreadUtil.getAction();
List<String> names = users.stream().map(SysUser::getName).collect(Collectors.toList()); List<String> names = users.stream().map(SysUser::getLoginName).collect(Collectors.toList());
action.setAction("踢出用户:【" + String.join(",", names) + "】"); action.setAction("踢出用户:【" + String.join(",", names) + "】");
return service.kick(users); return service.kick(users);
@ -67,7 +67,7 @@ public class UserController {
@PostMapping("resetPwd") @PostMapping("resetPwd")
public R resetPwd(@RequestBody SysUser user) { public R resetPwd(@RequestBody SysUser user) {
if (user.getId() == null || StringUtils.isEmpty(user.getName())) { if (user.getId() == null || StringUtils.isEmpty(user.getLoginName())) {
return R.fail("参数错误"); return R.fail("参数错误");
} }
return service.resetPwd(user); return service.resetPwd(user);
@ -75,14 +75,20 @@ public class UserController {
private String validateUserCreateParam(SysUser user) { private String validateUserCreateParam(SysUser user) {
if (user.getId() != null) return "创建失败,参数错误"; if (user.getId() != null) return "创建失败,参数错误";
if (StringUtils.isEmpty(user.getName())) return "创建失败,用户名称不能为空"; if (StringUtils.isEmpty(user.getLoginName())
||StringUtils.isEmpty(user.getNickName())) {
return "创建失败,用户名称不能为空";
}
if (user.getRole() == null) return "创建失败,用户角色不能为空"; if (user.getRole() == null) return "创建失败,用户角色不能为空";
return null; return null;
} }
private String validateUserUpdateParam(SysUser user) { private String validateUserUpdateParam(SysUser user) {
if (user.getId() == null) return "修改失败,参数错误"; if (user.getId() == null) return "修改失败,参数错误";
if (StringUtils.isEmpty(user.getName())) return "修改失败,用户名称不能为空"; if (StringUtils.isEmpty(user.getLoginName())
||StringUtils.isEmpty(user.getNickName())) {
return "创建失败,用户名称不能为空";
}
if (user.getRole() == null) return "修改失败,用户角色不能为空"; if (user.getRole() == null) return "修改失败,用户角色不能为空";
return null; return null;
} }

@ -15,7 +15,6 @@ public class SecurityInterceptor implements HandlerInterceptor {
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String url = request.getServletPath(); String url = request.getServletPath();
String ip = IpUtil.getIp(request);
UserVo user = SessionUtil.get(request); UserVo user = SessionUtil.get(request);
if (user == null) { if (user == null) {
@ -26,7 +25,7 @@ public class SecurityInterceptor implements HandlerInterceptor {
if (!PermissionModule.authority(user, url)) { if (!PermissionModule.authority(user, url)) {
WebUtil.responseJson(response, R.noPermission()); WebUtil.responseJson(response, R.noPermission());
log.warn("权限拦截,访问路径:{},用户:{},IP:{}", url, user.getName(), ip); log.warn("权限拦截,访问路径:{},用户:{}", url, user.getNickName());
ThreadUtil.clearAll(); ThreadUtil.clearAll();
return false; return false;
} }

@ -9,7 +9,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class SysUser { public class SysUser {
private Integer id; private Integer id;
private String name; private String loginName;
private String nickName;
private String pwd; private String pwd;
private Integer role; private Integer role;
private String avatar; private String avatar;

@ -20,7 +20,7 @@ public class LoginSuccessInfo {
public LoginSuccessInfo(SysUser user) { public LoginSuccessInfo(SysUser user) {
this.id = user.getId(); this.id = user.getId();
this.name = user.getName(); this.name = user.getNickName();
this.avatar = user.getAvatar(); this.avatar = user.getAvatar();
this.admin = user.isAdmin(); this.admin = user.isAdmin();
} }

@ -3,9 +3,15 @@ package cn.toesbieya.jxc.model.vo;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
@Data @Data
@ToString(callSuper = true) @ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class RegisterParam extends LoginParam { public class RegisterParam extends LoginParam {
@NotNull(message = "昵称不能为空")
@Length(max = 100, message = "昵称太长了")
private String nick;
} }

@ -9,7 +9,8 @@ import lombok.ToString;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserSearch extends BaseSearch { public class UserSearch extends BaseSearch {
private Integer id; private Integer id;
private String name; private String loginName;
private String nickName;
private String role; private String role;
private Long startTime; private Long startTime;
private Long endTime; private Long endTime;

@ -41,7 +41,7 @@ public class AccountService {
SysUser user = userMapper.selectOne( SysUser user = userMapper.selectOne(
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, param.getUsername()) .eq(SysUser::getLoginName, param.getUsername())
.eq(SysUser::getPwd, param.getPassword()) .eq(SysUser::getPwd, param.getPassword())
); );
@ -127,7 +127,7 @@ public class AccountService {
RecLoginHistory RecLoginHistory
.builder() .builder()
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.ip(ip) .ip(ip)
.login(true) .login(true)
.time(now) .time(now)
@ -143,7 +143,7 @@ public class AccountService {
RecLoginHistory RecLoginHistory
.builder() .builder()
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.ip(ip) .ip(ip)
.login(false) .login(false)
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -157,13 +157,18 @@ public class AccountService {
public R register(RegisterParam param) { public R register(RegisterParam param) {
String name = param.getUsername(); String name = param.getUsername();
String nick = param.getNick();
if (checkName(name, null)) { if (isLoginNameExist(name, null)) {
return R.fail("该用户名称已存在"); return R.fail("该登录名已存在");
}
if (isNickNameExist(nick, null)) {
return R.fail("该昵称已存在");
} }
SysUser user = new SysUser(); SysUser user = new SysUser();
user.setName(name); user.setLoginName(name);
user.setNickName(param.getNick());
user.setPwd(param.getPassword()); user.setPwd(param.getPassword());
user.setRole(1); user.setRole(1);
user.setDept(1); user.setDept(1);
@ -213,11 +218,21 @@ public class AccountService {
return R.fail("上传头像失败"); return R.fail("上传头像失败");
} }
//用户名重复时返回true //登录名重复时返回true
public boolean checkName(String name, Integer id) { public boolean isLoginNameExist(String name, Integer id) {
Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getLoginName, name)
.ne(id != null, SysUser::getId, id)
);
return num != null && num > 0;
}
//用户昵称重复时返回true
public boolean isNickNameExist(String name, Integer id) {
Integer num = userMapper.selectCount( Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, name) .eq(SysUser::getNickName, name)
.ne(id != null, SysUser::getId, id) .ne(id != null, SysUser::getId, id)
); );
return num != null && num > 0; return num != null && num > 0;

@ -136,7 +136,7 @@ public class BizPurchaseInboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -166,7 +166,7 @@ public class BizPurchaseInboundService {
Wrappers.lambdaUpdate(BizPurchaseInbound.class) Wrappers.lambdaUpdate(BizPurchaseInbound.class)
.set(BizPurchaseInbound::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizPurchaseInbound::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizPurchaseInbound::getVid, user.getId()) .set(BizPurchaseInbound::getVid, user.getId())
.set(BizPurchaseInbound::getVname, user.getName()) .set(BizPurchaseInbound::getVname, user.getNickName())
.set(BizPurchaseInbound::getVtime, now) .set(BizPurchaseInbound::getVtime, now)
.eq(BizPurchaseInbound::getId, id) .eq(BizPurchaseInbound::getId, id)
.eq(BizPurchaseInbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizPurchaseInbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -233,7 +233,7 @@ public class BizPurchaseInboundService {
BizDocHistory BizDocHistory
.builder() .builder()
.pid(id).type(DocHistoryEnum.PASS.getCode()) .pid(id).type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()).uname(user.getName()) .uid(user.getId()).uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now).info(info) .time(now).info(info)
@ -259,7 +259,7 @@ public class BizPurchaseInboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -129,7 +129,7 @@ public class BizPurchaseOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -153,7 +153,7 @@ public class BizPurchaseOrderService {
Wrappers.lambdaUpdate(BizPurchaseOrder.class) Wrappers.lambdaUpdate(BizPurchaseOrder.class)
.set(BizPurchaseOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizPurchaseOrder::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizPurchaseOrder::getVid, user.getId()) .set(BizPurchaseOrder::getVid, user.getId())
.set(BizPurchaseOrder::getVname, user.getName()) .set(BizPurchaseOrder::getVname, user.getNickName())
.set(BizPurchaseOrder::getVtime, now) .set(BizPurchaseOrder::getVtime, now)
.eq(BizPurchaseOrder::getId, id) .eq(BizPurchaseOrder::getId, id)
.eq(BizPurchaseOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizPurchaseOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -166,7 +166,7 @@ public class BizPurchaseOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.PASS.getCode()) .type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now) .time(now)
@ -193,7 +193,7 @@ public class BizPurchaseOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -133,7 +133,7 @@ public class BizSellOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -157,7 +157,7 @@ public class BizSellOrderService {
Wrappers.lambdaUpdate(BizSellOrder.class) Wrappers.lambdaUpdate(BizSellOrder.class)
.set(BizSellOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizSellOrder::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizSellOrder::getVid, user.getId()) .set(BizSellOrder::getVid, user.getId())
.set(BizSellOrder::getVname, user.getName()) .set(BizSellOrder::getVname, user.getNickName())
.set(BizSellOrder::getVtime, now) .set(BizSellOrder::getVtime, now)
.eq(BizSellOrder::getId, id) .eq(BizSellOrder::getId, id)
.eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -170,7 +170,7 @@ public class BizSellOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.PASS.getCode()) .type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now) .time(now)
@ -197,7 +197,7 @@ public class BizSellOrderService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -141,7 +141,7 @@ public class BizSellOutboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.WITHDRAW.getCode()) .type(DocHistoryEnum.WITHDRAW.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())
@ -170,7 +170,7 @@ public class BizSellOutboundService {
Wrappers.lambdaUpdate(BizSellOutbound.class) Wrappers.lambdaUpdate(BizSellOutbound.class)
.set(BizSellOutbound::getStatus, DocStatusEnum.VERIFIED.getCode()) .set(BizSellOutbound::getStatus, DocStatusEnum.VERIFIED.getCode())
.set(BizSellOutbound::getVid, user.getId()) .set(BizSellOutbound::getVid, user.getId())
.set(BizSellOutbound::getVname, user.getName()) .set(BizSellOutbound::getVname, user.getNickName())
.set(BizSellOutbound::getVtime, now) .set(BizSellOutbound::getVtime, now)
.eq(BizSellOutbound::getId, id) .eq(BizSellOutbound::getId, id)
.eq(BizSellOutbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) .eq(BizSellOutbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
@ -237,7 +237,7 @@ public class BizSellOutboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.PASS.getCode()) .type(DocHistoryEnum.PASS.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.VERIFIED.getCode()) .statusAfter(DocStatusEnum.VERIFIED.getCode())
.time(now) .time(now)
@ -264,7 +264,7 @@ public class BizSellOutboundService {
.pid(id) .pid(id)
.type(DocHistoryEnum.REJECT.getCode()) .type(DocHistoryEnum.REJECT.getCode())
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode())
.statusAfter(DocStatusEnum.DRAFT.getCode()) .statusAfter(DocStatusEnum.DRAFT.getCode())
.time(System.currentTimeMillis()) .time(System.currentTimeMillis())

@ -36,7 +36,8 @@ public class SysUserService {
public PageResult<UserVo> search(UserSearch vo) { public PageResult<UserVo> search(UserSearch vo) {
Integer id = vo.getId(); Integer id = vo.getId();
String name = vo.getName(); String loginName = vo.getLoginName();
String nickName = vo.getNickName();
String roleIds = vo.getRole(); String roleIds = vo.getRole();
Boolean enable = vo.getEnable(); Boolean enable = vo.getEnable();
Long startTime = vo.getStartTime(); Long startTime = vo.getStartTime();
@ -46,7 +47,8 @@ public class SysUserService {
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::isAdmin, false) .eq(SysUser::isAdmin, false)
.eq(id != null, SysUser::getId, id) .eq(id != null, SysUser::getId, id)
.like(!StringUtils.isEmpty(name), SysUser::getName, name) .like(!StringUtils.isEmpty(loginName), SysUser::getLoginName, loginName)
.like(!StringUtils.isEmpty(nickName), SysUser::getNickName, nickName)
.inSql(!StringUtils.isEmpty(roleIds), SysUser::getRole, roleIds) .inSql(!StringUtils.isEmpty(roleIds), SysUser::getRole, roleIds)
.eq(enable != null, SysUser::isEnable, enable) .eq(enable != null, SysUser::isEnable, enable)
.ge(startTime != null, SysUser::getCtime, startTime) .ge(startTime != null, SysUser::getCtime, startTime)
@ -107,10 +109,13 @@ public class SysUserService {
return new PageResult<>(pageResult.getTotal(), result); return new PageResult<>(pageResult.getTotal(), result);
} }
@UserAction("'添加用户:'+#user.name") @UserAction("'添加用户:'+#user.loginName")
public R add(SysUser user) { public R add(SysUser user) {
if (isNameExist(user.getName(), null)) { if (isLoginNameExist(user.getLoginName(), null)) {
return R.fail("该用户名称已存在"); return R.fail("该登录名已存在");
}
if (isNickNameExist(user.getNickName(), null)) {
return R.fail("该用户昵称已存在");
} }
user.setId(null); user.setId(null);
@ -121,19 +126,19 @@ public class SysUserService {
return R.success("添加成功"); return R.success("添加成功");
} }
@UserAction("'修改用户:'+#user.name") @UserAction("'修改用户:'+#user.loginName")
public R update(SysUser user) { public R update(SysUser user) {
Integer id = user.getId(); Integer id = user.getId();
String name = user.getName(); String name = user.getNickName();
if (isNameExist(name, id)) { if (isNickNameExist(name, id)) {
return R.fail("该用户称已存在"); return R.fail("该用户称已存在");
} }
userMapper.update( userMapper.update(
null, null,
Wrappers.lambdaUpdate(SysUser.class) Wrappers.lambdaUpdate(SysUser.class)
.set(SysUser::getName, name) .set(SysUser::getNickName, name)
.set(SysUser::getRole, user.getRole()) .set(SysUser::getRole, user.getRole())
.set(SysUser::getDept, user.getDept()) .set(SysUser::getDept, user.getDept())
.set(SysUser::isEnable, user.isEnable()) .set(SysUser::isEnable, user.isEnable())
@ -143,7 +148,7 @@ public class SysUserService {
return R.success("修改成功"); return R.success("修改成功");
} }
@UserAction("'删除用户:'+#user.name") @UserAction("'删除用户:'+#user.loginName")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R del(SysUser user) { public R del(SysUser user) {
int rows = userMapper.delete( int rows = userMapper.delete(
@ -168,7 +173,7 @@ public class SysUserService {
return R.success("踢出成功"); return R.success("踢出成功");
} }
@UserAction("'重置用户密码:'+#user.name") @UserAction("'重置用户密码:'+#user.loginName")
public R resetPwd(SysUser user) { public R resetPwd(SysUser user) {
int rows = userMapper.update( int rows = userMapper.update(
null, null,
@ -179,11 +184,21 @@ public class SysUserService {
return rows > 0 ? R.success() : R.fail("重置失败,未匹配到用户"); return rows > 0 ? R.success() : R.fail("重置失败,未匹配到用户");
} }
//用户名重复时返回true //登录名重复时返回true
private boolean isNameExist(String name, Integer id) { private boolean isLoginNameExist(String name, Integer id) {
Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getLoginName, name)
.ne(id != null, SysUser::getId, id)
);
return num != null && num > 0;
}
//用户昵称重复时返回true
private boolean isNickNameExist(String name, Integer id) {
Integer num = userMapper.selectCount( Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class) Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, name) .eq(SysUser::getNickName, name)
.ne(id != null, SysUser::getId, id) .ne(id != null, SysUser::getId, id)
); );
return num != null && num > 0; return num != null && num > 0;

@ -16,7 +16,7 @@ public class ThreadUtil {
RecUserAction userAction = RecUserAction.builder() RecUserAction userAction = RecUserAction.builder()
.uid(user.getId()) .uid(user.getId())
.uname(user.getName()) .uname(user.getNickName())
.ip(IpUtil.getIp(request)) .ip(IpUtil.getIp(request))
.url(request.getServletPath()) .url(request.getServletPath())
.build(); .build();

@ -16,8 +16,14 @@ export const updateAvatar = new GetApi(
export const validate = new GetApi(`/account/validate`, pwd => ({params: {pwd}})) export const validate = new GetApi(`/account/validate`, pwd => ({params: {pwd}}))
export const checkName = new GetApi( export const checkLoginName = new GetApi(
`/account/checkName`, `/account/checkLoginName`,
(name, id) => ({params: {name, id}}),
p => p.then(({data}) => data)
)
export const checkNickName = new GetApi(
`/account/checkNickName`,
(name, id) => ({params: {name, id}}), (name, id) => ({params: {name, id}}),
p => p.then(({data}) => data) p => p.then(({data}) => data)
) )

@ -24,7 +24,7 @@ module.exports = {
useMock: false, useMock: false,
//socket连接地址 //socket连接地址
socketUrl: isDev ? 'http://localhost:12580' : 'https://toesbieya.cn:12580', socketUrl: isDev ? 'http://localhost:12580' : 'https://toesbieya.cn',
//侧边栏顶上的logo地址 //侧边栏顶上的logo地址
sidebarLogoUrl: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png', sidebarLogoUrl: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png',

@ -32,7 +32,7 @@ const actions = {
} }
function initSocket({id, token}) { function initSocket({id, token}) {
return new SocketIO(socketUrl, {query: {id, token}}) return new SocketIO(socketUrl, {query: {id, token}, transports: ['websocket']})
} }
function defaultEventBind(socket, {state, commit, dispatch}) { function defaultEventBind(socket, {state, commit, dispatch}) {

@ -4,7 +4,14 @@
<span class="svg-container"> <span class="svg-container">
<v-icon icon="svg-user"/> <v-icon icon="svg-user"/>
</span> </span>
<el-input ref="username" v-model="form.username" :maxlength="20" placeholder="请输入用户名"/> <el-input ref="username" v-model="form.username" :maxlength="20" placeholder="请输入登陆名称"/>
</el-form-item>
<el-form-item prop="nick">
<span class="svg-container">
<v-icon icon="svg-user"/>
</span>
<el-input v-model="form.nick" :maxlength="100" placeholder="请输入昵称"/>
</el-form-item> </el-form-item>
<el-form-item prop="pwd"> <el-form-item prop="pwd">
@ -47,7 +54,7 @@
<script> <script>
import md5 from "js-md5" import md5 from "js-md5"
import {register, checkName} from "@/api/account" import {register, checkLoginName, checkNickName} from "@/api/account"
import {debounce} from "@/util" import {debounce} from "@/util"
import {elSuccess} from "@/util/message" import {elSuccess} from "@/util/message"
@ -55,9 +62,15 @@ export default {
name: "RegisterForm", name: "RegisterForm",
data() { data() {
const validateName = debounce((r, v, c) => { const validateLoginName = debounce((r, v, c) => {
checkName checkLoginName
.request(this.form.username) .request(this.form.username, this.form.id)
.then(({msg}) => msg ? c(msg) : c())
.catch(e => c(e))
}, 300)
const validateNickName = debounce((r, v, c) => {
checkNickName
.request(this.form.nick, this.form.id)
.then(({msg}) => msg ? c(msg) : c()) .then(({msg}) => msg ? c(msg) : c())
.catch(e => c(e)) .catch(e => c(e))
}, 300) }, 300)
@ -67,13 +80,18 @@ export default {
return { return {
form: { form: {
username: '', username: '',
nick: '',
pwd: '', pwd: '',
repwd: '' repwd: ''
}, },
rules: { rules: {
username: [ username: [
{required: true, message: '请输入用户名', trigger: 'change'}, {required: true, message: '请输入登陆名称', trigger: 'change'},
{validator: validateName, trigger: 'change'} {validator: validateLoginName, trigger: 'change'}
],
nick: [
{required: true, message: '请输入昵称', trigger: 'change'},
{validator: validateNickName, trigger: 'change'}
], ],
pwd: [ pwd: [
{required: true, message: '请输入密码', trigger: 'change'}, {required: true, message: '请输入密码', trigger: 'change'},
@ -95,7 +113,11 @@ export default {
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (!valid) return if (!valid) return
this.loading = true this.loading = true
register.request({username: this.form.username, password: md5(this.form.pwd)}) register.request({
username: this.form.username,
nick: this.form.nick,
password: md5(this.form.pwd)
})
.then(() => { .then(() => {
elSuccess('注册成功') elSuccess('注册成功')
this.$router.push('/login') this.$router.push('/login')

@ -1,8 +1,11 @@
<template> <template>
<form-dialog :loading="loading" :title="title" :value="value" @close="cancel" @open="open"> <form-dialog :loading="loading" :title="title" :value="value" @close="cancel" @open="open">
<abstract-form :model="form" :rules="rules" label-width="75px" size=""> <abstract-form :model="form" :rules="rules" label-width="90px" size="">
<el-form-item label="名 称" prop="name"> <el-form-item label="登录名" prop="loginName">
<el-input v-model="form.name" :readonly="!canEdit" maxlength="20"/> <el-input v-model="form.loginName" :readonly="!!form.id || !canEdit" maxlength="20"/>
</el-form-item>
<el-form-item label="昵 称" prop="nickName">
<el-input v-model="form.nickName" :readonly="!canEdit" maxlength="100"/>
</el-form-item> </el-form-item>
<el-form-item label="角 色" prop="role"> <el-form-item label="角 色" prop="role">
<role-selector <role-selector
@ -41,7 +44,7 @@ import AbstractForm from "@/component/AbstractForm"
import DepartmentSelector from "./DepartmentSelector" import DepartmentSelector from "./DepartmentSelector"
import FormDialog from '@/component/FormDialog' import FormDialog from '@/component/FormDialog'
import RoleSelector from './RoleSelector' import RoleSelector from './RoleSelector'
import {checkName} from "@/api/account" import {checkLoginName, checkNickName} from "@/api/account"
import {add, update} from "@/api/system/user" import {add, update} from "@/api/system/user"
import {isEmpty, debounce} from '@/util' import {isEmpty, debounce} from '@/util'
import {elConfirm} from "@/util/message" import {elConfirm} from "@/util/message"
@ -60,9 +63,15 @@ export default {
}, },
data() { data() {
const validateName = debounce((r, v, c) => { const validateLoginName = debounce((r, v, c) => {
checkName checkLoginName
.request(this.form.name, this.form.id) .request(this.form.loginName, this.form.id)
.then(({msg}) => msg ? c(msg) : c())
.catch(e => c(e))
}, 300)
const validateNickName = debounce((r, v, c) => {
checkNickName
.request(this.form.nickName, this.form.id)
.then(({msg}) => msg ? c(msg) : c()) .then(({msg}) => msg ? c(msg) : c())
.catch(e => c(e)) .catch(e => c(e))
}, 300) }, 300)
@ -70,7 +79,8 @@ export default {
loading: false, loading: false,
form: { form: {
id: null, id: null,
name: null, loginName: null,
nickName: null,
role: null, role: null,
roleName: null, roleName: null,
dept: null, dept: null,
@ -78,9 +88,13 @@ export default {
enable: false enable: false
}, },
rules: { rules: {
name: [ loginName: [
{required: true, message: '用户名称不能为空', trigger: 'change'}, {required: true, message: '登录名不能为空', trigger: 'change'},
{validator: validateName, trigger: 'change'} {validator: validateLoginName, trigger: 'change'}
],
nickName: [
{required: true, message: '昵称不能为空', trigger: 'change'},
{validator: validateNickName, trigger: 'change'}
], ],
role: [{required: true, message: '用户角色不能为空', trigger: 'change'}], role: [{required: true, message: '用户角色不能为空', trigger: 'change'}],
dept: [{required: true, message: '用户部门不能为空', trigger: 'change'}] dept: [{required: true, message: '用户部门不能为空', trigger: 'change'}]
@ -104,9 +118,9 @@ export default {
confirmMessage() { confirmMessage() {
switch (this.type) { switch (this.type) {
case 'add': case 'add':
return `确认添加新的用户【${this.form.name}】?` return `确认添加新的用户【${this.form.loginName}】?`
case 'edit': case 'edit':
return `确认提交对【${this.data.name}】作出的修改?` return `确认提交对【${this.data.loginName}】作出的修改?`
default: default:
return '' return ''
} }
@ -130,7 +144,8 @@ export default {
clearForm() { clearForm() {
this.form.id = null this.form.id = null
this.form.name = null this.form.loginName = null
this.form.nickName = null
this.form.role = null this.form.role = null
this.form.roleName = null this.form.roleName = null
this.form.dept = null this.form.dept = null
@ -148,11 +163,9 @@ export default {
if (this.loading) return if (this.loading) return
this.$refs.form.validate(v => { this.$refs.form.validate(v => {
if (!v) return if (!v) return
elConfirm(this.confirmMessage)
.then(() => {
this.loading = true this.loading = true
return this.type === 'add' ? add.request(this.form) : update.request(this.form) const promise = this.type === 'add' ? add.request(this.form) : update.request(this.form)
}) promise
.then(({msg}) => this.$emit('success', msg)) .then(({msg}) => this.$emit('success', msg))
.finally(() => this.loading = false) .finally(() => this.loading = false)
}) })

@ -2,7 +2,10 @@
<el-card v-loading="config.operating"> <el-card v-loading="config.operating">
<search-form> <search-form>
<search-form-item label="用户名"> <search-form-item label="用户名">
<el-input v-model="searchForm.name" clearable maxlength="100"/> <el-input v-model="searchForm.loginName" clearable maxlength="20"/>
</search-form-item>
<search-form-item label="昵 称">
<el-input v-model="searchForm.nickName" clearable maxlength="100"/>
</search-form-item> </search-form-item>
<search-form-item label="角 色"> <search-form-item label="角 色">
<role-selector v-model="searchForm.role"/> <role-selector v-model="searchForm.role"/>
@ -47,7 +50,8 @@
@click.stop="() => previewAvatar(row.avatar)" @click.stop="() => previewAvatar(row.avatar)"
> >
</el-table-column> </el-table-column>
<el-table-column align="center" label="用户名" prop="name" show-overflow-tooltip/> <el-table-column align="center" label="登陆名" prop="loginName" show-overflow-tooltip/>
<el-table-column align="center" label="昵称" prop="nickName" show-overflow-tooltip/>
<el-table-column align="center" label="角 色" show-overflow-tooltip> <el-table-column align="center" label="角 色" show-overflow-tooltip>
<template v-slot="{row}"> <template v-slot="{row}">
{{ row.admin === true ? '超级管理员' : row.roleName }} {{ row.admin === true ? '超级管理员' : row.roleName }}
@ -100,7 +104,8 @@ export default {
data() { data() {
return { return {
searchForm: { searchForm: {
name: '', loginName: '',
nickName: '',
role: null, role: null,
enable: null enable: null
}, },
@ -149,10 +154,10 @@ export default {
resetPwd() { resetPwd() {
if (isEmpty(this.row)) return elError('请选择要重置密码的用户') if (isEmpty(this.row)) return elError('请选择要重置密码的用户')
if (this.config.operating) return if (this.config.operating) return
elConfirm(`确定重置用户【${this.row.name}】的密码?`) elConfirm(`确定重置用户【${this.row.loginName}】的密码?`)
.then(() => { .then(() => {
this.config.operating = true this.config.operating = true
return resetPwd.request({id: this.row.id, name: this.row.name}) return resetPwd.request({id: this.row.id, loginName: this.row.loginName})
}) })
.then(({msg}) => { .then(({msg}) => {
elSuccess(msg) elSuccess(msg)
@ -164,10 +169,10 @@ export default {
del() { del() {
if (isEmpty(this.row)) return elError('请选择要删除的用户') if (isEmpty(this.row)) return elError('请选择要删除的用户')
if (this.config.operating) return if (this.config.operating) return
elConfirm(`确定删除用户【${this.row.name}】?`) elConfirm(`确定删除用户【${this.row.loginName}】?`)
.then(() => { .then(() => {
this.config.operating = true this.config.operating = true
return del.request({id: this.row.id, name: this.row.name}) return del.request({id: this.row.id, LoginName: this.row.loginName})
}) })
.then(({msg}) => { .then(({msg}) => {
elSuccess(msg) elSuccess(msg)
@ -180,10 +185,10 @@ export default {
if (isEmpty(this.row)) return elError('请选择要踢出的用户') if (isEmpty(this.row)) return elError('请选择要踢出的用户')
if (!this.row.online) return elError('只有在线用户才可以踢出') if (!this.row.online) return elError('只有在线用户才可以踢出')
if (this.config.operating) return if (this.config.operating) return
elConfirm(`确定踢出用户【${this.row.name}】?`) elConfirm(`确定踢出用户【${this.row.loginName}】?`)
.then(() => { .then(() => {
this.config.operating = true this.config.operating = true
return kick.request([{id: this.row.id, name: this.row.name}]) return kick.request([{id: this.row.id, LoginName: this.row.loginName}])
}) })
.then(() => { .then(() => {
elSuccess('踢出成功') elSuccess('踢出成功')

@ -3,16 +3,20 @@
<el-avatar :size="200" :src="avatar" icon="el-icon-user-solid" @click.native="uploadAvatarDialog=true"/> <el-avatar :size="200" :src="avatar" icon="el-icon-user-solid" @click.native="uploadAvatarDialog=true"/>
<ul class="user-info"> <ul class="user-info">
<li>登录账号 <li>
用户昵称
<div class="user-right">{{ name }}</div> <div class="user-right">{{ name }}</div>
</li> </li>
<li>所属部门 <li>
所属部门
<div class="user-right">{{ deptName }}</div> <div class="user-right">{{ deptName }}</div>
</li> </li>
<li>用户角色 <li>
用户角色
<div class="user-right">{{ roleName }}</div> <div class="user-right">{{ roleName }}</div>
</li> </li>
<li>安全设置 <li>
安全设置
<div class="user-right"><a @click="modifyPasswordDialog=true">修改密码</a></div> <div class="user-right"><a @click="modifyPasswordDialog=true">修改密码</a></div>
</li> </li>
</ul> </ul>

Loading…
Cancel
Save