From 7f56cfa5ec12682d53809e0f4d77a8f3277d36a0 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Mon, 15 Mar 2021 17:42:01 +0800 Subject: [PATCH] Manage模块: 完成后台账号查询功能 完成后台账号更新功能 --- screen-manage/src/main/java/com/moral/api/pojo/request/AccountUpdateRequest.java | 45 +++ screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java | 8 screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java | 3 screen-manage/src/main/java/com/moral/api/pojo/dto/login/AccountInfoDTO.java | 2 screen-manage/src/main/java/com/moral/api/pojo/request/AccountQueryRequest.java | 44 +++ screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java | 7 screen-manage/src/main/java/com/moral/api/controller/AccountController.java | 59 +++- screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java | 4 screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java | 7 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java | 51 +++ screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java | 247 +++++++++++++---- screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java | 22 + screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java | 27 + screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java | 4 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java | 9 screen-manage/src/main/resources/application-dev.yml | 4 screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java | 33 + screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java | 54 +++ screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java | 40 - screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java | 35 ++ screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java | 74 +++++ screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java | 4 22 files changed, 649 insertions(+), 134 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/controller/AccountController.java b/screen-manage/src/main/java/com/moral/api/controller/AccountController.java index 149ff67..78c95c6 100644 --- a/screen-manage/src/main/java/com/moral/api/controller/AccountController.java +++ b/screen-manage/src/main/java/com/moral/api/controller/AccountController.java @@ -1,12 +1,14 @@ package com.moral.api.controller; -import com.moral.api.pojo.dto.AccountDTO; -import com.moral.api.pojo.dto.LoginDTO; -import com.moral.api.pojo.request.AccountAddRequest; -import com.moral.api.pojo.request.LoginRequest; -import com.moral.api.pojo.request.LogoutRequest; -import com.moral.api.pojo.vo.AccountVO; -import com.moral.api.pojo.vo.LoginVO; +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.vo.account.AccountInsertVO; +import com.moral.api.pojo.vo.account.AccountQueryVO; +import com.moral.api.pojo.vo.account.AccountUpdateVO; +import com.moral.api.pojo.vo.login.LoginVO; import com.moral.api.service.ManageAccountService; import com.moral.constant.Constants; import com.moral.constant.ResultMessage; @@ -60,19 +62,46 @@ } - @PostMapping("add") - public ResultMessage add(@RequestBody AccountAddRequest accountAddRequest){ - if(!accountAddRequest.valid()) + @PostMapping("insert") + public ResultMessage insert(@RequestBody AccountInsertRequest accountInsertRequest){ + if(!accountInsertRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); - AccountDTO accountDTO = accountService.addAccount(accountAddRequest); + AccountInsertDTO accountInsertDTO = accountService.insertAccount(accountInsertRequest); - AccountVO accountVO = AccountVO.convertToInsertPage(accountDTO); + AccountInsertVO accountInsertVO = AccountInsertVO.convert(accountInsertDTO); - if(accountVO.getCode().equals(accountVO.SUCCESS)) - return ResultMessage.ok(accountVO); - return ResultMessage.fail(accountVO); + if(accountInsertVO.getCode().equals(accountInsertVO.SUCCESS)) + return ResultMessage.ok(accountInsertVO); + return ResultMessage.fail(accountInsertVO); } + @GetMapping("query") + public ResultMessage query(AccountQueryRequest accountQueryRequest){ + if(!accountQueryRequest.valid()) + return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); + + AccountQueryDTO accountQueryDTO = accountService.queryAccount(accountQueryRequest); + + AccountQueryVO accountQueryVO = AccountQueryVO.convert(accountQueryDTO); + + return ResultMessage.ok(accountQueryVO); + } + + @PostMapping("update") + public ResultMessage update(@RequestBody AccountUpdateRequest accountQeuryRequest){ + if(!accountQeuryRequest.valid()) + return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); + + AccountUpdateDTO accountUpdateDTO = accountService.updateAccount(accountQeuryRequest); + + AccountUpdateVO accountUpdateVO = AccountUpdateVO.convert(accountUpdateDTO); + + if(accountUpdateVO.getCode().equals(accountUpdateVO.SUCCESS)) + return ResultMessage.ok(accountUpdateVO); + return ResultMessage.fail(accountUpdateVO); + } + + } diff --git a/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java b/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java index b259a38..bc18ca5 100644 --- a/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java +++ b/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java @@ -1,6 +1,8 @@ package com.moral.api.entity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; @@ -58,6 +60,7 @@ /** * ������ */ + @TableField(updateStrategy = FieldStrategy.IGNORED) private String wechat; /** diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java new file mode 100644 index 0000000..00404b3 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java @@ -0,0 +1,22 @@ +package com.moral.api.pojo.dto.account; + +import com.moral.api.entity.ManageAccount; +import com.moral.api.entity.ManageRole; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName AccountDTO + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 14:27 + * @Version TODO + **/ +@Data +public class AccountDTO { + + private ManageAccount account; + + private List<ManageRole> roles; +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/AccountDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java similarity index 82% rename from screen-manage/src/main/java/com/moral/api/pojo/dto/AccountDTO.java rename to screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java index 41ec39c..2a96636 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/dto/AccountDTO.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java @@ -1,6 +1,5 @@ -package com.moral.api.pojo.dto; +package com.moral.api.pojo.dto.account; -import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageAccount; import com.moral.api.entity.ManageRole; import lombok.Data; @@ -15,8 +14,7 @@ * @Version TODO **/ @Data -@JsonInclude(JsonInclude.Include.NON_EMPTY) -public class AccountDTO { +public class AccountInsertDTO extends AccountDTO{ /* * ������������ @@ -60,8 +58,5 @@ private String code; - private ManageAccount account; - - private List<ManageRole> roles; } diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java new file mode 100644 index 0000000..26e2ef6 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java @@ -0,0 +1,27 @@ +package com.moral.api.pojo.dto.account; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName AccountListDTO + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 13:12 + * @Version TODO + **/ +@Data +public class AccountQueryDTO { + + private long pages; + + private long total; + + private long current; + + private long size; + + private List<AccountDTO> AccountDTOS; + +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java new file mode 100644 index 0000000..3fb12d9 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java @@ -0,0 +1,35 @@ +package com.moral.api.pojo.dto.account; + +import lombok.Data; + +/** + * @ClassName AccountUpdateDTO + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 16:24 + * @Version TODO + **/ +@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"; + + private String code; +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/AccountInfoDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/login/AccountInfoDTO.java similarity index 93% rename from screen-manage/src/main/java/com/moral/api/pojo/dto/AccountInfoDTO.java rename to screen-manage/src/main/java/com/moral/api/pojo/dto/login/AccountInfoDTO.java index ae9e896..ce073b0 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/dto/AccountInfoDTO.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/login/AccountInfoDTO.java @@ -1,4 +1,4 @@ -package com.moral.api.pojo.dto; +package com.moral.api.pojo.dto.login; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageAccount; diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/LoginDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java similarity index 87% rename from screen-manage/src/main/java/com/moral/api/pojo/dto/LoginDTO.java rename to screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java index 02e10d1..0701d68 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/dto/LoginDTO.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java @@ -1,6 +1,5 @@ -package com.moral.api.pojo.dto; +package com.moral.api.pojo.dto.login; -import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; /** @@ -11,7 +10,6 @@ * @Version TODO **/ @Data -@JsonInclude(JsonInclude.Include.NON_EMPTY) public class LoginDTO { /* diff --git a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountAddRequest.java b/screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java similarity index 79% rename from screen-manage/src/main/java/com/moral/api/pojo/request/AccountAddRequest.java rename to screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java index a107fce..13d54de 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountAddRequest.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java @@ -4,6 +4,7 @@ import lombok.Data; import org.springframework.util.ObjectUtils; +import java.io.Serializable; import java.util.List; /** @@ -14,7 +15,7 @@ * @Version TODO **/ @Data -public class AccountAddRequest { +public class AccountInsertRequest implements Serializable{ private String account; @@ -47,8 +48,10 @@ public boolean valid() { if ( - ObjectUtils.isEmpty(account) || + ObjectUtils.isEmpty(account) || ObjectUtils.isEmpty(password) || + ObjectUtils.isEmpty(email) || + ObjectUtils.isEmpty(mobile) || ObjectUtils.isEmpty(userName) || ObjectUtils.isEmpty(isDelete) || ObjectUtils.isEmpty(roleIds) diff --git a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountQueryRequest.java b/screen-manage/src/main/java/com/moral/api/pojo/request/AccountQueryRequest.java new file mode 100644 index 0000000..1a8fb2f --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/request/AccountQueryRequest.java @@ -0,0 +1,44 @@ +package com.moral.api.pojo.request; + +import lombok.Data; +import org.springframework.util.ObjectUtils; + +import java.io.Serializable; + +/** + * @ClassName AccountQueryRequest + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 10:10 + * @Version TODO + **/ +@Data +public class AccountQueryRequest implements Serializable { + + private Integer page; + + private Integer size; + + private Integer accountId; + + private String account; + + private String userName; + + private String email; + + private String mobile; + + private String wechat; + + private String isDelete; + + public boolean valid() { + if ( + ObjectUtils.isEmpty(page)|| + ObjectUtils.isEmpty(size) + ) + return false; + return true; + } +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountUpdateRequest.java b/screen-manage/src/main/java/com/moral/api/pojo/request/AccountUpdateRequest.java new file mode 100644 index 0000000..f0ae72b --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/request/AccountUpdateRequest.java @@ -0,0 +1,45 @@ +package com.moral.api.pojo.request; + +import lombok.Data; +import org.springframework.util.ObjectUtils; + +import java.util.List; + +/** + * @ClassName AccountUpdateRequest + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 15:34 + * @Version TODO + **/ +@Data +public class AccountUpdateRequest { + + private Integer accountId; + + private String userName; + + private String email; + + private String mobile; + + private String wechat; + + private String isDelete; + + private List<Integer> roleIds; + + public boolean valid(){ + if ( + ObjectUtils.isEmpty(accountId) || + ObjectUtils.isEmpty(userName) || + ObjectUtils.isEmpty(email) || + ObjectUtils.isEmpty(mobile) || + ObjectUtils.isEmpty(isDelete) || + ObjectUtils.isEmpty(roleIds) + ) + return false; + return true; + } + +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java b/screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java index 535af46..4f60a54 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java @@ -3,6 +3,8 @@ import lombok.Data; import org.springframework.util.ObjectUtils; +import java.io.Serializable; + /** * @ClassName LoginRequest * @Description TODO @@ -11,7 +13,7 @@ * @Version TODO **/ @Data -public class LoginRequest { +public class LoginRequest implements Serializable { private String account; diff --git a/screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java b/screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java index 02cedfc..c559c40 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java @@ -3,6 +3,8 @@ import lombok.Data; import org.springframework.util.ObjectUtils; +import java.io.Serializable; + /** * @ClassName LogoutRequest * @Description TODO @@ -11,7 +13,7 @@ * @Version TODO **/ @Data -public class LogoutRequest { +public class LogoutRequest implements Serializable { private String accountId; diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/AccountVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java similarity index 78% rename from screen-manage/src/main/java/com/moral/api/pojo/vo/AccountVO.java rename to screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java index d303bf9..faaf488 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/vo/AccountVO.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java @@ -1,8 +1,8 @@ -package com.moral.api.pojo.vo; +package com.moral.api.pojo.vo.account; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageRole; -import com.moral.api.pojo.dto.AccountDTO; +import com.moral.api.pojo.dto.account.AccountInsertDTO; import lombok.Data; import java.util.ArrayList; @@ -17,7 +17,7 @@ **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) -public class AccountVO { +public class AccountInsertVO extends AccountVO { /* * ������������ * */ @@ -60,31 +60,17 @@ private String code; - private Integer id; - private String userName; - - private String password; - - private String email; - - private String mobile; - - private String wechat; - - private String createTime; - - private String updateTime; - - private String isDelete; - - private List<String> roleNames; - - private List<ManageRole> roles; - - public static AccountVO convertToInsertPage(AccountDTO dto){ - AccountVO vo = new AccountVO(); - if(dto.getCode()==AccountDTO.SUCCESS){ + /** + * @Description: ������������������������������������ + * @Param: [dto] + * @return: com.moral.api.pojo.vo.account.AccountVO + * @Author: ��������� + * @Date: 2021/3/15 + */ + public static AccountInsertVO convert(AccountInsertDTO dto){ + AccountInsertVO vo = new AccountInsertVO(); + if(dto.getCode()== AccountInsertDTO.SUCCESS){ Integer id = dto.getAccount().getId(); String userName = dto.getAccount().getUserName(); String email = dto.getAccount().getEmail(); diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java new file mode 100644 index 0000000..16462d3 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java @@ -0,0 +1,51 @@ +package com.moral.api.pojo.vo.account; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.moral.api.pojo.dto.account.AccountDTO; +import com.moral.api.pojo.dto.account.AccountQueryDTO; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName AccountPageVO + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 13:25 + * @Version TODO + **/ +@Data +@JsonInclude(JsonInclude.Include.NON_EMPTY) +public class AccountQueryVO { + + private long pages; + + private long total; + + private long current; + + private long size; + + private List<AccountVO> accountVOs; + + public static AccountQueryVO convert(AccountQueryDTO dto){ + 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); + } + AccountQueryVO vo = new AccountQueryVO(); + vo.setTotal(total); + vo.setAccountVOs(accountVOs); + vo.setCurrent(current); + vo.setPages(pages); + vo.setSize(size); + return vo; + } +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java new file mode 100644 index 0000000..2765a97 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java @@ -0,0 +1,74 @@ +package com.moral.api.pojo.vo.account; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.moral.api.entity.ManageRole; +import com.moral.api.pojo.dto.account.AccountInsertDTO; +import com.moral.api.pojo.dto.account.AccountUpdateDTO; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName AccountUpdateVO + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 17:35 + * @Version TODO + **/ +@Data +@JsonInclude(JsonInclude.Include.NON_EMPTY) + +public class AccountUpdateVO extends AccountVO{ + /* + * ������������ + * */ + 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"; + + private String code; + + + 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(); + String isDelete = dto.getAccount().getIsDelete(); + + //������������������������ + 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.setIsDelete(isDelete); + vo.setRoleNames(roleNames); + } + + String code = dto.getCode(); + vo.setCode(code); + return vo; + } +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java new file mode 100644 index 0000000..fbd5d06 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java @@ -0,0 +1,54 @@ +package com.moral.api.pojo.vo.account; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.moral.api.entity.ManageAccount; +import com.moral.api.entity.ManageRole; +import com.moral.api.pojo.dto.account.AccountDTO; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName AccountVO + * @Description TODO + * @Author ��������� + * @Date 2021/3/15 14:42 + * @Version TODO + **/ +@Data +@JsonInclude(JsonInclude.Include.NON_EMPTY) + +public class AccountVO { + private Integer id; + + private String userName; + + private String email; + + private String mobile; + + private String wechat; + + private String isDelete; + + private List<String> roleNames; + + 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())); + vo.setId(account.getId()); + vo.setUserName(account.getUserName()); + vo.setEmail(account.getEmail()); + vo.setMobile(account.getMobile()); + vo.setWechat(account.getWechat()); + vo.setIsDelete(account.getIsDelete()); + vo.setRoleNames(roleNames); + return vo; + } +} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/AccountInfoVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java similarity index 91% rename from screen-manage/src/main/java/com/moral/api/pojo/vo/AccountInfoVO.java rename to screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java index 174d70a..4edf55a 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/vo/AccountInfoVO.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java @@ -1,11 +1,10 @@ -package com.moral.api.pojo.vo; +package com.moral.api.pojo.vo.login; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageAccount; import com.moral.api.entity.ManageMenu; import com.moral.api.entity.ManageRole; -import com.moral.api.pojo.dto.AccountDTO; -import com.moral.api.pojo.dto.AccountInfoDTO; +import com.moral.api.pojo.dto.login.AccountInfoDTO; import lombok.Data; import java.util.ArrayList; @@ -45,7 +44,7 @@ /** * @Description: DTO������VO * @Param: [dto] - * @return: com.moral.api.pojo.vo.AccountInfoVO + * @return: com.moral.api.pojo.vo.login.AccountInfoVO * @Author: ��������� * @Date: 2021/3/13 */ diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/LoginVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java similarity index 89% rename from screen-manage/src/main/java/com/moral/api/pojo/vo/LoginVO.java rename to screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java index cee5de6..acc760f 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/vo/LoginVO.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java @@ -1,8 +1,8 @@ -package com.moral.api.pojo.vo; +package com.moral.api.pojo.vo.login; import com.fasterxml.jackson.annotation.JsonInclude; -import com.moral.api.pojo.dto.AccountInfoDTO; -import com.moral.api.pojo.dto.LoginDTO; +import com.moral.api.pojo.dto.login.AccountInfoDTO; +import com.moral.api.pojo.dto.login.LoginDTO; import lombok.Data; import org.springframework.util.ObjectUtils; @@ -65,7 +65,7 @@ /** * @Description: DTO������VO * @Param: [dto] - * @return: com.moral.api.pojo.vo.LoginVO + * @return: com.moral.api.pojo.vo.login.LoginVO * @Author: ��������� * @Date: 2021/3/13 */ diff --git a/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java b/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java index 5ae39df..471d22d 100644 --- a/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java +++ b/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java @@ -2,13 +2,12 @@ import com.moral.api.entity.ManageAccount; import com.baomidou.mybatisplus.extension.service.IService; -import com.moral.api.pojo.dto.AccountDTO; -import com.moral.api.pojo.dto.LoginDTO; -import com.moral.api.pojo.request.AccountAddRequest; -import com.moral.api.pojo.request.LoginRequest; -import com.moral.api.pojo.request.LogoutRequest; - -import java.util.Map; +import com.moral.api.pojo.dto.account.AccountDTO; +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.*; /** * <p> @@ -44,5 +43,23 @@ * @Author: ��������� * @Date: 2021/3/13 */ - AccountDTO addAccount(AccountAddRequest accountAddRequest); + AccountInsertDTO insertAccount(AccountInsertRequest accountInsertRequest); + + /** + * @Description: ������������ + * @Param: [accountQueryRequest] + * @return: com.moral.api.pojo.dto.AccountDTO + * @Author: ��������� + * @Date: 2021/3/15 + */ + AccountQueryDTO queryAccount(AccountQueryRequest accountQueryRequest); + + /** + * @Description: ������������ + * @Param: [accountUpdateRequest] + * @return: com.moral.api.pojo.dto.account.AccountDTO + * @Author: ��������� + * @Date: 2021/3/15 + */ + AccountUpdateDTO updateAccount(AccountUpdateRequest accountUpdateRequest); } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java index 389c024..a78cd9b 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java @@ -1,6 +1,7 @@ package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.ManageAccount; import com.moral.api.entity.ManageAccountRole; import com.moral.api.entity.ManageMenu; @@ -9,12 +10,13 @@ import com.moral.api.mapper.ManageAccountRoleMapper; import com.moral.api.mapper.ManageMenuMapper; import com.moral.api.mapper.ManageRoleMapper; -import com.moral.api.pojo.dto.AccountDTO; -import com.moral.api.pojo.dto.AccountInfoDTO; -import com.moral.api.pojo.dto.LoginDTO; -import com.moral.api.pojo.request.AccountAddRequest; -import com.moral.api.pojo.request.LoginRequest; -import com.moral.api.pojo.request.LogoutRequest; +import com.moral.api.pojo.dto.account.AccountDTO; +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.AccountInfoDTO; +import com.moral.api.pojo.dto.login.LoginDTO; +import com.moral.api.pojo.request.*; import com.moral.api.service.ManageAccountService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.util.AESUtils; @@ -52,15 +54,16 @@ @Resource ManageAccountRoleMapper manageAccountRoleMapper; - public final static String specialCharRegEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~���@#���%������&*������������+|{}������������������������������������]|\n|\r|\t"; + public final static String specialCharRegEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~���@#���%������&*������������+|{}������������������������������������]|\n|\r|\t"; public final static String mobileRegEx = "^((13[0-9])|(14[0,1,4-9])|(15[0-3,5-9])|(16[2,5,6,7])|(17[0-8])|(18[0-9])|(19[0-3,5-9]))\\d{8}$"; public final static String emailRegEx = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"; + /** * @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 */ @@ -125,85 +128,86 @@ /** * @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(); - TokenUtils.destoryToken(accountId,token); + String token = logoutRequest.getToken(); + TokenUtils.destoryToken(accountId, token); return true; } /** - * @Description: ������������������ - * @Param: [accountAddRequest] - * @return: com.moral.api.pojo.dto.AccountDTO - * @Author: ��������� - * @Date: 2021/3/13 - */ + * @Description: ������������������ + * @Param: [accountAddRequest] + * @return: com.moral.api.pojo.dto.AccountDTO + * @Author: ��������� + * @Date: 2021/3/13 + */ @Override @Transactional - public AccountDTO addAccount(AccountAddRequest accountAddRequest) { - AccountDTO accountDTO = new AccountDTO(); + public AccountInsertDTO insertAccount(AccountInsertRequest accountInsertRequest) { + AccountInsertDTO accountInsertDTO = new AccountInsertDTO(); //������ - String AESAccount = accountAddRequest.getAccount(); - String AESPassword = accountAddRequest.getPassword(); - String account = AESUtils.decrypt(AESAccount,AESKey); - String password = MD5Utils.saltMD5(AESUtils.decrypt(AESPassword,AESKey)); - String userName = accountAddRequest.getUserName(); - String email = accountAddRequest.getEmail(); - String mobile = accountAddRequest.getMobile(); - String wechat = accountAddRequest.getWechat(); - String isDelete = accountAddRequest.getIsDelete(); - List<String> roleIdsStr = accountAddRequest.getRoleIds(); + String AESAccount = accountInsertRequest.getAccount(); + String AESPassword = accountInsertRequest.getPassword(); + String account = AESUtils.decrypt(AESAccount, AESKey); + String password = MD5Utils.saltMD5(AESUtils.decrypt(AESPassword, AESKey)); + String userName = accountInsertRequest.getUserName(); + String email = accountInsertRequest.getEmail(); + String mobile = accountInsertRequest.getMobile(); + String wechat = accountInsertRequest.getWechat(); + String isDelete = accountInsertRequest.getIsDelete(); + List<String> roleIdsStr = accountInsertRequest.getRoleIds(); //������������������������������������ /*���������������������������������������*/ - if(isSpecialChar(account)){ - accountDTO.setCode(AccountDTO.ACCOUNT_EXIST_SPECIAL_CHAR); - return accountDTO; + if (isSpecialChar(account)) { + accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_EXIST_SPECIAL_CHAR); + return accountInsertDTO; } /*������������������������������������*/ - if(isSpecialChar(password)){ - accountDTO.setCode(AccountDTO.PASSWORD_EXIST_SPECIAL_CHAR); - return accountDTO; + if (isSpecialChar(password)) { + accountInsertDTO.setCode(AccountInsertDTO.PASSWORD_EXIST_SPECIAL_CHAR); + return accountInsertDTO; } /*���������������������������������*/ - if(account.length()>=20){ - accountDTO.setCode(AccountDTO.ACCOUNT_LENGTH_INVALID); - return accountDTO; + if (account.length() >= 20||account.length()<=6) { + accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_LENGTH_INVALID); + return accountInsertDTO; } /*������������������������������*/ - if(AESUtils.decrypt(AESPassword,AESKey).length()>=20){ - accountDTO.setCode(AccountDTO.PASSWORD_LENGTH_INVALID); - return accountDTO; + if (AESUtils.decrypt(AESPassword, AESKey).length() >= 20||AESUtils.decrypt(AESPassword, AESKey).length() <= 6) { + accountInsertDTO.setCode(AccountInsertDTO.PASSWORD_LENGTH_INVALID); + return accountInsertDTO; } /*���������������������������������*/ - if(!isValidMobile(mobile)){ - accountDTO.setCode(AccountDTO.MOBILE_INVALID); - return accountDTO; + if (!isValidMobile(mobile)) { + accountInsertDTO.setCode(AccountInsertDTO.MOBILE_INVALID); + return accountInsertDTO; } /*������������������������������*/ - if(!isValidEmail(email)){ - accountDTO.setCode(AccountDTO.EMAIL_INVALID); - return accountDTO; + if (!isValidEmail(email)) { + accountInsertDTO.setCode(AccountInsertDTO.EMAIL_INVALID); + return accountInsertDTO; } /*���������������������������*/ ManageAccount exitAccount = new ManageAccount(); exitAccount.setAccount(account); + exitAccount.setIsDelete("0"); QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>(); wrapper.setEntity(exitAccount); List<ManageAccount> exitAccounts = manageAccountMapper.selectList(wrapper); - if(!ObjectUtils.isEmpty(exitAccounts)){ - accountDTO.setCode(AccountDTO.ACCOUNT_EXIST); - return accountDTO; + if (!ObjectUtils.isEmpty(exitAccounts)) { + accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_EXIST); + return accountInsertDTO; } //String to Integer List<Integer> roleIds = new ArrayList<>(); - roleIdsStr.forEach(str->roleIds.add(Integer.parseInt(str))); + roleIdsStr.forEach(str -> roleIds.add(Integer.parseInt(str))); //������account ManageAccount manageAccount = new ManageAccount(); @@ -218,7 +222,7 @@ //������account_role Integer accountId = manageAccount.getId(); roleIdsStr.forEach( - value->{ + value -> { ManageAccountRole manageAccountRole = new ManageAccountRole(); manageAccountRole.setAccountId(accountId); manageAccountRole.setRoleId(Integer.parseInt(value)); @@ -227,30 +231,153 @@ ); //������������������ List<ManageRole> roles = manageRoleMapper.selectBatchIds(roleIds); - accountDTO.setAccount(manageAccount); - accountDTO.setRoles(roles); - accountDTO.setCode(AccountDTO.SUCCESS); - return accountDTO; + accountInsertDTO.setAccount(manageAccount); + accountInsertDTO.setRoles(roles); + accountInsertDTO.setCode(AccountInsertDTO.SUCCESS); + return accountInsertDTO; } - private static boolean isSpecialChar(String str){ + /** + * @Description: ������������������ + * @Param: [accountQueryRequest] + * @return: com.moral.api.pojo.dto.AccountDTO + * @Author: ��������� + * @Date: 2021/3/15 + */ + @Override + public AccountQueryDTO queryAccount(AccountQueryRequest accountQueryRequest) { + 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); + queryParams.put("is_delete", isDelete); + queryParams.values().removeIf(value -> ObjectUtils.isEmpty(value)); + //������������ + Page<ManageAccount> page = new Page<>(pageCount, size); + QueryWrapper<ManageAccount> wrapper = new QueryWrapper(); + wrapper.allEq(queryParams); + 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); + } + //������������������ + accountQueryDTO.setAccountDTOS(accountDTOS); + accountQueryDTO.setCurrent(resultPage.getCurrent()); + accountQueryDTO.setPages(resultPage.getPages()); + accountQueryDTO.setSize(resultPage.getSize()); + accountQueryDTO.setTotal(resultPage.getTotal()); + + return accountQueryDTO; + } + + @Override + @Transactional + public AccountUpdateDTO updateAccount(AccountUpdateRequest accountUpdateRequest) { + AccountUpdateDTO accountUpdateDTO = new AccountUpdateDTO(); + //������ + Integer accountId = accountUpdateRequest.getAccountId(); + String email = accountUpdateRequest.getEmail(); + String mobile = accountUpdateRequest.getMobile(); + String wechat = accountUpdateRequest.getWechat(); + String isDelete = accountUpdateRequest.getIsDelete(); + String userName = accountUpdateRequest.getUserName(); + List<Integer> roleIds = accountUpdateRequest.getRoleIds(); + //������������������������������ + /*������������������������������������*/ + QueryWrapper<ManageAccount> exitWrapper = new QueryWrapper<>(); + ManageAccount exitManageAccount = new ManageAccount(); + exitManageAccount.setId(accountId); + exitManageAccount.setIsDelete("0"); + exitWrapper.setEntity(exitManageAccount); + List<ManageAccount> manageAccounts = manageAccountMapper.selectList(exitWrapper); + if(ObjectUtils.isEmpty(manageAccounts)){ + accountUpdateDTO.setCode(AccountUpdateDTO.ACCOUNT_NOT_EXIST); + return accountUpdateDTO; + } + /*���������������������������������*/ + if (!isValidMobile(mobile)) { + accountUpdateDTO.setCode(AccountUpdateDTO.MOBILE_INVALID); + return accountUpdateDTO; + } + /*������������������������������*/ + if (!isValidEmail(email)) { + accountUpdateDTO.setCode(AccountUpdateDTO.EMAIL_INVALID); + return accountUpdateDTO; + } + //������ManageAccount��� + ManageAccount manageAccount = new ManageAccount(); + manageAccount.setEmail(email); + manageAccount.setMobile(mobile); + manageAccount.setWechat(wechat); + manageAccount.setIsDelete(isDelete); + manageAccount.setUserName(userName); + QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>(); + wrapper.eq("id",accountId); + manageAccountMapper.update(manageAccount,wrapper); + //������ManageAccountRole��� + /*������������������������������*/ + QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>(); + deleteWrapper.eq("account_id",accountId); + manageAccountRoleMapper.delete(deleteWrapper); + /*������������������*/ + for (Integer roleId : roleIds) { + ManageAccountRole manageAccountRole = new ManageAccountRole(); + manageAccountRole.setAccountId(accountId); + manageAccountRole.setRoleId(roleId); + manageAccountRoleMapper.insert(manageAccountRole); + } + //������������������������ + List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds); + //������������������ + accountUpdateDTO.setCode(AccountUpdateDTO.SUCCESS); + accountUpdateDTO.setRoles(manageRoles); + accountUpdateDTO.setAccount(manageAccountMapper.selectById(accountId)); + return accountUpdateDTO; + } + + + + + + private static boolean isSpecialChar(String str) { Pattern pattern = Pattern.compile(specialCharRegEx); Matcher matcher = pattern.matcher(str); return matcher.find(); } - private static boolean isValidMobile(String str){ + private static boolean isValidMobile(String str) { Pattern pattern = Pattern.compile(mobileRegEx); Matcher matcher = pattern.matcher(str); return matcher.find(); } - private static boolean isValidEmail(String str){ + private static boolean isValidEmail(String str) { Pattern pattern = Pattern.compile(emailRegEx); Matcher matcher = pattern.matcher(str); return matcher.find(); } - } diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml index b3f3ee2..984b1a4 100644 --- a/screen-manage/src/main/resources/application-dev.yml +++ b/screen-manage/src/main/resources/application-dev.yml @@ -118,7 +118,9 @@ - /swagger-resources/** - /webjars/** - /account/logout - - /account/add + - /account/insert + - /account/query + - /account/update AES: KEY: AD42F7787B035B7580000EF93BE20BAD -- Gitblit v1.8.0