Common模块:
修改用户不存在常量名
修改ResultMessage中使用的常量
manage模块:
账号的增删改查进行修改
6 files renamed
19 files modified
839 ■■■■■ changed files
screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java 2 ●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/ResultMessage.java 20 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/AccountController.java 71 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java 4 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java 10 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java 42 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java 19 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java 37 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java 8 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.java 8 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java 21 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java 96 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java 15 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java 60 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java 11 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java 43 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java 46 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java 14 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java 291 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/ManageMenuMapper.xml 1 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -15,7 +15,7 @@
    TOKEN_INVALID(-3,"token无效"),
    TOKEN_CREATE_ERROR(-4,"token生成错误"),
    ACCOUNT_NOT_EXIST(-5,"用户不存在"),
    ACCOUNT_INVALID(-6,"用户已经存在"),
    ACCOUNT_EXIST(-6,"用户已经存在"),
    ACCOUNT_IS_DELETE(-7,"用户已经被删除"),
    PASSWORD_INVALID(-8,"密码错误"),
    MOBILE_INVALID(-9,"手机号无效"),
screen-common/src/main/java/com/moral/constant/ResultMessage.java
@@ -36,15 +36,15 @@
    public static ResultMessage ok() {
        ResultMessage resultMessage = new ResultMessage();
        resultMessage.setCode(Constants.CODE_OPERATION_SUCCESS);
        resultMessage.setMessage(Constants.MSG_OPERATION_SUCCESS);
        resultMessage.setCode(ResponseCodeEnum.SUCCESS.getCode());
        resultMessage.setMessage(ResponseCodeEnum.SUCCESS.getMsg());
        resultMessage.setData(new HashMap<>());
        return resultMessage;
    }
    public static ResultMessage ok(String msg) {
        ResultMessage resultMessage = new ResultMessage();
        resultMessage.setCode(Constants.CODE_OPERATION_SUCCESS);
        resultMessage.setCode(ResponseCodeEnum.SUCCESS.getCode());
        resultMessage.setMessage(msg);
        resultMessage.setData(new HashMap<>());
        return resultMessage;
@@ -67,8 +67,8 @@
    public static <T> ResultMessage<T> ok(T data) {
        ResultMessage resultMessage = new ResultMessage();
        resultMessage.setCode(Constants.CODE_OPERATION_SUCCESS);
        resultMessage.setMessage(Constants.MSG_OPERATION_SUCCESS);
        resultMessage.setCode(ResponseCodeEnum.SUCCESS.getCode());
        resultMessage.setMessage(ResponseCodeEnum.SUCCESS.getMsg());
        resultMessage.setData(data == null ?new HashMap<>():data);
        return resultMessage;
    }
@@ -83,15 +83,15 @@
    public static ResultMessage fail() {
        ResultMessage resultMessage = new ResultMessage();
        resultMessage.setCode(Constants.CODE_OPERATION_FAILED);
        resultMessage.setMessage(Constants.MSG_OPERATION_FAILED);
        resultMessage.setCode(ResponseCodeEnum.FAIL.getCode());
        resultMessage.setMessage(ResponseCodeEnum.FAIL.getMsg());
        resultMessage.setData(new HashMap<>());
        return resultMessage;
    }
    public static ResultMessage fail(String msg) {
        ResultMessage resultMessage = new ResultMessage();
        resultMessage.setCode(Constants.CODE_OPERATION_FAILED);
        resultMessage.setCode(ResponseCodeEnum.FAIL.getCode());
        resultMessage.setMessage(msg);
        resultMessage.setData(new HashMap<>());
        return resultMessage;
@@ -107,8 +107,8 @@
    public static <T> ResultMessage<T> fail(T data) {
        ResultMessage resultMessage = new ResultMessage();
        resultMessage.setCode(Constants.CODE_OPERATION_FAILED);
        resultMessage.setMessage(Constants.MSG_OPERATION_FAILED);
        resultMessage.setCode(ResponseCodeEnum.FAIL.getCode());
        resultMessage.setMessage(ResponseCodeEnum.FAIL.getMsg());
        resultMessage.setData(data == null ?new HashMap<>():data);
        return resultMessage;
    }
screen-manage/src/main/java/com/moral/api/controller/AccountController.java
@@ -1,12 +1,11 @@
package com.moral.api.controller;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.moral.api.pojo.dto.account.AccountDeleteDTO;
import com.moral.api.pojo.dto.account.AccountInsertDTO;
import com.moral.api.pojo.dto.account.AccountQueryDTO;
import com.moral.api.pojo.dto.account.AccountUpdateDTO;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.api.pojo.request.*;
import com.moral.api.pojo.form.*;
import com.moral.api.pojo.vo.account.AccountDeleteVO;
import com.moral.api.pojo.vo.account.AccountInsertVO;
import com.moral.api.pojo.vo.account.AccountQueryVO;
@@ -14,6 +13,7 @@
import com.moral.api.pojo.vo.login.LoginVO;
import com.moral.api.service.ManageAccountService;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.KaptchaUtils;
import com.moral.util.TokenUtils;
@@ -34,69 +34,64 @@
@RestController
@RequestMapping("/account")
public class AccountController {
    @Resource
    ManageAccountService accountService;
    @Autowired
    @Qualifier("tokenRedisTemplate")
    RedisTemplate redisTemplate;
    ManageAccountService accountService;
    @PostMapping("login")
    public ResultMessage login(@RequestBody LoginRequest loginRequest) {
        if (!loginRequest.valid())
    public ResultMessage login(@RequestBody LoginForm loginForm) {
        if (!loginForm.valid())
            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
        LoginDTO loginDTO = accountService.login(loginRequest);
        LoginDTO loginDTO = accountService.login(loginForm);
        LoginVO loginVO = LoginVO.convert(loginDTO);
        if(loginVO.getCode().equals(loginVO.SUCCESS))
            return ResultMessage.ok(loginVO);
        return ResultMessage.fail(loginVO);
        return new ResultMessage(loginDTO.getCode(),loginDTO.getMsg(),loginVO);
    }
    @PostMapping("logout")
    public ResultMessage logout(@RequestBody LogoutRequest logoutRequest, HttpServletRequest request) {
        if(!logoutRequest.valid())
            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
    public ResultMessage logout (@RequestBody LogoutForm logoutForm, HttpServletRequest request) {
        if(!logoutForm.valid())
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        String token = request.getHeader("token");
        logoutRequest.setToken(token);
        logoutForm.setToken(token);
        if(accountService.logout(logoutRequest))
            return ResultMessage.ok("注销成功");
        return ResultMessage.fail("注销异常");
        if(accountService.logout(logoutForm))
            return ResultMessage.ok();
        return ResultMessage.fail();
    }
    @PostMapping("insert")
    public ResultMessage insert(@RequestBody AccountInsertRequest accountInsertRequest){
        if(!accountInsertRequest.valid())
            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
    public ResultMessage insert(@RequestBody AccountInsertForm accountInsertForm){
        if(!accountInsertForm.valid())
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        AccountInsertDTO accountInsertDTO = accountService.insertAccount(accountInsertRequest);
        AccountInsertDTO accountInsertDTO = accountService.insertAccount(accountInsertForm);
        AccountInsertVO accountInsertVO = AccountInsertVO.convert(accountInsertDTO);
        if(accountInsertVO.getCode().equals(accountInsertVO.SUCCESS))
            return ResultMessage.ok(accountInsertVO);
        return ResultMessage.fail(accountInsertVO);
        return new ResultMessage(accountInsertDTO.getCode(),accountInsertDTO.getMsg(),accountInsertVO);
    }
    @GetMapping("query")
    public ResultMessage query(AccountQueryRequest accountQueryRequest){
        if(!accountQueryRequest.valid())
    public ResultMessage query(AccountQueryForm accountQueryForm){
        if(!accountQueryForm.valid())
            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
        AccountQueryDTO accountQueryDTO = accountService.queryAccount(accountQueryRequest);
        AccountQueryDTO accountQueryDTO = accountService.queryAccount(accountQueryForm);
        AccountQueryVO accountQueryVO = AccountQueryVO.convert(accountQueryDTO);
        return ResultMessage.ok(accountQueryVO);
        return new ResultMessage(accountQueryDTO.getCode(),accountQueryDTO.getMsg(),accountQueryVO);
    }
    @PostMapping("update")
    public ResultMessage update(@RequestBody AccountUpdateRequest accountQeuryRequest){
    public ResultMessage update(@RequestBody AccountUpdateForm accountQeuryRequest){
        if(!accountQeuryRequest.valid())
            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
@@ -104,23 +99,19 @@
        AccountUpdateVO accountUpdateVO = AccountUpdateVO.convert(accountUpdateDTO);
        if(accountUpdateVO.getCode().equals(accountUpdateVO.SUCCESS))
            return ResultMessage.ok(accountUpdateVO);
        return ResultMessage.fail(accountUpdateVO);
        return new ResultMessage(accountUpdateDTO.getCode(),accountUpdateDTO.getMsg(),accountUpdateVO);
    }
    @PostMapping("delete")
    public ResultMessage delete(@RequestBody AccountDeleteRequest accountDeleteRequest){
        if(!accountDeleteRequest.valid())
    public ResultMessage delete(@RequestBody AccountDeleteForm accountDeleteForm){
        if(!accountDeleteForm.valid())
            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
        AccountDeleteDTO accountDeleteDTO = accountService.deleteAccount(accountDeleteRequest);
        AccountDeleteDTO accountDeleteDTO = accountService.deleteAccount(accountDeleteForm);
        AccountDeleteVO accountDeleteVO = AccountDeleteVO.convert(accountDeleteDTO);
        if(accountDeleteVO.getCode().equals(accountDeleteVO.SUCCESS))
            return ResultMessage.ok(accountDeleteVO);
        return ResultMessage.fail(accountDeleteVO);
        return new ResultMessage(accountDeleteDTO.getCode(),accountDeleteDTO.getMsg(),accountDeleteVO);
    }
    @PostMapping("yanzhengma")
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java
@@ -20,5 +20,7 @@
    private List<ManageRole> roles;
    private String code;
    private Integer code;
    private String msg;
}
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java
@@ -12,15 +12,5 @@
@Data
public class AccountDeleteDTO extends AccountDTO {
    /*
    * 删除成功
    * */
    public final static String SUCCESS = "0";
    /*
    * 用户不存在
    * */
    public final static String ACCOUNT_NOT_EXIST = "-1";
}
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java
@@ -16,46 +16,4 @@
@Data
public class AccountInsertDTO extends AccountDTO{
    /*
     * 添加成功
     * */
    public static final String SUCCESS = "0";
    /*
     * 账号长度不符合规则
     * */
    public static final String ACCOUNT_LENGTH_INVALID = "-1";
    /*
     * 密码长度不符合规则
     * */
    public static final String PASSWORD_LENGTH_INVALID = "-2";
    /*
     * 手机号不符合规则
     * */
    public static final String MOBILE_INVALID = "-3";
    /*
     * 邮箱不符合规则
     * */
    public static final String EMAIL_INVALID = "-4";
    /*
     * 用户名已经存在
     * */
    public static final String ACCOUNT_EXIST = "-5";
    /*
    * 用户名包含特殊字符
    * */
    public static final String ACCOUNT_EXIST_SPECIAL_CHAR = "-6";
    /*
    * 密码包含特殊字符
    * */
    public static final String PASSWORD_EXIST_SPECIAL_CHAR = "-7";
}
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java
@@ -14,6 +14,10 @@
@Data
public class AccountQueryDTO  {
    private Integer code;
    private String msg;
    private long pages;
    private long total;
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java
@@ -11,24 +11,5 @@
 **/
@Data
public class AccountUpdateDTO extends AccountDTO {
    /*
    * 更新成功
    * */
    public static final String SUCCESS = "0";
    /*
    * 用户不存在
    * */
    public static final String ACCOUNT_NOT_EXIST = "-1";
    /*
    * 手机号不符合规则
    * */
    public static final String MOBILE_INVALID = "-2";
    /*
    * 邮箱不符合规则
    * */
    public static final String EMAIL_INVALID = "-3";
}
screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java
@@ -12,40 +12,15 @@
@Data
public class LoginDTO {
    /*
    * 登陆成功
    * */
    public static final String SUCCESS = "0";
    /*
    * 用户不存在
    * */
    public static final String NOT_EXIST = "-1";
    /*
    * 用户已被封禁
    * */
    public static final String IS_DELETE = "-2";
   /*
   * 密码错误
   * */
   public static final String PASSWORD_ERROR = "-3";
   /*
   * 角色尚未分配
   * */
   public static final String ROLE_EMPTY = "-4";
   /*
   * 菜单尚未分配
   * */
   public static final String MENU_EMPTY = "-5";
   /*
   * 状态码
   * */
    private String code;
    private Integer code;
    /*
    * 提示信息
    * */
    private String msg;
    /*
    *用户token
screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/request/AccountDeleteRequest.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.request;
package com.moral.api.pojo.form;
import lombok.Data;
@@ -10,7 +10,7 @@
 * @Version TODO
 **/
@Data
public class AccountDeleteRequest {
public class AccountDeleteForm {
    private Integer accountId;
screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java
@@ -1,6 +1,5 @@
package com.moral.api.pojo.request;
package com.moral.api.pojo.form;
import com.moral.api.entity.ManageRole;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -15,7 +14,7 @@
 * @Version TODO
 **/
@Data
public class AccountInsertRequest implements Serializable{
public class AccountInsertForm implements Serializable{
    private String account;
@@ -50,8 +49,7 @@
                ObjectUtils.isEmpty(password) ||
                ObjectUtils.isEmpty(email)    ||
                ObjectUtils.isEmpty(mobile)   ||
                ObjectUtils.isEmpty(userName) ||
                ObjectUtils.isEmpty(roleIds)
                ObjectUtils.isEmpty(userName)
            )
            return false;
        return true;
screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/request/AccountQueryRequest.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.request;
package com.moral.api.pojo.form;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -13,7 +13,7 @@
 * @Version TODO
 **/
@Data
public class AccountQueryRequest implements Serializable {
public class AccountQueryForm implements Serializable {
    private Integer page;
screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/request/AccountUpdateRequest.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.request;
package com.moral.api.pojo.form;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -13,7 +13,7 @@
 * @Version TODO
 **/
@Data
public class AccountUpdateRequest {
public class AccountUpdateForm {
    private Integer accountId;
screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.request;
package com.moral.api.pojo.form;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -13,15 +13,15 @@
 * @Version TODO
 **/
@Data
public class LoginRequest implements Serializable {
public class LoginForm implements Serializable {
    private String account;
    private String password;
    public boolean valid(){
        if(ObjectUtils.isEmpty(account)||ObjectUtils.isEmpty(password))
            return false;
            if(ObjectUtils.isEmpty(account)||ObjectUtils.isEmpty(password))
                return false;
        return true;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java
@@ -1,4 +1,4 @@
package com.moral.api.pojo.request;
package com.moral.api.pojo.form;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -13,7 +13,7 @@
 * @Version TODO
 **/
@Data
public class LogoutRequest implements Serializable {
public class LogoutForm implements Serializable {
    private String accountId;
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java
@@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.moral.api.entity.ManageAccount;
import com.moral.api.pojo.dto.account.AccountDeleteDTO;
import com.moral.constant.ResponseCodeEnum;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -18,24 +19,14 @@
public class AccountDeleteVO extends AccountVO {
    /*
     * 删除成功
     * */
    public final static String SUCCESS = "0";
    /*
     * 用户不存在
     * */
    public final static String ACCOUNT_NOT_EXIST = "-1";
    public static AccountDeleteVO convert(AccountDeleteDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
        AccountDeleteVO vo = new AccountDeleteVO();
        vo.setCode(dto.getCode());
        if (!ObjectUtils.isEmpty(dto.getAccount())) {
            ManageAccount account = dto.getAccount();
            vo.setId(account.getId());
            vo.setUserName(account.getUserName());
        }
        ManageAccount account = dto.getAccount();
        vo.setId(account.getId());
        vo.setUserName(account.getUserName());
        return vo;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
@@ -3,7 +3,9 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.moral.api.entity.ManageRole;
import com.moral.api.pojo.dto.account.AccountInsertDTO;
import com.moral.constant.ResponseCodeEnum;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
@@ -18,79 +20,37 @@
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class AccountInsertVO extends AccountVO {
    /*
     * 添加成功
     * */
    public static final String SUCCESS = "0";
    /*
     * 账号长度不符合规则
     * */
    public static final String ACCOUNT_LENGTH_INVALID = "-1";
    /*
     * 密码长度不符合规则
     * */
    public static final String PASSWORD_LENGTH_INVALID = "-2";
    /*
     * 手机号不符合规则
     * */
    public static final String MOBILE_INVALID = "-3";
    /*
     * 邮箱不符合规则
     * */
    public static final String EMAIL_INVALID = "-4";
    /*
     * 用户名已经存在
     * */
    public static final String ACCOUNT_EXIST = "-5";
    /*
     * 用户名包含特殊字符
     * */
    public static final String ACCOUNT_EXIST_SPECIAL_CHAR = "-6";
    /*
     * 密码包含特殊字符
     * */
    public static final String PASSWORD_EXIST_SPECIAL_CHAR = "-7";
    /**
    * @Description: 用于插入账户返回数据使用
            * @Param: [dto]
            * @return: com.moral.api.pojo.vo.account.AccountVO
            * @Author: 陈凯裕
            * @Date: 2021/3/15
            */
    public static AccountInsertVO convert(AccountInsertDTO dto){
     * @Description: 用于插入账户返回数据使用
     * @Param: [dto]
     * @return: com.moral.api.pojo.vo.account.AccountVO
     * @Author: 陈凯裕
     * @Date: 2021/3/15
     */
    public static AccountInsertVO convert(AccountInsertDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
        AccountInsertVO vo = new AccountInsertVO();
        if(dto.getCode()== AccountInsertDTO.SUCCESS){
            Integer id = dto.getAccount().getId();
            String userName = dto.getAccount().getUserName();
            String email = dto.getAccount().getEmail();
            String mobile = dto.getAccount().getMobile();
            String wechat = dto.getAccount().getWechat();
            //转换成角色名集合
            List<ManageRole> roles = dto.getRoles();
            List<String> roleNames = new ArrayList<>();
            roles.forEach(role->roleNames.add(role.getName()));
            vo.setId(id);
            vo.setUserName(userName);
            vo.setEmail(email);
            vo.setMobile(mobile);
            vo.setWechat(wechat);
            vo.setRoleNames(roleNames);
        Integer id = dto.getAccount().getId();
        String userName = dto.getAccount().getUserName();
        String email = dto.getAccount().getEmail();
        String mobile = dto.getAccount().getMobile();
        String wechat = dto.getAccount().getWechat();
        //转换成角色名集合
        List<ManageRole> roles = dto.getRoles();
        List<String> roleNames = new ArrayList<>();
        if (!ObjectUtils.isEmpty(roles)) {
            roles.forEach(role -> roleNames.add(role.getName()));
        }
        vo.setId(id);
        vo.setUserName(userName);
        vo.setEmail(email);
        vo.setMobile(mobile);
        vo.setWechat(wechat);
        vo.setRoleNames(roleNames);
        String code = dto.getCode();
        vo.setCode(code);
        return vo;
    }
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java
@@ -3,7 +3,9 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.moral.api.pojo.dto.account.AccountDTO;
import com.moral.api.pojo.dto.account.AccountQueryDTO;
import com.moral.constant.ResponseCodeEnum;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
@@ -29,16 +31,21 @@
    private List<AccountVO> accountVOs;
    public static AccountQueryVO convert(AccountQueryDTO dto){
    public static AccountQueryVO convert(AccountQueryDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
        long total = dto.getTotal();
        long current = dto.getCurrent();
        long pages = dto.getPages();
        long size = dto.getSize();
        List<AccountVO> accountVOs = new ArrayList<>();
        List<AccountDTO> accountDTOs = dto.getAccountDTOS();
        for (AccountDTO accountDTO : accountDTOs) {
            AccountVO vo = AccountVO.convert(accountDTO);
            accountVOs.add(vo);
        if (!ObjectUtils.isEmpty(accountDTOs)) {
            for (AccountDTO accountDTO : accountDTOs) {
                AccountVO vo = AccountVO.convert(accountDTO);
                accountVOs.add(vo);
            }
        }
        AccountQueryVO vo = new AccountQueryVO();
        vo.setTotal(total);
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java
@@ -4,7 +4,9 @@
import com.moral.api.entity.ManageRole;
import com.moral.api.pojo.dto.account.AccountInsertDTO;
import com.moral.api.pojo.dto.account.AccountUpdateDTO;
import com.moral.constant.ResponseCodeEnum;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
@@ -19,51 +21,33 @@
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class AccountUpdateVO extends AccountVO{
    /*
     * 更新成功
     * */
    public static final String SUCCESS = "0";
public class AccountUpdateVO extends AccountVO {
    /*
     * 用户不存在
     * */
    public static final String ACCOUNT_NOT_EXIST = "-1";
    public static AccountUpdateVO convert(AccountUpdateDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
    /*
     * 手机号不符合规则
     * */
    public static final String MOBILE_INVALID = "-2";
    /*
     * 邮箱不符合规则
     * */
    public static final String EMAIL_INVALID = "-3";
    public static AccountUpdateVO convert(AccountUpdateDTO dto){
        AccountUpdateVO vo = new AccountUpdateVO();
        if(dto.getCode()== AccountUpdateDTO.SUCCESS){
            Integer id = dto.getAccount().getId();
            String userName = dto.getAccount().getUserName();
            String email = dto.getAccount().getEmail();
            String mobile = dto.getAccount().getMobile();
            String wechat = dto.getAccount().getWechat();
            //转换成角色名集合
            List<ManageRole> roles = dto.getRoles();
            List<String> roleNames = new ArrayList<>();
            roles.forEach(role->roleNames.add(role.getName()));
        Integer id = dto.getAccount().getId();
        String userName = dto.getAccount().getUserName();
        String email = dto.getAccount().getEmail();
        String mobile = dto.getAccount().getMobile();
        String wechat = dto.getAccount().getWechat();
            vo.setId(id);
            vo.setUserName(userName);
            vo.setEmail(email);
            vo.setMobile(mobile);
            vo.setWechat(wechat);
            vo.setRoleNames(roleNames);
        //转换成角色名集合
        List<ManageRole> roles = dto.getRoles();
        List<String> roleNames = new ArrayList<>();
        if (!ObjectUtils.isEmpty(roles)) {
            roles.forEach(role -> roleNames.add(role.getName()));
        }
        vo.setId(id);
        vo.setUserName(userName);
        vo.setEmail(email);
        vo.setMobile(mobile);
        vo.setWechat(wechat);
        vo.setRoleNames(roleNames);
        String code = dto.getCode();
        vo.setCode(code);
        return vo;
    }
}
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java
@@ -5,6 +5,7 @@
import com.moral.api.entity.ManageRole;
import com.moral.api.pojo.dto.account.AccountDTO;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
@@ -20,8 +21,6 @@
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class AccountVO {
    private String code;
    private Integer id;
    private String userName;
@@ -34,14 +33,16 @@
    private List<String> roleNames;
    public static AccountVO convert(AccountDTO dto){
        if(dto.getAccount()==null)
    public static AccountVO convert(AccountDTO dto) {
        if (dto.getAccount() == null)
            return null;
        AccountVO vo = new AccountVO();
        ManageAccount account = dto.getAccount();
        List<ManageRole> roles = dto.getRoles();
        List<String> roleNames = new ArrayList<>();
        roles.forEach(role->roleNames.add(role.getName()));
        if (!ObjectUtils.isEmpty(roles)) {
            roles.forEach(role -> roleNames.add(role.getName()));
        }
        vo.setId(account.getId());
        vo.setUserName(account.getUserName());
        vo.setEmail(account.getEmail());
screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java
@@ -6,6 +6,7 @@
import com.moral.api.entity.ManageRole;
import com.moral.api.pojo.dto.login.AccountInfoDTO;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
@@ -42,32 +43,36 @@
    private List<ManageMenu> menus;
    /**
    * @Description: DTO转换VO
            * @Param: [dto]
            * @return: com.moral.api.pojo.vo.login.AccountInfoVO
            * @Author: 陈凯裕
            * @Date: 2021/3/13
            */
    public static AccountInfoVO convert(AccountInfoDTO dto){
     * @Description: DTO转换VO
     * @Param: [dto]
     * @return: com.moral.api.pojo.vo.login.AccountInfoVO
     * @Author: 陈凯裕
     * @Date: 2021/3/13
     */
    public static AccountInfoVO convert(AccountInfoDTO dto) {
        AccountInfoVO vo = new AccountInfoVO();
        ManageAccount account = dto.getAccount();
        List<ManageMenu> menus = dto.getMenus();
        List<ManageRole> roles = dto.getRoles();
        //封装roleNames
        ArrayList<String> roleNames = new ArrayList<>();
        roles.forEach(role->roleNames.add(role.getName()));
        if (!ObjectUtils.isEmpty(roles)) {
            roles.forEach(role -> roleNames.add(role.getName()));
        }
        /*过滤menu无用属性*/
        for (ManageMenu menu : menus) {
            menu.setCreateTime(null);
            menu.setIsDelete(null);
            menu.setUpdateTime(null);
            menu.setParentId(null);
            List<ManageMenu> children = menu.getChildren();
            for (ManageMenu child : children) {
                child.setCreateTime(null);
                child.setIsDelete(null);
                child.setUpdateTime(null);
                child.setParentId(null);
        if (!ObjectUtils.isEmpty(menus)) {
            for (ManageMenu menu : menus) {
                menu.setCreateTime(null);
                menu.setIsDelete(null);
                menu.setUpdateTime(null);
                menu.setParentId(null);
                List<ManageMenu> children = menu.getChildren();
                for (ManageMenu child : children) {
                    child.setCreateTime(null);
                    child.setIsDelete(null);
                    child.setUpdateTime(null);
                    child.setParentId(null);
                }
            }
        }
        vo.setAccountId(account.getId());
screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java
@@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.moral.api.pojo.dto.login.AccountInfoDTO;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.constant.ResponseCodeEnum;
import lombok.Data;
import org.springframework.util.ObjectUtils;
@@ -17,40 +18,6 @@
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class LoginVO {
    /*
     * 登陆成功
     * */
    public static final String SUCCESS = "0";
    /*
     * 用户不存在
     * */
    public static final String NOT_EXIST = "-1";
    /*
     * 用户已被封禁
     * */
    public static final String IS_DELETE = "-2";
    /*
     * 密码错误
     * */
    public static final String PASSWORD_ERROR = "-3";
    /*
     * 角色尚未分配
     * */
    public static final String ROLE_EMPTY = "-4";
    /*
     * 菜单尚未分配
     * */
    public static final String MENU_EMPTY = "-5";
    /*
     * 状态码
     * */
    private String code;
    /*
     *用户token
@@ -70,16 +37,15 @@
     * @Date: 2021/3/13
     */
    public static LoginVO convert(LoginDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
        LoginVO vo = new LoginVO();
        String code = dto.getCode();
        String token = dto.getToken();
        AccountInfoDTO accountInfoDTO = dto.getAccountInfoDTO();
        if (!ObjectUtils.isEmpty(accountInfoDTO)) {
            AccountInfoVO accountInfoVO = AccountInfoVO.convert(accountInfoDTO);
            vo.setAccountInfoVO(accountInfoVO);
        }
        AccountInfoVO accountInfoVO = AccountInfoVO.convert(accountInfoDTO);
        vo.setAccountInfoVO(accountInfoVO);
        vo.setToken(token);
        vo.setCode(code);
        return vo;
    }
}
screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.pojo.dto.account.*;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.api.pojo.request.*;
import com.moral.api.pojo.form.*;
/**
 * <p>
@@ -22,7 +22,7 @@
            * @Author: 陈凯裕
            * @Date: 2021/3/12
            */
    LoginDTO login(LoginRequest loginRequest);
    LoginDTO login(LoginForm loginForm);
   /**
   * @Description: 注销
@@ -31,7 +31,7 @@
           * @Author: 陈凯裕
           * @Date: 2021/3/12
           */
   boolean logout(LogoutRequest logoutRequest);
   boolean logout(LogoutForm logoutForm);
   /**
   * @Description: 添加后台账号
@@ -40,7 +40,7 @@
           * @Author: 陈凯裕
           * @Date: 2021/3/13
           */
    AccountInsertDTO insertAccount(AccountInsertRequest accountInsertRequest);
    AccountInsertDTO insertAccount(AccountInsertForm accountInsertForm);
    /**
    * @Description: 查询账号
@@ -49,7 +49,7 @@
            * @Author: 陈凯裕
            * @Date: 2021/3/15
            */
    AccountQueryDTO queryAccount(AccountQueryRequest accountQueryRequest);
    AccountQueryDTO queryAccount(AccountQueryForm accountQueryForm);
    /**
    * @Description: 更新账号
@@ -58,7 +58,7 @@
            * @Author: 陈凯裕
            * @Date: 2021/3/15
            */
    AccountUpdateDTO updateAccount(AccountUpdateRequest accountUpdateRequest);
    AccountUpdateDTO updateAccount(AccountUpdateForm accountUpdateForm);
    /**
    * @Description: 删除账号
@@ -67,5 +67,5 @@
            * @Author: 陈凯裕
            * @Date: 2021/3/16
            */
    AccountDeleteDTO deleteAccount(AccountDeleteRequest accountDeleteRequest);
    AccountDeleteDTO deleteAccount(AccountDeleteForm accountDeleteForm);
}
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -14,12 +14,14 @@
import com.moral.api.pojo.dto.account.*;
import com.moral.api.pojo.dto.login.AccountInfoDTO;
import com.moral.api.pojo.dto.login.LoginDTO;
import com.moral.api.pojo.request.*;
import com.moral.api.pojo.form.*;
import com.moral.api.service.ManageAccountService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.ResponseCodeEnum;
import com.moral.util.AESUtils;
import com.moral.util.MD5Utils;
import com.moral.util.TokenUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -43,13 +45,13 @@
    @Value("${AES.KEY}")
    private String AESKey;
    @Resource
    @Autowired
    ManageAccountMapper manageAccountMapper;
    @Resource
    @Autowired
    ManageRoleMapper manageRoleMapper;
    @Resource
    @Autowired
    ManageMenuMapper manageMenuMapper;
    @Resource
    @Autowired
    ManageAccountRoleMapper manageAccountRoleMapper;
    public final static String specialCharRegEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
@@ -61,55 +63,53 @@
    /**
     * @Description: 登陆
     * @Param: [parameters]
     * @return: java.util.Map<java.lang.String               ,               java.lang.Object>
     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                               java.lang.Object>
     * @Author: 陈凯裕
     * @Date: 2021/3/11
     */
    @Override
    public LoginDTO login(LoginRequest loginRequest) {
    public LoginDTO login(LoginForm loginForm) {
        LoginDTO loginDTO = new LoginDTO();
        //取参
        String AESAccount = loginRequest.getAccount();
        String AESPassword = loginRequest.getPassword();
        String account = loginForm.getAccount();
        String AESPassword = loginForm.getPassword();
        //解密
        String account = AESUtils.decrypt(AESAccount, AESKey);
        String password = AESUtils.decrypt(AESPassword, AESKey);
        //查询是否存在
        QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
        wrapper.eq("account", account);
        List<ManageAccount> manageAccounts = manageAccountMapper.selectList(wrapper);
        if (ObjectUtils.isEmpty(manageAccounts)) {
            loginDTO.setCode(LoginDTO.NOT_EXIST);
            loginDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
            loginDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
            return loginDTO;
        }
        //查询是否逻辑删除
        ManageAccount manageAccount = null;
        for (ManageAccount value : manageAccounts) {
            if("0".equals(value.getIsDelete()))
            if ("0".equals(value.getIsDelete()))
                manageAccount = value;
        }
        if (ObjectUtils.isEmpty(manageAccount)) {
            loginDTO.setCode(LoginDTO.IS_DELETE);
            loginDTO.setCode(ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode());
            loginDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
            return loginDTO;
        }
        //校验密码
        if (!MD5Utils.saltMD5Verify(password, manageAccount.getPassword())) {
            loginDTO.setCode(LoginDTO.PASSWORD_ERROR);
            loginDTO.setCode(ResponseCodeEnum.PASSWORD_INVALID.getCode());
            loginDTO.setMsg(ResponseCodeEnum.PASSWORD_INVALID.getMsg());
            return loginDTO;
        }
        //查询角色
        List<ManageRole> roles = manageRoleMapper.getManageRoleByAccountId(manageAccount.getId());
        if (ObjectUtils.isEmpty(roles)) {//判断账号是否存在角色
            loginDTO.setCode(LoginDTO.ROLE_EMPTY);
            return loginDTO;
        }
        //查询菜单
        List<ManageMenu> menus = manageMenuMapper.getParentChildrenMenusByRoles(roles);
        if (ObjectUtils.isEmpty(menus)) {//判断账号是否存在菜单
            loginDTO.setCode(LoginDTO.MENU_EMPTY);
            return loginDTO;
        List<ManageMenu> menus = null;
        if (!ObjectUtils.isEmpty(roles)) {
            menus = manageMenuMapper.getParentChildrenMenusByRoles(roles);
        }
        //封装用户信息
@@ -122,7 +122,8 @@
        String token = TokenUtils.getToken(String.valueOf(manageAccount.getId()), accountInfoDTO);
        //封装返回结果
        loginDTO.setCode(LoginDTO.SUCCESS);
        loginDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        loginDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        loginDTO.setAccountInfoDTO(accountInfoDTO);
        loginDTO.setToken(token);
@@ -132,14 +133,14 @@
    /**
     * @Description: 注销
     * @Param: [parameters]
     * @return: java.util.Map<java.lang.String               ,               java.lang.Object>
     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                               java.lang.Object>
     * @Author: 陈凯裕
     * @Date: 2021/3/11
     */
    @Override
    public boolean logout(LogoutRequest logoutRequest) {
        String accountId = logoutRequest.getAccountId();
        String token = logoutRequest.getToken();
    public boolean logout(LogoutForm logoutForm) {
        String accountId = logoutForm.getAccountId();
        String token = logoutForm.getToken();
        TokenUtils.destoryToken(accountId, token);
        return true;
    }
@@ -153,47 +154,52 @@
     */
    @Override
    @Transactional
    public AccountInsertDTO insertAccount(AccountInsertRequest accountInsertRequest) {
    public AccountInsertDTO insertAccount(AccountInsertForm accountInsertForm) {
        AccountInsertDTO accountInsertDTO = new AccountInsertDTO();
        //取参
        String AESAccount = accountInsertRequest.getAccount();
        String AESPassword = accountInsertRequest.getPassword();
        String account = AESUtils.decrypt(AESAccount, AESKey);
        String account = accountInsertForm.getAccount();
        String AESPassword = accountInsertForm.getPassword();
        String password = MD5Utils.saltMD5(AESUtils.decrypt(AESPassword, AESKey));
        String userName = accountInsertRequest.getUserName();
        String email = accountInsertRequest.getEmail();
        String mobile = accountInsertRequest.getMobile();
        String wechat = accountInsertRequest.getWechat();
        List<String> roleIdsStr = accountInsertRequest.getRoleIds();
        String userName = accountInsertForm.getUserName();
        String email = accountInsertForm.getEmail();
        String mobile = accountInsertForm.getMobile();
        String wechat = accountInsertForm.getWechat();
        List<String> roleIdsStr = accountInsertForm.getRoleIds();
        //校验参数是否符合业务逻辑
        /*判断用户名是否包含特殊字符*/
        if (isSpecialChar(account)) {
            accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_EXIST_SPECIAL_CHAR);
            accountInsertDTO.setCode(ResponseCodeEnum.ACCOUNT_EXIST_SPECIAL_CHAR.getCode());
            accountInsertDTO.setMsg(ResponseCodeEnum.ACCOUNT_EXIST_SPECIAL_CHAR.getMsg());
            return accountInsertDTO;
        }
        /*判断密码是否包含特殊字符*/
        if (isSpecialChar(password)) {
            accountInsertDTO.setCode(AccountInsertDTO.PASSWORD_EXIST_SPECIAL_CHAR);
            accountInsertDTO.setCode(ResponseCodeEnum.PASSWORD_EXIST_SPECIAL_CHAR.getCode());
            accountInsertDTO.setMsg(ResponseCodeEnum.PASSWORD_EXIST_SPECIAL_CHAR.getMsg());
            return accountInsertDTO;
        }
        /*判断用户名是否超过长度*/
        if (account.length() >= 20||account.length()<=6) {
            accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_LENGTH_INVALID);
        if (account.length() >= 20 || account.length() <= 6) {
            accountInsertDTO.setCode(ResponseCodeEnum.ACCOUNT_LENGTH_INVALID.getCode());
            accountInsertDTO.setMsg(ResponseCodeEnum.ACCOUNT_LENGTH_INVALID.getMsg());
            return accountInsertDTO;
        }
        /*判断密码是否超过长度*/
        if (AESUtils.decrypt(AESPassword, AESKey).length() >= 20||AESUtils.decrypt(AESPassword, AESKey).length() <= 6) {
            accountInsertDTO.setCode(AccountInsertDTO.PASSWORD_LENGTH_INVALID);
        if (AESUtils.decrypt(AESPassword, AESKey).length() >= 20 || AESUtils.decrypt(AESPassword, AESKey).length() <= 6) {
            accountInsertDTO.setCode(ResponseCodeEnum.PASSWORD_LENGTH_INVALID.getCode());
            accountInsertDTO.setMsg(ResponseCodeEnum.PASSWORD_LENGTH_INVALID.getMsg());
            return accountInsertDTO;
        }
        /*判断手机号是否符合规则*/
        if (!isValidMobile(mobile)) {
            accountInsertDTO.setCode(AccountInsertDTO.MOBILE_INVALID);
            accountInsertDTO.setCode(ResponseCodeEnum.MOBILE_INVALID.getCode());
            accountInsertDTO.setMsg(ResponseCodeEnum.MOBILE_INVALID.getMsg());
            return accountInsertDTO;
        }
        /*判断邮箱是否符合规则*/
        if (!isValidEmail(email)) {
            accountInsertDTO.setCode(AccountInsertDTO.EMAIL_INVALID);
            accountInsertDTO.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
            accountInsertDTO.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
            return accountInsertDTO;
        }
        /*判断账号是否存在*/
@@ -204,13 +210,10 @@
        wrapper.setEntity(exitAccount);
        List<ManageAccount> exitAccounts = manageAccountMapper.selectList(wrapper);
        if (!ObjectUtils.isEmpty(exitAccounts)) {
            accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_EXIST);
            accountInsertDTO.setCode(ResponseCodeEnum.ACCOUNT_EXIST.getCode());
            accountInsertDTO.setMsg(ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
            return accountInsertDTO;
        }
        //String to Integer
        List<Integer> roleIds = new ArrayList<>();
        roleIdsStr.forEach(str -> roleIds.add(Integer.parseInt(str)));
        //封装account
        ManageAccount manageAccount = new ManageAccount();
@@ -222,20 +225,29 @@
        manageAccount.setWechat(wechat);
        manageAccountMapper.insert(manageAccount);
        //封装account_role
        Integer accountId = manageAccount.getId();
        roleIdsStr.forEach(
                value -> {
                    ManageAccountRole manageAccountRole = new ManageAccountRole();
                    manageAccountRole.setAccountId(accountId);
                    manageAccountRole.setRoleId(Integer.parseInt(value));
                    manageAccountRoleMapper.insert(manageAccountRole);
                }
        );
        /*String to Integer*/
        List<ManageRole> roles = null;
        //如果新建账号没有分配角色则不进行操作
        if (!ObjectUtils.isEmpty(roleIdsStr)) {
            List<Integer> roleIds = new ArrayList<>();
            roleIdsStr.forEach(str -> roleIds.add(Integer.parseInt(str)));
            Integer accountId = manageAccount.getId();
            roleIdsStr.forEach(
                    value -> {
                        ManageAccountRole manageAccountRole = new ManageAccountRole();
                        manageAccountRole.setAccountId(accountId);
                        manageAccountRole.setRoleId(Integer.parseInt(value));
                        manageAccountRoleMapper.insert(manageAccountRole);
                    }
            );
            roles = manageRoleMapper.selectBatchIds(roleIds);
        }
        //封装返回结果
        List<ManageRole> roles = manageRoleMapper.selectBatchIds(roleIds);
        accountInsertDTO.setAccount(manageAccount);
        accountInsertDTO.setRoles(roles);
        accountInsertDTO.setCode(AccountInsertDTO.SUCCESS);
        accountInsertDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountInsertDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return accountInsertDTO;
    }
@@ -247,46 +259,63 @@
     * @Date: 2021/3/15
     */
    @Override
    public AccountQueryDTO queryAccount(AccountQueryRequest accountQueryRequest) {
    public AccountQueryDTO queryAccount(AccountQueryForm accountQueryForm) {
        AccountQueryDTO accountQueryDTO = new AccountQueryDTO();
        //取参
        Integer pageCount = accountQueryRequest.getPage();
        Integer size = accountQueryRequest.getSize();
        Integer accountId = accountQueryRequest.getAccountId();
        String account = accountQueryRequest.getAccount();
        String userName = accountQueryRequest.getUserName();
        String email = accountQueryRequest.getEmail();
        String mobile = accountQueryRequest.getMobile();
        String wechat = accountQueryRequest.getWechat();
        String isDelete = accountQueryRequest.getIsDelete();
        //封装查询参数
        Map<String, Object> queryParams = new HashMap<>();
        queryParams.put("id", accountId);
        queryParams.put("account", account);
        queryParams.put("user_name", userName);
        queryParams.put("email", email);
        queryParams.put("mobile", mobile);
        queryParams.put("wechat", wechat);
        if(!ObjectUtils.isEmpty(isDelete))
            queryParams.put("is_delete", isDelete);
        else
            queryParams.put("is_delete","0");
        //过滤为null的参数
        queryParams.values().removeIf(value -> ObjectUtils.isEmpty(value));
        Integer pageCount = accountQueryForm.getPage();
        Integer size = accountQueryForm.getSize();
        Integer accountId = accountQueryForm.getAccountId();
        String account = accountQueryForm.getAccount();
        String userName = accountQueryForm.getUserName();
        String email = accountQueryForm.getEmail();
        String mobile = accountQueryForm.getMobile();
        String wechat = accountQueryForm.getWechat();
        String isDelete = accountQueryForm.getIsDelete();
        //查询用户
        Page<ManageAccount> page = new Page<>(pageCount, size);
        QueryWrapper<ManageAccount> wrapper = new QueryWrapper();
        wrapper.allEq(queryParams);
        if(!ObjectUtils.isEmpty(accountId)){
            wrapper.eq("id",accountId);
        }
        if(!ObjectUtils.isEmpty(userName)){
            wrapper.like("user_name",userName);
        }
        if(!ObjectUtils.isEmpty(account)){
            wrapper.like("account",account);
        }
        if(!ObjectUtils.isEmpty(email)){
            wrapper.like("email",email);
        }
        if(!ObjectUtils.isEmpty(mobile)){
            wrapper.like("mobile",mobile);
        }
        if(!ObjectUtils.isEmpty(wechat)){
            wrapper.like("wechat",wechat);
        }
        if (!ObjectUtils.isEmpty(isDelete))
            wrapper.eq("is_delete", isDelete);
        else
            wrapper.eq("is_delete", "0");
        Page resultPage = manageAccountMapper.selectPage(page, wrapper);
        //查询用户对应的角色
        List<ManageAccount> accounts = resultPage.getRecords();
        List<AccountDTO> accountDTOS = new ArrayList<>();
        for (ManageAccount manageAccount : accounts) {
            AccountDTO accountDTO = new AccountDTO();
            List<ManageRole> roles = manageRoleMapper.getManageRoleByAccountId(manageAccount.getId());
            accountDTO.setRoles(roles);
            accountDTO.setAccount(manageAccount);
            accountDTOS.add(accountDTO);
        if (!ObjectUtils.isEmpty(accounts)) {
            for (ManageAccount manageAccount : accounts) {
                AccountDTO accountDTO = new AccountDTO();
                List<ManageRole> roles = manageRoleMapper.getManageRoleByAccountId(manageAccount.getId());
                accountDTO.setRoles(roles);
                accountDTO.setAccount(manageAccount);
                accountDTOS.add(accountDTO);
            }
        }
        //封装返回结果
        accountQueryDTO.setAccountDTOS(accountDTOS);
@@ -294,28 +323,30 @@
        accountQueryDTO.setPages(resultPage.getPages());
        accountQueryDTO.setSize(resultPage.getSize());
        accountQueryDTO.setTotal(resultPage.getTotal());
        accountQueryDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountQueryDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return accountQueryDTO;
    }
    /**
    * @Description: 更新后台账号
            * @Param: [accountUpdateRequest]
            * @return: com.moral.api.pojo.dto.account.AccountUpdateDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/16
            */
     * @Description: 更新后台账号
     * @Param: [accountUpdateRequest]
     * @return: com.moral.api.pojo.dto.account.AccountUpdateDTO
     * @Author: 陈凯裕
     * @Date: 2021/3/16
     */
    @Override
    @Transactional
    public AccountUpdateDTO updateAccount(AccountUpdateRequest accountUpdateRequest) {
    public AccountUpdateDTO updateAccount(AccountUpdateForm accountUpdateForm) {
        AccountUpdateDTO accountUpdateDTO = new AccountUpdateDTO();
        //取参
        Integer accountId = accountUpdateRequest.getAccountId();
        String email = accountUpdateRequest.getEmail();
        String mobile = accountUpdateRequest.getMobile();
        String wechat = accountUpdateRequest.getWechat();
        String userName = accountUpdateRequest.getUserName();
        List<Integer> roleIds = accountUpdateRequest.getRoleIds();
        Integer accountId = accountUpdateForm.getAccountId();
        String email = accountUpdateForm.getEmail();
        String mobile = accountUpdateForm.getMobile();
        String wechat = accountUpdateForm.getWechat();
        String userName = accountUpdateForm.getUserName();
        List<Integer> roleIds = accountUpdateForm.getRoleIds();
        //校验参数是否符合逻辑
        /*判断要更新的用户是否存在*/
        QueryWrapper<ManageAccount> exitWrapper = new QueryWrapper<>();
@@ -324,18 +355,21 @@
        exitManageAccount.setIsDelete("0");
        exitWrapper.setEntity(exitManageAccount);
        List<ManageAccount> manageAccounts = manageAccountMapper.selectList(exitWrapper);
        if(ObjectUtils.isEmpty(manageAccounts)){
            accountUpdateDTO.setCode(AccountUpdateDTO.ACCOUNT_NOT_EXIST);
        if (ObjectUtils.isEmpty(manageAccounts)) {
            accountUpdateDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
            accountUpdateDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
            return accountUpdateDTO;
        }
        /*判断手机号是否符合规则*/
        if (!isValidMobile(mobile)) {
            accountUpdateDTO.setCode(AccountUpdateDTO.MOBILE_INVALID);
            accountUpdateDTO.setCode(ResponseCodeEnum.MOBILE_INVALID.getCode());
            accountUpdateDTO.setMsg(ResponseCodeEnum.MOBILE_INVALID.getMsg());
            return accountUpdateDTO;
        }
        /*判断邮箱是否符合规则*/
        if (!isValidEmail(email)) {
            accountUpdateDTO.setCode(AccountUpdateDTO.EMAIL_INVALID);
            accountUpdateDTO.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
            accountUpdateDTO.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
            return accountUpdateDTO;
        }
        //更新ManageAccount表
@@ -345,12 +379,12 @@
        manageAccount.setWechat(wechat);
        manageAccount.setUserName(userName);
        QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
        wrapper.eq("id",accountId);
        manageAccountMapper.update(manageAccount,wrapper);
        wrapper.eq("id", accountId);
        manageAccountMapper.update(manageAccount, wrapper);
        //更新ManageAccountRole表
        /*删除该用户的所有角色*/
        QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>();
        deleteWrapper.eq("account_id",accountId);
        deleteWrapper.eq("account_id", accountId);
        manageAccountRoleMapper.delete(deleteWrapper);
        /*重新添加角色*/
        for (Integer roleId : roleIds) {
@@ -362,7 +396,8 @@
        //获取用户所有角色
        List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds);
        //封装返回结果
        accountUpdateDTO.setCode(AccountUpdateDTO.SUCCESS);
        accountUpdateDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountUpdateDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        accountUpdateDTO.setRoles(manageRoles);
        accountUpdateDTO.setAccount(manageAccountMapper.selectById(accountId));
        return accountUpdateDTO;
@@ -370,18 +405,18 @@
    /**
    * @Description: 删除后台账号
            * @Param: [accountDeleteRequest]
            * @return: com.moral.api.pojo.dto.account.AccountDeleteDTO
            * @Author: 陈凯裕
            * @Date: 2021/3/16
            */
     * @Description: 删除后台账号
     * @Param: [accountDeleteRequest]
     * @return: com.moral.api.pojo.dto.account.AccountDeleteDTO
     * @Author: 陈凯裕
     * @Date: 2021/3/16
     */
    @Override
    @Transactional
    public AccountDeleteDTO deleteAccount(AccountDeleteRequest accountDeleteRequest) {
    public AccountDeleteDTO deleteAccount(AccountDeleteForm accountDeleteForm) {
        AccountDeleteDTO accountDeleteDTO = new AccountDeleteDTO();
        //取参
        Integer accountId = accountDeleteRequest.getAccountId();
        Integer accountId = accountDeleteForm.getAccountId();
        //查询是否存在
        ManageAccount manageAccount = new ManageAccount();
        manageAccount.setIsDelete("0");
@@ -389,21 +424,23 @@
        QueryWrapper<ManageAccount> queryWrapper = new QueryWrapper<>();
        queryWrapper.setEntity(manageAccount);
        ManageAccount existManageAccount = manageAccount.selectOne(queryWrapper);
        if(ObjectUtils.isEmpty(existManageAccount)){
            accountDeleteDTO.setCode(AccountDeleteDTO.ACCOUNT_NOT_EXIST);
        if (ObjectUtils.isEmpty(existManageAccount)) {
            accountDeleteDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
            accountDeleteDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
            return accountDeleteDTO;
        }
        //逻辑删除账号
        existManageAccount.setIsDelete("1");
        UpdateWrapper<ManageAccount> deleteAccountWrapper = new UpdateWrapper<>();
        deleteAccountWrapper.set("is_delete","1").eq("id",manageAccount.getId());
        manageAccountMapper.update(null,deleteAccountWrapper);
        deleteAccountWrapper.set("is_delete", "1").eq("id", manageAccount.getId());
        manageAccountMapper.update(null, deleteAccountWrapper);
        //逻辑删除账号相关角色
        UpdateWrapper<ManageAccountRole> deleteManageAccountRoleWrapper = new UpdateWrapper<>();
        deleteManageAccountRoleWrapper.set("is_delete","1").eq("account_id",manageAccount.getId());
        manageAccountRoleMapper.update(null,deleteManageAccountRoleWrapper);
        deleteManageAccountRoleWrapper.set("is_delete", "1").eq("account_id", manageAccount.getId());
        manageAccountRoleMapper.update(null, deleteManageAccountRoleWrapper);
        //封装返回结果
        accountDeleteDTO.setCode(AccountDeleteDTO.SUCCESS);
        accountDeleteDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountDeleteDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        accountDeleteDTO.setAccount(existManageAccount);
        return accountDeleteDTO;
    }
screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
@@ -69,6 +69,7 @@
    <!--根据角色查询父子结构的菜单-->
    <select id="getParentChildrenMenusByRoles" resultMap="ParentChildrenResultMap">
        select
        DISTINCT
        <include refid="Base_Column_List"></include>
        from
        manage_menu mm