jinpengyong
2021-06-23 77d0b2f08d33730aa0701e0b528edcade5c4879b
screen-api更新
14 files modified
258 ■■■■■ changed files
pom.xml 9 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/GroupController.java 32 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/LoginController.java 32 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/MenuController.java 4 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/UserController.java 31 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/Group.java 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/User.java 7 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/GroupMenuService.java 2 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/GroupService.java 6 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/UserService.java 12 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java 6 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java 27 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java 83 ●●●●● patch | view | raw | blame | history
pom.xml
@@ -43,6 +43,7 @@
        <swagger-bootstrap-ui.version>1.9.6</swagger-bootstrap-ui.version>
        <spring.kafka.version>2.2.2</spring.kafka.version>
        <xxl-job.version>2.3.0</xxl-job.version>
        <aviator.version>5.2.5</aviator.version>
    </properties>
@@ -51,7 +52,6 @@
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
@@ -126,6 +126,13 @@
            <artifactId>xxl-job-core</artifactId>
            <version>${xxl-job.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator -->
        <dependency>
            <groupId>com.googlecode.aviator</groupId>
            <artifactId>aviator</artifactId>
            <version>${aviator.version}</version>
        </dependency>
    </dependencies>
screen-api/src/main/java/com/moral/api/controller/GroupController.java
@@ -25,6 +25,7 @@
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.PageResult;
import com.moral.util.WebUtils;
@Slf4j
@Api(tags = {"组管理"})
@@ -57,21 +58,16 @@
    @ApiOperation(value = "删除组", notes = "删除组")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "组id", required = true, paramType = "query", dataType = "int"),
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "delete", method = RequestMethod.POST)
    public ResultMessage delete(@RequestBody Group group) {
        if (group.getId() == null) {
    @RequestMapping(value = "delete", method = RequestMethod.GET)
    public ResultMessage delete(Integer id) {
        if (id == null) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        QueryWrapper<Group> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", group.getId());
        group = groupService.getOne(queryWrapper);
        if (group == null) {
            return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(), ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
        }
        groupService.deleteGroup(group);
        groupService.deleteGroup(id);
        return ResultMessage.ok();
    }
@@ -80,8 +76,7 @@
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "update", method = RequestMethod.POST)
    public ResultMessage update(@RequestBody Group group, HttpServletRequest request) {
        String token = request.getHeader("token");
    public ResultMessage update(@RequestBody Group group) {
        Map<String, Object> result = groupService.updateGroup(group);
        if (!result.isEmpty()) {
            return ResultMessage.fail((int) result.get("code"), result.get("msg").toString());
@@ -98,8 +93,9 @@
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
            @ApiImplicitParam(name = "groupName", value = "组名模糊查询", required = false, paramType = "query", dataType = "String")
    })
    @RequestMapping(value = "select", method = RequestMethod.POST)
    public ResultMessage select(@RequestBody Map<String, Object> parameters) {
    @RequestMapping(value = "select", method = RequestMethod.GET)
    public ResultMessage select(HttpServletRequest request) {
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
        Page<Group> userPage = groupService.selectGroups(parameters);
        PageResult<Group> pageResult = new PageResult<>(
                userPage.getTotal(), userPage.getPages(), userPage.getRecords()
@@ -109,10 +105,16 @@
    @ApiOperation(value = "获取用户所属组ids", notes = "获取用户所属组ids")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "query", dataType = "int"),
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "get-group-ids", method = RequestMethod.GET)
    @RequestMapping(value = "getGroupIds", method = RequestMethod.GET)
    public ResultMessage getGroupIds(Integer userId) {
        System.out.println(userId);
        if (userId == null) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        List<Integer> groupIds = userGroupService.getGroupIds(userId);
        return ResultMessage.ok(groupIds);
    }
screen-api/src/main/java/com/moral/api/controller/LoginController.java
@@ -7,6 +7,7 @@
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -22,7 +23,6 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.SysConfig;
import com.moral.api.service.SysConfigService;
import com.moral.api.service.UserLogService;
import com.moral.api.service.UserService;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
@@ -50,25 +50,35 @@
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        Map<String, Object> result = userService.login(parameters);
        if (!result.containsKey("data")) {
        if (!result.containsKey("token")) {
            return ResultMessage.fail((int) result.get("code"), (String) result.get("msg"));
        }
        Map<String, Object> data = (Map<String, Object>) result.get("data");
        return ResultMessage.ok(data);
        return ResultMessage.ok(result);
    }
    @ApiOperation(value = "退出", notes = "退出")
    @RequestMapping(value = "logout", method = RequestMethod.POST)
    @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    public ResultMessage logout(@RequestBody Map<String, Object> parameters, HttpServletRequest request) {
        if (!parameters.containsKey("uid")) {
    @RequestMapping(value = "getUserInfo", method = RequestMethod.POST)
    public ResultMessage getUserInfo(HttpServletRequest request) {
        String token = request.getHeader("token");
        Map<String, Object> result = userService.getUserInfo(token);
        return ResultMessage.ok(result);
    }
    @ApiOperation(value = "退出", notes = "退出")
    @RequestMapping(value = "logout", method = RequestMethod.GET)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    public ResultMessage logout(Integer userId, HttpServletRequest request) {
        if (userId == null) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        String token = request.getHeader("token");
        TokenUtils.destoryToken(parameters.get("uid").toString(), token);
        TokenUtils.destoryToken(userId.toString(), token);
        return ResultMessage.ok();
    }
@@ -79,9 +89,9 @@
        queryWrapper.eq(Constants.FRONT_VERIFICATIONCODE_COLUMN, Constants.FRONT_ERIFICATIONCODE_VALUE);
        SysConfig sysConfig = sysConfigService.getOne(queryWrapper);
        if (Constants.VERFICATIONCODE_OPEN.equals(sysConfig.getCode())) {
            return new ResultMessage(ResponseCodeEnum.VERIFICATION_OPEN,null);
            return new ResultMessage(ResponseCodeEnum.VERIFICATION_OPEN, null);
        }
        return new ResultMessage(ResponseCodeEnum.VERIFICATION_CLOSE,null);
        return new ResultMessage(ResponseCodeEnum.VERIFICATION_CLOSE, null);
    }
    @ApiOperation(value = "获取验证码", notes = "获取验证码")
screen-api/src/main/java/com/moral/api/controller/MenuController.java
@@ -67,7 +67,7 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
    })
    @RequestMapping(value = "select", method = RequestMethod.POST)
    @RequestMapping(value = "select", method = RequestMethod.GET)
    public ResultMessage select(HttpServletRequest request) {
        String token = request.getHeader("token");
        Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
@@ -80,7 +80,7 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "get-menu-ids", method = RequestMethod.GET)
    @RequestMapping(value = "getMenuIds", method = RequestMethod.GET)
    public ResultMessage getMenuIds(Integer groupId) {
        List<Integer> menusIds = groupMenuService.getMenusIds(groupId);
        return ResultMessage.ok(menusIds);
screen-api/src/main/java/com/moral/api/controller/UserController.java
@@ -24,6 +24,7 @@
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.PageResult;
import com.moral.util.WebUtils;
@Slf4j
@Api(tags = {"用户管理"})
@@ -40,6 +41,7 @@
    })
    @RequestMapping(value = "insert", method = RequestMethod.POST)
    public ResultMessage insert(@RequestBody User user) {
        System.out.println(user);
        if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
@@ -53,22 +55,16 @@
    @ApiOperation(value = "删除账户", notes = "删除账户")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "用户id", required = true, paramType = "query", dataType = "int"),
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "delete", method = RequestMethod.POST)
    public ResultMessage delete(@RequestBody User user) {
        if (user.getId() == null) {
    @RequestMapping(value = "delete", method = RequestMethod.GET)
    public ResultMessage delete(Integer id) {
        if (id == null) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", user.getId());
        user = userService.getOne(queryWrapper);
        if (user == null) {
            return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(),
                    ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
        }
        userService.deleteUser(user);
        userService.deleteUser(id);
        return ResultMessage.ok();
    }
@@ -91,8 +87,8 @@
    @ApiOperation(value = "分页查询账户列表", notes = "分页查询账户列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "int"),
            @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "int"),
            @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"),
@@ -103,8 +99,13 @@
            @ApiImplicitParam(name = "wechat", value = "微信模糊查询", required = false, paramType = "query", dataType = "String"),
    })
    @RequestMapping(value = "select", method = RequestMethod.POST)
    public ResultMessage select(@RequestBody Map<String, Object> parameters) {
    @RequestMapping(value = "select", method = RequestMethod.GET)
    public ResultMessage select(HttpServletRequest request) {
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
        if (!parameters.containsKey("page") || !parameters.containsKey("size")) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        Page<User> userPage = userService.selectUsers(parameters);
        PageResult<User> pageResult = new PageResult<>(
                userPage.getTotal(), userPage.getPages(), userPage.getRecords()
screen-api/src/main/java/com/moral/api/entity/Group.java
@@ -22,7 +22,7 @@
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("`groupMenu`")
@TableName("`group`")
public class Group extends Model<Group> {
    private static final long serialVersionUID = 1L;
screen-api/src/main/java/com/moral/api/entity/User.java
@@ -13,9 +13,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.Transient;
import org.springframework.format.annotation.DateTimeFormat;
/**
 * <p>
@@ -93,7 +91,8 @@
    /**
     * 过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date expireTime;
    /**
screen-api/src/main/java/com/moral/api/service/GroupMenuService.java
@@ -16,7 +16,9 @@
 */
public interface GroupMenuService extends IService<GroupMenu> {
    //分配菜单
    void allotMenus(Map<String, Object> parameters);
    //获取组(角色)所有菜单集合
    List<Integer> getMenusIds(Integer groupId);
}
screen-api/src/main/java/com/moral/api/service/GroupService.java
@@ -18,12 +18,16 @@
 */
public interface GroupService extends IService<Group> {
    //新增组(角色)
    Map<String, Object> addGroup(Group group);
    void deleteGroup(Group group);
    //删除组(角色)
    void deleteGroup(Integer id);
    //修改组(角色)
    Map<String, Object> updateGroup(Group group);
    //分页组(菜单)列表
    Page<Group> selectGroups(Map<String, Object> parameters);
}
screen-api/src/main/java/com/moral/api/service/UserService.java
@@ -20,18 +20,28 @@
 */
public interface UserService extends IService<User> {
    //登陆
    Map<String, Object> login(Map<String, Object> parameters);
    //根据token获取用户信息
    Map<String,Object> getUserInfo(String token);
    //获取菜单
    Map<String, Object> getMenus(Map<String, Object> parameters);
    //新增用户
    Map<String, Object> addUser(User user);
    void deleteUser(User user);
    //删除用户
    void deleteUser(Integer userId);
    //更新用户
    Map<String, Object> updateUser(User user);
    //分页用户列表
    Page<User> selectUsers(Map<String, Object> parameters);
    //根据所传条件获取用户信息
    UserBO selectUserInfo(Map<String, Object> parameters);
}
screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
@@ -20,6 +20,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -62,7 +63,7 @@
        deleteWrapper.eq("group_id", groupId).eq("channel_key", Constants.WEB_CHANNEL);
        groupMenuMapper.delete(deleteWrapper);
        List<String> menus = new ArrayList<>();
        if (menuIds != null && !menuIds.isEmpty()) {
        if (!ObjectUtils.isEmpty(menuIds)) {
            menuIds.forEach(menuId -> {
                menus.add(menuMapper.selectById(menuId).getName());
                GroupMenu groupMenu = new GroupMenu();
@@ -74,10 +75,9 @@
            });
        }
        //日志
        String groupName = groupMapper.selectById((Integer) parameters.get("groupId")).getGroupName();
        String content = "给组:" + groupName + "分配了菜单:" + menus.toString();
        String content = "给组:" + groupName + "分配了菜单:" + menus;
        operationLogUtils.insertLog(request, content, Constants.UPDATE_OPERATE_TYPE);
    }
screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
@@ -10,6 +10,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Group;
import com.moral.api.entity.GroupMenu;
import com.moral.api.entity.User;
import com.moral.api.entity.UserGroup;
import com.moral.api.mapper.GroupMapper;
import com.moral.api.mapper.GroupMenuMapper;
@@ -80,21 +81,22 @@
    }
    @Override
    public void deleteGroup(Group group) {
    public void deleteGroup(Integer id) {
        //逻辑删除group
        group.setIsDelete(Constants.DELETE);
        groupMapper.updateById(group);
        UpdateWrapper<Group> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id).set("is_delete", Constants.DELETE);
        groupMapper.update(null, updateWrapper);
        //删除group_menu
        UpdateWrapper<GroupMenu> deleteGroupWrapper = new UpdateWrapper<>();
        deleteGroupWrapper.eq("group_id", group.getId());
        deleteGroupWrapper.eq("group_id", id);
        groupMenuMapper.delete(deleteGroupWrapper);
        //删除user_group
        UpdateWrapper<UserGroup> deleteUserGroupWrapper = new UpdateWrapper<>();
        deleteUserGroupWrapper.eq("group_id", group.getId());
        deleteUserGroupWrapper.eq("group_id", id);
        userGroupMapper.delete(deleteUserGroupWrapper);
        //日志
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        String content = "删除了组:" + group.getGroupName();
        String content = "删除了组:" + groupMapper.selectById(id).getGroupName();
        operationLogUtils.insertLog(request, content, Constants.DELETE_OPERATE_TYPE);
    }
@@ -136,7 +138,8 @@
        Integer orgId = (Integer) orgInfo.get("id");
        QueryWrapper<Group> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("organization_id", orgId)
                .eq("is_delete", Constants.NOT_DELETE);
                .eq("is_delete", Constants.NOT_DELETE)
                .ne("group_name", "admin");
        Object order = parameters.get("order");
        Object orderType = parameters.get("orderType");
        Object groupName = parameters.get("groupName");
@@ -145,18 +148,9 @@
            queryWrapper.like("group_name", groupName);
        }
        //分页参数
        if (!parameters.containsKey("page")) {
            parameters.put("page", 0);
        }
        if (!parameters.containsKey("size")) {
            parameters.put("size", 10);
        }
        int page = Integer.parseInt(parameters.get("page").toString());
        int size = Integer.parseInt(parameters.get("size").toString());
        Page<Group> pageData = new Page<>(page, size);
        //排序参数,默认id升序
        //排序参数,默认create_time降序
        if (order != null && orderType != null) {
            if (Constants.ORDER_ASC.equals(orderType)) {
@@ -170,5 +164,4 @@
        groupMapper.selectPage(pageData, queryWrapper);
        return pageData;
    }
}
screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java
@@ -20,6 +20,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -62,7 +63,7 @@
        deleteWrapper.eq("user_id", userId);
        userGroupMapper.delete(deleteWrapper);
        List<String> groups = new ArrayList<>();
        if (groupIds != null && !groupIds.isEmpty()) {
        if (!ObjectUtils.isEmpty(groupIds)) {
            groupIds.forEach(groupId -> {
                groups.add(groupMapper.selectById(groupId).getGroupName());
                UserGroup userGroup = new UserGroup();
@@ -75,7 +76,7 @@
        //日志
        String account = userMapper.selectById((Integer) parameters.get("userId")).getAccount();
        String content = "给用户:" + account + "分配了组:" + groups.toString();
        String content = "给用户:" + account + "分配了组:" + groups;
        operationLogUtils.insertLog(request, content, Constants.UPDATE_OPERATE_TYPE);
    }
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -1,9 +1,11 @@
package com.moral.api.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -57,6 +59,7 @@
 * @since 2021-03-09
 */
@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Autowired
@@ -76,7 +79,6 @@
    @Value("${AES.KEY}")
    private String AESKey;
    @Override
    public UserBO selectUserInfo(Map<String, Object> parameters) {
@@ -153,14 +155,12 @@
        try {
            //生成token,并存入redis
            String token = TokenUtils.getToken(userBo.getId().toString(), userInfo);
            Map<String, Object> data = new HashMap<>();
            data.put("token", token);
            data.put("user", userInfo);
            result.put("data", data);
            result.put("token", token);
        } catch (Exception e) {
            log.error("token生成异常:" + e.getMessage());
            result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode());
            result.put("msg", ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
            return result;
        }
        //日志
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
@@ -172,6 +172,12 @@
        userLog.setContent("登陆了用户:" + userBo.getAccount());
        userLogMapper.insert(userLog);
        return result;
    }
    @Override
    public Map<String, Object> getUserInfo(String token) {
        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
        return userInfo;
    }
    @Override
@@ -195,10 +201,10 @@
        oneMenu.forEach(o -> {
            Map<String, Object> menuMap = new LinkedHashMap<>();
            menuMap.put("id", o.getId());
            menuMap.put("name", o.getName());
            menuMap.put("label", o.getName());
            menuMap.put("url", o.getUrl());
            menuMap.put("icon", o.getIcon());
            menuMap.put("child", getMenusByRecursion(o, allMenus));
            menuMap.put("children", getMenusByRecursion(o, allMenus));
            newList.add(menuMap);
        });
        resultMap.put("menus", newList);
@@ -242,24 +248,25 @@
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("account", user.getAccount()).eq("is_delete", Constants.NOT_DELETE);
        //校验账户是否存在
        if (user.selectOne(queryWrapper) != null) {
        if (user.selectCount(queryWrapper) > 0) {
            result.put("code", ResponseCodeEnum.ACCOUNT_EXIST.getCode());
            result.put("msg", ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
            return result;
        }
        //正则校验账户
        //校验账户
        if (!RegexUtils.checkAccount(user.getAccount())) {
            result.put("code", ResponseCodeEnum.ACCOUNT_INVALID.getCode());
            result.put("msg", ResponseCodeEnum.ACCOUNT_INVALID.getMsg());
            return result;
        }
        //正则校验账户
        if (user.getEmail() != null && !RegexUtils.checkEmail(user.getEmail())) {
        //校验邮箱
        if (!ObjectUtils.isEmpty(user.getEmail()) && !RegexUtils.checkEmail(user.getEmail())) {
            result.put("code", ResponseCodeEnum.EMAIL_INVALID.getCode());
            result.put("msg", ResponseCodeEnum.EMAIL_INVALID.getMsg());
            return result;
        }
        //正则校验密码
        //校验密码
        String password = user.getPassword();
        //密码解密
        password = AESUtils.decrypt(password, AESKey);
@@ -268,8 +275,8 @@
            result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg());
            return result;
        }
        //正则校验手机号
        if (user.getMobile() != null && !RegexUtils.checkMobile(user.getMobile())) {
        //校验手机号
        if (!ObjectUtils.isEmpty(user.getMobile()) && !RegexUtils.checkMobile(user.getMobile())) {
            result.put("code", ResponseCodeEnum.MOBILE_INVALID.getCode());
            result.put("msg", ResponseCodeEnum.MOBILE_INVALID.getMsg());
            return result;
@@ -304,19 +311,20 @@
    @Override
    @Transactional
    public void deleteUser(User user) {
        String userId = user.getId().toString();
    public void deleteUser(Integer userId) {
        User user = userMapper.selectById(userId);
        //逻辑删除user
        user.setIsDelete(Constants.DELETE);
        userMapper.updateById(user);
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", userId).set("is_delete", Constants.DELETE);
        userMapper.update(null, updateWrapper);
        //删除user_group
        UpdateWrapper<UserGroup> deleteWrapper = new UpdateWrapper<>();
        deleteWrapper.eq("user_id", userId);
        userGroupMapper.delete(deleteWrapper);
        //更新redis
        if (TokenUtils.hHasKey(userId)) {
            String token = TokenUtils.hget(userId).toString();
            TokenUtils.destoryToken(userId, token);
        //清楚redis
        if (TokenUtils.hHasKey(userId.toString())) {
            String token = TokenUtils.hget(userId.toString()).toString();
            TokenUtils.destoryToken(userId.toString(), token);
        }
        //日志
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
@@ -330,25 +338,36 @@
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        String token = request.getHeader("token");
        Map<String, Object> result = new HashMap<>();
        //更新的属性
        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);
        User beforeUser = userMapper.selectById(user.getId());
        Map<String, Object> before = JSONObject.parseObject(JSON.toJSONString(beforeUser), Map.class);
        String account = beforeUser.getAccount();
        /*String account = beforeUser.getAccount();
        //account不可修改
        user.setAccount(account);
        user.setAccount(account);*/
        System.out.println(user);
        if (!ObjectUtils.isEmpty(user.getAccount())) {
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("is_delete", Constants.NOT_DELETE).eq("account", user.getAccount());
            if (userMapper.selectCount(queryWrapper) > 0) {
                result.put("code", ResponseCodeEnum.ACCOUNT_EXIST.getCode());
                result.put("msg", ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
                return result;
            }
        }
        //邮箱校验
        if (user.getEmail() != null && !RegexUtils.checkEmail(user.getEmail())) {
        if (!ObjectUtils.isEmpty(user.getEmail()) && !RegexUtils.checkEmail(user.getEmail())) {
            result.put("code", ResponseCodeEnum.EMAIL_INVALID.getCode());
            result.put("msg", ResponseCodeEnum.EMAIL_INVALID.getMsg());
            return result;
        }
        //密码校验
        String password = user.getPassword();
        if (password != null) {
        System.out.println("password==" + password);
        if (!ObjectUtils.isEmpty(password)) {
            //密码解密
            password = AESUtils.decrypt(password, AESKey);
            if (!RegexUtils.checkPassword(password)) {
@@ -359,7 +378,7 @@
        }
        //正则校验手机号
        if (user.getMobile() != null && !RegexUtils.checkMobile(user.getMobile())) {
        if (!ObjectUtils.isEmpty(user.getMobile()) && !RegexUtils.checkMobile(user.getMobile())) {
            result.put("code", ResponseCodeEnum.MOBILE_INVALID.getCode());
            result.put("msg", ResponseCodeEnum.MOBILE_INVALID.getMsg());
            return result;
@@ -404,7 +423,6 @@
            }
        }
        operationLogUtils.insertLog(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
        return result;
    }
@@ -417,7 +435,8 @@
        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("organization_id", orgInfo.get("id"))
                .eq("is_delete", Constants.NOT_DELETE);
                .eq("is_delete", Constants.NOT_DELETE)
                .eq("is_admin", false);
        Object order = parameters.get("order");
        Object orderType = parameters.get("orderType");
        Object account = parameters.get("account");
@@ -442,8 +461,8 @@
            queryWrapper.like("wechat", wechat);
        }
        Integer page = (Integer) parameters.get("page");
        Integer size = (Integer) parameters.get("size");
        int page = Integer.parseInt(parameters.get("page").toString());
        int size = Integer.parseInt(parameters.get("size").toString());
        Page<User> pageData = new Page<>(page, size);
        //排序参数,默认create_time降序
        if (order != null && orderType != null) {