From f1c3c5f0b840df7fa5fe08a69186c9f2b52ce243 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Thu, 18 Mar 2021 15:37:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java                 |   46 -
 screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java         |    5 
 screen-common/src/main/java/com/moral/pojo/VerificationCode.java                     |   18 
 screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java             |   97 +-
 screen-common/src/main/java/com/moral/util/TokenUtils.java                           |   16 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java       |   32 +
 pom.xml                                                                              |    5 
 screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java    |    4 
 screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java |  359 ++++++-----
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java           |    4 
 screen-common/src/main/java/com/moral/util/AESUtils.java                             |   15 
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java     |   43 -
 screen-api/src/main/java/com/moral/api/service/UserService.java                      |    5 
 screen-common/src/main/java/com/moral/config/KaptchaConfig.java                      |   47 +
 screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java          |   26 
 screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java           |   66 ++
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java             |   14 
 screen-api/src/main/java/com/moral/api/entity/User.java                              |    8 
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java     |   16 
 screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java                  |    4 
 screen-common/src/main/java/com/moral/constant/Constants.java                        |   52 -
 screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java           |   93 +++
 screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java                       |    2 
 screen-manage/src/main/resources/mapper/ManageMenuMapper.xml                         |    1 
 screen-api/src/main/resources/mapper/GroupMapper.xml                                 |    1 
 screen-api/src/main/resources/mapper/UserMapper.xml                                  |   30 +
 screen-common/src/main/java/com/moral/constant/ResultMessage.java                    |   29 
 screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.java                   |    8 
 screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java                 |   42 +
 screen-api/src/main/java/com/moral/api/controller/LoginController.java               |  114 +++
 screen-api/src/main/java/com/moral/api/controller/UserController.java                |    5 
 screen-common/src/main/java/com/moral/util/KaptchaUtils.java                         |   80 ++
 screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java           |   43 
 screen-manage/src/main/java/com/moral/api/controller/AccountController.java          |  114 ++-
 screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java               |   37 -
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java        |   15 
 screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java    |    3 
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java      |    4 
 /dev/null                                                                            |   45 -
 screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java           |   23 
 screen-manage/src/main/resources/application-dev.yml                                 |    2 
 screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java            |    4 
 screen-manage/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java      |    5 
 screen-api/src/main/java/com/moral/api/mapper/UserMapper.java                        |    2 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java       |   99 --
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java     |   20 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java       |   65 -
 screen-common/src/main/java/com/moral/util/RegexUtils.java                           |    4 
 48 files changed, 1,082 insertions(+), 690 deletions(-)

diff --git a/pom.xml b/pom.xml
index a26232a..be47e13 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,6 +107,11 @@
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.kaptcha</groupId>
+            <artifactId>kaptcha</artifactId>
+            <version>2.3.2</version>
+        </dependency>
     </dependencies>
 
 
diff --git a/screen-api/src/main/java/com/moral/api/controller/LoginController.java b/screen-api/src/main/java/com/moral/api/controller/LoginController.java
new file mode 100644
index 0000000..a6cef12
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/LoginController.java
@@ -0,0 +1,114 @@
+package com.moral.api.controller;
+
+import com.moral.constant.Constants;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.moral.api.entity.Group;
+import com.moral.api.entity.User;
+import com.moral.api.service.GroupService;
+import com.moral.api.service.UserService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import com.moral.util.AESUtils;
+import com.moral.util.MD5Utils;
+import com.moral.util.TokenUtils;
+import com.moral.util.WebUtils;
+
+@Slf4j
+@Api(tags = {"������"})
+@RestController
+public class LoginController {
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private GroupService groupService;
+
+    @Value("${AES.KEY}")
+    private String AESKey;
+
+    @ApiOperation(value = "������", notes = "������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "password", value = "������", required = false, paramType = "query", dataType = "String")
+    })
+    @RequestMapping(value = "login", method = RequestMethod.POST)
+    public ResultMessage login(HttpServletRequest request) {
+        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+        if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        //������������
+        String password = parameters.get("password").toString();
+        //������������
+        password = AESUtils.decrypt(password, AESKey);
+
+        User user = userService.selectUserInfo(parameters);
+        //������������
+        if (user == null) {
+            return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(), ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
+        }
+        //������������
+        if (!MD5Utils.saltMD5Verify(password, user.getPassword())) {
+            return ResultMessage.fail(ResponseCodeEnum.PASSWORD_INVALID.getCode(), ResponseCodeEnum.PASSWORD_INVALID.getMsg());
+        }
+        //������������������
+        if (Constants.DELETE.equals(user.getIsDelete())) {
+            return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode(), ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg());
+        }
+        //������������������
+        if (user.getExpireTime() != null && user.getExpireTime().getTime() < System.currentTimeMillis()) {
+            return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getCode(), ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg());
+        }
+        Map<String, Object> result = userService.login(user);
+        if (!result.containsKey("token")) {
+            return ResultMessage.fail(ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode(), ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
+        }
+        return ResultMessage.ok();
+    }
+
+    @ApiOperation(value = "������", notes = "������")
+    @RequestMapping(value = "logout", method = RequestMethod.POST)
+    public ResultMessage logout(HttpServletRequest request) {
+        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+        if (!parameters.containsKey("uid")) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        String userId = request.getParameter("uid");
+        String token = request.getHeader("token");
+        TokenUtils.destoryToken(userId, token);
+        return ResultMessage.ok();
+    }
+
+    @ApiOperation(value = "���������", notes = "���������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "groupName", value = "������", required = true, paramType = "query", dataType = "String")
+    })
+    @RequestMapping(value = "addGroup", method = RequestMethod.POST)
+    private ResultMessage addGroup(Group group, HttpServletRequest request) {
+        String currentUserId = request.getHeader("uid");
+        Map<String, Object> map = groupService.addGroup(group, currentUserId);
+        String msg = map.get("msg").toString();
+        boolean flag = Boolean.parseBoolean(map.get("flag").toString());
+        if (flag) {
+            return ResultMessage.ok(msg);
+        }
+        return ResultMessage.fail(msg);
+    }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/controller/UserController.java b/screen-api/src/main/java/com/moral/api/controller/UserController.java
index 1f3f6a8..12b071a 100644
--- a/screen-api/src/main/java/com/moral/api/controller/UserController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/UserController.java
@@ -17,6 +17,7 @@
 
 import com.moral.api.entity.User;
 import com.moral.api.service.UserService;
+import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.util.WebUtils;
 
@@ -43,10 +44,12 @@
     public ResultMessage addUser(User user, HttpServletRequest request) {
         Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
         if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
-            return ResultMessage.fail("���������������������������������");
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
         }
         String token = request.getHeader("token");
         Map<String, Object> map = userService.addUser(user, token);
+
+
         if (map.containsKey("msg")) {
             return ResultMessage.fail(map.get("msg").toString());
         }
diff --git a/screen-api/src/main/java/com/moral/api/controller/WebController.java b/screen-api/src/main/java/com/moral/api/controller/WebController.java
deleted file mode 100644
index 73a11d1..0000000
--- a/screen-api/src/main/java/com/moral/api/controller/WebController.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.moral.api.controller;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.moral.api.entity.Group;
-import com.moral.api.service.GroupService;
-import com.moral.api.service.UserService;
-import com.moral.constant.ResultMessage;
-import com.moral.util.TokenUtils;
-import com.moral.util.WebUtils;
-
-@Slf4j
-@Api(tags = {"������"})
-@RestController
-@RequestMapping("/api")
-public class WebController {
-
-    @Autowired
-    private UserService userService;
-
-    @Autowired
-    private GroupService groupService;
-
-    @ApiOperation(value = "������", notes = "������")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "password", value = "������", required = false, paramType = "query", dataType = "String")
-    })
-    @RequestMapping(value = "login", method = RequestMethod.POST)
-    public ResultMessage login(HttpServletRequest request) {
-        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
-        if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
-            return ResultMessage.fail("���������������������������������");
-        }
-        Map<String, Object> map = userService.login(parameters);
-        if (map.get("token") == null) {
-            return ResultMessage.fail(map.get("msg").toString());
-        }
-        return ResultMessage.ok(map);
-    }
-
-    @ApiOperation(value = "������", notes = "������")
-    @RequestMapping(value = "logout", method = RequestMethod.POST)
-    public ResultMessage logout(HttpServletRequest request) {
-        String userId = request.getHeader("uid");
-        String token = request.getHeader("token");
-        TokenUtils.destoryToken(userId, token);
-        return ResultMessage.ok();
-    }
-
-    @ApiOperation(value = "���������", notes = "���������")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "groupName", value = "������", required = true, paramType = "query", dataType = "String")
-    })
-    @RequestMapping(value = "addGroup", method = RequestMethod.POST)
-    private ResultMessage addGroup(Group group, HttpServletRequest request) {
-        String currentUserId = request.getHeader("uid");
-        Map<String, Object> map = groupService.addGroup(group, currentUserId);
-        String msg = map.get("msg").toString();
-        boolean flag = Boolean.parseBoolean(map.get("flag").toString());
-        if (flag) {
-            return ResultMessage.ok(msg);
-        }
-        return ResultMessage.fail(msg);
-    }
-
-}
diff --git a/screen-api/src/main/java/com/moral/api/entity/User.java b/screen-api/src/main/java/com/moral/api/entity/User.java
index e0d33e1..4d31a77 100644
--- a/screen-api/src/main/java/com/moral/api/entity/User.java
+++ b/screen-api/src/main/java/com/moral/api/entity/User.java
@@ -7,11 +7,13 @@
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 import java.util.Set;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.persistence.Transient;
 
 
 /**
@@ -94,6 +96,12 @@
      */
     private String isDelete;
 
+    @Transient
+    private Organization organization;
+
+    @Transient
+    private List<Group> groups;
+
 
     @Override
     protected Serializable pkVal() {
diff --git a/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java b/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java
index b712ee8..dd4bddf 100644
--- a/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java
+++ b/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java
@@ -1,6 +1,7 @@
 package com.moral.api.exception;
 
 import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpStatus;
@@ -21,7 +22,7 @@
     @ResponseStatus(HttpStatus.OK)
     public ResultMessage handleException(Exception ex) {
         ex.printStackTrace();
-        return  ResultMessage.fail(Constants.CODE_OPERATION_FAILED, "������������");
+        return  ResultMessage.fail(ResponseCodeEnum.FAIL.getCode(), ResponseCodeEnum.FAIL.getMsg());
     }
 
     /**
@@ -31,7 +32,7 @@
     @ResponseBody
     @ResponseStatus(HttpStatus.OK)
     public ResultMessage handleUserNotExistException(BusinessException ex) {
-        return ResultMessage.fail(Constants.CODE_OPERATION_FAILED, "������������������������");
+        return ResultMessage.fail(ResponseCodeEnum.FAIL.getCode(), "������������������������");
     }
 
 }
diff --git a/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java b/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java
index e3fb0e8..74e3059 100644
--- a/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java
+++ b/screen-api/src/main/java/com/moral/api/interceptor/AuthenticationInterceptor.java
@@ -15,7 +15,7 @@
 
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-        /*if (!(handler instanceof HandlerMethod)) {
+        if (!(handler instanceof HandlerMethod)) {
             return true;
         }
         String token = request.getHeader("token");
@@ -29,7 +29,7 @@
             TokenUtils.extendTokenTime(token);
         } catch (Exception e) {
             return false;
-        }*/
+        }
         return true;
     }
 }
diff --git a/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java b/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java
index 12dc29d..f5c628d 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/GroupMapper.java
@@ -16,6 +16,6 @@
  */
 public interface GroupMapper extends BaseMapper<Group> {
 
-    List<Map<String, Object>> selectUserGroup(int userId);
+    List<Map<String, Object>> selectUserGroup(Map<String, Object> parameters);
 
 }
diff --git a/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java b/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java
index d92b69a..87be9a9 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/UserMapper.java
@@ -17,4 +17,6 @@
 public interface UserMapper extends BaseMapper<User> {
 
     List<Map<String, Object>> selectUsers(Map<String, Object> parameters);
+
+    User selectUserInfo(Map<String, Object> parameters);
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/UserService.java b/screen-api/src/main/java/com/moral/api/service/UserService.java
index 1e55aeb..8821b4c 100644
--- a/screen-api/src/main/java/com/moral/api/service/UserService.java
+++ b/screen-api/src/main/java/com/moral/api/service/UserService.java
@@ -17,7 +17,7 @@
  */
 public interface UserService extends IService<User> {
 
-    Map<String, Object> login(Map<String, Object> parameters);
+    Map<String, Object> login(User user);
 
     Map<String, Object> addUser(User user, String token);
 
@@ -27,4 +27,7 @@
 
     Map<String, Object> getUsers(Map<String, Object> parameters);
 
+    User selectUserInfo(Map<String, Object> parameters);
+
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
index 8950238..e30cd14 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -10,7 +10,9 @@
 import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.moral.api.entity.Group;
 import com.moral.api.entity.Menu;
+import com.moral.api.entity.Organization;
 import com.moral.api.entity.User;
 
 import com.moral.api.mapper.GroupMapper;
@@ -19,6 +21,7 @@
 import com.moral.api.mapper.UserMapper;
 import com.moral.api.service.UserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
 import com.moral.util.AESUtils;
 import com.moral.util.MD5Utils;
 import com.moral.util.RegexUtils;
@@ -43,65 +46,44 @@
     private UserMapper userMapper;
 
     @Autowired
-    private GroupMapper groupMapper;
-
-    @Autowired
     private MenuMapper menuMapper;
 
-    @Autowired
-    private OrganizationMapper organizationMapper;
-
-    @Value("${AES.KEY}")
-    private String AESKey;
+    @Override
+    public User selectUserInfo(Map<String, Object> parameters) {
+        return userMapper.selectUserInfo(parameters);
+    }
 
     @Override
-    public Map<String, Object> login(Map<String, Object> parameters) {
+    public Map<String, Object> login(User user) {
         Map<String, Object> resultMap = new LinkedHashMap<>();
-        //������������
-        String account = parameters.get("account").toString();
-        String password = parameters.get("password").toString();
-        //������
-        /*account = AESUtils.decrypt(account, AESKey);
-        password = AESUtils.decrypt(password, AESKey);*/
-        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
-        //������������
-        queryWrapper.eq("account", account);
-        User user = userMapper.selectOne(queryWrapper);
-        String msg;
-        if (user == null) {
-            msg = "������������������";
-        } else {
-            if (!MD5Utils.saltMD5Verify(password, user.getPassword())) {//������������
-                msg = "������������";
-            } else if ("1".equals(user.getIsDelete())) {
-                msg = "������������������";
-            } else if (user.getExpireTime() != null && user.getExpireTime().getTime() < System.currentTimeMillis()) {
-                msg = "���������������������";
-            } else {
-                int userId = user.getId();
-                //������������������
-                Map<String, Object> orgMap = organizationMapper.selectOrganizationById(user.getOrganizationId());
-                String locationCode = orgMap.get(orgMap.get("location_level").toString()).toString();
-                //������������������
-                Map<String, Object> userInfo = new LinkedHashMap<>();
-                userInfo.put("userId", userId);
-                userInfo.put("account", user.getAccount());
-                userInfo.put("userName", user.getUserName());
-                userInfo.put("organizationId", user.getOrganizationId());
-                userInfo.put("locationCode", locationCode);
-                userInfo.put("expireTime", user.getExpireTime());
-                userInfo.put("isAdmin", user.getIsAdmin());
-                List<Map<String, Object>> groups = groupMapper.selectUserGroup(userId);
-                userInfo.put("groups", groups);
-                userInfo.putAll(getMenus(userId));
-                //������token������������redis
-                String token = TokenUtils.getToken(user.getId().toString(), userInfo);
-                resultMap.put("token", token);
-                resultMap.putAll(userInfo);
-                return resultMap;
-            }
+        //������������������
+        Map<String, Object> userInfo = new LinkedHashMap<>();
+        List<Map<String, Object>> groups = new ArrayList<>();
+        for (Group group : user.getGroups()) {
+            HashMap<String, Object> groupMap = new HashMap<>();
+            groupMap.put("groupId", group.getId());
+            groupMap.put("groupName", group.getGroupName());
+            groups.add(groupMap);
         }
-        resultMap.put("msg", msg);
+        Organization organization = user.getOrganization();
+        userInfo.put("userId", user.getId());
+        userInfo.put("account", user.getAccount());
+        userInfo.put("userName", user.getUserName());
+        userInfo.put("expireTime", user.getExpireTime());
+        userInfo.put("isAdmin", user.getIsAdmin());
+        userInfo.put("organizationId", user.getOrganizationId());
+        userInfo.put("organizationName", organization.getName());
+        userInfo.put("locationLevel", organization.getLocationLevel());
+        userInfo.put("groups", groups);
+        userInfo.putAll(getMenus(user.getId()));
+        try {
+            //������token������������redis
+            String token = TokenUtils.getToken(user.getId().toString(), userInfo);
+            resultMap.put("token", token);
+        } catch (Exception e) {
+            log.error("token���������������"+e.getMessage());
+        }
+        resultMap.putAll(userInfo);
         return resultMap;
     }
 
@@ -163,13 +145,8 @@
         Map<String, Object> resultMap = new HashMap<>();
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
 
-        if (!(boolean) currentUserInfo.get("isAdmin")) {
-            resultMap.put("msg", "������������");
-            return resultMap;
-        }
         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("account", user.getAccount());
-        userMapper.selectOne(queryWrapper);
         if (userMapper.selectOne(queryWrapper) != null) {
             resultMap.put("msg", "������������������");
             return resultMap;
@@ -205,7 +182,7 @@
         } else {
             User user = new User();
             user.setId(userId);
-            user.setIsDelete("1");
+            user.setIsDelete(Constants.DELETE);
             userMapper.updateById(user);
         }
         return resultMap;
@@ -277,4 +254,6 @@
         }
         return msgs;
     }
+
+
 }
diff --git a/screen-api/src/main/resources/mapper/GroupMapper.xml b/screen-api/src/main/resources/mapper/GroupMapper.xml
index 356729c..1123a96 100644
--- a/screen-api/src/main/resources/mapper/GroupMapper.xml
+++ b/screen-api/src/main/resources/mapper/GroupMapper.xml
@@ -15,7 +15,6 @@
     <resultMap id="GroupResultMap" type="java.util.LinkedHashMap">
         <id column="id" property="id"/>
         <result column="group_name" property="groupName"/>
-        <result column="organization_id" property="organizationId"/>
     </resultMap>
 
     <select id="selectUserGroup" resultMap="GroupResultMap">
diff --git a/screen-api/src/main/resources/mapper/UserMapper.xml b/screen-api/src/main/resources/mapper/UserMapper.xml
index bcbc3fb..b062eb3 100644
--- a/screen-api/src/main/resources/mapper/UserMapper.xml
+++ b/screen-api/src/main/resources/mapper/UserMapper.xml
@@ -17,8 +17,38 @@
         <result column="update_time" property="updateTime"/>
         <result column="expire_time" property="expireTime"/>
         <result column="is_delete" property="isDelete"/>
+        <!--������������-->
+        <association property="organization" javaType="com.moral.api.entity.Organization">
+            <result column="id" property="id" jdbcType="INTEGER"/>
+            <result column="name" property="name" jdbcType="VARCHAR"/>
+            <result column="location_level" property="locationLevel"/>
+        </association>
+        <!--���������-->
+        <collection property="groups" ofType="com.moral.api.entity.Group" javaType = "java.util.ArrayList">
+            <id column="groupId" property="id" jdbcType="INTEGER"/>
+            <result column="group_name" property="groupName" jdbcType="VARCHAR"/>
+        </collection>
+
     </resultMap>
 
+
+    <select id="selectUserInfo" resultMap="BaseResultMap">
+        SELECT u.id,u.account,u.password,u.user_name,u.organization_id,u.expire_time,u.is_delete,
+        o.name,u.is_admin,o.location_level,
+        g.id groupId,g.group_name
+        FROM `user` u,
+        `organization` o,
+        `user_group` ug,
+        `group` g
+        WHERE u.account = #{account}
+        AND u.organization_id=o.id
+        AND  u.id = ug.user_id
+        AND ug.group_id = g.id
+        AND g.is_delete = 0
+        AND ug.is_delete = 0
+    </select>
+
+
     <select id="selectUsers" resultType="java.util.Map">
         SELECT id,account,user_name userName,email,mobile,wechat FROM `user` WHERE
         <if test="orgId!=null">
diff --git a/screen-common/src/main/java/com/moral/config/KaptchaConfig.java b/screen-common/src/main/java/com/moral/config/KaptchaConfig.java
new file mode 100644
index 0000000..1c8ea04
--- /dev/null
+++ b/screen-common/src/main/java/com/moral/config/KaptchaConfig.java
@@ -0,0 +1,47 @@
+package com.moral.config;
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * @ClassName KaptchaConfig
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/16 14:04
+ * @Version TODO
+ **/
+@Configuration
+public class KaptchaConfig {
+
+    @Bean(name = "kaptchaProducer")
+    public DefaultKaptcha getDefaultKaptcha(){
+        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
+        Properties properties = new Properties();
+        //������������
+        properties.put("kaptcha.border", "no");
+        //������������
+        properties.put("kaptcha.textproducer.font.color", "blue");
+        //������������
+        properties.put("kaptcha.textproducer.char.space", "15");
+        //���������������
+        properties.put("kaptcha.textproducer.char.length","4");
+        //������������
+        properties.put("kaptcha.image.height","34");
+        //������������
+        properties.put("kaptcha.textproducer.font.size","25");
+        //���������������
+        /*���������������*/
+        //properties.put("kaptcha.noise.impl","com.google.code.kaptcha.impl.NoNoise");
+        /*���������������������������*/
+        properties.put("kaptcha.noise.impl","com.google.code.kaptcha.impl.DefaultNoise");
+        //������
+        //properties.setProperty("kaptcha.textproducer.font.names", "������");
+
+        Config config = new Config(properties);
+        defaultKaptcha.setConfig(config);
+        return defaultKaptcha;
+    }
+}
diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java
index 5c17ba4..f30292d 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -4,55 +4,7 @@
  * ������������������
  */
 public class Constants {
+    public static String DELETE = "1";
 
-    /**
-     * ������������
-     */
-    public static final String MSG_OPERATION_SUCCESS = "���������������";
-
-    /**
-     * ������������
-     */
-    public static final String MSG_OPERATION_FAILED = "���������������";
-
-    /*
-    * token������
-    * */
-    public static final String MSG_TOKEN_ERROR = "token������������������������";
-
-    /*
-    * token������������
-    * */
-    public static final String MSG_TOKEN_CREATE_ERROR = "token���������������������������������";
-
-    /*
-    * ���������������������������
-    * */
-    public static final String MSG_PARAMETER_IS_MISSING = "������������";
-
-    /**
-     * ������������code
-     */
-    public static final int CODE_OPERATION_SUCCESS = 0;
-    /**
-     * ������������code
-     */
-    public static final int CODE_OPERATION_FAILED = -1;
-
-    /*
-    * ���������������������������
-    * */
-    public static final int CODE_PARAMETER_IS_MISSING = -2;
-
-    /**
-     * token������������
-     */
-    public static final int CODE_TOKEN_ERROR = -10;
-
-    /*
-    * token������������
-    * */
-    public static final int CODE_TOKEN_CREATE_ERROR = -11;
-
-
+    public static String NOT_DELETE = "0";
 }
diff --git a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
new file mode 100644
index 0000000..eba463b
--- /dev/null
+++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -0,0 +1,42 @@
+package com.moral.constant;
+
+/**
+ * @ClassName ResponseCodeEnum
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/17 11:19
+ * @Version TODO
+ **/
+public enum ResponseCodeEnum {
+
+    SUCCESS(0,"������������"),
+    FAIL(-1,"������������"),
+    PARAMETERS_IS_MISSING(-2,"���������������"),
+    TOKEN_INVALID(-3,"token������"),
+    TOKEN_CREATE_ERROR(-4,"token������������"),
+    ACCOUNT_NOT_EXIST(-5,"���������������"),
+    ACCOUNT_EXIST(-6,"������������������"),
+    ACCOUNT_IS_DELETE(-7,"���������������������"),
+    PASSWORD_ERROR(-8,"������������"),
+    MOBILE_INVALID(-9,"���������������"),
+    EMAIL_INVALID(-10,"������������"),
+    ACCOUNT_INVALID(-11,"���������������"),
+    PASSWORD_INVALID(-12,"������������"),
+    ACCOUNT_IS_EXPIRE(-13,"���������������")
+    ;
+    private final Integer code;
+    private final String  msg;
+
+    ResponseCodeEnum(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}
diff --git a/screen-common/src/main/java/com/moral/constant/ResultMessage.java b/screen-common/src/main/java/com/moral/constant/ResultMessage.java
index bc1d2f5..2ecfe05 100644
--- a/screen-common/src/main/java/com/moral/constant/ResultMessage.java
+++ b/screen-common/src/main/java/com/moral/constant/ResultMessage.java
@@ -25,17 +25,26 @@
     @ApiModelProperty("������������")
     private T data;
 
+    public ResultMessage(int code, String msg, T data) {
+        this.code = code;
+        this.msg = msg;
+        this.data = data;
+    }
+
+    public ResultMessage() {
+    }
+
     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;
@@ -58,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;
     }
@@ -74,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;
@@ -98,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;
     }
diff --git a/screen-common/src/main/java/com/moral/pojo/VerificationCode.java b/screen-common/src/main/java/com/moral/pojo/VerificationCode.java
new file mode 100644
index 0000000..f524a9f
--- /dev/null
+++ b/screen-common/src/main/java/com/moral/pojo/VerificationCode.java
@@ -0,0 +1,18 @@
+package com.moral.pojo;
+
+import lombok.Data;
+
+/**
+ * @ClassName VerificationCode
+ * @Description ������������
+ * @Author ���������
+ * @Date 2021/3/17 8:51
+ * @Version TODO
+ **/
+@Data
+public class VerificationCode {
+
+    private String key;
+
+    private String value;
+}
diff --git a/screen-common/src/main/java/com/moral/util/AESUtils.java b/screen-common/src/main/java/com/moral/util/AESUtils.java
index 33a1aef..19d2c3c 100644
--- a/screen-common/src/main/java/com/moral/util/AESUtils.java
+++ b/screen-common/src/main/java/com/moral/util/AESUtils.java
@@ -6,6 +6,8 @@
 
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.net.util.Base64;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
 
 /**
  * @ClassName AESUtil
@@ -15,9 +17,10 @@
  * @Version TODO
  **/
 @Slf4j
+@Component
 public class AESUtils {
     //������
-    public static String key = "AD42F7787B035B7580000EF93BE20BAD";
+    public static String key ;
     //���������
     private static String charset = "utf-8";
     // ���������
@@ -25,6 +28,14 @@
     //AES������
     private static String transformation = "AES/CBC/PKCS5Padding";
     private static String algorithm = "AES";
+
+
+    @Value("${AES.KEY}")
+    public  void setKey(String key) {
+        AESUtils.key = key;
+    }
+
+
 
     //������
     public static String encrypt(String content) {
@@ -70,7 +81,7 @@
     }
 
     public static void main(String[] args) {
-        System.out.println(encrypt("4048974139","AD42F7787B035B7580000EF93BE20BAD"));
+        System.out.println(encrypt("404897439","AD42F7787B035B7580000EF93BE20BAD"));
         System.out.println(encrypt("chenkaiyu111","AD42F7787B035B7580000EF93BE20BAD"));
     }
 
diff --git a/screen-common/src/main/java/com/moral/util/KaptchaUtils.java b/screen-common/src/main/java/com/moral/util/KaptchaUtils.java
new file mode 100644
index 0000000..7a1abe4
--- /dev/null
+++ b/screen-common/src/main/java/com/moral/util/KaptchaUtils.java
@@ -0,0 +1,80 @@
+package com.moral.util;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.moral.pojo.VerificationCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+import sun.misc.BASE64Encoder;
+
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.UUID;
+
+/**
+ * @ClassName KaptchaUtils
+ * @Description ������������������
+ * @Author ���������
+ * @Date 2021/3/16 15:36
+ * @Version TODO
+ **/
+@Component
+@Slf4j
+public class KaptchaUtils {
+
+    private static DefaultKaptcha defaultKaptcha;
+
+    private static RedisTemplate redisTemplate;
+
+    @Autowired
+    public void setRedisTemplate(RedisTemplate redisTemplate) {
+        KaptchaUtils.redisTemplate = redisTemplate;
+    }
+
+    @Autowired
+    @Qualifier(value = "kaptchaProducer")
+    public  void setDefaultKaptcha(DefaultKaptcha defaultKaptcha) {
+        KaptchaUtils.defaultKaptcha = defaultKaptcha;
+    }
+
+    /**
+     * @Description: ���������������
+     * @Param: []
+     * @return: java.lang.String
+     * @Author: ���������
+     * @Date: 2021/3/16
+     */
+
+    public static VerificationCode createVerificationCode() throws IOException {
+        //���������������������
+        String text = defaultKaptcha.createText();
+        //������������
+        BufferedImage image = defaultKaptcha.createImage(text);
+        //���������������������������
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        ImageIO.write(image,"jpg",outputStream);
+        byte[] bytes = outputStream.toByteArray();
+        //���������������������������
+        BASE64Encoder encoder = new BASE64Encoder();
+        String encode = encoder.encode(bytes);
+        //������������������redis
+        String key = UUID.randomUUID().toString();
+        //redisTemplate.opsForValsue().set(key,encode);
+        //redisTemplate.expire();
+        return null;
+    }
+    public boolean verify(String verificationCode) {
+       return false;
+    }
+
+
+
+}
diff --git a/screen-common/src/main/java/com/moral/util/RegexUtils.java b/screen-common/src/main/java/com/moral/util/RegexUtils.java
index 3f2b70b..5023a3d 100644
--- a/screen-common/src/main/java/com/moral/util/RegexUtils.java
+++ b/screen-common/src/main/java/com/moral/util/RegexUtils.java
@@ -16,6 +16,10 @@
         return account.matches(regex);
     }
 
+    public static void main(String[] args) {
+
+    }
+
     /**
      * ������������
      *
diff --git a/screen-common/src/main/java/com/moral/util/TokenUtils.java b/screen-common/src/main/java/com/moral/util/TokenUtils.java
index 389ebfd..cafd03b 100644
--- a/screen-common/src/main/java/com/moral/util/TokenUtils.java
+++ b/screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -1,6 +1,7 @@
 package com.moral.util;
 
 import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
 import com.moral.exception.TokenException;
 import com.sun.org.apache.bcel.internal.classfile.ConstantString;
 import lombok.extern.slf4j.Slf4j;
@@ -60,7 +61,8 @@
             return token;
         } catch (Exception e) {
             log.error("token���������������"+e.getMessage());
-            throw new TokenException(Constants.CODE_TOKEN_CREATE_ERROR,Constants.MSG_TOKEN_CREATE_ERROR);
+            throw new TokenException(ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode(),
+                    ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
         }
     }
 
@@ -77,15 +79,18 @@
             String[] tokenArray = TokenEncryptUtils.decoded(token).split("/");
             //������token������������
             if (tokenArray.length != 2) {
-                throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
+                throw new TokenException(ResponseCodeEnum.TOKEN_INVALID.getCode(),
+                        ResponseCodeEnum.TOKEN_INVALID.getMsg());
             }
             //������token������������
             if (!redisTemplate.hasKey(token)) {
-                throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
+                throw new TokenException(ResponseCodeEnum.TOKEN_INVALID.getCode(),
+                        ResponseCodeEnum.TOKEN_INVALID.getMsg());
             }
         } catch (Exception e) {
             log.error("token���������������token������" + e.getMessage());
-            throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
+            throw new TokenException(ResponseCodeEnum.TOKEN_INVALID.getCode(),
+                    ResponseCodeEnum.TOKEN_INVALID.getMsg());
         }
     }
 
@@ -99,7 +104,8 @@
     public static Object getUserInfoByToken(String token) {
         Object userInfo = redisTemplate.opsForValue().get(token);
         if(userInfo==null)
-            throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
+            throw new TokenException(ResponseCodeEnum.TOKEN_INVALID.getCode(),
+                    ResponseCodeEnum.TOKEN_INVALID.getMsg());
         return userInfo;
     }
 
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 78c95c6..3e194d4 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,17 +1,22 @@
 package com.moral.api.controller;
 
+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;
 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.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
+import com.moral.util.KaptchaUtils;
+import com.moral.util.TokenUtils;
 import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,85 +26,114 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 
 @Slf4j
 @Api(tags = {"������������������"})
 @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())
-            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
+    public ResultMessage login(@RequestBody LoginForm loginForm) {
+        if (!loginForm.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
-        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 conditionDTO = accountInsertForm.paramValid();
+        if(conditionDTO.getCode()!=ResponseCodeEnum.SUCCESS.getCode()){
+            return new ResultMessage(conditionDTO.getCode(),conditionDTO.getMsg(),null);
+        }
 
-        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())
-            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
+    public ResultMessage query(AccountQueryForm accountQueryForm){
+        if(!accountQueryForm.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
-        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){
-        if(!accountQeuryRequest.valid())
-            return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING);
 
-        AccountUpdateDTO accountUpdateDTO = accountService.updateAccount(accountQeuryRequest);
+    @PostMapping("update")
+    public ResultMessage update(@RequestBody AccountUpdateForm accountUpdateRequest){
+        if(!accountUpdateRequest.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������������������
+        AccountUpdateDTO conditionDTO = accountUpdateRequest.paramValid();
+        if(conditionDTO.getCode()!=ResponseCodeEnum.SUCCESS.getCode()){
+            return new ResultMessage(conditionDTO.getCode(),conditionDTO.getMsg(),null);
+        }
+
+        AccountUpdateDTO accountUpdateDTO = accountService.updateAccount(accountUpdateRequest);
 
         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 AccountDeleteForm accountDeleteForm){
+        if(!accountDeleteForm.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        AccountDeleteDTO accountDeleteDTO = accountService.deleteAccount(accountDeleteForm);
+
+        AccountDeleteVO accountDeleteVO = AccountDeleteVO.convert(accountDeleteDTO);
+
+        return new ResultMessage(accountDeleteDTO.getCode(),accountDeleteDTO.getMsg(),accountDeleteVO);
+    }
+
+    @PostMapping("yanzhengma")
+    public String yanzhengma(HttpServletResponse response) throws IOException {
+        KaptchaUtils.createVerificationCode();
+        TokenUtils.getToken("1",1);
+        return null;
     }
 
 
diff --git a/screen-manage/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java b/screen-manage/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java
index 2e62d5b..768a250 100644
--- a/screen-manage/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java
+++ b/screen-manage/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java
@@ -1,6 +1,7 @@
 package com.moral.api.exception;
 
 import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.exception.TokenException;
 import lombok.extern.slf4j.Slf4j;
@@ -24,7 +25,7 @@
     public ResultMessage handleException(Exception ex) {
         log.error(ex.getMessage());
         ex.printStackTrace();
-        return  ResultMessage.fail(Constants.CODE_OPERATION_FAILED, "������������");
+        return  ResultMessage.fail(ResponseCodeEnum.FAIL.getCode(), ResponseCodeEnum.FAIL.getMsg());
     }
 
     /**
@@ -34,7 +35,7 @@
     @ResponseBody
     @ResponseStatus(HttpStatus.OK)
     public ResultMessage handleUserNotExistException(BusinessException ex) {
-        return ResultMessage.fail(Constants.CODE_OPERATION_FAILED, "������������������������");
+        return ResultMessage.fail(ResponseCodeEnum.FAIL.getCode(), "������������������������");
     }
 
     /**
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
index 00404b3..5f17674 100644
--- 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
@@ -19,4 +19,8 @@
     private ManageAccount account;
 
     private List<ManageRole> roles;
+
+    private Integer code;
+
+    private String msg;
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java
new file mode 100644
index 0000000..ecab6ed
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java
@@ -0,0 +1,16 @@
+package com.moral.api.pojo.dto.account;
+
+import lombok.Data;
+
+/**
+ * @ClassName AccountDeleteDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/16 8:59
+ * @Version TODO
+ **/
+@Data
+public class AccountDeleteDTO extends AccountDTO {
+
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java
index 2a96636..8f199bb 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java
@@ -16,47 +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";
-
-    private String code;
-
-
 }
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
index 26e2ef6..46f3888 100644
--- 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
@@ -14,6 +14,10 @@
 @Data
 public class AccountQueryDTO  {
 
+    private Integer code;
+
+    private String msg;
+
     private long pages;
 
     private long total;
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
index 3fb12d9..b75060d 100644
--- 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
@@ -11,25 +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";
-
-    private String code;
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java
index 0701d68..6fdca56 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/dto/login/LoginDTO.java
+++ b/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
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java
new file mode 100644
index 0000000..b70764c
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java
@@ -0,0 +1,23 @@
+package com.moral.api.pojo.form;
+
+import lombok.Data;
+
+/**
+ * @ClassName AccountDeleteRequest
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/16 8:54
+ * @Version TODO
+ **/
+@Data
+public class AccountDeleteForm {
+
+    private Integer accountId;
+
+    public boolean valid(){
+        if(accountId==null||accountId==0){
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java
new file mode 100644
index 0000000..f5b1810
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java
@@ -0,0 +1,93 @@
+package com.moral.api.pojo.form;
+
+import com.moral.api.pojo.dto.account.AccountInsertDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.AESUtils;
+import com.moral.util.RegexUtils;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.ObjectUtils;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @ClassName AccountRequest
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/13 17:23
+ * @Version TODO
+ **/
+@Data
+public class AccountInsertForm implements Serializable{
+
+
+    private String account;
+
+
+    private String password;
+
+
+    private String userName;
+
+
+    private String email;
+
+
+    private String mobile;
+
+
+    private String wechat;
+
+
+    private String createTime;
+
+
+    private String updateTime;
+
+
+    private List<String> roleIds;
+
+    public boolean valid() {
+        if (
+                ObjectUtils.isEmpty(account)  ||
+                ObjectUtils.isEmpty(password) ||
+                ObjectUtils.isEmpty(email)    ||
+                ObjectUtils.isEmpty(mobile)   ||
+                ObjectUtils.isEmpty(userName)
+            )
+            return false;
+        return true;
+    }
+
+    public AccountInsertDTO paramValid(){
+        AccountInsertDTO dto = new AccountInsertDTO();
+        //���������������������������������
+        if(!RegexUtils.checkAccount(account)){
+            dto.setCode(ResponseCodeEnum.ACCOUNT_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.ACCOUNT_INVALID.getMsg());
+            return dto;
+        }
+        //������������������������������
+        if(!RegexUtils.checkPassword(AESUtils.decrypt(password))){
+            dto.setCode(ResponseCodeEnum.PASSWORD_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.PASSWORD_INVALID.getMsg());
+            return dto;
+        }
+        //���������������������������������
+        if(!RegexUtils.checkMobile(mobile)){
+            dto.setCode(ResponseCodeEnum.MOBILE_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.MOBILE_INVALID.getMsg());
+            return dto;
+        }
+        //������������������������������
+        if(!RegexUtils.checkEmail(email)){
+            dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
+            return dto;
+        }
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+}
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/form/AccountQueryForm.java
similarity index 87%
rename from screen-manage/src/main/java/com/moral/api/pojo/request/AccountQueryRequest.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java
index 1a8fb2f..ce49cb5 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountQueryRequest.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.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;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java
new file mode 100644
index 0000000..77133d7
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java
@@ -0,0 +1,66 @@
+package com.moral.api.pojo.form;
+
+import com.moral.api.pojo.dto.account.AccountInsertDTO;
+import com.moral.api.pojo.dto.account.AccountUpdateDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.AESUtils;
+import com.moral.util.RegexUtils;
+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 AccountUpdateForm {
+
+    private Integer accountId;
+
+    private String userName;
+
+    private String email;
+
+    private String mobile;
+
+    private String wechat;
+
+    private List<Integer> roleIds;
+
+    public boolean valid(){
+        if (
+                ObjectUtils.isEmpty(accountId)  ||
+                ObjectUtils.isEmpty(userName) ||
+                ObjectUtils.isEmpty(email)    ||
+                ObjectUtils.isEmpty(mobile)   ||
+                ObjectUtils.isEmpty(roleIds)
+                )
+            return false;
+        return true;
+    }
+
+    public AccountUpdateDTO paramValid(){
+        AccountUpdateDTO dto = new AccountUpdateDTO();
+        //���������������������������������
+        if(!RegexUtils.checkMobile(mobile)){
+            dto.setCode(ResponseCodeEnum.MOBILE_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.MOBILE_INVALID.getMsg());
+            return dto;
+        }
+        //������������������������������
+        if(!RegexUtils.checkEmail(email)){
+            dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
+            return dto;
+        }
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+}
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/form/LoginForm.java
similarity index 64%
rename from screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.java
index 4f60a54..7bab60f 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/request/LoginRequest.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.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;
     }
 }
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/form/LogoutForm.java
similarity index 81%
rename from screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java
index c559c40..8847656 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/request/LogoutRequest.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.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;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java b/screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java
deleted file mode 100644
index 13d54de..0000000
--- a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountInsertRequest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.moral.api.pojo.request;
-
-import com.moral.api.entity.ManageRole;
-import lombok.Data;
-import org.springframework.util.ObjectUtils;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * @ClassName AccountRequest
- * @Description TODO
- * @Author ���������
- * @Date 2021/3/13 17:23
- * @Version TODO
- **/
-@Data
-public class AccountInsertRequest implements Serializable{
-
-
-    private String account;
-
-
-    private String password;
-
-
-    private String userName;
-
-
-    private String email;
-
-
-    private String mobile;
-
-
-    private String wechat;
-
-
-    private String createTime;
-
-
-    private String updateTime;
-
-
-    private String isDelete;
-
-    private List<String> roleIds;
-
-    public boolean valid() {
-        if (
-                ObjectUtils.isEmpty(account)  ||
-                ObjectUtils.isEmpty(password) ||
-                ObjectUtils.isEmpty(email)    ||
-                ObjectUtils.isEmpty(mobile)   ||
-                ObjectUtils.isEmpty(userName) ||
-                ObjectUtils.isEmpty(isDelete) ||
-                ObjectUtils.isEmpty(roleIds)
-            )
-            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
deleted file mode 100644
index f0ae72b..0000000
--- a/screen-manage/src/main/java/com/moral/api/pojo/request/AccountUpdateRequest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-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/vo/account/AccountDeleteVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java
new file mode 100644
index 0000000..ef0b15e
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java
@@ -0,0 +1,32 @@
+package com.moral.api.pojo.vo.account;
+
+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;
+
+/**
+ * @ClassName AccountDeleteVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/16 11:40
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+
+public class AccountDeleteVO extends AccountVO {
+
+
+    public static AccountDeleteVO convert(AccountDeleteDTO dto) {
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        AccountDeleteVO vo = new AccountDeleteVO();
+        ManageAccount account = dto.getAccount();
+        vo.setId(account.getId());
+        vo.setUserName(account.getUserName());
+        return vo;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
index faaf488..7c4e4cf 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
+++ b/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,82 +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";
-
-    private String code;
-
 
     /**
-    * @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();
-            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);
+        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;
     }
 
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
index 16462d3..77b190b 100644
--- 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
@@ -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);
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
index 2765a97..a99e42d 100644
--- 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
@@ -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,56 +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";
-
-    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()));
+        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.setIsDelete(isDelete);
-            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;
     }
 }
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
index fbd5d06..3f6463b 100644
--- 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
@@ -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;
@@ -18,8 +19,8 @@
  **/
 @Data
 @JsonInclude(JsonInclude.Include.NON_EMPTY)
-
 public class AccountVO {
+
     private Integer id;
 
     private String userName;
@@ -30,24 +31,23 @@
 
     private String wechat;
 
-    private String isDelete;
-
     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());
         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/login/AccountInfoVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java
index 4edf55a..dbd42ca 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java
+++ b/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());
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java
index acc760f..52878a0 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/login/LoginVO.java
+++ b/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;
     }
 }
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 471d22d..3f1aa80 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,12 +2,9 @@
 
 import com.moral.api.entity.ManageAccount;
 import com.baomidou.mybatisplus.extension.service.IService;
-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.account.*;
 import com.moral.api.pojo.dto.login.LoginDTO;
-import com.moral.api.pojo.request.*;
+import com.moral.api.pojo.form.*;
 
 /**
  * <p>
@@ -25,7 +22,7 @@
             * @Author: ���������
             * @Date: 2021/3/12
             */
-    LoginDTO login(LoginRequest loginRequest);
+    LoginDTO login(LoginForm loginForm);
 
    /**
    * @Description: ������
@@ -34,7 +31,7 @@
            * @Author: ���������
            * @Date: 2021/3/12
            */
-   boolean logout(LogoutRequest logoutRequest);
+   boolean logout(LogoutForm logoutForm);
 
    /**
    * @Description: ������������������
@@ -43,7 +40,7 @@
            * @Author: ���������
            * @Date: 2021/3/13
            */
-    AccountInsertDTO insertAccount(AccountInsertRequest accountInsertRequest);
+    AccountInsertDTO insertAccount(AccountInsertForm accountInsertForm);
 
     /**
     * @Description: ������������
@@ -52,7 +49,7 @@
             * @Author: ���������
             * @Date: 2021/3/15
             */
-    AccountQueryDTO queryAccount(AccountQueryRequest accountQueryRequest);
+    AccountQueryDTO queryAccount(AccountQueryForm accountQueryForm);
 
     /**
     * @Description: ������������
@@ -61,5 +58,14 @@
             * @Author: ���������
             * @Date: 2021/3/15
             */
-    AccountUpdateDTO updateAccount(AccountUpdateRequest accountUpdateRequest);
+    AccountUpdateDTO updateAccount(AccountUpdateForm accountUpdateForm);
+
+    /**
+    * @Description: ������������
+            * @Param: [accountDeleteRequest]
+            * @return: com.moral.api.pojo.dto.account.AccountDeleteDTO
+            * @Author: ���������
+            * @Date: 2021/3/16
+            */
+    AccountDeleteDTO deleteAccount(AccountDeleteForm accountDeleteForm);
 }
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 a78cd9b..641d362 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.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.ManageAccount;
 import com.moral.api.entity.ManageAccountRole;
@@ -10,18 +11,18 @@
 import com.moral.api.mapper.ManageAccountRoleMapper;
 import com.moral.api.mapper.ManageMenuMapper;
 import com.moral.api.mapper.ManageRoleMapper;
-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.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.Constants;
+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,69 +44,67 @@
 @Service
 public class ManageAccountServiceImpl extends ServiceImpl<ManageAccountMapper, ManageAccount> implements ManageAccountService {
 
-    @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";
-
-    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
      */
     @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);
+        String password = AESUtils.decrypt(AESPassword);
         //������������������
         QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
         wrapper.eq("account", account);
-        ManageAccount manageAccount = manageAccountMapper.selectOne(wrapper);
-        if (ObjectUtils.isEmpty(manageAccount)) {
-            loginDTO.setCode(LoginDTO.NOT_EXIST);
+        List<ManageAccount> manageAccounts = manageAccountMapper.selectList(wrapper);
+        if (ObjectUtils.isEmpty(manageAccounts)) {
+            loginDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
+            loginDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
             return loginDTO;
         }
         //������������������������
-        if (manageAccount.getIsDelete().equals("1")) {
-            loginDTO.setCode(LoginDTO.IS_DELETE);
+        ManageAccount manageAccount = null;
+        for (ManageAccount value : manageAccounts) {
+            if (Constants.NOT_DELETE.equals(value.getIsDelete()))
+                manageAccount = value;
+        }
+
+        if (ObjectUtils.isEmpty(manageAccount)) {
+            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_ERROR.getCode());
+            loginDTO.setMsg(ResponseCodeEnum.PASSWORD_ERROR.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);
         }
 
         //������������������
@@ -118,7 +117,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);
 
@@ -128,14 +128,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;
     }
@@ -149,65 +149,30 @@
      */
     @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 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)) {
-            accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_EXIST_SPECIAL_CHAR);
-            return accountInsertDTO;
-        }
-        /*������������������������������������*/
-        if (isSpecialChar(password)) {
-            accountInsertDTO.setCode(AccountInsertDTO.PASSWORD_EXIST_SPECIAL_CHAR);
-            return accountInsertDTO;
-        }
-        /*���������������������������������*/
-        if (account.length() >= 20||account.length()<=6) {
-            accountInsertDTO.setCode(AccountInsertDTO.ACCOUNT_LENGTH_INVALID);
-            return accountInsertDTO;
-        }
-        /*������������������������������*/
-        if (AESUtils.decrypt(AESPassword, AESKey).length() >= 20||AESUtils.decrypt(AESPassword, AESKey).length() <= 6) {
-            accountInsertDTO.setCode(AccountInsertDTO.PASSWORD_LENGTH_INVALID);
-            return accountInsertDTO;
-        }
-        /*���������������������������������*/
-        if (!isValidMobile(mobile)) {
-            accountInsertDTO.setCode(AccountInsertDTO.MOBILE_INVALID);
-            return accountInsertDTO;
-        }
-        /*������������������������������*/
-        if (!isValidEmail(email)) {
-            accountInsertDTO.setCode(AccountInsertDTO.EMAIL_INVALID);
-            return accountInsertDTO;
-        }
-        /*���������������������������*/
+        String account = accountInsertForm.getAccount();
+        String AESPassword = accountInsertForm.getPassword();
+        String password = MD5Utils.saltMD5(AESUtils.decrypt(AESPassword));
+        String userName = accountInsertForm.getUserName();
+        String email = accountInsertForm.getEmail();
+        String mobile = accountInsertForm.getMobile();
+        String wechat = accountInsertForm.getWechat();
+        List<String> roleIdsStr = accountInsertForm.getRoleIds();
+
+        /*������������������������*/
         ManageAccount exitAccount = new ManageAccount();
         exitAccount.setAccount(account);
-        exitAccount.setIsDelete("0");
+        exitAccount.setIsDelete(Constants.NOT_DELETE);
         QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
         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();
@@ -217,23 +182,31 @@
         manageAccount.setEmail(email);
         manageAccount.setMobile(mobile);
         manageAccount.setWechat(wechat);
-        manageAccount.setIsDelete(isDelete);
         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;
     }
 
@@ -245,42 +218,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);
-        queryParams.put("is_delete", isDelete);
-        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", Constants.NOT_DELETE);
+
         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);
@@ -288,42 +282,41 @@
         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
+     */
     @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 isDelete = accountUpdateRequest.getIsDelete();
-        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<>();
         ManageAccount exitManageAccount = new ManageAccount();
         exitManageAccount.setId(accountId);
-        exitManageAccount.setIsDelete("0");
+        exitManageAccount.setIsDelete(Constants.NOT_DELETE);
         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);
+        if (ObjectUtils.isEmpty(manageAccounts)) {
+            accountUpdateDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
+            accountUpdateDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
             return accountUpdateDTO;
         }
         //������ManageAccount���
@@ -331,15 +324,14 @@
         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);
+        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) {
@@ -351,33 +343,56 @@
         //������������������������
         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;
     }
 
 
-
-
-
-    private static boolean isSpecialChar(String str) {
-        Pattern pattern = Pattern.compile(specialCharRegEx);
-        Matcher matcher = pattern.matcher(str);
-        return matcher.find();
+    /**
+     * @Description: ������������������
+     * @Param: [accountDeleteRequest]
+     * @return: com.moral.api.pojo.dto.account.AccountDeleteDTO
+     * @Author: ���������
+     * @Date: 2021/3/16
+     */
+    @Override
+    @Transactional
+    public AccountDeleteDTO deleteAccount(AccountDeleteForm accountDeleteForm) {
+        AccountDeleteDTO accountDeleteDTO = new AccountDeleteDTO();
+        //������
+        Integer accountId = accountDeleteForm.getAccountId();
+        //������������������
+        ManageAccount manageAccount = new ManageAccount();
+        manageAccount.setIsDelete(Constants.NOT_DELETE);
+        manageAccount.setId(accountId);
+        QueryWrapper<ManageAccount> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(manageAccount);
+        ManageAccount existManageAccount = manageAccount.selectOne(queryWrapper);
+        if (ObjectUtils.isEmpty(existManageAccount)) {
+            accountDeleteDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
+            accountDeleteDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
+            return accountDeleteDTO;
+        }
+        //������������������
+        existManageAccount.setIsDelete(Constants.DELETE);
+        UpdateWrapper<ManageAccount> deleteAccountWrapper = new UpdateWrapper<>();
+        deleteAccountWrapper.set("is_delete", Constants.DELETE).eq("id", manageAccount.getId());
+        manageAccountMapper.update(null, deleteAccountWrapper);
+        //������������������������������
+        UpdateWrapper<ManageAccountRole> deleteManageAccountRoleWrapper = new UpdateWrapper<>();
+        deleteManageAccountRoleWrapper.set("is_delete", Constants.DELETE).eq("account_id", manageAccount.getId());
+        manageAccountRoleMapper.update(null, deleteManageAccountRoleWrapper);
+        //������������������
+        accountDeleteDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        accountDeleteDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        accountDeleteDTO.setAccount(existManageAccount);
+        return accountDeleteDTO;
     }
 
-    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) {
-        Pattern pattern = Pattern.compile(emailRegEx);
-        Matcher matcher = pattern.matcher(str);
-        return matcher.find();
-    }
 
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java
index 3552237..d879d47 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java
@@ -6,6 +6,7 @@
 import com.moral.api.mapper.ManageRoleMenuMapper;
 import com.moral.api.service.ManageRoleService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
@@ -123,7 +124,7 @@
         }else {
             ManageRole manageRole = new ManageRole();
             manageRole.setId(Integer.parseInt(map.get("id").toString()));
-            manageRole.setIsDelete("1");
+            manageRole.setIsDelete(Constants.DELETE);
             Map deleteMap = new HashMap();
             deleteMap.put("id",Integer.parseInt(map.get("id").toString()));
             deleteMap.put("is_delete",1);
diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml
index 984b1a4..7aa5cab 100644
--- a/screen-manage/src/main/resources/application-dev.yml
+++ b/screen-manage/src/main/resources/application-dev.yml
@@ -121,6 +121,8 @@
       - /account/insert
       - /account/query
       - /account/update
+      - /account/delete
+      - /account/yanzhengma
 AES:
   KEY:
     AD42F7787B035B7580000EF93BE20BAD
diff --git a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
index 33dfcee..7dbef4e 100644
--- a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
+++ b/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

--
Gitblit v1.8.0