diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleMenuDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleMenuDAO.java index 7ee061ccb..d9faeaeb4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleMenuDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleMenuDAO.java @@ -1,7 +1,15 @@ package com.cool.store.dao; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import com.cool.store.entity.SysRoleMenuDO; +import com.cool.store.mapper.SysRoleMenuMapper; +import com.google.common.collect.Lists; import org.springframework.stereotype.Repository; +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + /** * @author zhangchenbiao * @date 2023-05-19 03:01 @@ -9,4 +17,20 @@ import org.springframework.stereotype.Repository; @Repository public class SysRoleMenuDAO { + @Resource + private SysRoleMenuMapper sysRoleMenuMapper; + + /** + * 获取菜单 + * @param roleId + * @param platform + * @return + */ + public List getRoleMenuByRoleId(String roleId, String platform){ + if(Objects.isNull(roleId) || StringUtils.isBlank(platform)){ + return Lists.newArrayList(); + } + return sysRoleMenuMapper.getRoleMenuByRoleId(roleId, platform); + } + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java index fc8cd9f6f..11fd97982 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java @@ -39,6 +39,14 @@ public class UserRegionMappingDAO { return userRegionMappingMapper.deleteUserRegion(regionId, dataSourceEnum.getCode(), excludeUserIds); } + + public Integer deleteUserRegionByUserId(String userId, DataSourceEnum dataSourceEnum, List excludeRegionIds){ + if(StringUtils.isBlank(userId) || Objects.isNull(dataSourceEnum)){ + return null; + } + return userRegionMappingMapper.deleteUserRegionByExcludeRegionIds(userId, dataSourceEnum.getCode(), excludeRegionIds); + } + public Integer deleteRegionUserByExcludeRegionIds(List excludeRegionIds){ if(CollectionUtils.isEmpty(excludeRegionIds)){ return null; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java index 1dd78abc0..fb186ad9c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMenuMapper.java @@ -3,6 +3,8 @@ package com.cool.store.mapper; import com.cool.store.entity.SysRoleMenuDO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author zhangchenbiao * @date 2023-05-19 03:01 @@ -22,4 +24,12 @@ public interface SysRoleMenuMapper { * dateTime:2023-05-19 03:01 */ int updateByPrimaryKeySelective(@Param("record") SysRoleMenuDO record); + + /** + * 根据角色获取菜单 + * @param roleId + * @param platform + * @return + */ + List getRoleMenuByRoleId(@Param("roleId")String roleId, @Param("platform")String platform); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java index acdcc490b..d12db9cac 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java @@ -34,6 +34,15 @@ public interface UserRegionMappingMapper { */ int deleteUserRegion(@Param("regionId") String regionId, @Param("type")Integer type, @Param("excludeUserIds") List excludeUserIds); + /** + * 删除用户不存在的部门 + * @param userId + * @param type + * @param excludeRegionIds + * @return + */ + int deleteUserRegionByExcludeRegionIds(@Param("userId") String userId, @Param("type")Integer type, @Param("excludeRegionIds") List excludeRegionIds); + /** * 删除没有的部门映射关系 * @param excludeRegionIds diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml index 059f5fb93..f776eadab 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml @@ -368,10 +368,10 @@ and hpip.room_status = #{record.roomStatus} - + and hpip.start_time >= #{record.startTime} - + and hpip.end_time <= #{record.endTime} diff --git a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml index 7f2e4bb07..89160a87b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMenuMapper.xml @@ -4,7 +4,7 @@ - + @@ -50,4 +50,13 @@ where id = #{record.id} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml index 73df66fb5..b1b3a0835 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml @@ -111,6 +111,13 @@ + + update user_region_mapping set deleted = 1 where user_id = #{userId} and type = #{type} + + and region_id not in #{regionId} + + + update user_region_mapping set deleted = 1 where region_id not in #{regionId} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java index a297bc102..9191bfa47 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/trtc/callback/TencentVod.java @@ -1,6 +1,5 @@ package com.cool.store.dto.trtc.callback; -import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; /** @@ -24,7 +23,7 @@ public class TencentVod { @JsonProperty("StartTimeStamp") private long startTimeStamp; @JsonProperty("EndTimeStamp") - private int endTimeStamp; + private long endTimeStamp; public String getUserId() { return userId; @@ -82,11 +81,11 @@ public class TencentVod { this.startTimeStamp = startTimeStamp; } - public int getEndTimeStamp() { + public long getEndTimeStamp() { return endTimeStamp; } - public void setEndTimeStamp(int endTimeStamp) { + public void setEndTimeStamp(long endTimeStamp) { this.endTimeStamp = endTimeStamp; } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleMenuDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleMenuDO.java index 3062621dd..7c85002d5 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleMenuDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysRoleMenuDO.java @@ -25,7 +25,7 @@ public class SysRoleMenuDO implements Serializable { private Long menuId; @ApiModelProperty("角色id") - private Long roleId; + private String roleId; @ApiModelProperty("菜单类型") private String platform; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index b90cc309a..a5c7912e8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -187,6 +187,7 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { regionPathMap = regionList.stream().collect(Collectors.toMap(k->k.getRegionId(), v->v.getRegionPath())); userRegionMappingDAO.batchInsertOrUpdateUserRegion(UserRegionMappingDO.convertSyncDO(departmentLists, userDetail.getUserId())); } + userRegionMappingDAO.deleteUserRegionByUserId(userDetail.getUserId(), DataSourceEnum.SYNC, departmentLists); String jobTitle = userDetail.getJobTitle(); if(StringUtils.isNotBlank(jobTitle)){ SysRoleDO role = sysRoleDAO.getRoleByName(jobTitle, DataSourceEnum.SYNC); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java index 01a841f2b..26a15a63b 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java @@ -125,7 +125,6 @@ public class FlowServiceImpl implements FlowService { dataBody.setSkrName(request.getRealControlUsername()); dataBody.setSkrIDCard(request.getRealControlIdcard()); dataBody.setSkrRelship(request.getSignerRealControlRelation()); - String[] split = request.getSignerRealControlRelationCert().split(","); dataBody.setSkrRelshipOther(request.getSignerOtherRealControlRelation()); dataBody.setAmtJoin(request.getPartnerFee()); dataBody.setAmtTechSer(request.getTechnicalServiceFee()); @@ -147,7 +146,7 @@ public class FlowServiceImpl implements FlowService { String jobNumber = investmentManager.getJobnumber(); String mobile = investmentManager.getMobile(); DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile); - if (Objects.isNull(dingdingUserDO)) { + if (Objects.isNull(dingdingUserDO) || Objects.isNull(dingdingUserDO.getUserid())) { throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST); } rpcRequest.setDingUserId(dingdingUserDO.getUserid()); @@ -159,7 +158,7 @@ public class FlowServiceImpl implements FlowService { if (!Objects.isNull(developmentDirector)) { String mobile = developmentDirector.getMobile(); DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile); - if (Objects.isNull(dingdingUserDO)) { + if (Objects.isNull(dingdingUserDO) || Objects.isNull(dingdingUserDO.getUserid())) { throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST); } rpcRequest.getData().setUserSiteDevDingUserId(dingdingUserDO.getUserid()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java index 54143fe32..c5a8233fc 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MenuServiceImpl.java @@ -2,14 +2,20 @@ package com.cool.store.service.impl; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.SysMenuDAO; +import com.cool.store.dao.SysRoleMenuDAO; import com.cool.store.entity.SysMenuDO; +import com.cool.store.entity.SysRoleMenuDO; +import com.cool.store.enums.MenuTypeEnum; import com.cool.store.enums.PlatFormTypeEnum; import com.cool.store.service.MenuService; import com.cool.store.vo.menu.MenuTreeVO; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author zhangchenbiao @@ -22,11 +28,35 @@ public class MenuServiceImpl implements MenuService { @Resource private SysMenuDAO sysMenuDAO; + @Resource + private SysRoleMenuDAO sysRoleMenuDAO; @Override public List getUserMenus(String userId, String roleId) { List menuList= sysMenuDAO.selectMenuAll(null, PlatFormTypeEnum.PC.getCode()); + List roleMenuList = sysRoleMenuDAO.getRoleMenuByRoleId(roleId, PlatFormTypeEnum.PC.getCode()); + List anthMenuIdList = menuList.stream().filter(o -> MenuTypeEnum.AUTH.getCode().equals(o.getMenuType())).map(SysMenuDO::getId).collect(Collectors.toList()); + List roleMenuIdList = roleMenuList.stream().map(SysRoleMenuDO::getMenuId).filter(anthMenuIdList::contains).collect(Collectors.toList()); + Set authMenuSet = new HashSet<>(); + //1倒推菜单列表 2.转换成树` + if (CollectionUtils.isEmpty(roleMenuIdList)) { + return new ArrayList<>(); + } + authMenuSet.addAll(roleMenuIdList); + Map idMap = menuList.stream().filter(a -> a.getId() != null && a.getParentId() != null).collect(Collectors.toMap(SysMenuDO::getId, SysMenuDO::getParentId)); + for (Long menuId : roleMenuIdList) { + getParentNode(menuId, idMap, authMenuSet); + } + menuList = menuList.stream().filter(data -> authMenuSet.contains(data.getId())).collect(Collectors.toList()); //根据角色获取菜单 return MenuTreeVO.dealMenuTree(CommonConstants.ZERO_LONG, menuList); } + + private void getParentNode(Long menuId, Map idMap, Set authMenuList) { + Long parentId = idMap.get(menuId); + authMenuList.add(parentId); + if (parentId!=null&&parentId != 0) { + getParentNode(parentId, idMap, authMenuList); + } + } }