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>