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

Commit 90228145 authored by jiangxiulong's avatar jiangxiulong

本地演出列表完善

parent 68aeb42f
......@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -37,53 +38,62 @@ public class KylinPerformancesController {
@GetMapping("localList")
@ApiOperation("本地演出列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "sellTime", value = "开票时间"),
@ApiImplicitParam(type = "form", dataType = "String", name = "title", value = "演出名称"),
@ApiImplicitParam(type = "form", dataType = "String", name = "cityId", value = "省份id"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "type", value = "演出类型"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "page", value = "页码"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "size", value = "每页数量"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "sortType", value = "1时间正序 2时间倒序"),
@ApiImplicitParam(type = "query", dataType = "String", name = "sellTime", value = "开票时间 2021-01-01"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "days", value = "时间范围 几天 今天1 三天3。。。"),
@ApiImplicitParam(type = "query", dataType = "String", name = "title", value = "演出名称"),
@ApiImplicitParam(type = "query", dataType = "String", name = "cityName", value = "城市名称"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "type", value = "演出类型 1音乐节 2演唱会 3小型演出 4展览 6舞台剧"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isDiscount", value = "是否会员优惠 0 1"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isAdvance", value = "是否优先 0 1"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isExclusive", value = "是否会员专属 0 1"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "page", value = "页码"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "size", value = "每页数量"),
@ApiImplicitParam(type = "query", dataType = "String", name = "orderBy", value = "排序字段 时间sellTime"),
@ApiImplicitParam(type = "query", dataType = "String", name = "sort", value = "排序方式[DESC ASC]"),
})
public ResponseDto<HashMap<String, Object>> localList(
@RequestParam String sellTime, //开票时间
@RequestParam String title, //演出名称
@RequestParam String cityId, //省份id
@RequestParam Integer type, //演出类型
@RequestParam Integer page,
@RequestParam Integer size,
@RequestParam(defaultValue = "") String sellTime,
@RequestParam(defaultValue = "") Integer days,
@RequestParam(defaultValue = "") String title,
@RequestParam(defaultValue = "") String cityName,
@RequestParam(defaultValue = "") Integer type,
@RequestParam(defaultValue = "") Integer isDiscount,
@RequestParam(defaultValue = "") Integer isAdvance,
@RequestParam(defaultValue = "") Integer isExclusive,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer size,
// 排序
@RequestParam Integer sortType // 1时间正序 2时间倒序
@RequestParam(defaultValue = "") String orderBy,
@RequestParam(defaultValue = "") String sort
) {
HashMap<String, Object> result = kylinPerformancesService.localList(sellTime, title, cityId, type, page, size, sortType);
if (result.size() > 0) {
return ResponseDto.success(result);
} else {
return ResponseDto.failure("获取本地演出列表失败");
}
}
HashMap<String, Object> result = kylinPerformancesService.localList(
sellTime, days, title, cityName, type,
isDiscount, isAdvance, isExclusive,
page, size,
orderBy, sort
);
@GetMapping("recommendList")
@ApiOperation("推荐演出列表")
public ResponseDto<List<PerformanceVo>> recommendList() {
List<PerformanceVo> result = kylinPerformancesService.recommendList();
if (result.size() > 0) {
return ResponseDto.success(result);
} else {
return ResponseDto.failure("获取演出列表失败");
}
}
@GetMapping("noticeList")
@ApiOperation("演出预告列表")
public ResponseDto<List<PerformanceVo>> noticeList() {
List<PerformanceVo> result = kylinPerformancesService.noticeList();
if (result.size() > 0) {
@GetMapping("noticeRecommendList")
@ApiOperation("推荐演出/演出预告 列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "Integer", name = "listType", value = "1推荐 2预告", required = true),
})
public ResponseDto<List<PerformanceVo>> noticeRecommendList(
@RequestParam Integer listType
) {
List<PerformanceVo> result = new ArrayList();
result = kylinPerformancesService.noticeRecommendList(listType);
return ResponseDto.success(result);
} else {
return ResponseDto.failure("获取演出列表失败");
}
}
@GetMapping("detail")
......
......@@ -36,24 +36,28 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
@Autowired
private MongoTemplate mongoTemplate;
public HashMap<String, Object> localList(String sellTime, String title, String cityId, Integer type, Integer page, Integer size, Integer sortType) {
public HashMap<String, Object> localList(
String sellTime, Integer days, String title, String cityName, Integer type,
Integer isDiscount, Integer isAdvance, Integer isExclusive,
Integer page, Integer size,
String orderBy, String sort
) {
HashMap<String,Object> info = new HashMap<>();
// 排序 分页
Sort sortName = null; // 默认开票越早的在上面
if (sortType != null) {
switch (sortType) {
case 1:
sortName = Sort.by(Sort.Direction.ASC, "sellTime");
break;
case 2:
sortName = Sort.by(Sort.Direction.DESC, "sellTime");
break;
default:
sortName = Sort.by(Sort.Direction.ASC, "sellTime");
break;
if (sort.equals("DESC")) {
if (!orderBy.isEmpty()) {
sortName = Sort.by(Sort.Direction.DESC, orderBy);
}
} else if(sort.equals("ASC")){
if (!orderBy.isEmpty()) {
sortName = Sort.by(Sort.Direction.ASC, orderBy);
}
} else {
sortName = Sort.by(Sort.Direction.ASC, "sellTime");
}
Pageable pageable = PageRequest.of(page - 1, size, sortName);
//条件
......@@ -62,18 +66,31 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
if (!title.isEmpty()) {
queryObject.put("title", Pattern.compile(title, Pattern.CASE_INSENSITIVE));
}
if (!cityId.isEmpty()) {
queryObject.put("cityId", cityId);
}
if (type != null) {
queryObject.put("type", type);
}
if (isExclusive != null) {
queryObject.put("isExclusive", isExclusive);
}
if (isDiscount != null) {
queryObject.put("isDiscount", isDiscount);
}
if (isAdvance != null) {
queryObject.put("isAdvance", isAdvance);
}
Query query = new BasicQuery(queryObject);
if (!sellTime.isEmpty()) {
String sellTimeEnd = sellTime + " 23:59:59";
query.addCriteria(Criteria.where("sellTime").gte(sellTime).lte(sellTimeEnd));
}
if (days != null) {
LocalDateTime nowTime = LocalDateTime.now();
String nowTimeStr = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDateTime OtherTime = nowTime.plusDays(days);
String OtherTimeStr = OtherTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
query.addCriteria(Criteria.where("sellTime").gte(nowTimeStr).lte(OtherTimeStr));
}
// 固定查询条件
LocalDateTime nowTime = LocalDateTime.now();
......@@ -100,28 +117,21 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
return info;
}
public List<PerformanceVo> recommendList() {
// 固定查询条件
public List<PerformanceVo> noticeRecommendList(Integer listType) {
// 固定条件
Query query = new Query();
LocalDateTime nowTime = LocalDateTime.now();
String nowTimeStr = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Query query = Query.query(
Criteria.where("stopSellTime").gte(nowTimeStr).and("statusSell").is(1)
);
List<PerformanceVo> list = mongoTemplate.find(query, PerformanceVo.class, PerformanceVo.class.getSimpleName());
return list;
}
public List<PerformanceVo> noticeList() {
// 固定查询条件
LocalDateTime nowTime = LocalDateTime.now();
query.addCriteria(Criteria.where("stopSellTime").gte(nowTimeStr));
query.addCriteria(Criteria.where("statusSell").is(1));
// 推荐
if (listType.equals(1)) {
query.addCriteria(Criteria.where("isRecommend").is(1));
} else if (listType.equals(2)) {
LocalDateTime threeDaysLater = nowTime.plusDays(3);
String nowTimeStr = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String threeDaysLaterStr = threeDaysLater.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
Query query = Query.query(
Criteria.where("sellTime").gte(nowTimeStr).lt(threeDaysLaterStr).and("statusSell").is(1)
);
query.addCriteria(Criteria.where("sellTime").gte(nowTimeStr).lt(threeDaysLaterStr).and("statusSell").is(1));
}
List<PerformanceVo> list = mongoTemplate.find(query, PerformanceVo.class, PerformanceVo.class.getSimpleName());
......
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