|
|
@@ -419,12 +419,12 @@ public class SmsbItemPushServiceImpl implements ISmsbItemPushService {
|
|
|
return R.ok(result);
|
|
|
}
|
|
|
|
|
|
- @Cacheable(cacheNames = "global:msr:device:identifier", key = "#identifier")
|
|
|
+ // @Cacheable(cacheNames = "global:msr:device:push", key = "#identifier")
|
|
|
public FrontPushInfoVo getItemPushInfoByCache(String identifier) {
|
|
|
return generatePushInfo(identifier);
|
|
|
}
|
|
|
|
|
|
- @CachePut(cacheNames = "global:msr:device:identifier", key = "#identifier")
|
|
|
+ // @CachePut(cacheNames = "global:msr:device:push", key = "#identifier")
|
|
|
public FrontPushInfoVo cachePushInfo(String identifier) {
|
|
|
return generatePushInfo(identifier);
|
|
|
}
|
|
|
@@ -437,75 +437,67 @@ public class SmsbItemPushServiceImpl implements ISmsbItemPushService {
|
|
|
result.setDeviceId(deviceId);
|
|
|
result.setWidth(deviceVo.getWidth());
|
|
|
result.setHeight(deviceVo.getHeight());
|
|
|
- // 查询不同等级的节目发布 100垫片 200常规 300紧急
|
|
|
- List<SmsbItemPushVo> smsbItemPushVoLevel1 = baseMapper.selectFrontOnePushByDeviceId(deviceId, 100);
|
|
|
- buildPushItemInfo(result, smsbItemPushVoLevel1);
|
|
|
- List<SmsbItemPushVo> smsbItemPushVoLevel2 = baseMapper.selectFrontOnePushByDeviceId(deviceId, 200);
|
|
|
- buildPushItemInfo(result, smsbItemPushVoLevel2);
|
|
|
- List<SmsbItemPushVo> smsbItemPushVoLevel3 = baseMapper.selectFrontOnePushByDeviceId(deviceId, 300);
|
|
|
- buildPushItemInfo(result, smsbItemPushVoLevel3);
|
|
|
+ // 根据等级倒序100垫片 200常规 300紧急 时间范围内的节目列表
|
|
|
+ List<SmsbItemPushVo> smsbItemPushVoList = baseMapper.selectFrontOnePushByDeviceId(deviceId);
|
|
|
+ if (CollectionUtil.isEmpty(smsbItemPushVoList)) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ buildPushItemInfo(result, smsbItemPushVoList.get(0));
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private void buildPushItemInfo(FrontPushInfoVo result, List<SmsbItemPushVo> smsbItemPushVoList) {
|
|
|
- if (CollectionUtil.isEmpty(smsbItemPushVoList)) {
|
|
|
- return;
|
|
|
+ private void buildPushItemInfo(FrontPushInfoVo result, SmsbItemPushVo smsbItemPushVo) {
|
|
|
+ FrontItemInfoVO itemInfoVO = new FrontItemInfoVO();
|
|
|
+ // pushId - 内容下发基础信息
|
|
|
+ Long pushId = smsbItemPushVo.getId();
|
|
|
+ result.setPushId(pushId);
|
|
|
+ result.setPushName(smsbItemPushVo.getName());
|
|
|
+ itemInfoVO.setLevel(smsbItemPushVo.getLevel());
|
|
|
+ // 时间排期
|
|
|
+ List<SmsbItemPushTimeVo> pushTimeList = itemPushTimeMapper.selectVoList(new LambdaQueryWrapper<SmsbItemPushTime>()
|
|
|
+ .eq(SmsbItemPushTime::getPushId, pushId));
|
|
|
+ String dateStart = pushTimeList.get(0).getStartDate();
|
|
|
+ String dateEnd = pushTimeList.get(0).getEndDate();
|
|
|
+ List<SmsbItemPushTimeRangeBo> timeRangeList = new ArrayList<>();
|
|
|
+ for (SmsbItemPushTimeVo pushTime : pushTimeList) {
|
|
|
+ SmsbItemPushTimeRangeBo timeRange = new SmsbItemPushTimeRangeBo();
|
|
|
+ timeRange.setStart(dateStart + " " + pushTime.getTimeStart());
|
|
|
+ timeRange.setEnd(dateEnd + " " + pushTime.getTimeEnd());
|
|
|
+ timeRangeList.add(timeRange);
|
|
|
}
|
|
|
- for (SmsbItemPushVo smsbItemPushVo : smsbItemPushVoList) {
|
|
|
- FrontItemInfoVO itemInfoVO = new FrontItemInfoVO();
|
|
|
- // pushId - 内容下发基础信息
|
|
|
- Long pushId = smsbItemPushVo.getId();
|
|
|
- itemInfoVO.setPushId(pushId);
|
|
|
- itemInfoVO.setPushName(smsbItemPushVo.getName());
|
|
|
- itemInfoVO.setLevel(smsbItemPushVo.getLevel());
|
|
|
- // 时间排期
|
|
|
- List<SmsbItemPushTimeVo> pushTimeList = itemPushTimeMapper.selectVoList(new LambdaQueryWrapper<SmsbItemPushTime>()
|
|
|
- .eq(SmsbItemPushTime::getPushId, pushId));
|
|
|
- String dateStart = pushTimeList.get(0).getStartDate();
|
|
|
- String dateEnd = pushTimeList.get(0).getEndDate();
|
|
|
- List<SmsbItemPushTimeRangeBo> timeRangeList = new ArrayList<>();
|
|
|
- for (SmsbItemPushTimeVo pushTime : pushTimeList) {
|
|
|
- SmsbItemPushTimeRangeBo timeRange = new SmsbItemPushTimeRangeBo();
|
|
|
- timeRange.setStart(dateStart + " " + pushTime.getTimeStart());
|
|
|
- timeRange.setEnd(dateEnd + " " + pushTime.getTimeEnd());
|
|
|
- timeRangeList.add(timeRange);
|
|
|
- }
|
|
|
- itemInfoVO.setTimeRange(timeRangeList);
|
|
|
- // weekDays
|
|
|
- itemInfoVO.setWeekDays(pushTimeList.get(0).getWeekDays());
|
|
|
- // 根据pushId 查询出最新的一个节目
|
|
|
- SmsbItemPushRel itemPushRel = itemPushRelMapper.selectOne(new LambdaQueryWrapper<SmsbItemPushRel>()
|
|
|
- .eq(SmsbItemPushRel::getPushId, pushId).orderByDesc(SmsbItemPushRel::getCreateTime));
|
|
|
- // 节目详情
|
|
|
- SmsbItemVo smsbItemVo = itemMapper.selectVoById(itemPushRel.getItemId());
|
|
|
- itemInfoVO.setItemType(smsbItemVo.getItemType());
|
|
|
- itemInfoVO.setItemId(smsbItemVo.getId());
|
|
|
- // 资源列表
|
|
|
- // 轮播组
|
|
|
- List<FrontItemSourceVO> sourceList = new ArrayList<>();
|
|
|
- if (smsbItemVo.getItemType() == 1) {
|
|
|
- sourceList = getItemType1SourceList(pushId);
|
|
|
- itemInfoVO.setSourceList(sourceList);
|
|
|
- } else if (smsbItemVo.getItemType() == 2) {
|
|
|
- SmsbItemSplitScreenVo splitItemInfo = getSplitItemInfo(smsbItemVo, pushId);
|
|
|
- itemInfoVO.setSplitItemInfo(splitItemInfo);
|
|
|
- sourceList = getItemType1SourceList(pushId);
|
|
|
- itemInfoVO.setSourceList(sourceList);
|
|
|
- }
|
|
|
- if (null == result.getItemInfoList()) {
|
|
|
- List<FrontItemInfoVO> itemInfoList = new ArrayList<>();
|
|
|
- itemInfoList.add(itemInfoVO);
|
|
|
- result.setItemInfoList(itemInfoList);
|
|
|
- } else {
|
|
|
- result.getItemInfoList().add(itemInfoVO);
|
|
|
- }
|
|
|
+ result.setTimeRange(timeRangeList);
|
|
|
+ // weekDays
|
|
|
+ result.setWeekDays(pushTimeList.get(0).getWeekDays());
|
|
|
+ // 根据pushId 查询出最新的一个节目
|
|
|
+ SmsbItemPushRel itemPushRel = itemPushRelMapper.selectOne(new LambdaQueryWrapper<SmsbItemPushRel>()
|
|
|
+ .eq(SmsbItemPushRel::getPushId, pushId).orderByDesc(SmsbItemPushRel::getCreateTime));
|
|
|
+ // 节目详情
|
|
|
+ SmsbItemVo smsbItemVo = itemMapper.selectVoById(itemPushRel.getItemId());
|
|
|
+ itemInfoVO.setItemType(smsbItemVo.getItemType());
|
|
|
+ itemInfoVO.setItemId(smsbItemVo.getId());
|
|
|
+ // 资源列表
|
|
|
+ // 轮播组
|
|
|
+ List<FrontItemSourceVO> sourceList = new ArrayList<>();
|
|
|
+ if (smsbItemVo.getItemType() == 1) {
|
|
|
+ sourceList = getItemSourceListByPushId(pushId);
|
|
|
+ itemInfoVO.setSourceList(sourceList);
|
|
|
+ } else if (smsbItemVo.getItemType() == 2) {
|
|
|
+ getSplitItemInfo(smsbItemVo, itemInfoVO);
|
|
|
+ sourceList = getItemSourceListByPushId(pushId);
|
|
|
+ itemInfoVO.setSourceList(sourceList);
|
|
|
}
|
|
|
+ result.setItemInfo(itemInfoVO);
|
|
|
}
|
|
|
|
|
|
- private SmsbItemSplitScreenVo getSplitItemInfo(SmsbItemVo smsbItemVo, Long pushId) {
|
|
|
+ private void getSplitItemInfo(SmsbItemVo smsbItemVo,FrontItemInfoVO itemInfoVO) {
|
|
|
SmsbItemSplitScreenVo smsbItemSplitScreenVo = itemSplitScreenMapper.selectVoOne(new LambdaQueryWrapper<SmsbItemSplitScreen>()
|
|
|
.eq(SmsbItemSplitScreen::getItemId, smsbItemVo.getId()).orderByDesc(SmsbItemSplitScreen::getCreateTime));
|
|
|
- return smsbItemSplitScreenVo;
|
|
|
+ if (null == smsbItemSplitScreenVo) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ BeanUtils.copyProperties(smsbItemSplitScreenVo, itemInfoVO);
|
|
|
+ itemInfoVO.setItemHeight(smsbItemSplitScreenVo.getHeight());
|
|
|
+ itemInfoVO.setItemWidth(smsbItemSplitScreenVo.getWidth());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -524,7 +516,7 @@ public class SmsbItemPushServiceImpl implements ISmsbItemPushService {
|
|
|
.eq(SmsbItemPushDevice::getPushId, pushId).eq(SmsbItemPushDevice::getDeviceId, deviceId));
|
|
|
}
|
|
|
|
|
|
- private List<FrontItemSourceVO> getItemType1SourceList(Long pushId) {
|
|
|
+ private List<FrontItemSourceVO> getItemSourceListByPushId(Long pushId) {
|
|
|
// 根据pushId 查询关联的轮播组
|
|
|
List<FrontItemSourceVO> fileRelList = itemFileRelMapper.selectVoListByPushId(pushId);
|
|
|
return fileRelList;
|