ZhuDongming
2019-11-28 70830c5b2e96cc1c76d4adb88ddced55e7476547
大屏后台管理代码update
6 files deleted
18 files modified
1098 ■■■■■ changed files
src/main/java/com/moral/controller/AccountRoleController.java 69 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/MenuController.java 64 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/RoleController.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/RoleMenuController.java 70 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/entity/RoleMenu.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/AccountMapper.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/AccountRoleMapper.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/MenuMapper.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/RoleMapper.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/RoleMenuMapper.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/AccountRoleService.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/AccountService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/MenuService.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/moral/service/RoleMenuService.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/RoleService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/AccountRoleServiceImpl.java 78 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/AccountServiceImpl.java 425 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/MenuServiceImpl.java 36 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/RoleMenuServiceImpl.java 78 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/RoleServiceImpl.java 55 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/AccountRoleMapper.xml 28 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/MenuMapper.xml 21 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/RoleMapper.xml 44 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/RoleMenuMapper.xml 36 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/AccountRoleController.java
File was deleted
src/main/java/com/moral/controller/MenuController.java
@@ -1,6 +1,10 @@
package com.moral.controller;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import javax.annotation.Resource;
@@ -14,6 +18,8 @@
import com.moral.common.bean.PageBean;
import com.moral.common.bean.ResultBean;
import com.moral.entity.Menu;
import com.moral.mapper.MenuMapper;
import com.moral.mapper.RoleMenuMapper;
import com.moral.service.AccountService;
import com.moral.service.ChannelService;
import com.moral.service.MenuService;
@@ -24,6 +30,12 @@
public class MenuController {
    @Resource
    MenuService menuService;
    @Resource
    MenuMapper menuMapper;
    @Resource
    RoleMenuMapper roleMenuMapper;
    @Resource
    ChannelService channelService;
@@ -79,4 +91,56 @@
        Map<String,Object> mapResult = accountService.getMenuListsByAccountName(accountName);
        return mapResult;
    }
    @GetMapping("getZNodes")
    public List<Map<String,Object>> getZNodes(Integer roleId) {
        List<Map<String,Object>> zNodes= new ArrayList<>();
        List<Integer> channelIds = menuMapper.getChannelId();
        List<Integer> channels= roleMenuMapper.getChannels(roleId);
        List<Integer> menus=roleMenuMapper.getMenus(roleId);
        List<Menu> menuList=menuService.getZNodes();
        for(Integer channelId:channelIds){
            Map<String,Object> channelNodeMap=new LinkedHashMap<>();
            channelNodeMap.put("id",channelId);
            channelNodeMap.put("pId",0);
            if (Objects.equals(channelId, 1)) {
                channelNodeMap.put("name", "大屏");
            } else if (Objects.equals(channelId, 2)) {
                channelNodeMap.put("name", "web管理");
            }else if (Objects.equals(channelId, 3)) {
                channelNodeMap.put("name", "运维APP");
            }else if(Objects.equals(channelId, 4)){
                channelNodeMap.put("name", "企业客户端APP");
            }
            channelNodeMap.put("open",true);
            for(Integer roleHasChannelId:channels){
                if(roleHasChannelId.equals(channelId)){
                    channelNodeMap.put("checked",true);
                }
            }
            zNodes.add(channelNodeMap);
        }
        for(Menu menu:menuList){
            Map<String,Object> childNodeMap=new LinkedHashMap<>();
            childNodeMap.put("id",menu.getMenuOrder());
            childNodeMap.put("pId",menu.getMenuParentId());
            childNodeMap.put("name", menu.getMenuName());
            if(menu.getMenuOrder().toString().length()==2){
                childNodeMap.put("open",true);
            }
            for(Integer roleHasMenuId:menus){
                if(roleHasMenuId.equals(menu.getId())){
                    childNodeMap.put("checked", true);
                }
            }
            zNodes.add(childNodeMap);
        }
        return zNodes;
    }
    @GetMapping("menuOrders")
    public List<Integer> getMenuOrders(Integer roleId) {
        List<Integer> menuOrders=menuService.getMenuOrders(roleId);
        return menuOrders;
    }
}
src/main/java/com/moral/controller/RoleController.java
@@ -72,4 +72,18 @@
        return resultBean;
    }
    @PostMapping("allot-menu/{id}")
    public ResultBean allotMenu(@PathVariable("id") Integer roleId, @RequestBody Integer [] menuOrders){
        ResultBean resultBean = new ResultBean();
        if(roleId==null){
            resultBean.setCode(ResultBean.NO_PERMISSION);
            resultBean.setMessage("角色ID不能为null");
            return resultBean;
        }else{
            roleService.allotMenu(roleId,menuOrders);
            resultBean.setCode(ResultBean.SUCCESS);
        }
        return resultBean;
    }
}
src/main/java/com/moral/controller/RoleMenuController.java
File was deleted
src/main/java/com/moral/entity/RoleMenu.java
@@ -13,6 +13,8 @@
    private Integer menuId;
    private Integer channelId;
    @Transient
    private Role role;
src/main/java/com/moral/mapper/AccountMapper.java
@@ -12,11 +12,11 @@
public interface AccountMapper extends BaseMapper<Account> {
    List<Map<String, Object>> getRoleNameByAccountId(Integer accountId);
    List<Map<String, Object>> getRoleNameByAccountId(Integer accountId);
    Account getByAccountName(String name);
    Account getByAccountName(String name);
    Map<String, Object> getOrganizationIdByAccountId(Integer accountId);
    Map<String, Object> getOrganizationIdByAccountId(Integer accountId);
    List<Account> getAccountList(@Param("accountName") String accountName);
src/main/java/com/moral/mapper/AccountRoleMapper.java
@@ -1,18 +1,8 @@
package com.moral.mapper;
import java.util.List;
import com.moral.common.mapper.BaseMapper;
import com.moral.entity.AccountRole;
import tk.mybatis.mapper.entity.Example;
public interface AccountRoleMapper extends BaseMapper<AccountRole> {
    List<AccountRole> getAccountRoleList(Example example);
    int updateByPrimaryKey(AccountRole accountRole);
    int deleteByPrimaryKeyOwn(Integer id);
}
src/main/java/com/moral/mapper/MenuMapper.java
@@ -20,6 +20,10 @@
    List<Menu> getParentMenuList(@Param("menuName") String menuName);
    List<Menu> getMenuListByName(@Param("menuName") String menuName);
    List<Integer> getChannelId();
    List<Menu> getMenuListInfo();
    List<Integer> getMenuOrdersByRoleId(@Param("roleId") Integer roleId);
}
src/main/java/com/moral/mapper/RoleMapper.java
@@ -2,18 +2,12 @@
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.moral.common.mapper.BaseMapper;
import com.moral.entity.Role;
import tk.mybatis.mapper.entity.Example;
public interface RoleMapper extends BaseMapper<Role> {
    int updateByPrimaryKey(Role role);
    List<Role> getRoleListByName(@Param("roleName") String roleName);
    List<Role> getRoleList(Example example);
src/main/java/com/moral/mapper/RoleMenuMapper.java
@@ -2,17 +2,15 @@
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.moral.common.mapper.BaseMapper;
import com.moral.entity.RoleMenu;
import tk.mybatis.mapper.entity.Example;
public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
    List<RoleMenu> getRoleMenuList(Example example);
    List<Integer> getChannels(@Param("roleId") Integer roleId);
    int deleteByPrimaryKeyOwn(Integer id);
    int updateByPrimaryKey(RoleMenu roleMenu);
    List<Integer> getMenus(@Param("roleId") Integer roleId);
}
src/main/java/com/moral/service/AccountRoleService.java
File was deleted
src/main/java/com/moral/service/AccountService.java
@@ -32,8 +32,6 @@
    
    Map<String, Object> getOrganizationIdByAccountId(String id);
    List<Account> getAccountList(String accountName);
    List<Role> getRolesByAccountName(String accountName);
    Map<String, Object> getMenuListsByAccountName(String accountName);
src/main/java/com/moral/service/MenuService.java
@@ -18,5 +18,7 @@
    void deleteByIds(Integer[] ids);
    List<Menu> getMenuListByName(String menuName);
    List<Menu> getZNodes();
    List<Integer> getMenuOrders(Integer roleId);
}
src/main/java/com/moral/service/RoleMenuService.java
File was deleted
src/main/java/com/moral/service/RoleService.java
@@ -11,8 +11,6 @@
    int countByExample(PageBean pageBean);
    List<Role> getRoleListByName(String roleName);
    PageBean getRoleList(PageBean pageBean);
    PageBean queryByPageBean(PageBean pageBean);
@@ -22,4 +20,6 @@
    List<Integer> getRoleIds(int accountId);
    void allotRole(Integer accountId, Integer[] roleIds);
    void allotMenu(Integer roleId, Integer[] menuOrders);
}
src/main/java/com/moral/service/impl/AccountRoleServiceImpl.java
File was deleted
src/main/java/com/moral/service/impl/AccountServiceImpl.java
@@ -36,7 +36,6 @@
import com.moral.entity.Organization;
import com.moral.entity.Role;
import com.moral.mapper.AccountMapper;
import com.moral.mapper.MenuMapper;
import com.moral.mapper.OrganizationMapper;
import com.moral.service.AccountService;
import com.moral.service.OrganizationService;
@@ -47,244 +46,240 @@
@Service
public class AccountServiceImpl implements AccountService {
    @Resource
    private  BCryptPasswordEncoder encoder;
    private BCryptPasswordEncoder encoder;
    @Resource
    private AccountMapper accountMapper;
    @Resource
    private AccountMapper accountMapper;
    @Resource
    private OrganizationService organizationService;
    @Resource
    private OrganizationService organizationService;
    @Resource
    private OrganizationMapper organizationMapper;
    @Override
    public Map<String, Object> screenLogin(Map<String, Object> parameters) {
        Map<String, Object> result = new HashMap<String, Object>();
        Account account = new Account();
        account.setAccountName((String) parameters.get("account"));
        String rawPassword = (String) parameters.get("password");
//        account.setPassword(encoder.encode((String) parameters.get("password")));
        account = accountMapper.selectOne(account);
        boolean isValid = account == null ? false:encoder.matches(rawPassword,account.getPassword());
        if (!isValid) {
            result.put("msg", "用户名及密码输入错误!");
        } else {
            if (IS_DELETE_FALSE.equals(account.getIsDelete())) {
                result.put("msg", "登录成功!");
                result.put("accountId", account.getId());
                result.put("orgId", account.getOrganizationId());
                setOrgIdsByAccount(result);
            } else {
                result.put("msg","您的账号已禁用,请联系管理员!");
            }
        }
        return result;
    }
    @Override
    public Account getAccountByAccountName(String accountName) {
        Account account = new Account();
        account.setAccountName(accountName);
        return accountMapper.selectOne(account);
    }
    @Override
    public Account getAccountById(Integer id){
        return accountMapper.selectByPrimaryKey(id);
    }
    @Override
    public void setOrgIdsByAccount(Map<String, Object> parameters) {
        String accountId = parameters.get("accountId").toString();
        accountId = accountId.replaceFirst("-", "");
        if (!isNumeric(accountId)) {
            throw new BusinessException("accountId 参数不合法!");
        }
        Account account = accountMapper.selectByPrimaryKey((Integer.valueOf(accountId)));
        if (isEmpty(account) || IS_DELETE_TRUE.equals(account.getIsDelete())) {
            throw new BusinessException(accountId + ":该账号不存在!");
        }
        Integer orgId = account.getOrganizationId();
        // 不是摩瑞尔账号的需要根据组织来获取数据权限
        if (!(-1 == orgId  || getValue("orgId").equals(orgId+""))) {
            Set<Integer> orgIds = organizationService.getChildOrganizationIds(orgId);
            parameters.put("orgIds", orgIds);
        }
    }
    @Override
    public PageBean<Account> getAccountListByPage(Map<String, Object> parameters) {
        Example example = new Example(Account.class);
        Criteria criteria = example.createCriteria();
        if (parameters.containsKey("accountName")) {
            criteria.andLike("accountName", "%" + (String) parameters.get("accountName") + "%");
        }
        if (parameters.containsKey("mobile")) {
            criteria.andLike("mobile", "%" + (String) parameters.get("mobile") + "%");
        }
        if (parameters.containsKey("isDelete")) {
            criteria.andEqualTo("isDelete", parameters.get("isDelete"));
        }
        if (parameters.containsKey("sorter")) {
            example.setOrderByClause((String) parameters.get("sorter"));
        }
        PageHelper.startPage(Integer.valueOf((String) parameters.get("pageIndex")), Integer.valueOf((String) parameters.get("pageSize")));
        List<Account> accounts = accountMapper.selectByExample(example);
        Set<Integer> organizationIds = new HashSet<Integer>();
        for (Account account : accounts) {
            if (!ObjectUtils.isEmpty(account.getOrganizationId())) {
                organizationIds.add(account.getOrganizationId());
            }
        }
        if(!ObjectUtils.isEmpty(organizationIds)){
            example = new Example(Organization.class);
            example.or().andIn("id", organizationIds);
            List<Organization> organizations = organizationMapper.selectByExample(example);
            for (Account account : accounts) {
                for (Organization organization : organizations) {
                    if (account.getOrganizationId() == organization.getId()) {
                        account.setOrganization(organization);
                        break;
                    }
                }
            }
        }
        return new PageBean<Account>(accounts);
    }
    @Override
    @Transactional
    public Integer saveOrUpdateAccount(Account account) {
        // 重置密码
        if(!StringUtils.isBlank(account.getPassword())){
            account.setPassword(encoder.encode(account.getPassword()));
        }
        if (ObjectUtils.isEmpty(account.getId())) {
            account.setIsDelete(Constants.IS_DELETE_FALSE);
            account.setCreateTime(new Date());
            account.setPassword(encoder.encode(ResourceUtil.getValue("password")));
            return accountMapper.insertSelective(account);
        } else {
            return accountMapper.updateByPrimaryKeySelective(account);
        }
    }
    @Override
    @Transactional
    public Integer deleteAccountsByLogic(List<Integer> ids) {
        Account account = new Account();
        account.setIsDelete(Constants.IS_DELETE_TRUE);
        Example example = new Example(Account.class);
        example.or().andIn("id", ids);
        return accountMapper.updateByExampleSelective(account, example);
    }
    @Override
    public Integer getAccountCountByAccountName(String accountName) {
        Account account = new Account();
        account.setAccountName(accountName);
        return accountMapper.selectCount(account);
    }
    @Override
    public Optional<Account> queryAccountByName(String accountName) {
        Account account = accountMapper.getByAccountName(accountName);
        return Optional.ofNullable(account);
    }
    @Override
    public Account companyLogin(Map<String, Object> parameters) {
        ValidateUtil.notNull(parameters.get("account"), "param.is.null");
        ValidateUtil.notNull(parameters.get("password"), "param.is.null");
        Account account = new Account();
        account.setIsDelete(Constants.IS_DELETE_FALSE);
        account.setAccountName(parameters.get("account").toString());
        account = accountMapper.selectOne(account);
        if (ObjectUtils.isEmpty(account)) {
            throw new BusinessException("账户不存在,请联系管理员!");
        }
        if (!encoder.matches(parameters.get("password").toString(), account.getPassword())) {
            throw new BusinessException("密码错误,请重新输入!");
        }
        account.setPassword(parameters.get("password").toString());
        return account;
    }
    @Override
    public Map<String, Object> getOrganizationIdByAccountId(String id) {
        Integer accountId = Integer.parseInt(id);
        Map<String, Object> map = accountMapper.getOrganizationIdByAccountId(accountId);
        return map;
    }
    @Resource
    private OrganizationMapper organizationMapper;
    @Override
    public List<Account> getAccountList(String accountName) {
        List<Account> accountList = accountMapper.getAccountList(accountName);
        return accountList;
    public Map<String, Object> screenLogin(Map<String, Object> parameters) {
        Map<String, Object> result = new HashMap<String, Object>();
        Account account = new Account();
        account.setAccountName((String) parameters.get("account"));
        String rawPassword = (String) parameters.get("password");
//        account.setPassword(encoder.encode((String) parameters.get("password")));
        account = accountMapper.selectOne(account);
        boolean isValid = account == null ? false : encoder.matches(rawPassword, account.getPassword());
        if (!isValid) {
            result.put("msg", "用户名及密码输入错误!");
        } else {
            if (IS_DELETE_FALSE.equals(account.getIsDelete())) {
                result.put("msg", "登录成功!");
                result.put("accountId", account.getId());
                result.put("orgId", account.getOrganizationId());
                setOrgIdsByAccount(result);
            } else {
                result.put("msg", "您的账号已禁用,请联系管理员!");
            }
        }
        return result;
    }
    @Override
    public Account getAccountByAccountName(String accountName) {
        Account account = new Account();
        account.setAccountName(accountName);
        return accountMapper.selectOne(account);
    }
    @Override
    public Account getAccountById(Integer id) {
        return accountMapper.selectByPrimaryKey(id);
    }
    @Override
    public void setOrgIdsByAccount(Map<String, Object> parameters) {
        String accountId = parameters.get("accountId").toString();
        accountId = accountId.replaceFirst("-", "");
        if (!isNumeric(accountId)) {
            throw new BusinessException("accountId 参数不合法!");
        }
        Account account = accountMapper.selectByPrimaryKey((Integer.valueOf(accountId)));
        if (isEmpty(account) || IS_DELETE_TRUE.equals(account.getIsDelete())) {
            throw new BusinessException(accountId + ":该账号不存在!");
        }
        Integer orgId = account.getOrganizationId();
        // 不是摩瑞尔账号的需要根据组织来获取数据权限
        if (!(-1 == orgId || getValue("orgId").equals(orgId + ""))) {
            Set<Integer> orgIds = organizationService.getChildOrganizationIds(orgId);
            parameters.put("orgIds", orgIds);
        }
    }
    @Override
    public PageBean<Account> getAccountListByPage(Map<String, Object> parameters) {
        Example example = new Example(Account.class);
        Criteria criteria = example.createCriteria();
        if (parameters.containsKey("accountName")) {
            criteria.andLike("accountName", "%" + (String) parameters.get("accountName") + "%");
        }
        if (parameters.containsKey("mobile")) {
            criteria.andLike("mobile", "%" + (String) parameters.get("mobile") + "%");
        }
        if (parameters.containsKey("isDelete")) {
            criteria.andEqualTo("isDelete", parameters.get("isDelete"));
        }
        if (parameters.containsKey("sorter")) {
            example.setOrderByClause((String) parameters.get("sorter"));
        }
        PageHelper.startPage(Integer.valueOf((String) parameters.get("pageIndex")), Integer.valueOf((String) parameters.get("pageSize")));
        List<Account> accounts = accountMapper.selectByExample(example);
        Set<Integer> organizationIds = new HashSet<Integer>();
        for (Account account : accounts) {
            if (!ObjectUtils.isEmpty(account.getOrganizationId())) {
                organizationIds.add(account.getOrganizationId());
            }
        }
        if (!ObjectUtils.isEmpty(organizationIds)) {
            example = new Example(Organization.class);
            example.or().andIn("id", organizationIds);
            List<Organization> organizations = organizationMapper.selectByExample(example);
            for (Account account : accounts) {
                for (Organization organization : organizations) {
                    if (account.getOrganizationId() == organization.getId()) {
                        account.setOrganization(organization);
                        break;
                    }
                }
            }
        }
        return new PageBean<Account>(accounts);
    }
    @Override
    @Transactional
    public Integer saveOrUpdateAccount(Account account) {
        // 重置密码
        if (!StringUtils.isBlank(account.getPassword())) {
            account.setPassword(encoder.encode(account.getPassword()));
        }
        if (ObjectUtils.isEmpty(account.getId())) {
            account.setIsDelete(Constants.IS_DELETE_FALSE);
            account.setCreateTime(new Date());
            account.setPassword(encoder.encode(ResourceUtil.getValue("password")));
            return accountMapper.insertSelective(account);
        } else {
            return accountMapper.updateByPrimaryKeySelective(account);
        }
    }
    @Override
    @Transactional
    public Integer deleteAccountsByLogic(List<Integer> ids) {
        Account account = new Account();
        account.setIsDelete(Constants.IS_DELETE_TRUE);
        Example example = new Example(Account.class);
        example.or().andIn("id", ids);
        return accountMapper.updateByExampleSelective(account, example);
    }
    @Override
    public Integer getAccountCountByAccountName(String accountName) {
        Account account = new Account();
        account.setAccountName(accountName);
        return accountMapper.selectCount(account);
    }
    @Override
    public Optional<Account> queryAccountByName(String accountName) {
        Account account = accountMapper.getByAccountName(accountName);
        return Optional.ofNullable(account);
    }
    @Override
    public Account companyLogin(Map<String, Object> parameters) {
        ValidateUtil.notNull(parameters.get("account"), "param.is.null");
        ValidateUtil.notNull(parameters.get("password"), "param.is.null");
        Account account = new Account();
        account.setIsDelete(Constants.IS_DELETE_FALSE);
        account.setAccountName(parameters.get("account").toString());
        account = accountMapper.selectOne(account);
        if (ObjectUtils.isEmpty(account)) {
            throw new BusinessException("账户不存在,请联系管理员!");
        }
        if (!encoder.matches(parameters.get("password").toString(), account.getPassword())) {
            throw new BusinessException("密码错误,请重新输入!");
        }
        account.setPassword(parameters.get("password").toString());
        return account;
    }
    @Override
    public Map<String, Object> getOrganizationIdByAccountId(String id) {
        Integer accountId = Integer.parseInt(id);
        Map<String, Object> map = accountMapper.getOrganizationIdByAccountId(accountId);
        return map;
    }
    @Override
    public List<Role> getRolesByAccountName(String accountName) {
        List<Role> roleList = accountMapper.getRolesByAccountName(accountName);
        List<Role> roleList = accountMapper.getRolesByAccountName(accountName);
        return roleList;
    }
    @Override
    public Map<String, Object> getMenuListsByAccountName(String accountName) {
        List<Menu> menuList=accountMapper.getParentMenuListsByAccountName(accountName);
        String email=accountMapper.getEmailByAccountName(accountName);
        Map<String,Object> mapList=new LinkedHashMap<>();
        Map<String,Object> appMap=new LinkedHashMap<>();
        appMap.put("name","七星瓢虫环境监测");
        appMap.put("description","七星瓢虫环境监测后台配置中心");
        mapList.put("app",appMap);
        Map<String,Object> userMap=new LinkedHashMap<>();
        userMap.put("name",accountName);
        userMap.put("avatar","./assets/img/zorro.svg");
        userMap.put("email",email);
        mapList.put("user",userMap);
        Map<String,Object> navigationMap=new LinkedHashMap<>();
        Map<String,Object> navigationChildMap=new LinkedHashMap<>();
        navigationChildMap.put("text","工作台");
        List<Menu> menuList = accountMapper.getParentMenuListsByAccountName(accountName);
        String email = accountMapper.getEmailByAccountName(accountName);
        Map<String, Object> mapList = new LinkedHashMap<>();
        Map<String, Object> appMap = new LinkedHashMap<>();
        appMap.put("name", "七星瓢虫环境监测");
        appMap.put("description", "七星瓢虫环境监测后台配置中心");
        mapList.put("app", appMap);
        Map<String, Object> userMap = new LinkedHashMap<>();
        userMap.put("name", accountName);
        userMap.put("avatar", "./assets/img/zorro.svg");
        userMap.put("email", email);
        mapList.put("user", userMap);
        Map<String, Object> navigationMap = new LinkedHashMap<>();
        Map<String, Object> navigationChildMap = new LinkedHashMap<>();
        navigationChildMap.put("text", "工作台");
        navigationChildMap.put("link", "/dashboard/workplace");
        navigationChildMap.put("icon","icon-speedometer");
        navigationChildMap.put("translate","dashboard_workplace");
        List<Map> navigationChildList=new ArrayList<>();
        navigationChildMap.put("icon", "icon-speedometer");
        navigationChildMap.put("translate", "dashboard_workplace");
        List<Map> navigationChildList = new ArrayList<>();
        navigationChildList.add(navigationChildMap);
        navigationMap.put("text","主导航");
        navigationMap.put("translate","main_navigation");
        navigationMap.put("group",true);
        navigationMap.put("children",navigationChildList);
        Map<String,Object> systemMap=new LinkedHashMap<>();
        systemMap.put("text","系统模块");
        systemMap.put("group",true);
        List<Map> systemList=new ArrayList<>();
        if(!CollectionUtils.isEmpty(menuList)){
            for(Menu m:menuList){
                Map<String,Object> systemChildMap=new LinkedHashMap<>();
                systemChildMap.put("text",m.getMenuName());
                systemChildMap.put("icon",m.getMenuIcon());
                List<Menu> childMenuLists=accountMapper.getChildMenuIdsByAccountName(accountName,m.getId());
                List<Map> systemSonList=new ArrayList<>();
                if(!CollectionUtils.isEmpty(childMenuLists)){
                    for(Menu childMenu:childMenuLists){
                        Map<String,Object> systemSonMap=new LinkedHashMap<>();
                        systemSonMap.put("text",childMenu.getMenuName());
                        systemSonMap.put("link",childMenu.getMenuUrl());
        navigationMap.put("text", "主导航");
        navigationMap.put("translate", "main_navigation");
        navigationMap.put("group", true);
        navigationMap.put("children", navigationChildList);
        Map<String, Object> systemMap = new LinkedHashMap<>();
        systemMap.put("text", "系统模块");
        systemMap.put("group", true);
        List<Map> systemList = new ArrayList<>();
        if (!CollectionUtils.isEmpty(menuList)) {
            for (Menu m : menuList) {
                Map<String, Object> systemChildMap = new LinkedHashMap<>();
                systemChildMap.put("text", m.getMenuName());
                systemChildMap.put("icon", m.getMenuIcon());
                List<Menu> childMenuLists = accountMapper.getChildMenuIdsByAccountName(accountName, m.getId());
                List<Map> systemSonList = new ArrayList<>();
                if (!CollectionUtils.isEmpty(childMenuLists)) {
                    for (Menu childMenu : childMenuLists) {
                        Map<String, Object> systemSonMap = new LinkedHashMap<>();
                        systemSonMap.put("text", childMenu.getMenuName());
                        systemSonMap.put("link", childMenu.getMenuUrl());
                        systemSonList.add(systemSonMap);
                    }
                }
                systemChildMap.put("children",systemSonList);
                systemChildMap.put("children", systemSonList);
                systemList.add(systemChildMap);
            }
        }
        systemMap.put("children",systemList);
        List<Map> list=new ArrayList<>();
        systemMap.put("children", systemList);
        List<Map> list = new ArrayList<>();
        list.add(navigationMap);
        list.add(systemMap);
        mapList.put("menu",list);
        mapList.put("menu", list);
        return mapList;
    }
src/main/java/com/moral/service/impl/MenuServiceImpl.java
@@ -1,5 +1,6 @@
package com.moral.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.Iterator;
@@ -7,6 +8,7 @@
import javax.annotation.Resource;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -16,9 +18,9 @@
import com.moral.common.util.ExampleUtil;
import com.moral.entity.Menu;
import com.moral.mapper.MenuMapper;
import com.moral.mapper.RoleMenuMapper;
import com.moral.service.MenuService;
import com.moral.util.TkMybatisUtils;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import tk.mybatis.mapper.entity.Example;
@@ -30,11 +32,14 @@
    @Resource
    private MenuMapper menuMapper;
    @Resource
    private RoleMenuMapper roleMenuMapper;
    @Override
    @Transactional
    public void addOrModify(Menu menu) {
        try {
            if(menu.getMenuParentId()==null){
            if (menu.getMenuParentId() == null) {
                menu.setMenuParentId(0);
            }
            menu.setUpdateTime(new Date());
@@ -116,8 +121,29 @@
    }
    @Override
    public List<Menu> getMenuListByName(String menuName) {
        List<Menu> menuList = menuMapper.getMenuListByName(menuName);
        return menuList;
    public List<Menu> getZNodes() {
        List<Menu> menuList = menuMapper.getMenuListInfo();
        List<Menu> zNodes = new ArrayList<>();
        for (Menu menu : menuList) {
            if (menu.getMenuOrder().toString().length() == 2) {
                menu.setMenuParentId(Integer.valueOf(menu.getMenuOrder().toString().substring(0, 1)));
            } else if (menu.getMenuOrder().toString().length() == 3) {
                menu.setMenuParentId(Integer.valueOf(menu.getMenuOrder().toString().substring(0, 2)));
            }
            zNodes.add(menu);
        }
        return zNodes;
    }
    @Override
    public List<Integer> getMenuOrders(Integer roleId) {
        List<Integer> menuOrders = menuMapper.getMenuOrdersByRoleId(roleId);
        List<Integer> channels = roleMenuMapper.getChannels(roleId);
        if (CollectionUtils.isNotEmpty(channels)) {
            for (Integer channel : channels) {
                menuOrders.add(channel);
            }
        }
        return menuOrders;
    }
}
src/main/java/com/moral/service/impl/RoleMenuServiceImpl.java
File was deleted
src/main/java/com/moral/service/impl/RoleServiceImpl.java
@@ -3,7 +3,9 @@
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;
@@ -16,9 +18,13 @@
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;
@@ -31,6 +37,12 @@
    @Resource
    RoleMapper roleMapper;
    @Resource
    RoleMenuMapper roleMenuMapper;
    @Resource
    MenuMapper menuMapper;
    @Resource
    AccountRoleMapper accountRoleMapper;
@@ -68,12 +80,6 @@
    }
    @Override
    public List<Role> getRoleListByName(String roleName) {
        List<Role> roleList = roleMapper.getRoleListByName(roleName);
        return roleList;
    }
    @Override
    public PageBean getRoleList(PageBean pageBean) {
        Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
        TkMybatisUtils.addDeletesToExample(example);
@@ -100,7 +106,7 @@
        accountRole.setAccountId(accountId);
        List<AccountRole> accountRoleList = accountRoleMapper.select(accountRole);
        List<Integer> roleIds = new ArrayList<>();
        for(AccountRole accRole:accountRoleList ){
        for (AccountRole accRole : accountRoleList) {
            roleIds.add(accRole.getRoleId());
        }
        return roleIds;
@@ -109,11 +115,11 @@
    @Override
    public void allotRole(Integer accountId, Integer[] roleIds) {
        Example example = new Example(AccountRole.class);
        example.or().andEqualTo("accountId",accountId);
        example.or().andEqualTo("accountId", accountId);
        accountRoleMapper.deleteByExample(example);
        if(roleIds!=null && roleIds.length >0){
        if (roleIds != null && roleIds.length > 0) {
            List<AccountRole> accountRoleList = new ArrayList<>();
            for(int roleId:roleIds){
            for (int roleId : roleIds) {
                AccountRole accountRole = new AccountRole();
                accountRole.setAccountId(accountId);
                accountRole.setRoleId(roleId);
@@ -124,8 +130,33 @@
    }
    @Override
    public PageBean<Role> queryByPageBean(PageBean pageBean){
        return MyBatisBaseMapUtil.queryPage(roleMapper,pageBean,ENTITY_CLASS);
    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);
                }
            }
            roleMenuMapper.insertList(roleMenuList);
        }
    }
    @Override
    public PageBean<Role> queryByPageBean(PageBean pageBean) {
        return MyBatisBaseMapUtil.queryPage(roleMapper, pageBean, ENTITY_CLASS);
    }
}
src/main/resources/mapper/AccountRoleMapper.xml
@@ -49,32 +49,4 @@
        </where>
    </sql>
    <select id="getAccountRoleList" resultMap="BaseResultMap">
        select
        ar.*,
        a.account_name,
        r.role_name
        from account_role ar
        left join account a on ar.account_id = a.id
        left join role r on ar.role_id = r.id
        <if test="_parameter != null">
            <include refid="Example_Where_Clause"/>
        </if>
        <if test="orderByClause != null">
            order by ${orderByClause}
        </if>
    </select>
    <update id="updateByPrimaryKey" parameterType="com.moral.entity.AccountRole" >
        update account_role
        set account_id = #{accountId,jdbcType=INTEGER},
        role_id = #{roleId,jdbcType=INTEGER}
        where id = #{id,jdbcType=INTEGER}
    </update>
    <delete id="deleteByPrimaryKeyOwn" parameterType="java.lang.Integer" >
        delete from account_role
        where id = #{id,jdbcType=INTEGER}
    </delete>
</mapper>
src/main/resources/mapper/MenuMapper.xml
@@ -110,14 +110,27 @@
        </if>
    </select>
    <select id="getMenuListByName" resultMap="ResultMap">
    <select id="getChannelId" resultType="java.lang.Integer">
        select
        distinct
        channel_id
        from menu
        where is_delete=0
    </select>
    <select id="getMenuListInfo" resultMap="ResultMap">
        select
        <include refid="Base_Column_List"/>
        from menu
        where is_delete=0
        <if test="menuName != 'null'">
            and menu_name like concat('%',#{menuName},'%')
        </if>
    </select>
    <select id="getMenuOrdersByRoleId" resultType="java.lang.Integer">
        select
        m.menu_order
        from menu m
        left join role_menu rm on m.id=rm.menu_id and m.channel_id= rm.channel_id
        where rm.role_id = #{roleId}
    </select>
</mapper>
src/main/resources/mapper/RoleMapper.xml
@@ -49,16 +49,6 @@
        </where>
    </sql>
    <select id="getRoleListByName" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from role
        where is_delete=0
        <if test="roleName != 'null'">
            and role_name like concat('%',#{roleName},'%')
        </if>
    </select>
    <select id="getRoleList" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
@@ -70,39 +60,5 @@
            order by ${orderByClause}
        </if>
    </select>
    <update id="updateByPrimaryKey" parameterType="com.moral.entity.Role" >
        update role
        <set >
            <if test="roleCode != null" >
                role_code = #{roleCode,jdbcType=VARCHAR},
            </if>
            <if test="roleName != null" >
                role_name = #{roleName,jdbcType=VARCHAR},
            </if>
            <if test="channelId != null" >
                channel_id = #{channelId,jdbcType=INTEGER},
            </if>
            <if test="isDelete != null" >
                is_delete = #{isDelete,jdbcType=CHAR},
            </if>
            <if test="roleRemark != null" >
                role_remark = #{roleRemark,jdbcType=VARCHAR},
            </if>
            <if test="createTime != null" >
                create_time = #{createTime,jdbcType=TIMESTAMP},
            </if>
            <if test="createUser != null" >
                create_user = #{createUser,jdbcType=VARCHAR},
            </if>
            <if test="updateTime != null" >
                update_time = #{updateTime,jdbcType=TIMESTAMP},
            </if>
            <if test="updateUser != null" >
                update_user = #{updateUser,jdbcType=VARCHAR},
            </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
    </update>
</mapper>
src/main/resources/mapper/RoleMenuMapper.xml
@@ -49,32 +49,20 @@
        </where>
    </sql>
    <select id="getRoleMenuList" resultMap="BaseResultMap">
    <select id="getChannels" resultType="java.lang.Integer">
        select
        rm.*,
        r.role_name,
        m.menu_name
        from role_menu rm
        left join role r on rm.role_id = r.id
        left join menu m on rm.menu_id = m.id
        <if test="_parameter != null">
            <include refid="Example_Where_Clause"/>
        </if>
        <if test="orderByClause != null">
            order by ${orderByClause}
        </if>
        distinct
        channel_id
        from role_menu
        where role_id = #{roleId}
    </select>
    <update id="updateByPrimaryKey" parameterType="com.moral.entity.RoleMenu" >
        update role_menu
        set role_id = #{roleId,jdbcType=INTEGER},
        menu_id = #{menuId,jdbcType=INTEGER}
        where id = #{id,jdbcType=INTEGER}
    </update>
    <delete id="deleteByPrimaryKeyOwn" parameterType="java.lang.Integer" >
        delete from role_menu
        where id = #{id,jdbcType=INTEGER}
    </delete>
    <select id="getMenus" resultType="java.lang.Integer">
        select
        menu_id
        from role_menu
        where role_id = #{roleId}
    </select>
</mapper>