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

Commit 0ca3cbc0 authored by 胡佳晨's avatar 胡佳晨

提交 app端 混合售列表 混合售列表定时任务 混合售详情

parent 7f08098c
......@@ -53,4 +53,23 @@ public class GoblinMixAppDetailsVo implements Serializable, Cloneable {
return new GoblinMixAppDetailsVo();
}
}
public GoblinMixAppDetailsVo copy(GoblinMixDetailsVo source) {
if (null == source) return this;
this.setMixId(mixId);
this.setName(source.getName());
this.setTimeStart(source.getTimeStart());
this.setTimeEnd(source.getTimeEnd());
this.setSellName(source.getSellName());
this.setIntro(source.getIntro());
this.setCoverPic(source.getCoverPic());
this.setVideo(source.getVideo());
this.setDetails(source.getDetails());
this.setWatchType(source.getWatchType());
this.setDetailUrl(source.getDetailUrl());
this.setLimit(source.getLimit());
this.setWhiteType(source.getWhiteType());
this.setItem(source.getItem());
return this;
}
}
package com.liquidnet.service.goblin.dto.vo;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.param.GoblinMixDetailsParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@EqualsAndHashCode
......@@ -18,7 +21,7 @@ public class GoblinMixAppListVo implements Serializable, Cloneable {
private String sellName;
@ApiModelProperty(position = 3, value = "封面图片地址")
private String coverPic;
@ApiModelProperty(position = 4, value = "状态[6-活动中|7-停用|9-等待开始|10-活动结束]")
@ApiModelProperty(position = 4, value = "状态[6-活动中|7-停用|8-售罄|9-等待开始|10-活动结束]")
private Integer status;
@ApiModelProperty(position = 5, value = "开始时间")
private String timeStart;
......@@ -40,4 +43,18 @@ public class GoblinMixAppListVo implements Serializable, Cloneable {
return new GoblinMixAppListVo();
}
}
public GoblinMixAppListVo copy(GoblinMixDetailsVo source) {
if (null == source) return this;
this.setMixId(mixId);
this.setName(source.getName());
this.setSellName(source.getSellName());
this.setCoverPic(source.getCoverPic());
this.setTimeStart(source.getTimeStart());
this.setTimeEnd(source.getTimeEnd());
this.setSellPrice(source.getSellPrice());
this.setPrice(source.getPrice());
this.setCreatedAt(source.getCreatedAt());
return this;
}
}
......@@ -22,7 +22,7 @@ import java.util.List;
public interface IGoblinMixAppService {
// 根据开始时间倒叙 并且 活动开始
ResponseDto<List<GoblinMixAppListVo>> mixList();
ResponseDto<List<GoblinMixAppListVo>> mixList(Integer showPosition);
// 根据开始时间倒叙 并且 活动开始
ResponseDto<GoblinMixAppDetailsVo> mixDetails(String mixId);
......
......@@ -19,4 +19,7 @@ public interface FeignGoblinTaskClient {
@GetMapping("rsc/nft/job/goblinNftListStock")
ResponseDto<Boolean> goblinNftListStock();
@GetMapping("rsc/nft/job/mixList")
ResponseDto<Boolean> mixList();
}
......@@ -38,4 +38,14 @@ public class GoblinTaskHandler {
XxlJobHelper.handleFail();
}
}
@XxlJob(value = "sev-goblin:mixList")
public void mixList() {
try {
XxlJobHelper.handleSuccess("结果:" + feignGoblinTaskClient.mixList().getData());
} catch (Exception e) {
XxlJobHelper.log(e);
XxlJobHelper.handleFail();
}
}
}
......@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinMixAppDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinMixAppListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinMixDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinMixManageListVo;
......@@ -37,16 +38,23 @@ public class GoblinMixAppController {
@ApiOperationSupport(order = 1)
@ApiOperation(value = "列表")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = false, dataType = "String", name = "name", value = "活动名称"),
// @ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "page", value = "页数"),
//
// })
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "showPosition", value = "展示位置[1-商城|2-数字藏品]"),
})
@GetMapping("list")
public ResponseDto<List<GoblinMixAppListVo>> list(
// @RequestParam(value = "name", required = false) String name,
// @RequestParam Integer page
) {
return goblinMixAppService.mixList();
public ResponseDto<List<GoblinMixAppListVo>> list(@RequestParam(value = "showPosition", required = true) Integer showPosition) {
return goblinMixAppService.mixList(showPosition);
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mixId", value = "混合售id"),
})
@GetMapping("details")
public ResponseDto<GoblinMixAppDetailsVo> details(@RequestParam(value = "mixId", required = true) String mixId) {
return goblinMixAppService.mixDetails(mixId);
}
}
......@@ -42,17 +42,70 @@ public class GoblinMixAppServiceImpl implements IGoblinMixAppService {
@Autowired
GoblinRedisUtils redisUtils;
@Autowired
GoblinMongoUtils mongoUtils;
@Override
public ResponseDto<List<GoblinMixAppListVo>> mixList() {
return null;
public ResponseDto<List<GoblinMixAppListVo>> mixList(Integer showPosition) {
List<GoblinMixAppListVo> voList = ObjectUtil.goblinMixAppListVo();
List<String> startList = CollectionUtil.linkedListString();
List<String> stockList = CollectionUtil.linkedListString();
if (showPosition == 1) {//商城
startList = redisUtils.getGoblinMixSkuStartList();
stockList = redisUtils.getGoblinMixSkuStockList();
} else if (showPosition == 2) {//nft
startList = redisUtils.getGoblinMixNftStartList();
stockList = redisUtils.getGoblinMixNftStockList();
} else {
return ResponseDto.failure();
}
for (String mixId : startList) {
GoblinMixDetailsVo vo = redisUtils.getMixDetails(mixId);
GoblinMixAppListVo itemVo = GoblinMixAppListVo.getNew().copy(vo);
itemVo.setStatus(6);
voList.add(itemVo);
}
for (String mixId : stockList) {
GoblinMixDetailsVo vo = redisUtils.getMixDetails(mixId);
GoblinMixAppListVo itemVo = GoblinMixAppListVo.getNew().copy(vo);
itemVo.setStatus(8);
voList.add(itemVo);
}
return ResponseDto.success(voList);
}
@Override
public ResponseDto<GoblinMixAppDetailsVo> mixDetails(String mixId) {
return null;
GoblinMixDetailsVo baseVo = redisUtils.getMixDetails(mixId);
GoblinMixAppDetailsVo vo = GoblinMixAppDetailsVo.getNew().copy(baseVo);
int stock = 0;
for (GoblinMixDetailsItemVo item : vo.getItem()) {
item.setStock(0);
GoblinGoodsSkuInfoVo skuInfoVo = redisUtils.getGoodsSkuInfoVo(item.getSkuId());
if (skuInfoVo.getUnbox().equals("1")) {
List<String> relationIds = redisUtils.getGoblinMixRelationBox(item.getSkuId(), vo.getMixId());
for (String skuId : relationIds) {
stock += redisUtils.getSkuStock(vo.getMixId(), skuId);
}
} else {
stock += redisUtils.getSkuStock(vo.getMixId(), item.getSkuId());
}
}
if (stock == 0) {
vo.setStatus(8);
} else {
LocalDateTime nt = LocalDateTime.now();
LocalDateTime st = LocalDateTime.parse(vo.getTimeStart(), DTF_YMD_HMS);
LocalDateTime et = LocalDateTime.parse(vo.getTimeEnd(), DTF_YMD_HMS);
if (nt.isBefore(st)) {
vo.setStatus(9);
} else if (nt.isAfter(et)) {
vo.setStatus(10);
} else {
vo.setStatus(6);
}
}
return ResponseDto.success(vo);
}
}
......@@ -97,8 +97,12 @@ public class ObjectUtil {
private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();
private static final ArrayList<GoblinMixDetailsItemVo> goblinMixDetailsItemVo = new ArrayList<>();
private static final ArrayList<GoblinMixManageListVo> goblinMixManageListVo = new ArrayList<>();
private static final ArrayList<GoblinMixAppListVo> goblinMixAppListVo = new ArrayList<>();
private static final ArrayList<GoblinMixDetailsVo> goblinMixDetailsVo = new ArrayList<>();
public static ArrayList<GoblinMixAppListVo> goblinMixAppListVo() {
return (ArrayList<GoblinMixAppListVo>) goblinMixAppListVo.clone();
}
public static ArrayList<GoblinMixDetailsVo> goblinMixDetailsVo() {
return (ArrayList<GoblinMixDetailsVo>) goblinMixDetailsVo.clone();
......
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