kaiyu
2021-05-06 7232a74d17635defd5e7e39fb7a8892f12fa3931
screen-manage
优化后台账号增加,更新,删除逻辑
1 files deleted
4 files modified
124 ■■■■ changed files
screen-common/src/main/java/com/moral/util/AESUtils.java 3 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/AccountController.java 20 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java 58 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java 41 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/AESUtils.java
@@ -81,7 +81,8 @@
    }
    public static void main(String[] args) {
        System.out.println(encrypt("chenkaiyu111","AD42F7787B035B7580000EF93BE20BAD"));
        System.out.println(encrypt("123456","AD42F7787B035B7580000EF93BE20BAD"));
        //123456 KoWjfDMZQhJMLlG1crBPqQ==
    }
}
screen-manage/src/main/java/com/moral/api/controller/AccountController.java
@@ -1,18 +1,14 @@
package com.moral.api.controller;
import com.moral.api.entity.SysArea;
import com.moral.api.pojo.dto.account.*;
import com.moral.api.pojo.dto.organization.OrganizationDTO;
import com.moral.api.pojo.form.account.AccountDeleteForm;
import com.moral.api.pojo.form.account.AccountInsertForm;
import com.moral.api.pojo.form.account.AccountQueryForm;
import com.moral.api.pojo.form.account.AccountUpdateForm;
import com.moral.api.pojo.vo.account.AccountDeleteVO;
import com.moral.api.pojo.vo.account.AccountInsertVO;
import com.moral.api.pojo.vo.account.AccountQueryVO;
import com.moral.api.pojo.vo.account.AccountUpdateVO;
import com.moral.api.service.ManageAccountService;
import com.moral.api.service.SysAreaService;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import io.swagger.annotations.*;
@@ -20,7 +16,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@Api(tags = {"后台账户管理"})
@@ -47,10 +42,7 @@
        //处理插入业务
        AccountDTO dto = accountService.insertAccount(form);
        //转换前端需要参数
        AccountInsertVO accountInsertVO = AccountInsertVO.convert(dto);
        return new ResultMessage(dto.getCode(), dto.getMsg(), accountInsertVO);
        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
    }
    @PostMapping("update")
@@ -69,10 +61,7 @@
        //处理更新业务
        AccountDTO dto = accountService.updateAccount(form);
        //转换前端需要的参数
        AccountUpdateVO vo = AccountUpdateVO.convert(dto);
        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
    }
    @PostMapping("delete")
@@ -85,10 +74,7 @@
        //处理删除业务
        AccountDTO dto = accountService.deleteAccount(form);
        //转换前端需要的参数
        AccountDeleteVO vo = AccountDeleteVO.convert(dto);
        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
    }
    @GetMapping("query")
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
@@ -39,7 +39,7 @@
    private String wechat;
    private List<String> roleIds;
    private List<Integer> roleIds;
    public boolean valid() {
        if (
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
File was deleted
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -175,7 +175,7 @@
        AccountDTO accountDTO = new AccountDTO();
        //取参
        ManageAccount manageAccount = accountInsertForm.formConvertEntity();
        List<String> roleIdsStr = accountInsertForm.getRoleIds();
        List<Integer> roleIds = accountInsertForm.getRoleIds();
        /*判断账号是否存在*/
        ManageAccount existAccount = new ManageAccount();
@@ -193,28 +193,19 @@
        //插入
        manageAccountMapper.insert(manageAccount);
        //封装account_role
        /*String to Integer*/
        List<ManageRole> roles = null;
        //如果新建账号没有分配角色则不进行操作
        if (!ObjectUtils.isEmpty(roleIdsStr)) {
            List<Integer> roleIds = new ArrayList<>();
            roleIdsStr.forEach(str -> roleIds.add(Integer.parseInt(str)));
        if (!ObjectUtils.isEmpty(roleIds)) {
            Integer accountId = manageAccount.getId();
            roleIdsStr.forEach(
            roleIds.forEach(
                    value -> {
                        ManageAccountRole manageAccountRole = new ManageAccountRole();
                        manageAccountRole.setAccountId(accountId);
                        manageAccountRole.setRoleId(Integer.parseInt(value));
                        manageAccountRole.setRoleId(value);
                        manageAccountRoleMapper.insert(manageAccountRole);
                    }
            );
            roles = manageRoleMapper.selectBatchIds(roleIds);
        }
        //封装返回结果
        accountDTO.setAccount(manageAccount);
        accountDTO.setRoles(roles);
        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -314,7 +305,7 @@
        AccountDTO accountDTO = new AccountDTO();
        //取参
        Integer accountId = accountDeleteForm.getAccountId();
        //查询是否存在
        //查询要删除的账号,用于插入日志
        ManageAccount manageAccount = new ManageAccount();
        manageAccount.setIsDelete(Constants.NOT_DELETE);
        manageAccount.setId(accountId);
@@ -338,13 +329,11 @@
        //封装返回结果
        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        accountDTO.setAccount(existManageAccount);
        //操作插入日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("删除了用户:").append(existManageAccount.getUserName() + ";")
                .append("账号:" + existManageAccount.getAccount() + ";");
                .append("账号:" + existManageAccount.getAccount() + ";");
        logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
        return accountDTO;
@@ -383,8 +372,7 @@
        if (manageAccountMap.size() > 1) {//判断如果没有除了id以外的任何属性则不更新
            manageAccountMapper.updateById(manageAccount);
        }
        //获取更新后的对象
        manageAccount = manageAccountMapper.selectById(manageAccount.getId());
        //获取账号更新前的角色
        List<ManageRole> oldRoles = manageRoleMapper.getManageRoleByAccountId(manageAccount.getId());
@@ -394,8 +382,8 @@
         * 如果roleIds为空,则是该账号所有的角色都被移除
         * 如果roleIds有元素,则是该账号的角色有更新
         * */
        List<ManageRole> roles = null;
        if (roleIds != null) {
            //删除原有角色
            UpdateWrapper<ManageAccountRole> deleteWrapper = new UpdateWrapper<>();
            deleteWrapper.eq("account_id", manageAccount.getId()).set("is_delete", Constants.DELETE);
            manageAccountRoleMapper.update(null, deleteWrapper);
@@ -406,21 +394,12 @@
                manageAccountRole.setRoleId(roleId);
                manageAccountRoleMapper.insert(manageAccountRole);
            }
            //获取用户所有角色
            if (roleIds.size() != 0)
                roles = manageRoleMapper.selectBatchIds(roleIds);
        } else {
            roles = manageRoleMapper.getManageRoleByAccountId(manageAccount.getId());
        }
        accountDTO.setRoles(roles);
        //封装返回结果
        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        accountDTO.setAccount(manageAccount);
        //操作插入日志
        insertUpdateLog(accountUpdateForm, oldManageAccount, oldRoles);
        return accountDTO;
    }
@@ -436,7 +415,7 @@
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("修改了用户:").append(oldAccount.getUserName() + ";")
                .append("账号:" + oldAccount.getAccount() + ";");
                .append("账号:" + oldAccount.getAccount() + ";");
        //对象转为Map,获取对象更新前后的属性
        Map<String, Object> newParameters = JSONObject.parseObject(JSON.toJSONString(updateForm), Map.class);
        Map<String, Object> oldParameters = JSONObject.parseObject(JSON.toJSONString(oldAccount), Map.class);
@@ -452,7 +431,7 @@
                List<Integer> newRoleIds = updateForm.getRoleIds();
                if (newRoleIds != null && 0 == newRoleIds.size()) {//如果新的角色集合为空,则是删除了所有的角色
                    content.append("删除了所有角色;");
                    content.append("角色:删除了所有角色;");
                }
                if ((newRoleIds != null) && (newRoleIds.size() != 0)) {//如果新的角色集合不为空,且不为null,则角色进行了更新
                    StringBuilder oldRolesName = new StringBuilder("空");