|
|
|
@@ -2,10 +2,12 @@ package com.iformall.service.impl; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
|
|
|
|
import com.iformall.common.IdWorker; |
|
|
|
import com.iformall.domain.po.WxLogicPermission; |
|
|
|
import com.iformall.domain.po.base.BaseEntity; |
|
|
|
import com.iformall.domain.po.MallPermission; |
|
|
|
import com.iformall.domain.po.MallUserInfo; |
|
|
|
@@ -14,9 +16,9 @@ import com.iformall.enums.EnumPermissionType; |
|
|
|
import com.iformall.enums.EnumUserAdmin; |
|
|
|
import com.iformall.mapper.MallPermissionMapper; |
|
|
|
import com.iformall.mapper.MallUserInfoMapper; |
|
|
|
import com.iformall.mapper.WxLogicPermissionMapper; |
|
|
|
import com.iformall.mapper.WxMallMapper; |
|
|
|
import com.iformall.service.MallPermissionService; |
|
|
|
import org.apache.commons.collections.CollectionUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
@@ -36,6 +38,8 @@ public class MallPermissionServiceImpl implements MallPermissionService { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private WxMallMapper wxMallMapper; |
|
|
|
@Autowired |
|
|
|
private WxLogicPermissionMapper logicPermissionDao; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<MallPermission> queryListParentId(Long parentId, List<Long> menuIdList, boolean boolNav) { |
|
|
|
@@ -51,6 +55,10 @@ public class MallPermissionServiceImpl implements MallPermissionService { |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (Objects.equals(menu.getResourceType(), EnumPermissionType.BUTTON.getCode())) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(menuIdList.contains(menu.getId())){ |
|
|
|
userMenuList.add(menu); |
|
|
|
} |
|
|
|
@@ -135,11 +143,10 @@ public class MallPermissionServiceImpl implements MallPermissionService { |
|
|
|
for(MallPermission entity : menuList){ |
|
|
|
//目录 |
|
|
|
if(entity.getResourceType().equals(EnumPermissionType.CATALOG.getCode())){ |
|
|
|
entity.setChildren(getMenuTreeList(queryListParentId(entity.getId(), menuIdList, boolNav), menuIdList, boolNav)); |
|
|
|
} |
|
|
|
List<MallPermission> btnList = mallPermissionMapper.queryBtnListByParentId(entity.getId()); |
|
|
|
if (CollectionUtils.isNotEmpty(btnList)) { |
|
|
|
entity.setBtnChildren(btnList); |
|
|
|
List<MallPermission> subPermisson = getMenuTreeList(queryListParentId(entity.getId(), menuIdList, boolNav), menuIdList, boolNav); |
|
|
|
List<MallPermission> logicPermisson = getLogicPermisson(entity); |
|
|
|
subPermisson.addAll(logicPermisson); |
|
|
|
entity.setChildren(subPermisson); |
|
|
|
} |
|
|
|
subMenuList.add(entity); |
|
|
|
} |
|
|
|
@@ -147,6 +154,24 @@ public class MallPermissionServiceImpl implements MallPermissionService { |
|
|
|
return subMenuList; |
|
|
|
} |
|
|
|
|
|
|
|
private List<MallPermission> getLogicPermisson(MallPermission entity) { |
|
|
|
List<MallPermission> mallPermissionList = new ArrayList<>(); |
|
|
|
if (entity.getParentId() != 0) { |
|
|
|
return mallPermissionList; |
|
|
|
} |
|
|
|
WxLogicPermission query = new WxLogicPermission(); |
|
|
|
query.setParentId(entity.getId()); |
|
|
|
List<WxLogicPermission> logicPermissionList = logicPermissionDao.findList(query); |
|
|
|
for (WxLogicPermission logicPermission : logicPermissionList) { |
|
|
|
MallPermission permission = new MallPermission(); |
|
|
|
permission.setName(logicPermission.getName()); |
|
|
|
List<MallPermission> mallPermissions = mallPermissionMapper.selectBatchIds(JSONArray.parseArray(logicPermission.getPermission(), Long.class)); |
|
|
|
permission.setChildren(mallPermissions); |
|
|
|
mallPermissionList.add(permission); |
|
|
|
} |
|
|
|
return mallPermissionList; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageInfo<MallPermission> listAsPage(MallPermission record, Integer pageIndex, Integer pageSize) { |
|
|
|
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> mallPermissionMapper.findList(record)); |
|
|
|
|