From 3b72f1f4dd46191857583a166d5b67722c6b118e Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 25 Mar 2021 17:19:50 +0800
Subject: [PATCH] manage模块     添加组织增删改功能 查待完成

---
 screen-manage/src/main/java/com/moral/api/service/UserService.java                           |    1 
 screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java |  134 +++++
 screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java    |   31 +
 screen-manage/src/main/java/com/moral/api/entity/SysConfig.java                              |    8 
 screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java         |   99 ++-
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDTO.java                   |   23 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java           |   55 ++
 screen-manage/src/main/java/com/moral/api/pojo/form/user/UserInsertForm.java                 |   14 
 screen-common/src/main/java/com/moral/util/AESUtils.java                                     |    3 
 screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java                  |    7 
 screen-common/src/main/java/com/moral/util/MD5Utils.java                                     |    3 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java     |   26 +
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java                     |   14 
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java             |    1 
 screen-common/src/main/java/com/moral/constant/Constants.java                                |   40 +
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java     |   25 +
 screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountDeleteForm.java           |    2 
 screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java |  121 ++++
 screen-common/src/main/java/com/moral/constant/ResultMessage.java                            |    6 
 screen-common/src/main/java/com/moral/util/DateUtils.java                                    |    1 
 screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java                         |   10 
 screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java                          |    6 
 screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationDeleteForm.java |   26 +
 screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java             |  116 ++++
 screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java  |  101 ++++
 screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java                     |    2 
 screen-common/src/main/java/com/moral/util/KaptchaUtils.java                                 |    2 
 screen-manage/src/main/java/com/moral/api/controller/AccountController.java                  |   17 
 screen-manage/src/main/java/com/moral/api/entity/Organization.java                           |    8 
 screen-manage/src/main/java/com/moral/api/service/OrganizationService.java                   |   44 +
 screen-manage/src/main/java/com/moral/api/controller/UserController.java                     |   27 +
 screen-manage/src/main/java/com/moral/api/controller/LoginController.java                    |   21 
 screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountQueryDTO.java              |    2 
 /dev/null                                                                                    |   66 --
 screen-manage/src/main/resources/application-dev.yml                                         |    7 
 screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java                    |    2 
 screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java         |   47 +
 screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java           |    2 
 screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java           |   83 +++
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java               |    1 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java     |   26 +
 screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java          |  194 +++++++
 screen-common/src/main/java/com/moral/util/RegexUtils.java                                   |   14 
 screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java            |    7 
 44 files changed, 1,294 insertions(+), 151 deletions(-)

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 c9cb5f2..a5a7bff 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -4,8 +4,48 @@
  * ������������������
  */
 public class Constants {
+    /*
+     * ���������������
+     * */
     public static String DELETE = "1";
 
+    /*
+     * ���������������
+     * */
     public static String NOT_DELETE = "0";
 
+    /*
+     * ���������������������������������
+     * */
+    public static String MANAGE_VERIFICATIONCODE_COLUMN = "type";
+
+    /*
+     * ������������������������������������
+     * */
+    public static String MANAGE_VERIFICATIONCODE_VALUE = "manage_verificationCode";
+
+    /*
+     * ���������������������
+     * */
+    public static String VERFICATIONCODE_OPEN = "1";
+
+    /*
+     * ���������������������
+     * */
+    public static String VERFICATIONCODE_CLOSE = "0";
+
+    /*
+     * ������������������
+     * */
+    public static String ORDER_ASC = "0";
+
+    /*
+     * ������������������
+     * */
+    public static String ORDER_DESC = "1";
+
+    /*
+    * ���������������������
+    * */
+    public static Integer DELETE_CHILDREN_ORG = 1;
 }
diff --git a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
index eba463b..fe69c7a 100644
--- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
+++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -9,6 +9,8 @@
  **/
 public enum ResponseCodeEnum {
 
+    VERIFICATION_CLOSE(2,"������������������"),
+    VERIFICATION_OPEN(1,"������������������"),
     SUCCESS(0,"������������"),
     FAIL(-1,"������������"),
     PARAMETERS_IS_MISSING(-2,"���������������"),
@@ -22,7 +24,13 @@
     EMAIL_INVALID(-10,"������������"),
     ACCOUNT_INVALID(-11,"���������������"),
     PASSWORD_INVALID(-12,"������������"),
-    ACCOUNT_IS_EXPIRE(-13,"���������������")
+    ACCOUNT_IS_EXPIRE(-13,"���������������"),
+    ORGANIZATION_NOT_EXIST(-14,"���������������"),
+    ORGANIZATION_EXIST(-15,"������������������"),
+    ORGANIZATION_PARENT_NOT_EXIST(-16,"������������������"),
+    PHONE_INVALID(-17,"���������������"),
+    TIME_FORMAT_INVALID(-18,"������������������"),
+    TIME_INVALID(-19,"������������")
     ;
     private final Integer code;
     private final String  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 2ecfe05..bf18e28 100644
--- a/screen-common/src/main/java/com/moral/constant/ResultMessage.java
+++ b/screen-common/src/main/java/com/moral/constant/ResultMessage.java
@@ -34,6 +34,12 @@
     public ResultMessage() {
     }
 
+    public ResultMessage(ResponseCodeEnum codeEnum,T data){
+        this.code = codeEnum.getCode();
+        this.msg = codeEnum.getMsg();
+        this.data = data;
+    }
+
     public static ResultMessage ok() {
         ResultMessage resultMessage = new ResultMessage();
         resultMessage.setCode(ResponseCodeEnum.SUCCESS.getCode());
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 19d2c3c..b58ed46 100644
--- a/screen-common/src/main/java/com/moral/util/AESUtils.java
+++ b/screen-common/src/main/java/com/moral/util/AESUtils.java
@@ -81,8 +81,9 @@
     }
 
     public static void main(String[] args) {
-        System.out.println(encrypt("404897439","AD42F7787B035B7580000EF93BE20BAD"));
+        System.out.println(encrypt("123456","AD42F7787B035B7580000EF93BE20BAD"));
         System.out.println(encrypt("chenkaiyu111","AD42F7787B035B7580000EF93BE20BAD"));
+        System.out.println(decrypt("KoWjfDMZQhJMLlG1crBPqQ==","AD42F7787B035B7580000EF93BE20BAD"));
     }
 
 }
diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index 9f5ea52..bfbb3a5 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -47,6 +47,7 @@
 
 
 
+
 	/**
 	 * ������DateFormat
 	 * 
diff --git a/screen-common/src/main/java/com/moral/util/KaptchaUtils.java b/screen-common/src/main/java/com/moral/util/KaptchaUtils.java
index e79f9e3..20c0be9 100644
--- a/screen-common/src/main/java/com/moral/util/KaptchaUtils.java
+++ b/screen-common/src/main/java/com/moral/util/KaptchaUtils.java
@@ -37,7 +37,7 @@
     private static RedisTemplate redisTemplate;
 
     //������������������ ������������
-    private static final int validity_time = 60;
+    private static final int validity_time = 60*60;
 
     @Autowired
     public void setRedisTemplate(RedisTemplate redisTemplate) {
diff --git a/screen-common/src/main/java/com/moral/util/MD5Utils.java b/screen-common/src/main/java/com/moral/util/MD5Utils.java
index 1f7396b..3a061eb 100644
--- a/screen-common/src/main/java/com/moral/util/MD5Utils.java
+++ b/screen-common/src/main/java/com/moral/util/MD5Utils.java
@@ -85,7 +85,8 @@
     }
 
     public static void main(String[] args) {
-        System.out.println(saltMD5("123456"));
+        System.out.println(        saltMD5Verify("123456","63E23606B61A58FF1C48898988D415840F5DD6896BD5EC26")
+);
     }
 
 }
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 1112901..62aafc1 100644
--- a/screen-common/src/main/java/com/moral/util/RegexUtils.java
+++ b/screen-common/src/main/java/com/moral/util/RegexUtils.java
@@ -16,9 +16,7 @@
         return account.matches(regex);
     }
 
-    public static void main(String[] args) {
 
-    }
 
     /**
      * ������������
@@ -136,6 +134,18 @@
     }
 
     /**
+    * @Description: ������yyyy-MM-dd���������������������������
+            * @Param: [date]
+            * @return: boolean
+            * @Author: ���������
+            * @Date: 2021/3/23
+            */
+    public static boolean checkDate(String date){
+        String regex = "((\\d{2}(([02468][048])|([13579][26]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|(1[0-9])|(2[0-8]))))))";
+        return Pattern.matches(regex,date);
+    }
+
+    /**
      * ������URL������
      *
      * @param url ���������http://blog.csdn.net:80/xyang81/article/details/7705960? ��� http://www.csdn.net:80
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 ece5b58..eddbd67 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
@@ -4,30 +4,21 @@
 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.form.*;
+import com.moral.api.pojo.form.account.AccountDeleteForm;
+import com.moral.api.pojo.form.account.AccountInsertForm;
+import com.moral.api.pojo.form.account.AccountQueryForm;
+import com.moral.api.pojo.form.account.AccountUpdateForm;
 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;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 
 @Slf4j
 @Api(tags = {"������������������"})
diff --git a/screen-manage/src/main/java/com/moral/api/controller/LoginController.java b/screen-manage/src/main/java/com/moral/api/controller/LoginController.java
index c705879..8269a9d 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/LoginController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/LoginController.java
@@ -1,10 +1,14 @@
 package com.moral.api.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.moral.api.entity.SysConfig;
 import com.moral.api.pojo.dto.login.LoginDTO;
-import com.moral.api.pojo.form.LoginForm;
-import com.moral.api.pojo.form.LogoutForm;
+import com.moral.api.pojo.form.login.LoginForm;
+import com.moral.api.pojo.form.login.LogoutForm;
 import com.moral.api.pojo.vo.login.LoginVO;
 import com.moral.api.service.ManageAccountService;
+import com.moral.api.service.SysConfigService;
+import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.pojo.VerificationCode;
@@ -27,10 +31,13 @@
  **/
 @Slf4j
 @Api(tags = {"������������"})
+@CrossOrigin(origins = "*", maxAge = 3600)
 @RestController
 public class LoginController {
     @Autowired
     ManageAccountService accountService;
+    @Autowired
+    SysConfigService sysConfigService;
 
     /**
      * @Description: ������������
@@ -80,10 +87,14 @@
             * @Author: ���������
             * @Date: 2021/3/18
             */
-    @GetMapping
+    @GetMapping("verificationCode/config")
     public ResultMessage verifyConfig(){
-
-        return null;
+        QueryWrapper<SysConfig> wrapper = new QueryWrapper<>();
+        wrapper.eq(Constants.MANAGE_VERIFICATIONCODE_COLUMN,Constants.MANAGE_VERIFICATIONCODE_VALUE);
+        SysConfig config = sysConfigService.getOne(wrapper);
+        if(config.getCode().equals(Constants.VERFICATIONCODE_OPEN))
+            return new ResultMessage(ResponseCodeEnum.VERIFICATION_OPEN,null);
+        return new ResultMessage(ResponseCodeEnum.VERIFICATION_CLOSE,null);
     }
 
     /**
diff --git a/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java b/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
new file mode 100644
index 0000000..52582b4
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
@@ -0,0 +1,116 @@
+package com.moral.api.controller;
+
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
+import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
+import com.moral.api.pojo.form.organization.OrganizationInsertForm;
+import com.moral.api.pojo.form.organization.OrganizationQueryForm;
+import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
+import com.moral.api.pojo.vo.organization.OrganizationDeleteVO;
+import com.moral.api.pojo.vo.organization.OrganizationInsertVO;
+import com.moral.api.pojo.vo.organization.OrganizationUpdateVO;
+import com.moral.api.service.OrganizationService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @ClassName OrganizationController
+ * @Description ���������������������
+ * @Author ���������
+ * @Date 2021/3/22 14:10
+ * @Version TODO
+ **/
+@Slf4j
+@Api(tags = {"���������������������"})
+@RestController
+    @RequestMapping("/organization")
+public class OrganizationController {
+    @Autowired
+    OrganizationService organizationService;
+
+    @PostMapping("insert")
+    public ResultMessage insert(@RequestBody OrganizationInsertForm organizationInsertForm) {
+        //������������������������������
+        if (!organizationInsertForm.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������������
+        OrganizationDTO conditionDTO = organizationInsertForm.paramValid();
+        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
+        }
+
+        //������������������
+        OrganizationDTO organizationDTO = organizationService.insertOrganization(organizationInsertForm);
+
+        //���������������������������
+        OrganizationInsertVO organizationInsertVO = OrganizationInsertVO.convert(organizationDTO);
+
+        return new ResultMessage(organizationDTO.getCode(),organizationDTO.getMsg(),organizationInsertVO);
+    }
+
+    @PostMapping("update")
+    public ResultMessage update(@RequestBody OrganizationUpdateForm organizationUpdateForm){
+        //������������������������������
+        if (!organizationUpdateForm.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������������
+        OrganizationDTO conditionDTO = organizationUpdateForm.paramValid();
+        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
+        }
+
+        //������������������
+        OrganizationDTO organizationDTO = organizationService.updateOrganization(organizationUpdateForm);
+
+        //���������������������������
+        OrganizationUpdateVO organizationUpdateVO = OrganizationUpdateVO.convert(organizationDTO);
+
+        return new ResultMessage(organizationDTO.getCode(),organizationDTO.getMsg(),organizationUpdateVO);
+    }
+
+    @PostMapping("delete")
+    public ResultMessage delete(@RequestBody OrganizationDeleteForm organizationDeleteForm){
+        //������������������������������
+        if (!organizationDeleteForm.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        OrganizationDTO dto = organizationService.deleteOrganization(organizationDeleteForm);
+
+        //���������������������������
+        OrganizationDeleteVO vo = OrganizationDeleteVO.convert(dto);
+
+        return new ResultMessage(dto.getCode(),dto.getMsg(),vo);
+    }
+
+    @GetMapping("query")
+    public ResultMessage query(OrganizationQueryForm organizationQueryForm){
+        //������������������������
+        if (!organizationQueryForm.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������������
+        OrganizationDTO conditionDTO = organizationQueryForm.paramValid();
+        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
+        }
+
+        //������������������
+        OrganizationQueryDTO organizationQueryDTO = organizationService.queryOrganization(organizationQueryForm);
+
+        //������������������������
+
+        return null;
+    }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/controller/UserController.java b/screen-manage/src/main/java/com/moral/api/controller/UserController.java
new file mode 100644
index 0000000..0d4006c
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/controller/UserController.java
@@ -0,0 +1,27 @@
+package com.moral.api.controller;
+
+import com.moral.constant.ResultMessage;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName UserController
+ * @Description ������������
+ * @Author ���������
+ * @Date 2021/3/22 13:52
+ * @Version TODO
+ **/
+@Slf4j
+@Api(tags = {"������������������"})
+@RestController
+@RequestMapping("/user")
+public class UserController {
+
+    @PostMapping("insert")
+    public ResultMessage insert(){
+        return null;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java b/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java
index bc18ca5..971aa9f 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/ManageAccount.java
@@ -9,6 +9,7 @@
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -60,17 +61,20 @@
     /**
      * ������
      */
-    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String wechat;
 
     /**
      * ������������
      */
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",locale = "zh",timezone="GMT+8")
     private Date createTime;
 
     /**
      * ������������
      */
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",locale = "zh",timezone="GMT+8")
     private Date updateTime;
 
     /**
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Organization.java b/screen-manage/src/main/java/com/moral/api/entity/Organization.java
index 2dd7686..3b12b20 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Organization.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Organization.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -96,17 +98,17 @@
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
      */
-    private LocalDateTime expireTime;
+    private Date expireTime;
 
     /**
      * ������������
diff --git a/screen-manage/src/main/java/com/moral/api/entity/SysConfig.java b/screen-manage/src/main/java/com/moral/api/entity/SysConfig.java
index dd0a1f3..f3f717d 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/SysConfig.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/SysConfig.java
@@ -1,10 +1,13 @@
 package com.moral.api.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -41,17 +44,18 @@
     /**
      * ������
      */
+    @TableField("`desc`")
     private String desc;
 
     /**
      * ������������
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * ������������
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * ������������
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 5f17674..40437b2 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
@@ -15,12 +15,25 @@
  **/
 @Data
 public class AccountDTO {
-
-    private ManageAccount account;
-
-    private List<ManageRole> roles;
-
+    /*
+     * ���������
+     * */
     private Integer code;
 
+    /*
+     * ������������
+     * */
     private String msg;
+
+    /*
+    * ������������
+    * */
+    private ManageAccount account;
+
+    /*
+    * ������������
+    * */
+    private List<ManageRole> roles;
+
+
 }
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
index ecab6ed..8ccc926 100644
--- 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
@@ -12,5 +12,4 @@
 @Data
 public class AccountDeleteDTO extends AccountDTO {
 
-
 }
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 46f3888..176397c 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
@@ -26,6 +26,6 @@
 
     private long size;
 
-    private List<AccountDTO> AccountDTOS;
+    private List<AccountDTO> accountDTOS;
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java
new file mode 100644
index 0000000..071bf1a
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java
@@ -0,0 +1,47 @@
+package com.moral.api.pojo.dto.organization;
+
+import com.moral.api.entity.Organization;
+import com.moral.api.entity.User;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName OrganizationDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/22 16:37
+ * @Version TODO
+ **/
+@Data
+public class OrganizationDTO {
+
+    /*
+     * ���������
+     * */
+    private Integer code;
+
+    /*
+     * ������������
+     * */
+    private String msg;
+
+    /*
+    * ������
+    * */
+    private Organization organization;
+
+    /*
+    * ���������
+    * */
+    private Organization parentOrganization;
+    /*
+    * ���������
+    * */
+    private List<Organization> childOrganizations;
+
+    /*
+    * ���������
+    * */
+    private User admin;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java
new file mode 100644
index 0000000..cf03b27
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java
@@ -0,0 +1,31 @@
+package com.moral.api.pojo.dto.organization;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName OrganizationQueryDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/25 16:10
+ * @Version TODO
+ **/
+@Data
+public class OrganizationQueryDTO {
+
+    private Integer code;
+
+    private String msg;
+
+    private long page;
+
+    private long total;
+
+    private long current;
+
+    private long size;
+
+    private List<OrganizationDTO> organizationDTOS;
+
+}
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
deleted file mode 100644
index 77133d7..0000000
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountUpdateForm.java
+++ /dev/null
@@ -1,66 +0,0 @@
-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/form/AccountDeleteForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountDeleteForm.java
similarity index 89%
rename from screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountDeleteForm.java
index b70764c..7b15497 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountDeleteForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountDeleteForm.java
@@ -1,4 +1,4 @@
-package com.moral.api.pojo.form;
+package com.moral.api.pojo.form.account;
 
 import lombok.Data;
 
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/account/AccountInsertForm.java
similarity index 98%
rename from screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
index f5b1810..56d7d25 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountInsertForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
@@ -1,4 +1,4 @@
-package com.moral.api.pojo.form;
+package com.moral.api.pojo.form.account;
 
 import com.moral.api.pojo.dto.account.AccountInsertDTO;
 import com.moral.constant.ResponseCodeEnum;
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java
similarity index 87%
rename from screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java
index ce49cb5..837b4ee 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/AccountQueryForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java
@@ -1,4 +1,4 @@
-package com.moral.api.pojo.form;
+package com.moral.api.pojo.form.account;
 
 import lombok.Data;
 import org.springframework.util.ObjectUtils;
@@ -33,6 +33,11 @@
 
     private String isDelete;
 
+    private String order;
+
+    private String orderType;
+
+
     public boolean valid() {
         if (
             ObjectUtils.isEmpty(page)||
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java
new file mode 100644
index 0000000..82df8bf
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java
@@ -0,0 +1,83 @@
+package com.moral.api.pojo.form.account;
+
+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 password;
+
+    private String email;
+
+    private String mobile;
+
+    private String wechat;
+
+    private List<Integer> roleIds;
+
+    public boolean valid() {
+        if(ObjectUtils.isEmpty(accountId))
+            return false;
+        if(
+                ObjectUtils.isEmpty(userName)&&
+                ObjectUtils.isEmpty(password)&&
+                ObjectUtils.isEmpty(email)&&
+                ObjectUtils.isEmpty(mobile)&&
+                ObjectUtils.isEmpty(wechat)&&
+                ObjectUtils.isEmpty(roleIds)
+                )
+            return false;
+        return true;
+    }
+
+    public AccountUpdateDTO paramValid() {
+        AccountUpdateDTO dto = new AccountUpdateDTO();
+        //���������������������������������
+        if (!ObjectUtils.isEmpty(mobile)) {
+            if (!RegexUtils.checkMobile(mobile)) {
+                dto.setCode(ResponseCodeEnum.MOBILE_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.MOBILE_INVALID.getMsg());
+                return dto;
+            }
+        }
+        //������������������������������
+        if (!ObjectUtils.isEmpty(email)) {
+            if (!RegexUtils.checkEmail(email)) {
+                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
+                return dto;
+            }
+        }
+        //������������������������������
+        if (!ObjectUtils.isEmpty(password)){
+            if(!RegexUtils.checkPassword(AESUtils.decrypt(password))){
+                dto.setCode(ResponseCodeEnum.PASSWORD_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.PASSWORD_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/form/LoginForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java
similarity index 92%
rename from screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java
index 7bab60f..ec0e759 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/LoginForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java
@@ -1,4 +1,4 @@
-package com.moral.api.pojo.form;
+package com.moral.api.pojo.form.login;
 
 import lombok.Data;
 import org.springframework.util.ObjectUtils;
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java
similarity index 91%
rename from screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java
rename to screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java
index 8847656..f4be308 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/LogoutForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java
@@ -1,4 +1,4 @@
-package com.moral.api.pojo.form;
+package com.moral.api.pojo.form.login;
 
 import lombok.Data;
 import org.springframework.util.ObjectUtils;
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationDeleteForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationDeleteForm.java
new file mode 100644
index 0000000..0ee1899
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationDeleteForm.java
@@ -0,0 +1,26 @@
+package com.moral.api.pojo.form.organization;
+
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * @ClassName OrganizationDeleteForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/25 8:44
+ * @Version TODO
+ **/
+@Data
+public class OrganizationDeleteForm {
+
+    private Integer organizationId;
+
+    private Integer deleteChildren;
+
+    public boolean valid() {
+        if (organizationId == null || organizationId == 0|| ObjectUtils.isEmpty(deleteChildren)) {
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java
new file mode 100644
index 0000000..98cc70c
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java
@@ -0,0 +1,121 @@
+package com.moral.api.pojo.form.organization;
+
+import com.moral.api.entity.Organization;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.DateUtils;
+import com.moral.util.RegexUtils;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @ClassName OrganizationInsertForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/22 14:12
+ * @Version TODO
+ **/
+@Data
+public class OrganizationInsertForm implements Serializable {
+
+    private Integer parentId;
+
+    private String name;
+
+    private Integer provinceCode;
+
+    private Integer cityCode;
+
+    private Integer areaCode;
+
+    private Long townCode;
+
+    private Long villageCode;
+
+    private String locationLevel;
+
+    private String address;
+
+    private String phone;
+
+    private String email;
+
+    private String wechat;
+
+    private String expireTime;
+
+    public boolean valid() {
+        if (
+                ObjectUtils.isEmpty(name) ||
+                        ObjectUtils.isEmpty(provinceCode) ||
+                        ObjectUtils.isEmpty(cityCode) ||
+                        ObjectUtils.isEmpty(areaCode) ||
+                        ObjectUtils.isEmpty(locationLevel) ||
+                        ObjectUtils.isEmpty(address) ||
+                        ObjectUtils.isEmpty(expireTime)
+                )
+            return false;
+        return true;
+    }
+
+    public Organization formConvertEntity() {
+        Organization organization = new Organization();
+        organization.setParentId(parentId);
+        organization.setName(name);
+        organization.setProvinceCode(provinceCode);
+        organization.setCityCode(cityCode);
+        organization.setAreaCode(areaCode);
+        organization.setTownCode(townCode);
+        organization.setVillageCode(villageCode);
+        organization.setLocationLevel(locationLevel);
+        organization.setAddress(address);
+        organization.setPhone(phone);
+        organization.setEmail(email);
+        organization.setWechat(wechat);
+        Date expireTimeDate = DateUtils.getDate(expireTime + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
+        organization.setExpireTime(expireTimeDate);
+        return organization;
+    }
+
+    public OrganizationDTO paramValid() {
+        OrganizationDTO dto = new OrganizationDTO();
+        //���������������������������������
+        if (!ObjectUtils.isEmpty(phone)) {
+            if (!RegexUtils.checkMobile(phone) && !RegexUtils.checkPhone(phone)) {
+                dto.setCode(ResponseCodeEnum.PHONE_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.PHONE_INVALID.getMsg());
+                return dto;
+
+            }
+        }
+        //������������������������������
+        if (!ObjectUtils.isEmpty(email)) {
+            if (!RegexUtils.checkEmail(email)) {
+                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
+                return dto;
+            }
+        }
+        //������������������������
+        if (!RegexUtils.checkDate(expireTime)) {
+            dto.setCode(ResponseCodeEnum.TIME_FORMAT_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.TIME_FORMAT_INVALID.getMsg());
+            return dto;
+        }
+        //������������������������������������������
+        Date expireDate = DateUtils.getDate(expireTime, "yyyy-MM-dd");
+        Date currentDate = new Date();
+        if (DateUtils.compareDateStr(expireDate, currentDate) >= 0) {
+            dto.setCode(ResponseCodeEnum.TIME_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.TIME_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/form/organization/OrganizationQueryForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java
new file mode 100644
index 0000000..9151342
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java
@@ -0,0 +1,101 @@
+package com.moral.api.pojo.form.organization;
+
+import com.moral.api.entity.Organization;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.DateUtils;
+import com.moral.util.RegexUtils;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+
+/**
+ * @ClassName OrganizationQueryForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/25 15:52
+ * @Version TODO
+ **/
+@Data
+public class OrganizationQueryForm {
+
+    private Integer page;
+
+    private Integer size;
+
+    private Integer parentId;
+
+    private String name;
+
+    private Integer provinceCode;
+
+    private Integer cityCode;
+
+    private Integer areaCode;
+
+    private Long townCode;
+
+    private Long villageCode;
+
+    private String phone;
+
+    private String email;
+
+    private String wechat;
+
+    private String isDelete;
+
+    private String order;
+
+    private String orderType;
+
+    public boolean valid() {
+        if (
+                ObjectUtils.isEmpty(page) ||
+                        ObjectUtils.isEmpty(size)
+                )
+            return false;
+        return true;
+    }
+
+    public OrganizationDTO paramValid() {
+        OrganizationDTO dto = new OrganizationDTO();
+        //���������������������������������
+        if (!ObjectUtils.isEmpty(phone)) {
+            if (!RegexUtils.checkMobile(phone) && !RegexUtils.checkPhone(phone)) {
+                dto.setCode(ResponseCodeEnum.PHONE_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.PHONE_INVALID.getMsg());
+                return dto;
+
+            }
+        }
+        //������������������������������
+        if (!ObjectUtils.isEmpty(email)) {
+            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;
+    }
+
+    public Organization formConvertEntity() {
+        Organization organization = new Organization();
+        organization.setParentId(parentId);
+        organization.setName(name);
+        organization.setProvinceCode(provinceCode);
+        organization.setCityCode(cityCode);
+        organization.setAreaCode(areaCode);
+        organization.setTownCode(townCode);
+        organization.setVillageCode(villageCode);
+        organization.setPhone(phone);
+        organization.setEmail(email);
+        organization.setWechat(wechat);
+        organization.setIsDelete(isDelete);
+        return organization;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java
new file mode 100644
index 0000000..99385ad
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java
@@ -0,0 +1,134 @@
+package com.moral.api.pojo.form.organization;
+
+import com.moral.api.entity.Organization;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.DateUtils;
+import com.moral.util.RegexUtils;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+
+/**
+ * @ClassName OrganizationUpdateForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/24 8:43
+ * @Version TODO
+ **/
+@Data
+public class OrganizationUpdateForm {
+
+    private Integer organizationId;
+
+    private Integer parentId;
+
+    private String name;
+
+    private Integer provinceCode;
+
+    private Integer cityCode;
+
+    private Integer areaCode;
+
+    private Long townCode;
+
+    private Long villageCode;
+
+    private String locationLevel;
+
+    private String address;
+
+    private String phone;
+
+    private String email;
+
+    private String wechat;
+
+    private String expireTime;
+
+    public boolean valid() {
+        if (ObjectUtils.isEmpty(organizationId))
+            return false;
+        if (
+                ObjectUtils.isEmpty(parentId) &&
+                        ObjectUtils.isEmpty(name) &&
+                        ObjectUtils.isEmpty(provinceCode) &&
+                        ObjectUtils.isEmpty(cityCode) &&
+                        ObjectUtils.isEmpty(areaCode) &&
+                        ObjectUtils.isEmpty(townCode) &&
+                        ObjectUtils.isEmpty(villageCode) &&
+                        ObjectUtils.isEmpty(locationLevel) &&
+                        ObjectUtils.isEmpty(address) &&
+                        ObjectUtils.isEmpty(phone) &&
+                        ObjectUtils.isEmpty(email) &&
+                        ObjectUtils.isEmpty(wechat) &&
+                        ObjectUtils.isEmpty(expireTime)
+                )
+            return false;
+        return true;
+    }
+
+    public Organization formConvertEntity() {
+        Organization organization = new Organization();
+        organization.setId(organizationId);
+        organization.setParentId(parentId);
+        organization.setName(name);
+        organization.setProvinceCode(provinceCode);
+        organization.setCityCode(cityCode);
+        organization.setAreaCode(areaCode);
+        organization.setTownCode(townCode);
+        organization.setVillageCode(villageCode);
+        organization.setLocationLevel(locationLevel);
+        organization.setAddress(address);
+        organization.setPhone(phone);
+        organization.setEmail(email);
+        organization.setWechat(wechat);
+        if (!ObjectUtils.isEmpty(expireTime)) {
+            Date expireTimeDate = DateUtils.getDate(expireTime + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
+            organization.setExpireTime(expireTimeDate);
+        }
+        return organization;
+    }
+
+    public OrganizationDTO paramValid() {
+        OrganizationDTO dto = new OrganizationDTO();
+        //���������������������������������
+        if (!ObjectUtils.isEmpty(phone)) {
+            if (!RegexUtils.checkMobile(phone) && !RegexUtils.checkPhone(phone)) {
+                dto.setCode(ResponseCodeEnum.PHONE_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.PHONE_INVALID.getMsg());
+                return dto;
+
+            }
+        }
+        //������������������������������
+        if (!ObjectUtils.isEmpty(email)) {
+            if (!RegexUtils.checkEmail(email)) {
+                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
+                return dto;
+            }
+        }
+        //������������������������
+        if (!ObjectUtils.isEmpty(expireTime)) {
+            if (!RegexUtils.checkDate(expireTime)) {
+                dto.setCode(ResponseCodeEnum.TIME_FORMAT_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.TIME_FORMAT_INVALID.getMsg());
+                return dto;
+            }
+            //������������������������������������������
+            Date expireDate = DateUtils.getDate(expireTime, "yyyy-MM-dd");
+            Date currentDate = new Date();
+            if (DateUtils.compareDateStr(expireDate, currentDate) >= 0) {
+                dto.setCode(ResponseCodeEnum.TIME_INVALID.getCode());
+                dto.setMsg(ResponseCodeEnum.TIME_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/form/user/UserInsertForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserInsertForm.java
new file mode 100644
index 0000000..23d6dcb
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserInsertForm.java
@@ -0,0 +1,14 @@
+package com.moral.api.pojo.form.user;
+
+/**
+ * @ClassName UserInsertForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/22 14:05
+ * @Version TODO
+ **/
+public class UserInsertForm {
+
+
+}
+
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 7c4e4cf..85df2b0 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
@@ -28,6 +28,7 @@
      * @Author: ���������
      * @Date: 2021/3/15
      */
+
     public static AccountInsertVO convert(AccountInsertDTO dto) {
         if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
             return null;
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 3f6463b..1549399 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
@@ -7,7 +7,9 @@
 import lombok.Data;
 import org.springframework.util.ObjectUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -33,6 +35,10 @@
 
     private List<String> roleNames;
 
+    private String createTime;
+
+    private String updateTime;
+
     public static AccountVO convert(AccountDTO dto) {
         if (dto.getAccount() == null)
             return null;
@@ -49,6 +55,14 @@
         vo.setMobile(account.getMobile());
         vo.setWechat(account.getWechat());
         vo.setRoleNames(roleNames);
+        //Date������String
+        Date createTime = account.getCreateTime();
+        Date updateTime = account.getUpdateTime();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String createTimeStr = sdf.format(createTime);
+        String updateTimeStr = sdf.format(updateTime);
+        vo.setCreateTime(createTimeStr);
+        vo.setUpdateTime(updateTimeStr);
         return vo;
     }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java
new file mode 100644
index 0000000..ff94744
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java
@@ -0,0 +1,26 @@
+package com.moral.api.pojo.vo.organization;
+
+
+import com.moral.api.entity.Organization;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.constant.ResponseCodeEnum;
+
+/**
+ * @ClassName OrganizationDeleteVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/25 13:46
+ * @Version TODO
+ **/
+public class OrganizationDeleteVO extends OrganizationVO {
+
+    public static OrganizationDeleteVO convert(OrganizationDTO dto){
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        OrganizationDeleteVO vo = new OrganizationDeleteVO();
+        Organization organization = dto.getOrganization();
+        vo.setName(organization.getName());
+        vo.setId(organization.getId());
+        return vo;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java
new file mode 100644
index 0000000..4e48170
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java
@@ -0,0 +1,25 @@
+package com.moral.api.pojo.vo.organization;
+
+import com.moral.api.entity.Organization;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.constant.ResponseCodeEnum;
+
+/**
+ * @ClassName OrganizationInsertVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/23 17:14
+ * @Version TODO
+ **/
+public class OrganizationInsertVO extends OrganizationVO {
+
+    public static OrganizationInsertVO convert(OrganizationDTO dto){
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        OrganizationInsertVO vo = new OrganizationInsertVO();
+        Organization organization = dto.getOrganization();
+        vo.setId(organization.getId());
+        vo.setName(organization.getName());
+        return vo;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java
new file mode 100644
index 0000000..a120ba2
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java
@@ -0,0 +1,26 @@
+package com.moral.api.pojo.vo.organization;
+
+
+import com.moral.api.entity.Organization;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.constant.ResponseCodeEnum;
+
+/**
+ * @ClassName OrganizationUpdateVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/24 14:37
+ * @Version TODO
+ **/
+public class OrganizationUpdateVO extends OrganizationVO {
+
+    public static OrganizationUpdateVO convert(OrganizationDTO dto) {
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        OrganizationUpdateVO vo = new OrganizationUpdateVO();
+        Organization organization = dto.getOrganization();
+        vo.setId(organization.getId());
+        vo.setName(organization.getName());
+        return vo;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java
new file mode 100644
index 0000000..d0e6261
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java
@@ -0,0 +1,55 @@
+package com.moral.api.pojo.vo.organization;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.constant.ResponseCodeEnum;
+import lombok.Data;
+
+/**
+ * @ClassName OrganizationInsertVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/23 16:58
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class OrganizationVO {
+
+    private Integer id;
+
+    private Integer parentId;
+
+    private Integer adminUserId;
+
+    private String name;
+
+    private Integer provinceCode;
+
+    private Integer cityCode;
+
+    private Integer areaCode;
+
+    private Long townCode;
+
+    private Long villageCode;
+
+    private String locationLevel;
+
+    private String address;
+
+    private String phone;
+
+    private String email;
+
+    private String wechat;
+
+    private String expireTime;
+
+    private String createTime;
+
+    private String updateTime;
+
+    private String isDelete;
+
+}
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 3f1aa80..69f9ed4 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
@@ -4,7 +4,12 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.moral.api.pojo.dto.account.*;
 import com.moral.api.pojo.dto.login.LoginDTO;
-import com.moral.api.pojo.form.*;
+import com.moral.api.pojo.form.account.AccountDeleteForm;
+import com.moral.api.pojo.form.account.AccountInsertForm;
+import com.moral.api.pojo.form.account.AccountQueryForm;
+import com.moral.api.pojo.form.account.AccountUpdateForm;
+import com.moral.api.pojo.form.login.LoginForm;
+import com.moral.api.pojo.form.login.LogoutForm;
 
 /**
  * <p>
diff --git a/screen-manage/src/main/java/com/moral/api/service/OrganizationService.java b/screen-manage/src/main/java/com/moral/api/service/OrganizationService.java
index 07b4434..a5d89ee 100644
--- a/screen-manage/src/main/java/com/moral/api/service/OrganizationService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/OrganizationService.java
@@ -2,6 +2,12 @@
 
 import com.moral.api.entity.Organization;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
+import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
+import com.moral.api.pojo.form.organization.OrganizationInsertForm;
+import com.moral.api.pojo.form.organization.OrganizationQueryForm;
+import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
 
 /**
  * <p>
@@ -13,4 +19,42 @@
  */
 public interface OrganizationService extends IService<Organization> {
 
+    /** 
+    * @Description: ������������������
+            * @Param: [organizationInsertForm]
+            * @return: void
+            * @Author: ���������
+            * @Date: 2021/3/22
+            */
+    OrganizationDTO insertOrganization(OrganizationInsertForm organizationInsertForm);
+
+    /**
+    * @Description: ������������������
+            * @Param: [organizationUpdateForm]
+            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
+            * @Author: ���������
+            * @Date: 2021/3/24
+            */
+    OrganizationDTO updateOrganization(OrganizationUpdateForm organizationUpdateForm);
+
+    /**
+    * @Description: ������������������
+            * @Param: [organizationDeleteForm]
+            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
+            * @Author: ���������
+            * @Date: 2021/3/25
+            */
+    OrganizationDTO deleteOrganization(OrganizationDeleteForm organizationDeleteForm);
+
+    /**
+    * @Description: ������������������
+            * @Param: [organizationQueryForm]
+            * @return: com.moral.api.pojo.dto.organization.OrganizationQueryDTO
+            * @Author: ���������
+            * @Date: 2021/3/25
+            */
+    OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm);
+
+
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/UserService.java b/screen-manage/src/main/java/com/moral/api/service/UserService.java
index edcb767..3f6af1f 100644
--- a/screen-manage/src/main/java/com/moral/api/service/UserService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/UserService.java
@@ -2,6 +2,7 @@
 
 import com.moral.api.entity.User;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.form.user.UserInsertForm;
 
 /**
  * <p>
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 641d362..08da75a 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
@@ -14,7 +14,12 @@
 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.form.*;
+import com.moral.api.pojo.form.account.AccountDeleteForm;
+import com.moral.api.pojo.form.account.AccountInsertForm;
+import com.moral.api.pojo.form.account.AccountQueryForm;
+import com.moral.api.pojo.form.account.AccountUpdateForm;
+import com.moral.api.pojo.form.login.LoginForm;
+import com.moral.api.pojo.form.login.LogoutForm;
 import com.moral.api.service.ManageAccountService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
@@ -23,15 +28,11 @@
 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;
 import org.springframework.util.ObjectUtils;
 
-import javax.annotation.Resource;
 import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 /**
  * <p>
@@ -58,7 +59,7 @@
     /**
      * @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
      */
@@ -128,7 +129,7 @@
     /**
      * @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
      */
@@ -162,11 +163,11 @@
         List<String> roleIdsStr = accountInsertForm.getRoleIds();
 
         /*������������������������*/
-        ManageAccount exitAccount = new ManageAccount();
-        exitAccount.setAccount(account);
-        exitAccount.setIsDelete(Constants.NOT_DELETE);
+        ManageAccount existAccount = new ManageAccount();
+        existAccount.setAccount(account);
+        existAccount.setIsDelete(Constants.NOT_DELETE);
         QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
-        wrapper.setEntity(exitAccount);
+        wrapper.setEntity(existAccount);
         List<ManageAccount> exitAccounts = manageAccountMapper.selectList(wrapper);
         if (!ObjectUtils.isEmpty(exitAccounts)) {
             accountInsertDTO.setCode(ResponseCodeEnum.ACCOUNT_EXIST.getCode());
@@ -230,32 +231,43 @@
         String mobile = accountQueryForm.getMobile();
         String wechat = accountQueryForm.getWechat();
         String isDelete = accountQueryForm.getIsDelete();
+        String order = accountQueryForm.getOrder();
+        String orderType = accountQueryForm.getOrderType();
 
         //������������
         Page<ManageAccount> page = new Page<>(pageCount, size);
         QueryWrapper<ManageAccount> wrapper = new QueryWrapper();
-        if(!ObjectUtils.isEmpty(accountId)){
-            wrapper.eq("id",accountId);
+        if (!ObjectUtils.isEmpty(accountId)) {
+            wrapper.eq("id", accountId);
         }
 
-        if(!ObjectUtils.isEmpty(userName)){
-            wrapper.like("user_name",userName);
+        if (!ObjectUtils.isEmpty(userName)) {
+            wrapper.like("user_name", userName);
         }
 
-        if(!ObjectUtils.isEmpty(account)){
-            wrapper.like("account",account);
+        if (!ObjectUtils.isEmpty(account)) {
+            wrapper.like("account", account);
         }
 
-        if(!ObjectUtils.isEmpty(email)){
-            wrapper.like("email",email);
+        if (!ObjectUtils.isEmpty(email)) {
+            wrapper.like("email", email);
         }
 
-        if(!ObjectUtils.isEmpty(mobile)){
-            wrapper.like("mobile",mobile);
+        if (!ObjectUtils.isEmpty(mobile)) {
+            wrapper.like("mobile", mobile);
         }
 
-        if(!ObjectUtils.isEmpty(wechat)){
-            wrapper.like("wechat",wechat);
+        if (!ObjectUtils.isEmpty(wechat)) {
+            wrapper.like("wechat", wechat);
+        }
+
+        if (!ObjectUtils.isEmpty(order)) {
+            if (!ObjectUtils.isEmpty(orderType)) {
+                if (orderType.equals(Constants.ORDER_ASC))
+                    wrapper.orderByAsc(order);
+                else
+                    wrapper.orderByDesc(order);
+            }
         }
 
         if (!ObjectUtils.isEmpty(isDelete))
@@ -301,13 +313,13 @@
         AccountUpdateDTO accountUpdateDTO = new AccountUpdateDTO();
         //������
         Integer accountId = accountUpdateForm.getAccountId();
+        String password = accountUpdateForm.getPassword();
         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);
@@ -319,8 +331,13 @@
             accountUpdateDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
             return accountUpdateDTO;
         }
+        //������password
+        if(!ObjectUtils.isEmpty(password)){
+            password = MD5Utils.saltMD5(AESUtils.decrypt(password));
+        }
         //������ManageAccount���
         ManageAccount manageAccount = new ManageAccount();
+        manageAccount.setPassword(password);
         manageAccount.setEmail(email);
         manageAccount.setMobile(mobile);
         manageAccount.setWechat(wechat);
@@ -328,24 +345,26 @@
         QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
         wrapper.eq("id", accountId);
         manageAccountMapper.update(manageAccount, wrapper);
-        //������ManageAccountRole���
+        //���������������������������������ManageAccountRole���
         /*������������������������������*/
-        QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>();
-        deleteWrapper.eq("account_id", accountId);
-        manageAccountRoleMapper.delete(deleteWrapper);
-        /*������������������*/
-        for (Integer roleId : roleIds) {
-            ManageAccountRole manageAccountRole = new ManageAccountRole();
-            manageAccountRole.setAccountId(accountId);
-            manageAccountRole.setRoleId(roleId);
-            manageAccountRoleMapper.insert(manageAccountRole);
+        if (!ObjectUtils.isEmpty(roleIds)) {
+            QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>();
+            deleteWrapper.eq("account_id", accountId);
+            manageAccountRoleMapper.delete(deleteWrapper);
+            /*������������������*/
+            for (Integer roleId : roleIds) {
+                ManageAccountRole manageAccountRole = new ManageAccountRole();
+                manageAccountRole.setAccountId(accountId);
+                manageAccountRole.setRoleId(roleId);
+                manageAccountRoleMapper.insert(manageAccountRole);
+            }
+            //������������������������
+            List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds);
+            accountUpdateDTO.setRoles(manageRoles);
         }
-        //������������������������
-        List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds);
         //������������������
         accountUpdateDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
         accountUpdateDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
-        accountUpdateDTO.setRoles(manageRoles);
         accountUpdateDTO.setAccount(manageAccountMapper.selectById(accountId));
         return accountUpdateDTO;
     }
@@ -370,7 +389,7 @@
         manageAccount.setId(accountId);
         QueryWrapper<ManageAccount> queryWrapper = new QueryWrapper<>();
         queryWrapper.setEntity(manageAccount);
-        ManageAccount existManageAccount = manageAccount.selectOne(queryWrapper);
+        ManageAccount existManageAccount = manageAccountMapper.selectOne(queryWrapper);
         if (ObjectUtils.isEmpty(existManageAccount)) {
             accountDeleteDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
             accountDeleteDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
@@ -391,8 +410,6 @@
         accountDeleteDTO.setAccount(existManageAccount);
         return accountDeleteDTO;
     }
-
-
 
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
index 827683d..dc16393 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -1,10 +1,26 @@
 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.Organization;
 import com.moral.api.mapper.OrganizationMapper;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
+import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
+import com.moral.api.pojo.form.organization.OrganizationInsertForm;
+import com.moral.api.pojo.form.organization.OrganizationQueryForm;
+import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
 import com.moral.api.service.OrganizationService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +33,182 @@
 @Service
 public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Organization> implements OrganizationService {
 
+    @Autowired
+    OrganizationMapper organizationMapper;
+
+    /**
+     * @Description: ������������������
+     * @Param: [organizationInsertForm]
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/3/22
+     */
+    @Override
+    @Transactional
+    public OrganizationDTO insertOrganization(OrganizationInsertForm organizationInsertForm) {
+        OrganizationDTO organizationDTO = new OrganizationDTO();
+        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
+        //form������entity
+        Organization organization = organizationInsertForm.formConvertEntity();
+        //������������������������������������
+        Organization existOrganization = new Organization();
+        existOrganization.setName(organization.getName());
+        existOrganization.setIsDelete(Constants.NOT_DELETE);
+        queryWrapper.setEntity(existOrganization);
+        List<Organization> existOrganizations = organizationMapper.selectList(queryWrapper);
+        if (!ObjectUtils.isEmpty(existOrganizations)) {
+            organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_EXIST.getCode());
+            organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_EXIST.getMsg());
+            return organizationDTO;
+        }
+        //���������������������������
+        Integer parentId = organization.getParentId();
+        Organization parentOrganization = new Organization();
+        if (!ObjectUtils.isEmpty(parentId)) {
+            parentOrganization.setId(parentId);
+            parentOrganization.setIsDelete(Constants.NOT_DELETE);
+            queryWrapper.setEntity(parentOrganization);
+            parentOrganization = organizationMapper.selectOne(queryWrapper);
+            if (ObjectUtils.isEmpty(parentOrganization)) {
+                organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getCode());
+                organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getMsg());
+                return organizationDTO;
+            }
+        }
+        //������������
+        organizationMapper.insert(organization);
+        //������DTO������
+        organizationDTO.setParentOrganization(parentOrganization);
+        organizationDTO.setOrganization(organization);
+        organizationDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return organizationDTO;
+    }
+
+    /**
+    * @Description: ������������������
+            * @Param: [organizationUpdateForm]
+            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
+            * @Author: ���������
+            * @Date: 2021/3/24
+            */
+    @Override
+    @Transactional
+    public OrganizationDTO updateOrganization(OrganizationUpdateForm organizationUpdateForm) {
+        OrganizationDTO organizationDTO = new OrganizationDTO();
+        //form���entity
+        Organization organization = organizationUpdateForm.formConvertEntity();
+        //������������������������
+        QueryWrapper<Organization> existWrapper = new QueryWrapper<>();
+        Organization existOrganization = new Organization();
+        existOrganization.setId(organization.getId());
+        existOrganization.setIsDelete(Constants.NOT_DELETE);
+        existWrapper.setEntity(existOrganization);
+        existOrganization = organizationMapper.selectOne(existWrapper);
+        if(ObjectUtils.isEmpty(existOrganization)){
+            organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode());
+            organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
+            return organizationDTO;
+        }
+        //������������������������������������������������������
+        Integer parentId = organization.getParentId();
+        Organization parentOrganization = new Organization();
+        if (!ObjectUtils.isEmpty(parentId)&&parentId!=0) {
+            QueryWrapper<Organization> existParentWrapper = new QueryWrapper<>();
+            parentOrganization.setId(parentId);
+            parentOrganization.setIsDelete(Constants.NOT_DELETE);
+            existParentWrapper.setEntity(parentOrganization);
+            parentOrganization = organizationMapper.selectOne(existParentWrapper);
+            if (ObjectUtils.isEmpty(parentOrganization)) {
+                organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getCode());
+                organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_PARENT_NOT_EXIST.getMsg());
+                return organizationDTO;
+            }
+        }
+        //������������
+        organizationMapper.updateById(organization);
+        //������������������������
+        organization = organizationMapper.selectById(organization.getId());
+
+        //������DTO������
+        organizationDTO.setParentOrganization(parentOrganization);
+        organizationDTO.setOrganization(organization);
+        organizationDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return organizationDTO;
+    }
+
+    /**
+    * @Description: ������������������
+            * @Param: [organizationDeleteForm]
+            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
+            * @Author: ���������
+            * @Date: 2021/3/25
+            */
+    @Override
+    @Transactional
+    public OrganizationDTO deleteOrganization(OrganizationDeleteForm form) {
+        OrganizationDTO dto = new OrganizationDTO();
+        //������
+        Integer id = form.getOrganizationId();
+        //������������������������
+        Organization existOrganization = new Organization();
+        existOrganization.setIsDelete(Constants.NOT_DELETE);
+        existOrganization.setId(id);
+        QueryWrapper queryExistWrapper = new QueryWrapper();
+        queryExistWrapper.setEntity(existOrganization);
+        existOrganization = organizationMapper.selectOne(queryExistWrapper);
+        if(ObjectUtils.isEmpty(existOrganization)){
+            dto.setCode(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode());
+            dto.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
+            return dto;
+        }
+        //������������������
+        UpdateWrapper deleteWrapper = new UpdateWrapper();
+        deleteWrapper.eq("id",id);
+        deleteWrapper.set("is_delete",Constants.DELETE);
+        organizationMapper.update(null,deleteWrapper);
+        //������������������������������������������������������������������parentId���0
+        if(form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG)){
+            UpdateWrapper deleteChildrenWrapper = new UpdateWrapper();
+            deleteChildrenWrapper.eq("parent_id",id);
+            deleteChildrenWrapper.set("is_delete",Constants.DELETE);
+            organizationMapper.update(null,deleteChildrenWrapper);
+        }else{
+            UpdateWrapper updateChildrenWrapper = new UpdateWrapper();
+            updateChildrenWrapper.eq("parent_id",id);
+            updateChildrenWrapper.set("parent_id",0);
+            organizationMapper.update(null,updateChildrenWrapper);
+        }
+
+        dto.setOrganization(existOrganization);
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+    /**
+    * @Description: ������������������
+            * @Param: [organizationQueryForm]
+            * @return: com.moral.api.pojo.dto.organization.OrganizationQueryDTO
+            * @Author: ���������
+            * @Date: 2021/3/25
+            */
+    @Override
+    public OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm) {
+        OrganizationQueryDTO dto = new OrganizationQueryDTO();
+        //������
+        Organization organization = organizationQueryForm.formConvertEntity();
+        Integer pageCount = organizationQueryForm.getPage();
+        Integer size = organizationQueryForm.getSize();
+        String order = organizationQueryForm.getOrder();
+        String orderType = organizationQueryForm.getOrderType();
+
+        //������������
+        Page<Organization> page = new Page<>(pageCount,size);
+        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
+        return null;
+    }
+
+
 }
diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml
index 6f70051..953888b 100644
--- a/screen-manage/src/main/resources/application-dev.yml
+++ b/screen-manage/src/main/resources/application-dev.yml
@@ -57,7 +57,7 @@
     filters: stat
     type: com.alibaba.druid.pool.DruidDataSource
     max-wait: 60000
-    url: jdbc:mysql://39.97.177.149:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
+    url: jdbc:mysql://39.97.177.149:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
     password: chenkaiyu111
     test-on-borrow: false
@@ -125,6 +125,11 @@
       - /account/yanzhengma
       - /verificationCode/get
       - /verificationCode/verify
+      - /verificationCode/config
+      - /organization/insert
+      - /organization/update
+      - /organization/delete
+
 AES:
   KEY:
     AD42F7787B035B7580000EF93BE20BAD

--
Gitblit v1.8.0