于紫祥_1901
2020-12-24 f28149d8183a62f87fa9c8df9ae589070d83f612
src/main/java/com/moral/service/impl/RoleServiceImpl.java
@@ -1,19 +1,30 @@
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;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.github.pagehelper.PageHelper;
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;
@@ -27,10 +38,14 @@
    @Resource
    RoleMapper roleMapper;
    @Override
    public PageBean<Role> queryByPageBean(PageBean pageBean) {
        return MyBatisBaseMapUtil.queryPage(roleMapper, pageBean, ENTITY_CLASS);
    }
    @Resource
    RoleMenuMapper roleMenuMapper;
    @Resource
    MenuMapper menuMapper;
    @Resource
    AccountRoleMapper accountRoleMapper;
    @Override
    @Transactional
@@ -45,10 +60,7 @@
                roleQuery.setRoleCode(role.getRoleCode());
                roleQuery.setIsDelete(Constants.IS_DELETE_FALSE);
                Role roleResult = roleMapper.selectOne(roleQuery);
                if (roleResult != null) {
                    role.setId(roleResult.getId());
                    roleMapper.updateByPrimaryKeySelective(role);
                } else {
                if (roleResult == null) {
                    role.setIsDelete(Constants.IS_DELETE_FALSE);
                    role.setCreateTime(new Date());
                    role.setCreateUser(role.getCreateUser());
@@ -61,16 +73,6 @@
    }
    @Override
    @Transactional
    public int deleteByIds(List<Integer> ids) {
        Role role = new Role();
        role.setIsDelete(Constants.IS_DELETE_TRUE);
        Example example = new Example(ENTITY_CLASS);
        example.or().andIn("id", ids);
        return roleMapper.updateByExampleSelective(role, example);
    }
    @Override
    public int countByExample(PageBean pageBean) {
        Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
        TkMybatisUtils.addDeletesToExample(example);
@@ -78,9 +80,89 @@
    }
    @Override
    public List<Role> getRoleList(String roleName) {
        List<Role> roleList = roleMapper.getRoleList(roleName);
        return roleList;
    public PageBean getRoleList(PageBean pageBean) {
        Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
        TkMybatisUtils.addDeletesToExample(example);
        if (pageBean.getPageSize() > 0) {
            PageHelper.startPage(pageBean.getPageIndex(), pageBean.getPageSize());
        }
        List<Role> roleList = roleMapper.getRoleList(example);
        return new PageBean(roleList);
    }
    @Override
    @Transactional
    public void deleteByIds(Integer... ids) {
        Role role = new Role();
        role.setIsDelete(Constants.IS_DELETE_TRUE);
        Example example = new Example(ENTITY_CLASS);
        example.or().andIn("id", Arrays.asList(ids));
        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);
    }
}