From 52d8cf200d7a54890845d4c468c24b6ab97a4762 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 06 May 2021 14:41:34 +0800
Subject: [PATCH] screen-manage                 前台用户增加以及删除功能

---
 screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuQueryNamesForm.java                 |   25 +
 screen-manage/src/main/java/com/moral/api/service/UserService.java                               |   13 
 screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserQueryVO.java                          |   74 +++
 screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java             |   55 +-
 screen-manage/src/main/java/com/moral/api/pojo/dto/menu/MenuQueryNamesDTO.java                   |   22 
 screen-manage/src/main/java/com/moral/api/pojo/form/user/UserInsertForm.java                     |  100 ++++
 screen-manage/src/main/java/com/moral/api/pojo/form/user/UserUpdateForm.java                     |   97 ++++
 screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java                      |  205 ++++++++
 screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuUpdateVO.java                         |   27 +
 screen-manage/src/main/java/com/moral/api/controller/MenuController.java                         |  107 +---
 screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNamesDTO.java   |    2 
 screen-manage/src/main/java/com/moral/api/service/MenuService.java                               |   24 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryAllNamesVO.java  |    8 
 screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java                      |  168 +++++-
 screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java                             |    5 
 screen-manage/src/main/java/com/moral/api/pojo/form/user/UserQueryForm.java                      |   63 ++
 screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserDTO.java                             |   25 +
 screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserUpdateVO.java                         |   24 +
 screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java                 |   10 
 screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNamesForm.java |   20 
 screen-manage/src/main/java/com/moral/api/service/OrganizationService.java                       |   13 
 screen-manage/src/main/java/com/moral/api/controller/UserController.java                         |   85 +++
 screen-manage/src/main/java/com/moral/api/entity/User.java                                       |    8 
 screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserQueryDTO.java                        |   30 +
 /dev/null                                                                                        |   17 
 screen-manage/src/main/resources/application-dev.yml                                             |   20 
 screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryNamesVO.java                     |   51 ++
 screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserVO.java                               |   30 +
 screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuUpdateForm.java                     |   49 ++
 screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java              |   37 
 screen-manage/src/main/java/com/moral/api/pojo/form/user/UserDeleteForm.java                     |   22 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java                   |    1 
 32 files changed, 1,217 insertions(+), 220 deletions(-)

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 2ac36bb..44028e3 100644
--- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
+++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -41,7 +41,10 @@
     DICTTYPE_EXIST(-27,"������������������������"),
     DICTDATA_KEY_EXIST(-28,"������������Key������������"),
     DICTDATA_KEY_NOT_EXIST(-29,"������������Key���������"),
-    USERNAME_INVALID(-30,"������������������")
+    USERNAME_INVALID(-30,"������������������"),
+    USER_NOT_EXIST(-31,"���������������"),
+    USER_EXIST(-32,"������������������"),
+    ORGANIZATION_USER_EXIST(-33,"������������������������")
     ;
     private final Integer code;
     private final String  msg;
diff --git a/screen-manage/src/main/java/com/moral/api/controller/MenuController.java b/screen-manage/src/main/java/com/moral/api/controller/MenuController.java
index a3e3447..aef663a 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/MenuController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/MenuController.java
@@ -1,13 +1,13 @@
 package com.moral.api.controller;
 
-import com.moral.api.entity.Menu;
 import com.moral.api.pojo.dto.menu.MenuDTO;
+import com.moral.api.pojo.dto.menu.MenuQueryNamesDTO;
 import com.moral.api.pojo.dto.menu.MenuQueryDTO;
 import com.moral.api.pojo.form.menu.MenuDeleteForm;
 import com.moral.api.pojo.form.menu.MenuInsertForm;
-import com.moral.api.pojo.vo.menu.MenuDeleteVO;
-import com.moral.api.pojo.vo.menu.MenuInsertVO;
-import com.moral.api.pojo.vo.menu.MenuQueryVO;
+import com.moral.api.pojo.form.menu.MenuQueryNamesForm;
+import com.moral.api.pojo.form.menu.MenuUpdateForm;
+import com.moral.api.pojo.vo.menu.*;
 import com.moral.api.service.MenuService;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
@@ -15,10 +15,6 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 /**
  * @ClassName MenuController
@@ -33,75 +29,9 @@
 @RestController
 @RequestMapping("/menu")
 public class MenuController {
+
     @Autowired
     MenuService menuService;
-
-    @GetMapping("queryMock")
-    public ResultMessage queryMock() {
-        MenuQueryDTO dto = new MenuQueryDTO();
-        Menu menu1 = new Menu();
-        Menu menu11 = new Menu();
-        Menu menu111 = new Menu();
-        Menu menu12 = new Menu();
-        Menu menu121 = new Menu();
-        Menu menu13 = new Menu();
-
-        Menu menu2 = new Menu();
-        Menu menu21 = new Menu();
-        Menu menu211 = new Menu();
-        Menu menu22 = new Menu();
-        Menu menu23 = new Menu();
-        Menu menu24 = new Menu();
-        Menu menu241 = new Menu();
-        Menu menu2411 = new Menu();
-        menu1.setName("menu 1");
-        menu1.setId(1);
-        menu11.setName("menu 1-1");
-        menu11.setId(2);
-        menu111.setName("menu 1-1-1");
-        menu111.setId(3);
-        menu12.setName("menu 1-2");
-        menu12.setId(4);
-        menu121.setName("menu 1-2-1");
-        menu121.setId(5);
-        menu13.setName("menu 1-3");
-        menu13.setId(6);
-        menu2.setName("menu 2");
-        menu2.setId(7);
-        menu21.setName("menu 2-1");
-        menu21.setId(8);
-        menu211.setName("menu 2-1-1");
-        menu211.setId(9);
-        menu22.setName("menu 2-2");
-        menu22.setId(10);
-        menu23.setName("menu 2-3");
-        menu23.setId(11);
-        menu24.setName("menu 2-4");
-        menu24.setId(12);
-        menu241.setName("menu 2-4-1");
-        menu241.setId(13);
-        menu2411.setName("menu 2-4-1-1");
-        menu2411.setId(14);
-        menu12.setChildren(Arrays.asList(menu121));
-        menu11.setChildren(Arrays.asList(menu111));
-        menu1.setChildren(Arrays.asList(menu11, menu12, menu13));
-        menu241.setChildren(Arrays.asList(menu2411));
-        menu24.setChildren(Arrays.asList(menu241));
-        menu21.setChildren(Arrays.asList(menu211));
-        menu2.setChildren(Arrays.asList(menu21, menu22, menu23, menu24));
-
-        MenuDTO dto1 = new MenuDTO();
-        MenuDTO dto2 = new MenuDTO();
-        dto1.setMenu(menu1);
-        dto2.setMenu(menu2);
-
-        dto.setDtos(Arrays.asList(dto1, dto2));
-        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
-        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
-
-        MenuQueryVO vo = MenuQueryVO.convert(dto);
-        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
-    }
 
     @GetMapping("query")
     public ResultMessage query() {
@@ -110,6 +40,17 @@
 
         //���������������������������
         MenuQueryVO vo = MenuQueryVO.convert(dto);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
+    }
+
+    @GetMapping("queryNames")
+    public ResultMessage queryNames(MenuQueryNamesForm form){
+        //������������������
+        MenuQueryNamesDTO dto = menuService.queryNames(form);
+
+        //������������������������
+        MenuQueryNamesVO vo = MenuQueryNamesVO.convert(dto);
 
         return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
     }
@@ -146,4 +87,20 @@
         return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
     }
 
+    @PostMapping("update")
+    public ResultMessage update(@RequestBody MenuUpdateForm form){
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        MenuDTO dto = menuService.updateMenu(form);
+
+        //������������������������
+        MenuUpdateVO vo = MenuUpdateVO.convert(dto);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
+    }
+
 }
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
index ba799f4..fb183ff 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
@@ -2,12 +2,10 @@
 
 import com.moral.api.pojo.dto.organization.OrganizationDTO;
 import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
-import com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO;
 import com.moral.api.pojo.form.organization.*;
 import com.moral.api.pojo.vo.organization.*;
 import com.moral.api.service.OrganizationService;
-import com.moral.api.util.LogUtils;
-import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import io.swagger.annotations.Api;
@@ -112,13 +110,13 @@
     }
 
     @GetMapping("queryNames")
-    public ResultMessage queryNames(OrganizationQueryNameForm form){
+    public ResultMessage queryNames(OrganizationQueryNamesForm form){
 
         //������������������
-        OrganizationQueryNameDTO dto = organizationService.queryOrganizationNames(form);
+        OrganizationQueryNamesDTO dto = organizationService.queryNames(form);
 
         //������������������������
-        OrganizationQueryNamesVO vo = OrganizationQueryNamesVO.convert(dto);
+        OrganizationQueryAllNamesVO vo = OrganizationQueryAllNamesVO.convert(dto);
 
         return new ResultMessage(dto.getCode(),dto.getMsg(),vo);
     }
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
index 0d4006c..2f9f886 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/UserController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/UserController.java
@@ -1,11 +1,19 @@
 package com.moral.api.controller;
 
+import com.moral.api.pojo.dto.user.UserDTO;
+import com.moral.api.pojo.dto.user.UserQueryDTO;
+import com.moral.api.pojo.form.user.UserDeleteForm;
+import com.moral.api.pojo.form.user.UserInsertForm;
+import com.moral.api.pojo.form.user.UserQueryForm;
+import com.moral.api.pojo.form.user.UserUpdateForm;
+import com.moral.api.pojo.vo.user.UserQueryVO;
+import com.moral.api.service.UserService;
+import com.moral.constant.ResponseCodeEnum;
 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;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @ClassName UserController
@@ -19,9 +27,76 @@
 @RestController
 @RequestMapping("/user")
 public class UserController {
+    @Autowired
+    UserService userService;
+
+    @GetMapping("query")
+    public ResultMessage query(UserQueryForm form) {
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        UserQueryDTO dto = userService.queryUsers(form);
+
+        //������������������������
+        UserQueryVO vo = UserQueryVO.convert(dto);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
+    }
+
+    @PostMapping("update")
+    public ResultMessage update(@RequestBody UserUpdateForm form){
+
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������������
+        UserDTO conditionDTO = form.paramValid();
+        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
+        }
+
+        //������������������
+        UserDTO dto = userService.updateUser(form);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
+    }
+
+    @PostMapping("delete")
+    public ResultMessage delete(@RequestBody UserDeleteForm form){
+
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        UserDTO dto = userService.deleteUser(form);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
+    }
 
     @PostMapping("insert")
-    public ResultMessage insert(){
-        return null;
+    public ResultMessage insert(@RequestBody UserInsertForm form){
+
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������������
+        UserDTO conditionDTO = form.paramValid();
+        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
+        }
+
+        //������������������
+        UserDTO dto = userService.insertUser(form);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
     }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/entity/User.java b/screen-manage/src/main/java/com/moral/api/entity/User.java
index 9e744ab..afe45ab 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/User.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/User.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;
 
@@ -71,17 +73,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/pojo/dto/menu/MenuQueryNamesDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/menu/MenuQueryNamesDTO.java
new file mode 100644
index 0000000..eb123e5
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/menu/MenuQueryNamesDTO.java
@@ -0,0 +1,22 @@
+package com.moral.api.pojo.dto.menu;
+
+import com.moral.api.entity.Menu;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName MenuQueryByNameDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 10:49
+ * @Version TODO
+ **/
+@Data
+public class MenuQueryNamesDTO {
+    private Integer code;
+
+    private String msg;
+
+    List<Menu> Menus;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNameDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNamesDTO.java
similarity index 91%
rename from screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNameDTO.java
rename to screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNamesDTO.java
index c915a94..bbed4e0 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNameDTO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNamesDTO.java
@@ -13,7 +13,7 @@
  * @Version TODO
  **/
 @Data
-public class OrganizationQueryNameDTO {
+public class OrganizationQueryNamesDTO {
 
     private Integer code;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserDTO.java
new file mode 100644
index 0000000..ae87962
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserDTO.java
@@ -0,0 +1,25 @@
+package com.moral.api.pojo.dto.user;
+
+import com.moral.api.entity.Group;
+import com.moral.api.entity.Organization;
+import com.moral.api.entity.User;
+import lombok.Data;
+
+/**
+ * @ClassName UserDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 14:53
+ * @Version TODO
+ **/
+@Data
+public class UserDTO {
+
+    private Integer code;
+
+    private String msg;
+
+    private User user;
+
+    private Organization organization;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserQueryDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserQueryDTO.java
new file mode 100644
index 0000000..399836a
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/user/UserQueryDTO.java
@@ -0,0 +1,30 @@
+package com.moral.api.pojo.dto.user;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName UserQueryDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 14:53
+ * @Version TODO
+ **/
+@Data
+public class UserQueryDTO {
+
+    private Integer code;
+
+    private String msg;
+
+    private long pages;
+
+    private long total;
+
+    private long current;
+
+    private long size;
+
+    private List<UserDTO> userDTOS;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuQueryNamesForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuQueryNamesForm.java
new file mode 100644
index 0000000..b09e95a
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuQueryNamesForm.java
@@ -0,0 +1,25 @@
+package com.moral.api.pojo.form.menu;
+
+import lombok.Data;
+
+/**
+ * @ClassName MenuQueryNameForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 10:25
+ * @Version TODO
+ **/
+@Data
+public class MenuQueryNamesForm {
+
+    private Integer id;
+
+    private String name;
+
+    public boolean valid(){
+        if(id==null||id==0){
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuUpdateForm.java
new file mode 100644
index 0000000..c48f043
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/menu/MenuUpdateForm.java
@@ -0,0 +1,49 @@
+package com.moral.api.pojo.form.menu;
+
+import com.moral.api.entity.Menu;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * @ClassName MenuUpdateForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/27 11:35
+ * @Version TODO
+ **/
+@Data
+public class MenuUpdateForm {
+
+    private Integer id;
+
+    private String name;
+
+    private String url;
+
+    private Integer parentId;
+
+    private Integer order;
+
+    public boolean valid(){
+        if(ObjectUtils.isEmpty(id))
+            return false;
+        if(
+                ObjectUtils.isEmpty(name)&&
+                        ObjectUtils.isEmpty(url)&&
+                        ObjectUtils.isEmpty(parentId)&&
+                        ObjectUtils.isEmpty(order)
+                )
+            return false;
+        return true;
+    }
+
+    public Menu formConvertEntity(){
+        Menu menu = new Menu();
+        menu.setId(id);
+        menu.setName(name);
+        menu.setUrl(url);
+        menu.setParentId(parentId);
+        menu.setOrder(order);
+        return menu;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNameForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNameForm.java
deleted file mode 100644
index 741ff56..0000000
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNameForm.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.moral.api.pojo.form.organization;
-
-import lombok.Data;
-
-/**
- * @ClassName OrganizationQueryNameForm
- * @Description ���������������������������������������������Id
- * @Author ���������
- * @Date 2021/4/13 9:39
- * @Version TODO
- **/
-@Data
-public class OrganizationQueryNameForm {
-
-    private String name;
-
-}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNamesForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNamesForm.java
new file mode 100644
index 0000000..1b95794
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNamesForm.java
@@ -0,0 +1,20 @@
+package com.moral.api.pojo.form.organization;
+
+import lombok.Data;
+
+/**
+ * @ClassName OrganizationQueryNamesForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/6 13:18
+ * @Version TODO
+ **/
+@Data
+public class OrganizationQueryNamesForm {
+
+    private Integer id;
+
+    private Integer adminUserId;
+
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserDeleteForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserDeleteForm.java
new file mode 100644
index 0000000..e16dc9a
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserDeleteForm.java
@@ -0,0 +1,22 @@
+package com.moral.api.pojo.form.user;
+
+import lombok.Data;
+
+/**
+ * @ClassName UserDeleteForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/6 9:31
+ * @Version TODO
+ **/
+@Data
+public class UserDeleteForm {
+    private Integer id;
+
+    public boolean valid(){
+        if(id==null||id==0){
+            return false;
+        }
+        return true;
+    }
+}
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
index 23d6dcb..2c0cfc8 100644
--- 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
@@ -1,14 +1,112 @@
 package com.moral.api.pojo.form.user;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.moral.api.entity.User;
+import com.moral.api.pojo.dto.user.UserDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.AESUtils;
+import com.moral.util.MD5Utils;
+import com.moral.util.RegexUtils;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+
 /**
  * @ClassName UserInsertForm
  * @Description TODO
  * @Author ���������
- * @Date 2021/3/22 14:05
+ * @Date 2021/5/6 10:35
  * @Version TODO
  **/
+@Data
 public class UserInsertForm {
 
+    private String account;
 
+    private String password;
+
+    private String userName;
+
+    private Integer organizationId;
+
+    private String email;
+
+    private String mobile;
+
+    private String wechat;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date expireTime;
+
+
+    public boolean valid() {
+        if (
+                ObjectUtils.isEmpty(account) ||
+                        ObjectUtils.isEmpty(password) ||
+                        ObjectUtils.isEmpty(userName) ||
+                        ObjectUtils.isEmpty(organizationId) ||
+                        ObjectUtils.isEmpty(expireTime)
+                )
+            return false;
+        return true;
+    }
+
+    public UserDTO paramValid() {
+        UserDTO dto = new UserDTO();
+        //������������������������������
+        if (!RegexUtils.checkAccount(account)) {
+            dto.setCode(ResponseCodeEnum.ACCOUNT_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.ACCOUNT_INVALID.getMsg());
+            return dto;
+        }
+        //���������������������������������
+        if(!RegexUtils.checkChinese(userName)||userName.contains(" ")){
+            dto.setCode(ResponseCodeEnum.USERNAME_INVALID.getCode());
+            dto.setMsg(ResponseCodeEnum.USERNAME_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 (!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;
+            }
+        }
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+    public User formConvertEntity() {
+        User user = new User();
+        user.setAccount(account);
+        user.setPassword(MD5Utils.saltMD5(AESUtils.decrypt(password)));
+        user.setUserName(userName);
+        user.setOrganizationId(organizationId);
+        user.setEmail(email);
+        user.setMobile(mobile);
+        user.setWechat(wechat);
+        user.setExpireTime(expireTime);
+        user.setIsAdmin(true);
+        return user;
+    }
 }
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserQueryForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserQueryForm.java
new file mode 100644
index 0000000..a842bf7
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserQueryForm.java
@@ -0,0 +1,63 @@
+package com.moral.api.pojo.form.user;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+
+/**
+ * @ClassName UserQueryForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 10:09
+ * @Version TODO
+ **/
+@Data
+public class UserQueryForm {
+
+    private Integer page;
+
+    private Integer size;
+
+    private Integer organizationId;
+
+    private String email;
+
+    private String mobile;
+
+    private String wechat;
+
+    private Integer isDelete;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date createStartTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date createEndTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date expireStartTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date expireEndTime;
+
+    private String order;
+
+    private String orderType;
+
+    public boolean valid(){
+        if (
+                ObjectUtils.isEmpty(page)||
+                        ObjectUtils.isEmpty(size)
+                )
+            return false;
+        return true;
+    }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserUpdateForm.java
new file mode 100644
index 0000000..0a73bb5
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/user/UserUpdateForm.java
@@ -0,0 +1,97 @@
+package com.moral.api.pojo.form.user;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.moral.api.entity.User;
+import com.moral.api.pojo.dto.user.UserDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.AESUtils;
+import com.moral.util.DateUtils;
+import com.moral.util.MD5Utils;
+import com.moral.util.RegexUtils;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+
+/**
+ * @ClassName UserUpdateForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/29 13:26
+ * @Version TODO
+ **/
+@Data
+public class UserUpdateForm {
+
+    private Integer id;
+
+    private String password;
+
+    private String email;
+
+    private String mobile;
+
+    private String wechat;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date expireTime;
+
+    public boolean valid(){
+        if(ObjectUtils.isEmpty(id))
+            return false;
+        if(
+                ObjectUtils.isEmpty(password)&&
+                        ObjectUtils.isEmpty(email)&&
+                        ObjectUtils.isEmpty(mobile)&&
+                        ObjectUtils.isEmpty(wechat)&&
+                        ObjectUtils.isEmpty(expireTime)
+                )
+            return false;
+        return true;
+    }
+
+    public User formConvertEntity(){
+        User user = new User();
+        user.setId(id);
+        if (!ObjectUtils.isEmpty(password))
+            user.setPassword(MD5Utils.saltMD5(AESUtils.decrypt(password)));
+        user.setEmail(email);
+        user.setMobile(mobile);
+        user.setWechat(wechat);
+        user.setExpireTime(DateUtils.getDateOfDay(expireTime,1));
+        return user;
+    }
+
+    public UserDTO paramValid() {
+        UserDTO dto = new UserDTO();
+        //���������������������������������
+        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/vo/account/AccountUpdateVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java
index 57cd1de..4be3321 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
@@ -49,4 +49,5 @@
 
         return vo;
     }
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryNamesVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryNamesVO.java
new file mode 100644
index 0000000..e687db9
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryNamesVO.java
@@ -0,0 +1,51 @@
+package com.moral.api.pojo.vo.menu;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.entity.Menu;
+import com.moral.api.pojo.dto.menu.MenuQueryNamesDTO;
+import com.moral.constant.ResponseCodeEnum;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName MenuQueryAllNamesVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 11:08
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class MenuQueryNamesVO {
+
+    List<MenuVO> menuVOs;
+
+    public static MenuQueryNamesVO convert(MenuQueryNamesDTO dto){
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        MenuQueryNamesVO vo = new MenuQueryNamesVO();
+        List<Menu> menus = dto.getMenus();
+        List<MenuVO> vos = new ArrayList<>();
+
+        if(!ObjectUtils.isEmpty(menus)){
+            for (Menu menu : menus) {
+                MenuVO menuVO = convertToQueryPage(menu);
+                vos.add(menuVO);
+            }
+        }
+
+        vo.setMenuVOs(vos);
+        return vo;
+    }
+
+    private static MenuVO convertToQueryPage(Menu menu){
+        MenuVO vo = new MenuVO();
+        vo.setId(menu.getId());
+        vo.setName(menu.getName());
+        return vo;
+    }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuUpdateVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuUpdateVO.java
new file mode 100644
index 0000000..6d1b551
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuUpdateVO.java
@@ -0,0 +1,27 @@
+package com.moral.api.pojo.vo.menu;
+
+import com.moral.api.entity.Menu;
+import com.moral.api.pojo.dto.menu.MenuDTO;
+import com.moral.constant.ResponseCodeEnum;
+
+/**
+ * @ClassName MenuUpdateVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/27 11:59
+ * @Version TODO
+ **/
+public class MenuUpdateVO extends MenuVO {
+    public static MenuUpdateVO convert(MenuDTO dto) {
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        MenuUpdateVO vo = new MenuUpdateVO();
+        Menu menu = dto.getMenu();
+        vo.setId(menu.getId());
+        vo.setParentId(menu.getParentId());
+        vo.setOrder(menu.getOrder());
+        vo.setUrl(menu.getUrl());
+        vo.setName(menu.getName());
+        return vo;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryNamesVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryAllNamesVO.java
similarity index 86%
rename from screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryNamesVO.java
rename to screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryAllNamesVO.java
index c04ed20..30160fb 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryNamesVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryAllNamesVO.java
@@ -2,7 +2,7 @@
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.moral.api.entity.Organization;
-import com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO;
 import com.moral.constant.ResponseCodeEnum;
 import lombok.Data;
 import org.springframework.util.ObjectUtils;
@@ -19,15 +19,15 @@
  **/
 @Data
 @JsonInclude(JsonInclude.Include.NON_EMPTY)
-public class OrganizationQueryNamesVO  {
+public class OrganizationQueryAllNamesVO {
 
     private List<OrganizationVO> organizationVOs;
 
-    public static OrganizationQueryNamesVO convert(OrganizationQueryNameDTO dto){
+    public static OrganizationQueryAllNamesVO convert(OrganizationQueryNamesDTO dto){
         if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
             return null;
 
-        OrganizationQueryNamesVO vo = new OrganizationQueryNamesVO();
+        OrganizationQueryAllNamesVO vo = new OrganizationQueryAllNamesVO();
         List<OrganizationVO> vos = new ArrayList<>();
         List<Organization> organizations = dto.getOrganizations();
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserQueryVO.java
new file mode 100644
index 0000000..fc63b3e
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserQueryVO.java
@@ -0,0 +1,74 @@
+package com.moral.api.pojo.vo.user;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.entity.Organization;
+import com.moral.api.entity.User;
+import com.moral.api.pojo.dto.user.UserDTO;
+import com.moral.api.pojo.dto.user.UserQueryDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.DateUtils;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName UserQueryVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 14:58
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class UserQueryVO {
+
+    private long pages;
+
+    private long total;
+
+    private long current;
+
+    private long size;
+
+    private List<UserVO> userVOs;
+
+    public static UserQueryVO convert(UserQueryDTO dto) {
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        UserQueryVO vo = new UserQueryVO();
+        long pages = dto.getPages();
+        long total = dto.getTotal();
+        long current = dto.getCurrent();
+        long size = dto.getSize();
+        List<UserDTO> dtos = dto.getUserDTOS();
+        List<UserVO>  userVOs = new ArrayList<>();
+        if(!ObjectUtils.isEmpty(dtos)){
+            for (UserDTO userDTO : dtos) {
+                UserVO userVO = convertToQueryPage(userDTO);
+                userVOs.add(userVO);
+            }
+        }
+        vo.setPages(pages);
+        vo.setTotal(total);
+        vo.setCurrent(current);
+        vo.setSize(size);
+        vo.setUserVOs(userVOs);
+        return vo;
+    }
+
+    private static UserVO convertToQueryPage(UserDTO dto){
+        UserVO vo = new UserVO();
+        User user = dto.getUser();
+        Organization organization = dto.getOrganization();
+        vo.setAccount(user.getAccount());
+        vo.setOrganizationName(organization.getName());
+        vo.setId(user.getId());
+        vo.setCreateTime(DateUtils.dateToDateString(user.getCreateTime(),"yyyy-MM-dd"));
+        vo.setExpireTime(DateUtils.dateToDateString(user.getExpireTime(),"yyyy-MM-dd"));
+        vo.setEmail(user.getEmail());
+        vo.setMobile(user.getMobile());
+        return vo;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserUpdateVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserUpdateVO.java
new file mode 100644
index 0000000..ce21367
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserUpdateVO.java
@@ -0,0 +1,24 @@
+package com.moral.api.pojo.vo.user;
+
+import com.moral.api.entity.Organization;
+import com.moral.api.entity.User;
+import com.moral.api.pojo.dto.user.UserDTO;
+import com.moral.constant.ResponseCodeEnum;
+
+/**
+ * @ClassName UserUpdateVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/29 17:15
+ * @Version TODO
+ **/
+public class UserUpdateVO extends UserVO{
+    public UserUpdateVO convert(UserDTO dto){
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        UserUpdateVO vo = new UserUpdateVO();
+        User user = dto.getUser();
+        return null;
+
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserVO.java
new file mode 100644
index 0000000..84eca6e
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/user/UserVO.java
@@ -0,0 +1,30 @@
+package com.moral.api.pojo.vo.user;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+/**
+ * @ClassName UserVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/4/28 14:58
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class UserVO {
+
+    private Integer id;
+
+    private String account;
+
+    private String organizationName;
+
+    private String email;
+
+    private String mobile;
+
+    private String createTime;
+
+    private String expireTime;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/MenuService.java b/screen-manage/src/main/java/com/moral/api/service/MenuService.java
index e9b4e8a..26c5355 100644
--- a/screen-manage/src/main/java/com/moral/api/service/MenuService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/MenuService.java
@@ -3,9 +3,12 @@
 import com.moral.api.entity.Menu;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.moral.api.pojo.dto.menu.MenuDTO;
+import com.moral.api.pojo.dto.menu.MenuQueryNamesDTO;
 import com.moral.api.pojo.dto.menu.MenuQueryDTO;
 import com.moral.api.pojo.form.menu.MenuDeleteForm;
 import com.moral.api.pojo.form.menu.MenuInsertForm;
+import com.moral.api.pojo.form.menu.MenuQueryNamesForm;
+import com.moral.api.pojo.form.menu.MenuUpdateForm;
 
 /**
  * <p>
@@ -17,7 +20,7 @@
  */
 public interface MenuService extends IService<Menu> {
     /**
-    * @Description: ������������������
+    * @Description: ������������������������
             * @Param: []
             * @return: com.moral.api.pojo.dto.menu.MenuQueryDTO
             * @Author: ���������
@@ -42,4 +45,23 @@
             * @Date: 2021/4/26
             */
     MenuDTO deleteMenu(MenuDeleteForm form);
+
+    /**
+    * @Description: ������������
+            * @Param: [from]
+            * @return: com.moral.api.pojo.dto.menu.MenuDTO
+            * @Author: ���������
+            * @Date: 2021/4/27
+            */
+    MenuDTO updateMenu(MenuUpdateForm form);
+
+    /**
+    * @Description: ���������������������������id������������������id������������������������������������������������������
+            * @Param: [MenuQueryNamesForm form]
+            * @return: com.moral.api.pojo.dto.menu.MenuQueryByNameDTO
+            * @Author: ���������
+            * @Date: 2021/4/28
+            */
+    MenuQueryNamesDTO queryNames(MenuQueryNamesForm form);
+
 }
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 91066ff..4c1d281 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
@@ -4,7 +4,7 @@
 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.dto.organization.OrganizationQueryNameDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO;
 import com.moral.api.pojo.form.organization.*;
 
 /**
@@ -53,14 +53,15 @@
     OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm);
 
 
+
     /**
-    * @Description: ���������������������������Id������������
-            * @Param: [organizationQueryNameForm]
-            * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO
+    * @Description: ���������������������������������id
+            * @Param: [form]
+            * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO
             * @Author: ���������
-            * @Date: 2021/4/13
+            * @Date: 2021/5/6
             */
-    OrganizationQueryNameDTO queryOrganizationNames(OrganizationQueryNameForm organizationQueryNameForm);
+     OrganizationQueryNamesDTO queryNames(OrganizationQueryNamesForm form);
 
 
 }
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 3f6af1f..9e2d2ea 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,7 +2,12 @@
 
 import com.moral.api.entity.User;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.dto.user.UserDTO;
+import com.moral.api.pojo.dto.user.UserQueryDTO;
+import com.moral.api.pojo.form.user.UserDeleteForm;
 import com.moral.api.pojo.form.user.UserInsertForm;
+import com.moral.api.pojo.form.user.UserQueryForm;
+import com.moral.api.pojo.form.user.UserUpdateForm;
 
 /**
  * <p>
@@ -14,4 +19,12 @@
  */
 public interface UserService extends IService<User> {
 
+    UserQueryDTO queryUsers(UserQueryForm form);
+
+    UserDTO updateUser(UserUpdateForm form);
+
+    UserDTO deleteUser(UserDeleteForm form);
+
+    UserDTO insertUser(UserInsertForm form);
+
 }
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 b144225..5bfa013 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
@@ -223,7 +223,7 @@
         StringBuilder content = new StringBuilder();
         content.append("������������������").append(manageAccount.getUserName() + ";")
                 .append("account���" + manageAccount.getAccount() + ";");
-        logUtils.saveOperationForManage(request, content.toString(),Constants.INSERT_OPERATE_TYPE);
+        logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
 
         return accountDTO;
     }
@@ -240,7 +240,7 @@
         AccountQueryDTO accountQueryDTO = new AccountQueryDTO();
 
         //������
-        Integer pageCount = accountQueryForm.getPage();
+        Integer page = accountQueryForm.getPage();
         Integer size = accountQueryForm.getSize();
         String userName = accountQueryForm.getUserName();
         String email = accountQueryForm.getEmail();
@@ -250,10 +250,10 @@
         String order = accountQueryForm.getOrder();
         String orderType = accountQueryForm.getOrderType();
         Date createStartTime = accountQueryForm.getCreateStartTime();
-        Date createEndTime = DateUtils.getDateOfDay(accountQueryForm.getCreateEndTime(), 1);
+        Date createEndTime = accountQueryForm.getCreateEndTime();
 
         //������������������
-        Page<ManageAccount> page = new Page<>(pageCount, size);
+        Page<ManageAccount> queryPage = new Page<>(page, size);
         NullFilterWrapper<ManageAccount> wrapper = new NullFilterWrapper<>();
 
         wrapper.like("user_name", userName);
@@ -275,20 +275,19 @@
             wrapper.eq("is_delete", Constants.NOT_DELETE);
 
         //������������
-        Page resultPage = manageAccountMapper.selectPage(page, wrapper);
+        Page resultPage = manageAccountMapper.selectPage(queryPage, wrapper);
 
         //���������������������������
         List<ManageAccount> accounts = resultPage.getRecords();
         List<AccountDTO> accountDTOS = new ArrayList<>();
-        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);
-            }
+        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);
@@ -346,7 +345,7 @@
         StringBuilder content = new StringBuilder();
         content.append("������������������").append(existManageAccount.getUserName() + ";")
                 .append("���������" + existManageAccount.getAccount() + ";");
-        logUtils.saveOperationForManage(request, content.toString(),Constants.DELETE_OPERATE_TYPE);
+        logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
 
         return accountDTO;
     }
@@ -366,22 +365,22 @@
         ManageAccount manageAccount = accountUpdateForm.formConvertEntity();
         List<Integer> roleIds = accountUpdateForm.getRoleIds();
 
-        //������������������������������������
-        QueryWrapper<ManageAccount> exitWrapper = new QueryWrapper<>();
-        ManageAccount exitManageAccount = new ManageAccount();
-        exitManageAccount.setId(manageAccount.getId());
-        exitManageAccount.setIsDelete(Constants.NOT_DELETE);
-        exitWrapper.setEntity(exitManageAccount);
-        exitManageAccount = manageAccountMapper.selectOne(exitWrapper);
-        if (ObjectUtils.isEmpty(exitManageAccount)) {
+        //������������������������������������������
+        QueryWrapper<ManageAccount> oldAccountWrapper = new QueryWrapper<>();
+        ManageAccount oldManageAccount = new ManageAccount();
+        oldManageAccount.setId(manageAccount.getId());
+        oldManageAccount.setIsDelete(Constants.NOT_DELETE);
+        oldAccountWrapper.setEntity(oldManageAccount);
+        oldManageAccount = manageAccountMapper.selectOne(oldAccountWrapper);
+        if (ObjectUtils.isEmpty(oldManageAccount)) {
             accountDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
             accountDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
             return accountDTO;
         }
 
         //������ManageAccount���
-        Map manageAccountMap = JSONObject.parseObject(JSON.toJSONString(manageAccount),Map.class);//���������Map���������������������������
-        if (manageAccountMap.size()>1) {//������������account������������������������������������������
+        Map manageAccountMap = JSONObject.parseObject(JSON.toJSONString(manageAccount), Map.class);//���������Map���������������������������
+        if (manageAccountMap.size() > 1) {//������������������������id���������������������������������
             manageAccountMapper.updateById(manageAccount);
         }
         //������������������������
@@ -420,7 +419,7 @@
         accountDTO.setAccount(manageAccount);
 
         //������������������
-        insertUpdateLog(accountUpdateForm, exitManageAccount, oldRoles);
+        insertUpdateLog(accountUpdateForm, oldManageAccount, oldRoles);
 
         return accountDTO;
     }
@@ -465,7 +464,7 @@
                     }
 
                     if (!ObjectUtils.isEmpty(oldRoles)) {
-                        oldRolesName.deleteCharAt(oldRolesName.length()-1);//������ "���"
+                        oldRolesName.deleteCharAt(oldRolesName.length() - 1);//������ "���"
                         oldRolesName.append("[");
                         for (ManageRole role : oldRoles) {
                             oldRolesName.append(role.getName() + ",");
@@ -475,7 +474,7 @@
                     }
 
                     if (!ObjectUtils.isEmpty(newRoles)) {
-                        newRolesName.deleteCharAt(newRolesName.length()-1);//������ "���"
+                        newRolesName.deleteCharAt(newRolesName.length() - 1);//������ "���"
                         newRolesName.append("[");
                         for (ManageRole role : newRoles) {
                             newRolesName.append(role.getName() + ",");
@@ -484,7 +483,7 @@
                         newRolesName.append("]");
                     }
                     //������������content
-                    content.append(value+":"+oldRolesName + "->" + newRolesName + ";");
+                    content.append(value + ":" + oldRolesName + "->" + newRolesName + ";");
                 }
             } else {//������������������
                 if (newParameters.get(key) != null) {
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
index efcaec9..25cc2a6 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
@@ -2,13 +2,16 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.moral.api.entity.ManageMenu;
+import com.moral.api.config.mybatis.wrapper.NullFilterWrapper;
 import com.moral.api.entity.Menu;
 import com.moral.api.mapper.MenuMapper;
 import com.moral.api.pojo.dto.menu.MenuDTO;
 import com.moral.api.pojo.dto.menu.MenuQueryDTO;
+import com.moral.api.pojo.dto.menu.MenuQueryNamesDTO;
 import com.moral.api.pojo.form.menu.MenuDeleteForm;
 import com.moral.api.pojo.form.menu.MenuInsertForm;
+import com.moral.api.pojo.form.menu.MenuQueryNamesForm;
+import com.moral.api.pojo.form.menu.MenuUpdateForm;
 import com.moral.api.service.MenuService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
@@ -43,7 +46,9 @@
         //������������������
         MenuQueryDTO dto = new MenuQueryDTO();
         //������������������
-        List<Menu> menus = menuMapper.selectList(null);
+        QueryWrapper wrapper = new QueryWrapper();
+        wrapper.eq("is_delete", Constants.NOT_DELETE);
+        List<Menu> menus = menuMapper.selectList(wrapper);
         //������menu������������
         Map<Integer, Menu> menuMap = new HashMap<>();
         for (Menu menu : menus) {
@@ -53,7 +58,7 @@
         for (Menu menu : menus) {
             combinationParentChildrenMenus(menuMap, menu);
         }
-        //������������������
+        //������������������
         menus.removeIf(new Predicate<Menu>() {
             @Override
             public boolean test(Menu menu) {
@@ -94,6 +99,7 @@
             dto.setMsg(ResponseCodeEnum.MENU_IS_EXIST.getMsg());
             return dto;
         }
+
         //������������������
         menuMapper.insert(menu);
         //������������������
@@ -116,15 +122,18 @@
             dto.setMsg(ResponseCodeEnum.MENU_IS_NULL.getMsg());
             return dto;
         }
-        //������������������
-        existMenu.setIsDelete(Constants.DELETE);
-        menuMapper.updateById(existMenu);
         //���������������������
         List<Integer> childrenIds = getChildrenIdsByParentId(id);
-        UpdateWrapper wrapper = new UpdateWrapper();
-        wrapper.in("id",childrenIds);
-        wrapper.set("is_delete",Constants.DELETE);
-        menuMapper.update(null,wrapper);
+        if (!ObjectUtils.isEmpty(childrenIds)) {
+            UpdateWrapper wrapper = new UpdateWrapper();
+            wrapper.in("id", childrenIds);
+            wrapper.set("is_delete", Constants.DELETE);
+            menuMapper.update(null, wrapper);
+        }
+        //���������������
+        existMenu.setIsDelete(Constants.DELETE);
+        menuMapper.updateById(existMenu);
+
         //������������������
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -132,6 +141,83 @@
         return dto;
     }
 
+    @Override
+    public MenuDTO updateMenu(MenuUpdateForm form) {
+        //������������������
+        MenuDTO dto = new MenuDTO();
+        //������
+        Menu menu = form.formConvertEntity();
+        //������������������������������������������
+        QueryWrapper<Menu> oldMenuWrapper = new QueryWrapper<>();
+        Menu oldMenu = new Menu();
+        oldMenu.setId(menu.getId());
+        oldMenu.setIsDelete(Constants.NOT_DELETE);
+        oldMenuWrapper.setEntity(oldMenu);
+        oldMenu = menuMapper.selectOne(oldMenuWrapper);
+        if (ObjectUtils.isEmpty(oldMenu)) {
+            dto.setCode(ResponseCodeEnum.MENU_IS_NULL.getCode());
+            dto.setMsg(ResponseCodeEnum.MENU_IS_NULL.getMsg());
+            return dto;
+        }
+        //������
+        menuMapper.updateById(menu);
+        //������������������������
+        menu = menuMapper.selectById(menu.getId());
+        //������������������
+        dto.setMenu(menu);
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+    @Override
+    public MenuQueryNamesDTO queryNames(MenuQueryNamesForm form) {
+        //������������������
+        MenuQueryNamesDTO dto = new MenuQueryNamesDTO();
+        //������
+        Integer id = form.getId();
+        String name = form.getName();
+        //������������
+        NullFilterWrapper<Menu> wrapper = new NullFilterWrapper<>();
+        wrapper.eq("is_delete", Constants.NOT_DELETE);
+        wrapper.like("name",name);
+        List<Menu> menus = menuMapper.selectList(wrapper);
+        //���������id������������������������
+        List<Integer> childrenIds = getChildrenIdsByParentId(id);//���������������������id������
+        if (ObjectUtils.isEmpty(childrenIds)) {
+            menus.removeIf(new Predicate<Menu>() {
+                @Override
+                public boolean test(Menu m) {
+                    if (m.getId().equals(id))
+                        return true;
+                    return false;
+                }
+            });
+        } else {
+            menus.removeIf(new Predicate<Menu>() {
+                @Override
+                public boolean test(Menu m) {
+                    if (childrenIds.contains(m.getId()) || m.getId().equals(id))
+                        return true;
+                    return false;
+                }
+            });
+        }
+
+        //������������������
+        dto.setMenus(menus);
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+    /**
+     * @Description: ������������menu������menuMap���������������������
+     * @Param: [menuMap, menu]
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/5/6
+     */
     private void combinationParentChildrenMenus(Map<Integer, Menu> menuMap, Menu menu) {
         Integer parentId = menu.getParentId();
         Menu parentMenu = menuMap.get(parentId);
@@ -141,15 +227,17 @@
     }
 
     /**
-    * @Description: ���������������id���������������children���menu������
-            * @Param: [id]
-            * @return: com.moral.api.entity.Menu
-            * @Author: ���������
-            * @Date: 2021/4/26
-            */
-    private Menu getMenuAndChildrenById(Integer id){
+     * @Description: ���������������id���������������children���menu������
+     * @Param: [id]
+     * @return: com.moral.api.entity.Menu
+     * @Author: ���������
+     * @Date: 2021/4/26
+     */
+    private Menu getMenuAndChildrenById(Integer id) {
         //������������������
-        List<Menu> menus = menuMapper.selectList(null);
+        QueryWrapper wrapper = new QueryWrapper();
+        wrapper.eq("is_delete", Constants.NOT_DELETE);
+        List<Menu> menus = menuMapper.selectList(wrapper);
         //������menu������������
         Map<Integer, Menu> menuMap = new HashMap<>();
         for (Menu menu : menus) {
@@ -164,39 +252,41 @@
     }
 
     /**
-    * @Description: ������������������������������������id������
-            * @Param: [id]
-            * @return: java.util.List<java.lang.Integer>
-            * @Author: ���������
-            * @Date: 2021/4/26
-            */
-    private List<Integer> getChildrenIdsByParentId(Integer id){
+     * @Description: ������������������������������������id������
+     * @Param: [id]
+     * @return: java.util.List<java.lang.Integer>
+     * @Author: ���������
+     * @Date: 2021/4/26
+     */
+    private List<Integer> getChildrenIdsByParentId(Integer id) {
         Menu parentMenu = getMenuAndChildrenById(id);
-        List<Menu> children = parentMenu.getChildren();
-        List<Integer> childrenIds = new ArrayList<>();
-        for (Menu child : children) {
-            recursiveAccess(child,childrenIds);
+        List<Integer> childrenIds = null;
+        if (!ObjectUtils.isEmpty(parentMenu.getChildren())) {
+            List<Menu> children = parentMenu.getChildren();
+            childrenIds = new ArrayList<>();
+            for (Menu child : children) {
+                recursiveAccess(child, childrenIds);
+            }
         }
         return childrenIds;
     }
 
 
     /**
-    * @Description: ���������������������id���������������
-            * @Param: [menu, ids]
-            * @return: void
-            * @Author: ���������
-            * @Date: 2021/4/26
-            */
-    private void recursiveAccess(Menu menu,List<Integer> ids){
+     * @Description: ���������������������id���������������
+     * @Param: [menu, ids]
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/4/26
+     */
+    private void recursiveAccess(Menu menu, List<Integer> ids) {
         ids.add(menu.getId());
         List<Menu> children = menu.getChildren();
-        if(!ObjectUtils.isEmpty(children)){
+        if (!ObjectUtils.isEmpty(children)) {
             for (Menu child : children) {
-                recursiveAccess(child,ids);
+                recursiveAccess(child, ids);
             }
         }
     }
 
 }
-
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 d7ac38c..34f5fe5 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
@@ -10,7 +10,7 @@
 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.dto.organization.OrganizationQueryNameDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO;
 import com.moral.api.pojo.form.organization.*;
 import com.moral.api.service.OrganizationService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -19,7 +19,6 @@
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.util.ConvertUtils;
 import com.moral.util.DateUtils;
-import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Service;
@@ -30,7 +29,6 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
-import java.util.function.Predicate;
 
 /**
  * <p>
@@ -128,14 +126,14 @@
         //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)) {
+        //������������������������������������������
+        QueryWrapper<Organization> oldWrapper = new QueryWrapper<>();
+        Organization oldOrganization = new Organization();
+        oldOrganization.setId(organization.getId());
+        oldOrganization.setIsDelete(Constants.NOT_DELETE);
+        oldWrapper.setEntity(oldOrganization);
+        oldOrganization = organizationMapper.selectOne(oldWrapper);
+        if (ObjectUtils.isEmpty(oldOrganization)) {
             organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode());
             organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
             return organizationDTO;
@@ -170,7 +168,7 @@
         organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
 
         //������������������
-        insertUpdateLog(organizationUpdateForm, organization, existOrganization);
+        insertUpdateLog(organizationUpdateForm, organization, oldOrganization);
 
         return organizationDTO;
     }
@@ -236,6 +234,8 @@
                 organizationMapper.update(null, updateWrapper);
             }
         }
+
+        //������������������������
 
         //������������������
         dto.setOrganization(existOrganization);
@@ -338,20 +338,17 @@
     }
 
     /**
-     * @Description: ������������������������������Id���������������
-     * @Param: [organizationQueryNameForm]
+     * @Description: ������������������������������Id
+     * @Param: []
      * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO
      * @Author: ���������
      * @Date: 2021/4/13
      */
     @Override
-    public OrganizationQueryNameDTO queryOrganizationNames(OrganizationQueryNameForm form) {
-        OrganizationQueryNameDTO dto = new OrganizationQueryNameDTO();
-        //������
-        String name = form.getName();
+    public OrganizationQueryNamesDTO queryNames(OrganizationQueryNamesForm from) {
+        OrganizationQueryNamesDTO dto = new OrganizationQueryNamesDTO();
         //������������������
-        NullFilterWrapper<Organization> queryWrapper = new NullFilterWrapper();
-        queryWrapper.like("name", name);
+        QueryWrapper<Organization> queryWrapper = new QueryWrapper();
         queryWrapper.eq("is_delete", Constants.NOT_DELETE);
         //������
         List<Organization> organizations = organizationMapper.selectList(queryWrapper);
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
index 24a141e..cce9d52 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -1,10 +1,33 @@
 package com.moral.api.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+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.config.mybatis.wrapper.NullFilterWrapper;
+import com.moral.api.entity.Organization;
 import com.moral.api.entity.User;
+import com.moral.api.mapper.OrganizationMapper;
 import com.moral.api.mapper.UserMapper;
+import com.moral.api.pojo.dto.user.UserDTO;
+import com.moral.api.pojo.dto.user.UserQueryDTO;
+import com.moral.api.pojo.form.user.UserDeleteForm;
+import com.moral.api.pojo.form.user.UserInsertForm;
+import com.moral.api.pojo.form.user.UserQueryForm;
+import com.moral.api.pojo.form.user.UserUpdateForm;
 import com.moral.api.service.UserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.ConvertUtils;
+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.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +40,186 @@
 @Service
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
+    @Autowired
+    UserMapper userMapper;
+    @Autowired
+    OrganizationMapper organizationMapper;
+
+    @Override
+    public UserQueryDTO queryUsers(UserQueryForm form) {
+        //������������������
+        UserQueryDTO dto = new UserQueryDTO();
+        //������
+        Integer page = form.getPage();
+        Integer size = form.getSize();
+        String email = form.getEmail();
+        String mobile = form.getMobile();
+        String wechat = form.getWechat();
+        String order = form.getOrder();
+        String orderType = form.getOrderType();
+        Integer organizationId = form.getOrganizationId();
+        Date exipreStartTime = form.getExpireStartTime();
+        Date exipreEndTime = form.getExpireEndTime();
+        Date createStartTime = form.getCreateStartTime();
+        Date createEndTime = form.getCreateEndTime();
+        Integer isDelete = form.getIsDelete();
+
+        //������������������
+        Page<User> queryPage = new Page<>(page, size);
+        NullFilterWrapper<User> wrapper = new NullFilterWrapper<>();
+        wrapper.like("email", email);
+        wrapper.like("wechat", wechat);
+        wrapper.like("mobile", mobile);
+        wrapper.eq("is_admin", 1);
+        wrapper.eq("organization_id", organizationId);
+        wrapper.between("create_time", createStartTime, createEndTime);
+        wrapper.between("expire_time", exipreStartTime, exipreEndTime);
+        //������������������������
+        if (!ObjectUtils.isEmpty(order) && !ObjectUtils.isEmpty(orderType)) {
+            if (orderType.equals(Constants.ORDER_ASC))
+                wrapper.orderByAsc(ConvertUtils.toLine(order));
+            else
+                wrapper.orderByDesc(ConvertUtils.toLine(order));
+        }
+        //������������������������
+        if (!ObjectUtils.isEmpty(isDelete))
+            wrapper.eq("is_delete", isDelete);
+        else
+            wrapper.eq("is_delete", Constants.NOT_DELETE);
+
+        //������������
+        Page<User> resultPage = userMapper.selectPage(queryPage, wrapper);
+        List<User> users = resultPage.getRecords();
+
+        //������������������������
+        List<UserDTO> userDTOS = new ArrayList<>();
+        for (User user : users) {
+            UserDTO userDTO = new UserDTO();
+            Organization organization = new Organization();
+            organization.setId(user.getOrganizationId());
+            organization.setIsDelete(Constants.NOT_DELETE);
+            QueryWrapper<Organization> organizationWrapper = new QueryWrapper<>();
+            organizationWrapper.setEntity(organization);
+            organization = organizationMapper.selectOne(organizationWrapper);
+            userDTO.setUser(user);
+            userDTO.setOrganization(organization);
+            userDTOS.add(userDTO);
+        }
+
+        //������������������
+        dto.setUserDTOS(userDTOS);
+        dto.setCurrent(resultPage.getCurrent());
+        dto.setPages(resultPage.getPages());
+        dto.setSize(resultPage.getSize());
+        dto.setTotal(resultPage.getTotal());
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+
+        return dto;
+    }
+
+    @Override
+    @Transactional
+    public UserDTO updateUser(UserUpdateForm form) {
+        //������������������
+        UserDTO dto = new UserDTO();
+
+        //������
+        User user = form.formConvertEntity();
+
+        //������������������������ ������������������
+        QueryWrapper<User> oldUserWrapper = new QueryWrapper<>();
+        User oldUser = new User();
+        oldUser.setId(user.getId());
+        oldUser.setIsDelete(Constants.NOT_DELETE);
+        oldUserWrapper.setEntity(oldUser);
+        oldUser = userMapper.selectOne(oldUserWrapper);
+        if (ObjectUtils.isEmpty(oldUser)) {
+            dto.setCode(ResponseCodeEnum.USER_NOT_EXIST.getCode());
+            dto.setMsg(ResponseCodeEnum.USER_NOT_EXIST.getMsg());
+            return dto;
+        }
+
+        //������
+        userMapper.updateById(user);
+
+        //������������������
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+
+        return dto;
+    }
+
+    @Override
+    @Transactional
+    public UserDTO deleteUser(UserDeleteForm form) {
+        //������������������
+        UserDTO dto = new UserDTO();
+        //������
+        Integer id = form.getId();
+        //������������������������ ������������������
+        User oldUser = new User();
+        oldUser.setIsDelete(Constants.NOT_DELETE);
+        oldUser.setId(id);
+        QueryWrapper<User> oldWrapper = new QueryWrapper<>();
+        oldWrapper.setEntity(oldUser);
+        oldUser = userMapper.selectOne(oldWrapper);
+        if(ObjectUtils.isEmpty(oldUser)){
+            dto.setCode(ResponseCodeEnum.USER_NOT_EXIST.getCode());
+            dto.setMsg(ResponseCodeEnum.USER_NOT_EXIST.getMsg());
+            return dto;
+        }
+        //������������������������������������������������������������
+        UpdateWrapper<User> deleteWrapper = new UpdateWrapper<>();
+        deleteWrapper.eq("organization_id",oldUser.getOrganizationId());
+        deleteWrapper.set("is_delete",Constants.DELETE);
+        userMapper.update(null,deleteWrapper);
+        //������������
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+    @Override
+    @Transactional
+    public UserDTO insertUser(UserInsertForm form) {
+        //������������������
+        UserDTO dto = new UserDTO();
+        //������
+        User user = form.formConvertEntity();
+        //������������������������
+        User existUser = new User();
+        existUser.setAccount(user.getAccount());
+        existUser.setIsDelete(Constants.NOT_DELETE);
+        QueryWrapper<User> wrapper = new QueryWrapper<>();
+        wrapper.setEntity(existUser);
+        User existUserResult = userMapper.selectOne(wrapper);
+        if(!ObjectUtils.isEmpty(existUserResult)){
+            dto.setCode(ResponseCodeEnum.USER_EXIST.getCode());
+            dto.setMsg(ResponseCodeEnum.USER_EXIST.getMsg());
+            return dto;
+        }
+        //���������������������������������������������
+        Integer organizationId = user.getOrganizationId();
+        User organizationUser = new User();
+        organizationUser.setIsAdmin(true);
+        organizationUser.setIsDelete(Constants.NOT_DELETE);
+        organizationUser.setOrganizationId(organizationId);
+        QueryWrapper<User> organizationUserWrapper = new QueryWrapper<>();
+        organizationUserWrapper.setEntity(organizationUser);
+        organizationUser = userMapper.selectOne(organizationUserWrapper);
+        if(!ObjectUtils.isEmpty(organizationUser)){
+            dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_EXIST.getCode());
+            dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_EXIST.getMsg());
+            return dto;
+        }
+        //������
+        userMapper.insert(user);
+        //������������������
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+
 }
diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml
index fd79cd8..08ad765 100644
--- a/screen-manage/src/main/resources/application-dev.yml
+++ b/screen-manage/src/main/resources/application-dev.yml
@@ -18,13 +18,9 @@
   application:
     name: screen-manage
   redis:
-    #cluster:
-      #nodes: 47.112.126.78:7001,47.112.126.78:7002,47.112.126.132:7003,47.112.126.132:7004,47.112.132.193:7005,47.112.132.193:7006
-    #password: test
-    #timeout: 500
-      host: 39.97.177.149
+      host: r-bp1xdlb9wfc6zt0msp.redis.rds.aliyuncs.com
       port: 6379
-      password: chenkaiyu111
+      password: moral_123456
       timeout: 30000
       jedis:
         pool:
@@ -39,9 +35,9 @@
           max-wait: 30000
           min-idle: 32
   tokenRedis:
-    host: 39.97.177.149
+    host: r-bp1xdlb9wfc6zt0msp.redis.rds.aliyuncs.com
     port: 6379
-    password: chenkaiyu111
+    password: moral_123456
     timeout: 30000
     database: 14
     pool:
@@ -59,12 +55,10 @@
     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=Asia/Shanghai
-    username: root
-    password: chenkaiyu111
     #url: jdbc:mysql://vp9l57dtd2vng7oxft1t.rwlb.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
-    #username: root
-    #password: moral_123456
+    url: jdbc:mysql://vp9l57dtd2vng7oxft1t-rw4rm.rwlb.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    username: root
+    password: moral_123456
     test-on-borrow: false
     sql-script-encoding: utf-8
     pool-prepared-statements: true

--
Gitblit v1.8.0