From 928cccb960dc1c0e354e3569ecd8e964f6d24deb Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 12 Apr 2021 17:41:25 +0800
Subject: [PATCH] 用户修改具体日志

---
 screen-api/src/main/resources/mapper/MenuMapper.xml                           |   23 +--
 screen-api/src/main/java/com/moral/api/controller/MenuController.java         |   39 +++++++
 screen-api/src/main/java/com/moral/api/entity/Menu.java                       |    4 
 screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java      |   11 ++
 screen-api/src/main/java/com/moral/api/service/MenuService.java               |    3 
 screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java     |   34 +++++-
 screen-api/src/main/java/com/moral/api/service/GroupMenuService.java          |    3 
 screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java |   20 +++
 screen-api/src/main/java/com/moral/api/controller/LoginController.java        |   11 --
 screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java      |   73 +++++++++++++-
 screen-api/src/main/java/com/moral/api/controller/UserController.java         |   30 +----
 screen-api/src/main/java/com/moral/api/controller/GroupController.java        |   24 ++--
 screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java |    5 
 13 files changed, 200 insertions(+), 80 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/GroupController.java b/screen-api/src/main/java/com/moral/api/controller/GroupController.java
index fa8b0df..1e758d0 100644
--- a/screen-api/src/main/java/com/moral/api/controller/GroupController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/GroupController.java
@@ -22,6 +22,7 @@
 import com.moral.api.entity.Group;
 import com.moral.api.service.GroupService;
 import com.moral.api.service.UserGroupService;
+import com.moral.api.service.UserService;
 import com.moral.api.utils.OperationLogUtils;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
@@ -39,6 +40,9 @@
     @Autowired
     private UserGroupService userGroupService;
 
+    @Autowired
+    private UserService userService;
+
     @ApiOperation(value = "���������", notes = "���������")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
@@ -54,10 +58,6 @@
         if (!result.isEmpty()) {
             return ResultMessage.fail((int) result.get("code"), result.get("msg").toString());
         }
-
-        //������
-        String content = "���������������" + group.getGroupName();
-        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 
@@ -78,10 +78,6 @@
             return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(), ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
         }
         groupService.deleteGroup(group);
-
-        //������
-        String content = "���������������" + group.getGroupName();
-        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 
@@ -96,10 +92,6 @@
         if (!result.isEmpty()) {
             return ResultMessage.fail((int) result.get("code"), result.get("msg").toString());
         }
-
-        //������
-        String content = "���������������" + group.getGroupName();
-        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 
@@ -122,12 +114,12 @@
         return ResultMessage.ok(pageResult);
     }
 
-    @ApiOperation(value = "���������������������", notes = "���������������������")
+    @ApiOperation(value = "���������������������ids", notes = "���������������������ids")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
     @RequestMapping(value = "get-group-ids", method = RequestMethod.GET)
-    public ResultMessage getGroupIds(Integer userId){
+    public ResultMessage getGroupIds(Integer userId) {
         List<Integer> groupIds = userGroupService.getGroupIds(userId);
         return ResultMessage.ok(groupIds);
     }
@@ -144,6 +136,10 @@
         }
         String token = request.getHeader("token");
         userGroupService.allotGroups(parameters, token);
+
+        String account = userService.getById((Integer) parameters.get("userId")).getAccount();
+        String content = "������������" + account + "���������������";
+        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 }
diff --git a/screen-api/src/main/java/com/moral/api/controller/LoginController.java b/screen-api/src/main/java/com/moral/api/controller/LoginController.java
index 444fa13..0f85b4d 100644
--- a/screen-api/src/main/java/com/moral/api/controller/LoginController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/LoginController.java
@@ -21,7 +21,6 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.moral.api.entity.SysConfig;
-import com.moral.api.entity.UserLog;
 import com.moral.api.service.SysConfigService;
 import com.moral.api.service.UserLogService;
 import com.moral.api.service.UserService;
@@ -31,7 +30,6 @@
 import com.moral.pojo.VerificationCode;
 import com.moral.util.KaptchaUtils;
 import com.moral.util.TokenUtils;
-import com.moral.util.WebUtils;
 
 @Slf4j
 @Api(tags = {"������"})
@@ -59,15 +57,6 @@
             return ResultMessage.fail((int) result.get("code"), (String) result.get("msg"));
         }
         Map<String, Object> data = (Map<String, Object>) result.get("data");
-        Map<String, Object> userInfo = (Map<String, Object>) data.get("user");
-        UserLog userLog = new UserLog();
-        String ip = WebUtils.getIpAddr(request);
-        userLog.setIp(ip);
-        userLog.setOperateId((Integer) userInfo.get("userId"));
-        Map<String, Object> organization = (Map<String, Object>) userInfo.get("organization");
-        userLog.setOrganizationId((Integer) organization.get("id"));
-        userLog.setContent(userInfo.get("account") + "���������");
-        userLogService.save(userLog);
         return ResultMessage.ok(data);
     }
 
diff --git a/screen-api/src/main/java/com/moral/api/controller/MenuController.java b/screen-api/src/main/java/com/moral/api/controller/MenuController.java
index 258a122..3d62c7b 100644
--- a/screen-api/src/main/java/com/moral/api/controller/MenuController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/MenuController.java
@@ -6,6 +6,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 
+import java.util.List;
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
@@ -16,8 +17,11 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.moral.api.entity.Menu;
 import com.moral.api.service.GroupMenuService;
+import com.moral.api.service.GroupService;
 import com.moral.api.service.MenuService;
+import com.moral.api.utils.OperationLogUtils;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.util.TokenUtils;
@@ -34,6 +38,9 @@
     @Autowired
     private MenuService menuService;
 
+    @Autowired
+    private GroupService groupService;
+
     @ApiOperation(value = "���������������", notes = "���������������")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
@@ -46,10 +53,27 @@
         }
         String token = request.getHeader("token");
         groupMenuService.allotMenus(parameters, token);
+
+        String groupName = groupService.getById((Integer) parameters.get("groupId")).getGroupName();
+        String content = "������<" + groupName + ">���������������";
+        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 
-    @ApiOperation(value = "������������������������", notes = "������������������������")
+    @ApiOperation(value = "������������", notes = "������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
+    })
+    @RequestMapping(value = "menu-list", method = RequestMethod.POST)
+    public ResultMessage selectMenus(HttpServletRequest request) {
+        String token = request.getHeader("token");
+        Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
+        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
+        List<Menu> menus = menuService.getMenuList((Integer) orgInfo.get("id"));
+        return ResultMessage.ok(menus);
+    }
+
+    @ApiOperation(value = "������������", notes = "������������")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
     })
@@ -57,7 +81,18 @@
     public ResultMessage select(HttpServletRequest request) {
         String token = request.getHeader("token");
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
-        Map<String, Object> result = menuService.selectMenusByOrgId((Integer) currentUserInfo.get("organizationId"));
+        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
+        Map<String, Object> result = menuService.selectMenusByOrgId((Integer) orgInfo.get("id"));
         return ResultMessage.ok(result);
     }
+
+    @ApiOperation(value = "���������������ids", notes = "���������������ids")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "get-menu-ids", method = RequestMethod.GET)
+    public ResultMessage getMenuIds(Integer groupId){
+        List<Integer> menusIds = groupMenuService.getMenusIds(groupId);
+        return ResultMessage.ok(menusIds);
+    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/controller/UserController.java b/screen-api/src/main/java/com/moral/api/controller/UserController.java
index 8f582ab..1056854 100644
--- a/screen-api/src/main/java/com/moral/api/controller/UserController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/UserController.java
@@ -21,7 +21,6 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.User;
 import com.moral.api.service.UserService;
-import com.moral.api.utils.OperationLogUtils;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.util.PageResult;
@@ -39,8 +38,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
-    @RequestMapping(value = "addUser", method = RequestMethod.POST)
-    public ResultMessage addUser(@RequestBody User user, HttpServletRequest request) {
+    @RequestMapping(value = "insert", method = RequestMethod.POST)
+    public ResultMessage insert(@RequestBody User user, HttpServletRequest request) {
         if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) {
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
@@ -50,10 +49,6 @@
         if (!result.isEmpty()) {
             return ResultMessage.fail((int) result.get("code"), result.get("msg").toString());
         }
-
-        //������
-        String content = "������������������" + user.getAccount();
-        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 
@@ -61,8 +56,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
-    @RequestMapping(value = "deleteUser", method = RequestMethod.POST)
-    public ResultMessage deleteUser(@RequestBody User user, HttpServletRequest request) {
+    @RequestMapping(value = "delete", method = RequestMethod.POST)
+    public ResultMessage delete(@RequestBody User user, HttpServletRequest request) {
         if (user.getId() == null) {
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
@@ -75,10 +70,6 @@
                     ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
         }
         userService.deleteUser(user);
-
-        //������
-        String content = "������������������" + user.getAccount();
-        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 
@@ -86,8 +77,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
-    @RequestMapping(value = "updateUser", method = RequestMethod.POST)
-    public ResultMessage updateUser(@RequestBody User user, HttpServletRequest request) {
+    @RequestMapping(value = "update", method = RequestMethod.POST)
+    public ResultMessage update(@RequestBody User user, HttpServletRequest request) {
         if (user.getId() == null) {
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
@@ -97,10 +88,6 @@
         if (!result.isEmpty()) {
             return ResultMessage.fail((int) result.get("code"), result.get("msg").toString());
         }
-
-        //������
-        String content = "������������������" + user.getAccount();
-        OperationLogUtils.insertLog(request, content);
         return ResultMessage.ok();
     }
 
@@ -109,6 +96,7 @@
             @ApiImplicitParam(name = "page", value = "���������", required = false, paramType = "query", dataType = "Integer"),
             @ApiImplicitParam(name = "size", value = "������������", required = false, paramType = "query", dataType = "Integer"),
             @ApiImplicitParam(name = "order", value = "������������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "orderType", value = "������������������������0������������1", defaultValue = "0", required = false, paramType = "query", dataType = "String"),
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
             @ApiImplicitParam(name = "account", value = "������������������", required = false, paramType = "query", dataType = "String"),
             @ApiImplicitParam(name = "userName", value = "���������������������", required = false, paramType = "query", dataType = "String"),
@@ -117,8 +105,8 @@
             @ApiImplicitParam(name = "wechat", value = "������������������", required = false, paramType = "query", dataType = "String"),
 
     })
-    @RequestMapping(value = "selectUsers", method = RequestMethod.POST)
-    public ResultMessage selectUsers(@RequestBody Map<String, Object> parameters, HttpServletRequest request) {
+    @RequestMapping(value = "select", method = RequestMethod.POST)
+    public ResultMessage select(@RequestBody Map<String, Object> parameters, HttpServletRequest request) {
         parameters.put("token", request.getHeader("token"));
         Page<User> userPage = userService.selectUsers(parameters);
         PageResult<User> pageResult = new PageResult<>(
diff --git a/screen-api/src/main/java/com/moral/api/entity/Menu.java b/screen-api/src/main/java/com/moral/api/entity/Menu.java
index 951d960..e16aa30 100644
--- a/screen-api/src/main/java/com/moral/api/entity/Menu.java
+++ b/screen-api/src/main/java/com/moral/api/entity/Menu.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -57,11 +59,13 @@
     /**
      * ������������
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
      * ������������
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
     /**
diff --git a/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java b/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java
index a1bd398..22db147 100644
--- a/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java
+++ b/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java
@@ -1,5 +1,6 @@
 package com.moral.api.service;
 
+import java.util.List;
 import java.util.Map;
 
 import com.moral.api.entity.GroupMenu;
@@ -16,4 +17,6 @@
 public interface GroupMenuService extends IService<GroupMenu> {
 
     void allotMenus(Map<String, Object> parameters, String token);
+
+    List<Integer> getMenusIds(Integer groupId);
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/MenuService.java b/screen-api/src/main/java/com/moral/api/service/MenuService.java
index 242c94a..aa78b9e 100644
--- a/screen-api/src/main/java/com/moral/api/service/MenuService.java
+++ b/screen-api/src/main/java/com/moral/api/service/MenuService.java
@@ -1,5 +1,6 @@
 package com.moral.api.service;
 
+import java.util.List;
 import java.util.Map;
 
 import com.moral.api.entity.Menu;
@@ -16,4 +17,6 @@
 public interface MenuService extends IService<Menu> {
 
     Map<String,Object> selectMenusByOrgId(Integer orgId);
+
+    List<Menu> getMenuList(Integer orgId);
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
index 651b199..a96953c 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
@@ -4,6 +4,7 @@
 import java.util.List;
 import java.util.Map;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.moral.api.entity.GroupMenu;
 import com.moral.api.mapper.GroupMenuMapper;
@@ -14,6 +15,7 @@
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -30,24 +32,38 @@
     private GroupMenuMapper groupMenuMapper;
 
     @Override
+    @Transactional
     public void allotMenus(Map<String, Object> parameters, String token) {
         Integer groupId = Integer.parseInt(parameters.get("groupId").toString());
         List<Integer> menuIds = (ArrayList) parameters.get("menuIds");
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
+        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
         UpdateWrapper<GroupMenu> deleteWrapper = new UpdateWrapper<>();
         deleteWrapper.set("is_delete", Constants.DELETE)
                 .eq("group_id", groupId)
                 .eq("channel", Constants.WEB_CHANNEL);
         groupMenuMapper.update(null, deleteWrapper);
-        if (!menuIds.isEmpty()) {
+        if (menuIds != null && !menuIds.isEmpty()) {
             for (Integer menuId : menuIds) {
                 GroupMenu groupMenu = new GroupMenu();
                 groupMenu.setGroupId(groupId);
                 groupMenu.setMenuId(menuId);
                 groupMenu.setChannel(Constants.WEB_CHANNEL);
-                groupMenu.setOrganizationId((Integer) currentUserInfo.get("organizationId"));
+                groupMenu.setOrganizationId((Integer) orgInfo.get("id"));
                 groupMenuMapper.insert(groupMenu);
             }
         }
     }
+
+    @Override
+    public List<Integer> getMenusIds(Integer groupId) {
+        QueryWrapper<GroupMenu> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("group_id", groupId).eq("is_delete", Constants.NOT_DELETE);
+        List<GroupMenu> groupMenus = groupMenuMapper.selectList(queryWrapper);
+        List<Integer> menuIds = new ArrayList<>();
+        for (GroupMenu groupMenu : groupMenus) {
+            menuIds.add(groupMenu.getMenuId());
+        }
+        return menuIds;
+    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
index 49a9833..f37282e 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
@@ -2,8 +2,8 @@
 
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -16,6 +16,7 @@
 import com.moral.api.mapper.UserGroupMapper;
 import com.moral.api.service.GroupService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.utils.OperationLogUtils;
 import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.util.ConvertUtils;
@@ -23,6 +24,10 @@
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * <p>
@@ -48,7 +53,8 @@
     public Map<String, Object> addGroup(Group group, String token) {
         Map<String, Object> result = new HashMap<>();
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
-        Integer orgId = (int) currentUserInfo.get("organizationId");
+        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
+        Integer orgId = (Integer) orgInfo.get("id");
         QueryWrapper<Group> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("group_name", group.getGroupName())
                 .eq("organization_id", orgId)
@@ -60,6 +66,10 @@
         }
         group.setOrganizationId(orgId);
         groupMapper.insert(group);
+        //������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        String content = "���������������" + group.getGroupName();
+        OperationLogUtils.insertLog(request, content);
         return result;
     }
 
@@ -76,34 +86,44 @@
         UpdateWrapper<UserGroup> deleteUserGroupWrapper = new UpdateWrapper<>();
         deleteUserGroupWrapper.set("is_delete", Constants.DELETE).eq("group_id", group.getId());
         userGroupMapper.update(null, deleteUserGroupWrapper);
+        //������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        String content = "���������������" + group.getGroupName();
+        OperationLogUtils.insertLog(request, content);
     }
 
     @Override
     public Map<String, Object> updateGroup(Group group, String token) {
         Map<String, Object> result = new HashMap<>();
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
-        Object organizationId = currentUserInfo.get("organizationId");
+        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
+        Integer orgId = (Integer) orgInfo.get("id");
         QueryWrapper<Group> queryWrapper = new QueryWrapper<>();
         queryWrapper.ne("id", group.getId())
                 .eq("group_name", group.getGroupName())
                 .eq("is_delete", Constants.NOT_DELETE)
-                .eq("organization_id", organizationId);
+                .eq("organization_id", orgId);
         if (groupMapper.selectOne(queryWrapper) != null) {
             result.put("code", ResponseCodeEnum.GROUP_EXIST.getCode());
             result.put("msg", ResponseCodeEnum.GROUP_EXIST.getMsg());
             return result;
         }
-        group.setOrganizationId((int) organizationId);
+        group.setOrganizationId(orgId);
         groupMapper.updateById(group);
+        //������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        String content = "���������������" + group.getGroupName();
+        OperationLogUtils.insertLog(request, content);
         return result;
     }
 
     @Override
     public Page<Group> selectGroups(Map<String, Object> parameters) {
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(parameters.get("token").toString());
-        Object organizationId = currentUserInfo.get("organizationId");
+        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
+        Integer orgId = (Integer) orgInfo.get("id");
         QueryWrapper<Group> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("organization_id", organizationId)
+        queryWrapper.eq("organization_id", orgId)
                 .eq("is_delete", Constants.NOT_DELETE);
         Object order = parameters.get("order");
         Object orderType = parameters.get("orderType");
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
index f05735c..d1a0ed3 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
@@ -1,6 +1,7 @@
 package com.moral.api.service.impl;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import com.moral.api.entity.Menu;
@@ -26,10 +27,18 @@
     @Autowired
     private UserService userService;
 
+    @Autowired
+    private MenuMapper menuMapper;
+
     @Override
     public Map<String, Object> selectMenusByOrgId(Integer orgId) {
         Map<String, Object> map = new HashMap<>();
-        map.put("orgId",orgId);
+        map.put("orgId", orgId);
         return userService.getMenus(map);
     }
+
+    @Override
+    public List<Menu> getMenuList(Integer orgId) {
+        return menuMapper.selectOrganizationMenu(orgId);
+    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java
index 1bf3af4..15a3e70 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java
@@ -15,6 +15,7 @@
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -31,10 +32,12 @@
     private UserGroupMapper userGroupMapper;
 
     @Override
+    @Transactional
     public void allotGroups(Map<String, Object> parameters, String token) {
         Integer userId = Integer.parseInt(parameters.get("userId").toString());
         List<Integer> groupIds = (ArrayList) parameters.get("groupIds");
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
+        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
         UpdateWrapper<UserGroup> deleteWrapper = new UpdateWrapper<>();
         deleteWrapper.set("is_delete", Constants.DELETE).eq("user_id", userId);
         userGroupMapper.update(null, deleteWrapper);
@@ -43,7 +46,7 @@
                 UserGroup userGroup = new UserGroup();
                 userGroup.setUserId(userId);
                 userGroup.setGroupId(groupId);
-                userGroup.setOrganizationId((Integer) currentUserInfo.get("organizationId"));
+                userGroup.setOrganizationId((Integer) orgInfo.get("id"));
                 userGroupMapper.insert(userGroup);
             }
         }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
index 70b8a57..6ccef8c 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -7,13 +7,20 @@
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 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.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.servlet.http.HttpServletRequest;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,11 +31,14 @@
 import com.moral.api.entity.User;
 import com.moral.api.entity.UserGroup;
 
+import com.moral.api.entity.UserLog;
 import com.moral.api.mapper.MenuMapper;
 import com.moral.api.mapper.UserGroupMapper;
+import com.moral.api.mapper.UserLogMapper;
 import com.moral.api.mapper.UserMapper;
 import com.moral.api.pojo.bo.UserBO;
 import com.moral.api.service.UserService;
+import com.moral.api.utils.OperationLogUtils;
 import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.util.AESUtils;
@@ -37,6 +47,7 @@
 import com.moral.util.MD5Utils;
 import com.moral.util.RegexUtils;
 import com.moral.util.TokenUtils;
+import com.moral.util.WebUtils;
 
 /**
  * <p>
@@ -58,8 +69,12 @@
     @Autowired
     private UserGroupMapper userGroupMapper;
 
+    @Autowired
+    private UserLogMapper userLogMapper;
+
     @Value("${AES.KEY}")
     private String AESKey;
+
 
     @Override
     public UserBO selectUserInfo(Map<String, Object> parameters) {
@@ -145,6 +160,14 @@
             result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode());
             result.put("msg", ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
         }
+        //������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        UserLog userLog = new UserLog();
+        userLog.setIp(WebUtils.getIpAddr(request));
+        userLog.setOperateId(userBo.getId());
+        userLog.setOrganizationId(userBo.getOrganizationId());
+        userLog.setContent("������������������" + userBo.getAccount());
+        userLogMapper.insert(userLog);
         return result;
     }
 
@@ -261,8 +284,16 @@
             } else {
                 user.setExpireTime(userExpireTime);
             }
+        } else {
+            if (orgExpireTime != null) {
+                user.setExpireTime(orgExpireTime);
+            }
         }
         userMapper.insert(user);
+        //������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        String content = "������������������" + user.getAccount();
+        OperationLogUtils.insertLog(request, content);
         return result;
     }
 
@@ -282,14 +313,22 @@
             TokenUtils.destoryToken(userId, token);
         }
         userGroupMapper.update(null, deleteWrapper);
+        //������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        String content = "������������������" + user.getAccount();
+        OperationLogUtils.insertLog(request, content);
     }
 
     @Override
     @Transactional
     public Map<String, Object> updateUser(User user, String token) {
+        //���������������
+        Map<String, Object> update = JSONObject.parseObject(JSON.toJSONString(user), Map.class);
         Map<String, Object> result = new HashMap<>();
         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
-        String account = userMapper.selectById(user.getId()).getAccount();
+        User beforeUser = userMapper.selectById(user.getId());
+        Map<String, Object> before = JSONObject.parseObject(JSON.toJSONString(beforeUser), Map.class);
+        String account = beforeUser.getAccount();
         //account������������
         user.setAccount(account);
 
@@ -301,12 +340,14 @@
         }
         //������������
         String password = user.getPassword();
-        //������������
-        password = AESUtils.decrypt(password, AESKey);
-        if (!RegexUtils.checkPassword(password)) {
-            result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode());
-            result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg());
-            return result;
+        if (password != null) {
+            //������������
+            password = AESUtils.decrypt(password, AESKey);
+            if (!RegexUtils.checkPassword(password)) {
+                result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode());
+                result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg());
+                return result;
+            }
         }
 
         //���������������������
@@ -331,6 +372,10 @@
             } else {
                 user.setExpireTime(userExpireTime);
             }
+        } else {
+            if (orgExpireTime != null) {
+                user.setExpireTime(orgExpireTime);
+            }
         }
         //������redis
         String userId = user.getId().toString();
@@ -339,6 +384,20 @@
             TokenUtils.destoryToken(userId, deleteToken);
         }
         userMapper.updateById(user);
+
+        //������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        StringBuilder content = new StringBuilder("������������������" + user.getAccount() + "->");
+        for (String key : update.keySet()) {
+            Object afterValue = update.get(key);
+            if (!key.equals("id") && afterValue != null) {
+                //������������������
+                Object beforeValue = before.get(key);
+                content.append(key).append(":").append(beforeValue).append("=>").append(afterValue).append(";");
+            }
+        }
+        OperationLogUtils.insertLog(request, content.toString());
+
         return result;
     }
 
diff --git a/screen-api/src/main/resources/mapper/MenuMapper.xml b/screen-api/src/main/resources/mapper/MenuMapper.xml
index 261a915..28df161 100644
--- a/screen-api/src/main/resources/mapper/MenuMapper.xml
+++ b/screen-api/src/main/resources/mapper/MenuMapper.xml
@@ -15,17 +15,13 @@
         <result column="is_delete" property="isDelete"/>
     </resultMap>
 
-    <resultMap id="MenuResultMap" type="com.moral.api.entity.Menu">
-        <id column="id" property="id"/>
-        <result column="name" property="name"/>
-        <result column="url" property="url"/>
-        <result column="icon" property="icon"/>
-        <result column="parent_id" property="parentId"/>
-        <result column="order" property="order" jdbcType="INTEGER"/>
-    </resultMap>
+    <sql id="Base_Column_List">
+        m.id, m.name, m.url, m.icon, m.parent_id, m.order, m.create_time, m.update_time
+    </sql>
 
-    <select id="selectUserMenu" resultMap="MenuResultMap">
-        SELECT DISTINCT m.id,m.name,m.url,m.icon,m.parent_id,m.order
+    <select id="selectUserMenu" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
         FROM `user_group` ug,`group_menu` gm,`menu` m
         WHERE ug.user_id = #{userId}
         AND ug.group_id = gm.group_id
@@ -34,11 +30,11 @@
         AND gm.is_delete = 0
         AND gm.channel = 1
         AND m.is_delete = 0
-        ORDER  by m.`order`
     </select>
 
-    <select id="selectOrganizationMenu" resultMap="MenuResultMap">
-        SELECT m.id,m.name,m.url,m.icon,m.parent_id,m.order
+    <select id="selectOrganizationMenu" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
         FROM `menu` m, `organization_menu` om
         WHERE om.organization_id = #{orgId}
         AND m.id = om.menu_id
@@ -46,6 +42,5 @@
         AND om.menu_id = m.id
         AND om.is_delete = 0
         AND m.is_delete = 0
-        ORDER  by m.`order`
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0