记得上下班打卡 | git大法好,push需谨慎

Commit ed962d48 authored by GaoHu's avatar GaoHu

修改:演出预告列表(待完)

parent 574e73b0
...@@ -7,6 +7,7 @@ public class KylinRedisConst { ...@@ -7,6 +7,7 @@ public class KylinRedisConst {
public static final String PERFORMANCES_LIST_CITY = "kylin:performances:city:"; public static final String PERFORMANCES_LIST_CITY = "kylin:performances:city:";
public static final String PERFORMANCES_LIST_SYSTEM_RECOMMEND = "kylin:performances:systemRecommend"; public static final String PERFORMANCES_LIST_SYSTEM_RECOMMEND = "kylin:performances:systemRecommend";
public static final String PERFORMANCES_LIST_NOTICE = "kylin:performances:notice"; public static final String PERFORMANCES_LIST_NOTICE = "kylin:performances:notice";
public static final String PERFORMANCES_LIST_NOTICE_IDS = "kylin:performances:notice:ids";
public static final String PERFORMANCES_LIST_RECOMMEND = "kylin:performances:recommend"; public static final String PERFORMANCES_LIST_RECOMMEND = "kylin:performances:recommend";
public static final String PERFORMANCES_LIST_EXCLUSIVE = "kylin:performances:exclusive"; public static final String PERFORMANCES_LIST_EXCLUSIVE = "kylin:performances:exclusive";
public static final String PERFORMANCES_ROADLIST = "kylin:performances:roadShowId:"; public static final String PERFORMANCES_ROADLIST = "kylin:performances:roadShowId:";
......
...@@ -24,4 +24,5 @@ public interface IKylinPerformancesService { ...@@ -24,4 +24,5 @@ public interface IKylinPerformancesService {
ResponseDto<String> subscribe(String performancesId, Integer sourceType); ResponseDto<String> subscribe(String performancesId, Integer sourceType);
ResponseDto<Integer> isSubscribe(String performancesId); ResponseDto<Integer> isSubscribe(String performancesId);
} }
...@@ -9,6 +9,7 @@ import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo; ...@@ -9,6 +9,7 @@ import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo;
import com.liquidnet.service.kylin.service.IKylinLackRegistersService; import com.liquidnet.service.kylin.service.IKylinLackRegistersService;
import com.liquidnet.service.kylin.service.IKylinPerformancesService; import com.liquidnet.service.kylin.service.IKylinPerformancesService;
import com.liquidnet.service.kylin.service.impl.KylinPerformancesServiceImpl; import com.liquidnet.service.kylin.service.impl.KylinPerformancesServiceImpl;
import com.liquidnet.service.kylin.utils.DataUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
...@@ -88,6 +89,13 @@ public class KylinPerformancesController { ...@@ -88,6 +89,13 @@ public class KylinPerformancesController {
return ResponseDto.success(result); return ResponseDto.success(result);
} }
@GetMapping("setRedisIds")
@ApiOperation("redis插入ids")
public ResponseDto<Boolean> setRedisIds(){
Boolean tag = kylinPerformancesService.setRedisIds();
return ResponseDto.success(tag);
}
@GetMapping("recommendList") @GetMapping("recommendList")
@ApiOperation("推荐演出列表") @ApiOperation("推荐演出列表")
public ResponseDto<List<KylinPerformanceVo>> recommendList() { public ResponseDto<List<KylinPerformanceVo>> recommendList() {
......
...@@ -171,6 +171,10 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService { ...@@ -171,6 +171,10 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
return newList; return newList;
} }
public Boolean setRedisIds() {
return dataUtils.setRedisIds();
}
private List<KylinPerformanceVo> mergeRoadList(List<KylinPerformanceVo> performanceList) { private List<KylinPerformanceVo> mergeRoadList(List<KylinPerformanceVo> performanceList) {
List<String> roadIdList = new ArrayList<>(); List<String> roadIdList = new ArrayList<>();
List<KylinPerformanceVo> newList = ObjectUtil.getKylinPerformanceVoArrayList(); List<KylinPerformanceVo> newList = ObjectUtil.getKylinPerformanceVoArrayList();
......
...@@ -356,81 +356,165 @@ public class DataUtils { ...@@ -356,81 +356,165 @@ public class DataUtils {
* 获取演出预告列表redis * 获取演出预告列表redis
*/ */
public HashMap<String, Object> getPerformancesListNotice() { public HashMap<String, Object> getPerformancesListNotice() {
String redisKey = KylinRedisConst.PERFORMANCES_LIST_NOTICE;
Object obj = redisUtil.get(redisKey);
// if (obj == null) {
if (true) {
// 固定条件
Query query = getCommonWhere();
// 排序
Sort sortName = Sort.by(Sort.Direction.ASC, "sellTime");
query.with(sortName);
// 今天的 mongoTemplate.find(new Query().addCriteria(Criteria.where("skuId").is("0")), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
HashMap toDayTime = DateUtil.oneDayStartEnd();
String nowTimeTStr = (String) toDayTime.get("startStr"); String redisKeyIds = KylinRedisConst.PERFORMANCES_LIST_NOTICE_IDS;
String toDayEndTimeStr = (String) toDayTime.get("endStr"); Object obj = redisUtil.get(redisKeyIds);
query.addCriteria(Criteria.where("sellTime").gte(nowTimeTStr).lt(toDayEndTimeStr)); if (obj != null) {
query.fields().exclude("details");
query.fields().exclude("noticeImage"); //获取ids
query.fields().exclude("ticketTimeList"); HashMap<String, Object> map = (HashMap<String, Object>) obj;
query.fields().exclude("describeElectronic"); List<Integer> toDayIds = (List<Integer>) map.get("toDayIds");
List<Integer> threeDayIds = (List<Integer>) map.get("threeDayIds");
List<String> toDayNftIds = (List<String>) map.get("toDayNftIds");
List<String> threeNftIds = (List<String>) map.get("threeNftIds");
// 固定条件
Query query = new Query();
query.addCriteria(Criteria.where("mid").in(toDayIds));
List<KylinPerformanceVo> toDayList = mongoTemplate.find(query, KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName()); List<KylinPerformanceVo> toDayList = mongoTemplate.find(query, KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
List<String> roadShowId = toDayList.stream().filter(r -> !r.getRoadShowId().equals("0")).map(KylinPerformanceVo -> KylinPerformanceVo.getRoadShowId()).collect(Collectors.toList());
// 固定条件 // 固定条件
Query queryT = getCommonWhere(); Query queryT = new Query();
// 排序 queryT.addCriteria(Criteria.where("mid").in(threeDayIds));
Sort sortNameT = Sort.by(Sort.Direction.ASC, "sellTime");
queryT.with(sortNameT);
// 三天的
Calendar cal = Calendar.getInstance();
cal.setTime((Date) toDayTime.get("end"));
Date beforeDayEnd = DateUtil.getBeforeDayEnd(cal, 2);
String threeDaysLaterStr = DateUtil.SDF_YMD_HMS.format(beforeDayEnd);
queryT.addCriteria(Criteria.where("sellTime").gte(toDayEndTimeStr).lt(threeDaysLaterStr));
queryT.fields().exclude("details");
queryT.fields().exclude("noticeImage");
queryT.fields().exclude("ticketTimeList");
queryT.fields().exclude("describeElectronic");
queryT.addCriteria(Criteria.where("roadShowId").nin(roadShowId));
List<KylinPerformanceVo> threeDaysList = mongoTemplate.find(queryT, KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName()); List<KylinPerformanceVo> threeDaysList = mongoTemplate.find(queryT, KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
//数字藏品 //数字藏品
//当天 //当天
Query queryToDayNft = new Query(); Query queryToDayNft = new Query();
LocalDateTime nowTimeT = DateUtil.asLocalDateTime((Date) toDayTime.get("start")); queryToDayNft.addCriteria(Criteria.where("skuId").in(toDayNftIds));
LocalDateTime toDayEndTime = DateUtil.asLocalDateTime((Date) toDayTime.get("end")); List<GoblinGoodsSkuInfoVo> toDaysNftList = mongoTemplate.find(queryToDayNft, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
queryToDayNft.addCriteria(Criteria.where("skuType").is(1));
queryToDayNft.addCriteria(Criteria.where("saleStartTime").gte(nowTimeT).lt(toDayEndTime));
Sort sortNameToDayNft = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryToDayNft.with(sortNameToDayNft);
List<GoblinGoodsSkuInfoVo> toDaysNftList = mongoTemplate.find(queryToDayNft,GoblinGoodsSkuInfoVo.class,GoblinGoodsSkuInfoVo.class.getSimpleName());
//三天的 //三天的
Query queryThreeNft = new Query(); Query queryThreeNft = new Query();
queryThreeNft.addCriteria(Criteria.where("skuType").is(1)); queryThreeNft.addCriteria(Criteria.where("skuId").in(threeNftIds));
LocalDateTime threeEndTime = DateUtil.asLocalDateTime(beforeDayEnd); List<GoblinGoodsSkuInfoVo> threeNftList = mongoTemplate.find(queryThreeNft, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
queryThreeNft.addCriteria(Criteria.where("saleStartTime").gte(toDayEndTime).lt(threeEndTime));
Sort sortThreeNft = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryThreeNft.with(sortThreeNft);
List<GoblinGoodsSkuInfoVo> threeNftList = mongoTemplate.find(queryThreeNft,GoblinGoodsSkuInfoVo.class,GoblinGoodsSkuInfoVo.class.getSimpleName());
//组合购 //组合购
//当天
Query queryToDayCombination = new Query();
Sort sortToDayCombination = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryThreeNft.with(sortToDayCombination);
List<Object> toDayCombinationList = new ArrayList<>();
//三天
Query queryThreeDayCombination = new Query();
Sort sortThreeDayCombination = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryThreeNft.with(sortThreeDayCombination);
List<Object> threeDayCombinationList = new ArrayList<>();
HashMap<String, Object> info = CollectionUtil.mapStringObject(); HashMap<String, Object> info = CollectionUtil.mapStringObject();
info.put("toDayList", toDayList); info.put("toDayList", toDayList);
info.put("threeDaysList", threeDaysList); info.put("threeDaysList", threeDaysList);
info.put("toDaysNftList", toDaysNftList); info.put("toDaysNftList", toDaysNftList);
info.put("threeNftList", threeNftList); info.put("threeNftList", threeNftList);
// redisUtil.set(redisKey, info); info.put("toDayCombinationList",toDayCombinationList);
info.put("threeDayCombinationList",threeDayCombinationList);
return info; return info;
} }
return (HashMap<String, Object>) obj; return (HashMap<String, Object>) obj;
} }
public Boolean setRedisIds() {
String redisKeyIds = KylinRedisConst.PERFORMANCES_LIST_NOTICE_IDS;
// 固定条件
Query query = getCommonWhere();
// 排序
Sort sortName = Sort.by(Sort.Direction.ASC, "sellTime");
query.with(sortName);
// 今天的
HashMap toDayTime = DateUtil.oneDayStartEnd();
String nowTimeTStr = (String) toDayTime.get("startStr");
String toDayEndTimeStr = (String) toDayTime.get("endStr");
query.addCriteria(Criteria.where("sellTime").gte(nowTimeTStr).lt(toDayEndTimeStr));
query.fields().exclude("details");
query.fields().exclude("noticeImage");
query.fields().exclude("ticketTimeList");
query.fields().exclude("describeElectronic");
List<KylinPerformanceVo> toDayList = mongoTemplate.find(query, KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
List<String> roadShowId = toDayList.stream().filter(r -> !r.getRoadShowId().equals("0")).map(KylinPerformanceVo -> KylinPerformanceVo.getRoadShowId()).collect(Collectors.toList());
List<Integer> toDayIds = toDayList.stream().map(KylinPerformanceVo::getMid).collect(Collectors.toList());
// 固定条件
Query queryT = getCommonWhere();
// 排序
Sort sortNameT = Sort.by(Sort.Direction.ASC, "sellTime");
queryT.with(sortNameT);
// 三天的
Calendar cal = Calendar.getInstance();
cal.setTime((Date) toDayTime.get("end"));
Date beforeDayEnd = DateUtil.getBeforeDayEnd(cal, 2);
String threeDaysLaterStr = DateUtil.SDF_YMD_HMS.format(beforeDayEnd);
queryT.addCriteria(Criteria.where("sellTime").gte(toDayEndTimeStr).lt(threeDaysLaterStr));
queryT.fields().exclude("details");
queryT.fields().exclude("noticeImage");
queryT.fields().exclude("ticketTimeList");
queryT.fields().exclude("describeElectronic");
queryT.addCriteria(Criteria.where("roadShowId").nin(roadShowId));
List<KylinPerformanceVo> threeDaysList = mongoTemplate.find(queryT, KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
List<Integer> threeDayIds = threeDaysList.stream().map(KylinPerformanceVo::getMid).collect(Collectors.toList());
//数字藏品
//当天
Query queryToDayNft = new Query();
LocalDateTime nowTimeTime = DateUtil.asLocalDateTime((Date) toDayTime.get("start"));
LocalDateTime toDayEndTime = DateUtil.asLocalDateTime((Date) toDayTime.get("end"));
queryToDayNft.addCriteria(Criteria.where("skuType").is(1));
queryToDayNft.addCriteria(Criteria.where("delFlg").is("0"));
queryToDayNft.addCriteria(Criteria.where("saleStartTime").gte(nowTimeTime).lt(toDayEndTime));
Sort sortNameToDayNft = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryToDayNft.with(sortNameToDayNft);
List<GoblinGoodsSkuInfoVo> toDaysNftList = mongoTemplate.find(queryToDayNft, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
List<String> toDayNftIds = toDaysNftList.stream().map(GoblinGoodsSkuInfoVo::getSkuId).collect(Collectors.toList());
//三天的
Query queryThreeNft = new Query();
LocalDateTime threeEndTime = DateUtil.asLocalDateTime(beforeDayEnd);
queryThreeNft.addCriteria(Criteria.where("skuType").is(1));
queryThreeNft.addCriteria(Criteria.where("delFlg").is("0"));
queryThreeNft.addCriteria(Criteria.where("saleStartTime").gte(toDayEndTime).lt(threeEndTime));
queryThreeNft.addCriteria(Criteria.where("skuId").nin(toDayNftIds));
Sort sortThreeNft = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryThreeNft.with(sortThreeNft);
List<GoblinGoodsSkuInfoVo> threeNftList = mongoTemplate.find(queryThreeNft, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
List<String> threeNftIds = threeNftList.stream().map(GoblinGoodsSkuInfoVo::getSkuId).collect(Collectors.toList());
//组合购
//当天
Query queryToDayCombination = new Query();
Sort sortToDayCombination = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryToDayCombination.addCriteria(Criteria.where("saleStartTime").gte(toDayEndTime).lt(threeEndTime));
queryThreeNft.with(sortToDayCombination);
List<Object> toDayCombinationList = new ArrayList<>();
List<String> toDayCombinationIds = new ArrayList<>();
//三天
Query queryThreeDayCombination = new Query();
Sort sortThreeDayCombination = Sort.by(Sort.Direction.ASC, "saleStartTime");
queryThreeDayCombination.addCriteria(Criteria.where("saleStartTime").gte(toDayEndTime).lt(threeEndTime));
queryThreeNft.with(sortThreeDayCombination);
List<Object> threeDayCombinationList = new ArrayList<>();
List<String> threeDayCombinationIds = new ArrayList<>();
HashMap<String, Object> idsList = CollectionUtil.mapStringObject();
idsList.put("toDayIds", toDayIds);
idsList.put("threeDayIds", threeDayIds);
idsList.put("toDayNftIds", toDayNftIds);
idsList.put("threeNftIds", threeNftIds);
idsList.put("toDayCombinationIds", toDayCombinationIds);
idsList.put("threeDayCombinationIds", threeDayCombinationIds);
redisUtil.set(redisKeyIds,idsList);
return true;
}
/** /**
* 获取推荐演出列表redis * 获取推荐演出列表redis
*/ */
...@@ -933,41 +1017,43 @@ public class DataUtils { ...@@ -933,41 +1017,43 @@ public class DataUtils {
} }
//万青补偿id 获取 //万青补偿id 获取
public Integer getWqOrderId(String orderId){ public Integer getWqOrderId(String orderId) {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_FIX.concat(orderId); String rdk = KylinRedisConst.REDIS_WQ_ORDER_FIX.concat(orderId);
Object obj = redisUtil.get(rdk); Object obj = redisUtil.get(rdk);
if(obj==null){ if (obj == null) {
return 0; return 0;
}else{ } else {
return 1; return 1;
} }
} }
//万青补偿id 添加 //万青补偿id 添加
public void setWqOrderId(String orderId){ public void setWqOrderId(String orderId) {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_FIX.concat(orderId); String rdk = KylinRedisConst.REDIS_WQ_ORDER_FIX.concat(orderId);
redisUtil.set(rdk,orderId); redisUtil.set(rdk, orderId);
} }
//万青补偿id 删除 //万青补偿id 删除
public void delWqOrderId(String orderId){ public void delWqOrderId(String orderId) {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_FIX.concat(orderId); String rdk = KylinRedisConst.REDIS_WQ_ORDER_FIX.concat(orderId);
redisUtil.del(rdk,orderId); redisUtil.del(rdk, orderId);
} }
// 万青补偿vo覆盖 // 万青补偿vo覆盖
public void setWqOrderVo(WqTempVo vo){ public void setWqOrderVo(WqTempVo vo) {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_EXPRESS.concat(vo.getOrderId()); String rdk = KylinRedisConst.REDIS_WQ_ORDER_EXPRESS.concat(vo.getOrderId());
redisUtil.set(rdk,vo); redisUtil.set(rdk, vo);
} }
// 万青补偿vo获取 // 万青补偿vo获取
public WqTempVo getWqOrderVo(String orderId){ public WqTempVo getWqOrderVo(String orderId) {
String rdk = KylinRedisConst.REDIS_WQ_ORDER_EXPRESS.concat(orderId); String rdk = KylinRedisConst.REDIS_WQ_ORDER_EXPRESS.concat(orderId);
Object obj = redisUtil.get(rdk); Object obj = redisUtil.get(rdk);
if(obj==null){ if (obj == null) {
WqTempVo vo = WqTempVo.getNew(); WqTempVo vo = WqTempVo.getNew();
vo.setIsTemp(getWqOrderId(orderId)); vo.setIsTemp(getWqOrderId(orderId));
return vo; return vo;
}else{ } else {
WqTempVo vo = (WqTempVo) obj; WqTempVo vo = (WqTempVo) obj;
vo.setIsTemp(getWqOrderId(orderId)); vo.setIsTemp(getWqOrderId(orderId));
return vo; return vo;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment