From f28149d8183a62f87fa9c8df9ae589070d83f612 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Thu, 24 Dec 2020 13:47:50 +0800
Subject: [PATCH] 波动补偿

---
 src/main/java/com/moral/service/impl/RoleServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 85 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/RoleServiceImpl.java b/src/main/java/com/moral/service/impl/RoleServiceImpl.java
index 9cf3716..9bba7f8 100644
--- a/src/main/java/com/moral/service/impl/RoleServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/RoleServiceImpl.java
@@ -1,8 +1,11 @@
 package com.moral.service.impl;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
@@ -13,8 +16,15 @@
 import com.moral.common.bean.Constants;
 import com.moral.common.bean.PageBean;
 import com.moral.common.util.ExampleUtil;
+import com.moral.common.util.MyBatisBaseMapUtil;
+import com.moral.entity.AccountRole;
+import com.moral.entity.Menu;
 import com.moral.entity.Role;
+import com.moral.entity.RoleMenu;
+import com.moral.mapper.AccountRoleMapper;
+import com.moral.mapper.MenuMapper;
 import com.moral.mapper.RoleMapper;
+import com.moral.mapper.RoleMenuMapper;
 import com.moral.service.RoleService;
 import com.moral.util.TkMybatisUtils;
 
@@ -28,6 +38,15 @@
     @Resource
     RoleMapper roleMapper;
 
+    @Resource
+    RoleMenuMapper roleMenuMapper;
+
+    @Resource
+    MenuMapper menuMapper;
+
+    @Resource
+    AccountRoleMapper accountRoleMapper;
+
     @Override
     @Transactional
     public void addOrModify(Role role) {
@@ -35,14 +54,13 @@
             role.setUpdateTime(new Date());
             role.setUpdateUser(role.getUpdateUser());
             if (role.getId() != null) {
-                roleMapper.updateByPrimaryKey(role);
+                roleMapper.updateByPrimaryKeySelective(role);
             } else {
                 Role roleQuery = new Role();
                 roleQuery.setRoleCode(role.getRoleCode());
                 roleQuery.setIsDelete(Constants.IS_DELETE_FALSE);
                 Role roleResult = roleMapper.selectOne(roleQuery);
                 if (roleResult == null) {
-                    role.setChannelId(role.getChannelId());
                     role.setIsDelete(Constants.IS_DELETE_FALSE);
                     role.setCreateTime(new Date());
                     role.setCreateUser(role.getCreateUser());
@@ -59,12 +77,6 @@
         Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
         TkMybatisUtils.addDeletesToExample(example);
         return roleMapper.selectCountByExample(example);
-    }
-
-    @Override
-    public List<Role> getRoleListByName(String roleName) {
-        List<Role> roleList = roleMapper.getRoleListByName(roleName);
-        return roleList;
     }
 
     @Override
@@ -88,4 +100,69 @@
         roleMapper.updateByExampleSelective(role, example);
     }
 
+    @Override
+    public List<Integer> getRoleIds(int accountId) {
+        AccountRole accountRole = new AccountRole();
+        accountRole.setAccountId(accountId);
+        List<AccountRole> accountRoleList = accountRoleMapper.select(accountRole);
+        List<Integer> roleIds = new ArrayList<>();
+        for (AccountRole accRole : accountRoleList) {
+            roleIds.add(accRole.getRoleId());
+        }
+        return roleIds;
+    }
+
+    @Override
+    public void allotRole(Integer accountId, Integer[] roleIds) {
+        Example example = new Example(AccountRole.class);
+        example.or().andEqualTo("accountId", accountId);
+        accountRoleMapper.deleteByExample(example);
+        if (roleIds != null && roleIds.length > 0) {
+            List<AccountRole> accountRoleList = new ArrayList<>();
+            for (int roleId : roleIds) {
+                AccountRole accountRole = new AccountRole();
+                accountRole.setAccountId(accountId);
+                accountRole.setRoleId(roleId);
+                accountRoleList.add(accountRole);
+            }
+            accountRoleMapper.insertList(accountRoleList);
+        }
+    }
+
+    @Override
+    public void allotMenu(Integer roleId, Integer[] menuOrders) {
+        Example example = new Example(RoleMenu.class);
+        example.or().andEqualTo("roleId", roleId);
+        roleMenuMapper.deleteByExample(example);
+        List<Menu> menuListInfo = menuMapper.getMenuListInfo();
+        Map<Integer, Integer> menuMap = new HashMap<>();
+        for (Menu m : menuListInfo) {
+            menuMap.put(m.getMenuOrder(), m.getId());
+        }
+        if (menuOrders != null && menuOrders.length > 0) {
+            List<RoleMenu> roleMenuList = new ArrayList<>();
+            for (Integer menuOrder : menuOrders) {
+                if (menuOrder > 10) {
+                    RoleMenu roleMenu = new RoleMenu();
+                    roleMenu.setRoleId(roleId);
+                    roleMenu.setChannelId(Integer.valueOf(menuOrder.toString().substring(0, 1)));
+                    roleMenu.setMenuId(menuMap.get(menuOrder));
+                    roleMenuList.add(roleMenu);
+                } else {
+                    RoleMenu roleMenu = new RoleMenu();
+                    roleMenu.setRoleId(roleId);
+                    roleMenu.setChannelId(menuOrder);
+                    roleMenu.setMenuId(0);
+                    roleMenuList.add(roleMenu);
+                }
+            }
+            roleMenuMapper.insertList(roleMenuList);
+        }
+    }
+
+    @Override
+    public PageBean<Role> queryByPageBean(PageBean pageBean) {
+        return MyBatisBaseMapUtil.queryPage(roleMapper, pageBean, ENTITY_CLASS);
+    }
+
 }

--
Gitblit v1.8.0