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

Commit 953b1dc0 authored by 胡佳晨's avatar 胡佳晨

增加 预约字段

parent ba6c73bb
......@@ -2,6 +2,7 @@ package com.liquidnet.service.goblin.dto.manage.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.vo.GoblinNftGoodsSkuListVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -17,7 +18,7 @@ import java.time.LocalDateTime;
* @since 2022-04-08
*/
@Data
public class AnticipateValueVo {
public class AnticipateValueVo implements Cloneable {
private static final long serialVersionUID = 1L;
......@@ -44,5 +45,14 @@ public class AnticipateValueVo {
@ApiModelProperty("预约状态(0:未开始,1:可预约,3:已结束)")
private Integer state;
private static final AnticipateValueVo obj = new AnticipateValueVo();
public static AnticipateValueVo getNew() {
try {
return (AnticipateValueVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AnticipateValueVo();
}
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -67,6 +68,13 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
@ApiModelProperty(position = 58, value = "当前用户还可以购买数量 有限购的时候用")
private int canBuyNum;
@ApiModelProperty(position = 59, value = "当前用户还可以购买数量 有限购的时候用")
private String aboutStartDate;
@ApiModelProperty(position = 60, value = "当前用户还可以购买数量 有限购的时候用")
private String aboutEndDate;
@ApiModelProperty(position = 61, value = "预约状态(0:未开始,1:可预约,3:已结束)")
private Integer state;
private static final GoblinNftGoodsSkuInfoVo obj = new GoblinNftGoodsSkuInfoVo();
public static GoblinNftGoodsSkuInfoVo getNew() {
......@@ -77,7 +85,7 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
}
}
public GoblinNftGoodsSkuInfoVo copy(GoblinGoodsSkuInfoVo source) {
public GoblinNftGoodsSkuInfoVo copy(GoblinGoodsSkuInfoVo source, AnticipateValueVo anticipateValueVo) {
if (null == source) return this;
this.setSkuId(source.getSkuId());
this.setSpuId(source.getSpuId());
......@@ -93,6 +101,17 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
this.setSaleStartTime(source.getSaleStartTime());
this.setSkuCanbuy(source.getSkuCanbuy());
this.setExtagVoList(source.getExtagVoList());
if (anticipateValueVo != null) {
if (anticipateValueVo.getAboutEndDate() != null) {
this.setAboutEndDate(DateUtil.Formatter.yyyyMMddHHmmss.format(anticipateValueVo.getAboutEndDate()));
}
if (anticipateValueVo.getAboutEndDate() != null) {
this.setAboutStartDate(DateUtil.Formatter.yyyyMMddHHmmss.format(anticipateValueVo.getAboutStartDate()));
}
if (anticipateValueVo.getState() != null) {
this.setState(anticipateValueVo.getState());
}
}
return this;
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -43,6 +44,13 @@ public class GoblinNftGoodsSkuListVo implements Serializable, Cloneable {
@ApiModelProperty(position = 57, value = "是否还有库存 0没有库存即售罄 1有库存")
private int isStock;
@ApiModelProperty(position = 59, value = "当前用户还可以购买数量 有限购的时候用")
private String aboutStartDate;
@ApiModelProperty(position = 60, value = "当前用户还可以购买数量 有限购的时候用")
private String aboutEndDate;
@ApiModelProperty(position = 61, value = "预约状态(0:未开始,1:可预约,3:已结束)")
private Integer state;
private static final GoblinNftGoodsSkuListVo obj = new GoblinNftGoodsSkuListVo();
public static GoblinNftGoodsSkuListVo getNew() {
......@@ -53,7 +61,7 @@ public class GoblinNftGoodsSkuListVo implements Serializable, Cloneable {
}
}
public GoblinNftGoodsSkuListVo copy(GoblinGoodsSkuInfoVo source) {
public GoblinNftGoodsSkuListVo copy(GoblinGoodsSkuInfoVo source, AnticipateValueVo anticipateValueVo) {
if (null == source) return this;
this.setSkuId(source.getSkuId());
this.setSpuId(source.getSpuId());
......@@ -63,6 +71,17 @@ public class GoblinNftGoodsSkuListVo implements Serializable, Cloneable {
this.setSaleStartTime(source.getSaleStartTime());
this.setSoldoutStatus(source.getSoldoutStatus());
this.setUnbox(source.getUnbox());
if (anticipateValueVo != null) {
if (anticipateValueVo.getAboutEndDate() != null) {
this.setAboutEndDate(DateUtil.Formatter.yyyyMMddHHmmss.format(anticipateValueVo.getAboutEndDate()));
}
if (anticipateValueVo.getAboutEndDate() != null) {
this.setAboutStartDate(DateUtil.Formatter.yyyyMMddHHmmss.format(anticipateValueVo.getAboutStartDate()));
}
if (anticipateValueVo.getState() != null) {
this.setState(anticipateValueVo.getState());
}
}
return this;
}
}
......@@ -141,7 +141,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
//实际预约人数
anticipateValueVo.setActualPeople(autIdPeople);
//设置预约状态
anticipateValueVo.setState(setState(anticipateValueVo.getAboutStartDate(),anticipateValueVo.getAboutEndDate()));
anticipateValueVo.setState(setState(anticipateValueVo.getAboutStartDate(), anticipateValueVo.getAboutEndDate()));
}
pageInfo.setList(data);
......@@ -149,7 +149,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
return ResponseDto.success(pageInfo);
}
private Integer setState(LocalDateTime StartDate,LocalDateTime EndDate) {
private Integer setState(LocalDateTime StartDate, LocalDateTime EndDate) {
LocalDateTime now = LocalDateTime.now();
if (StartDate.isAfter(now)) {
......@@ -186,10 +186,10 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
public ResponseDto<Object> delete(String skuId) {
//更具skuId查询
GoblinGoodsAnticipateValueVo goodsAnticipateValueVo = goblinMongoUtils.getAnticipateValueVo(skuId);
if (goodsAnticipateValueVo!=null){
goodsAnticipateValueVo.setState(setState(goodsAnticipateValueVo.getAboutStartDate(),goodsAnticipateValueVo.getAboutEndDate()));
if (goodsAnticipateValueVo != null) {
goodsAnticipateValueVo.setState(setState(goodsAnticipateValueVo.getAboutStartDate(), goodsAnticipateValueVo.getAboutEndDate()));
//没有开启则可以删除预约
if (!goodsAnticipateValueVo.getState().equals(0)){
if (!goodsAnticipateValueVo.getState().equals(0)) {
return ResponseDto.failure("预约状态为已开启或已结束,不可删除!");
}
//mysql删除
......@@ -214,15 +214,15 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
sqlValue.add(new Object[]{
skuId
});
sendRedis("goblin_goods_anticipate_user_update_sku",sqlValue);
sendRedis("goblin_goods_anticipate_user_update_sku", sqlValue);
}
@Override
public ResponseDto<Object> userAbout(String skuId, String uid, String phone) {
//查询该skuId是否能被预约
GoblinGoodsAnticipateValueVo anticipateValueVo = goblinMongoUtils.getAnticipateValueVo(skuId);
if (anticipateValueVo!=null) {
anticipateValueVo.setState(setState(anticipateValueVo.getAboutStartDate(),anticipateValueVo.getAboutEndDate()));
if (anticipateValueVo != null) {
anticipateValueVo.setState(setState(anticipateValueVo.getAboutStartDate(), anticipateValueVo.getAboutEndDate()));
if (!anticipateValueVo.getState().equals(1)) {
return ResponseDto.failure("预约尚未开始或已结束!");
}
......@@ -252,16 +252,20 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
}
return ResponseDto.success();
}
return ResponseDto.failure("该预约不存在!");
return ResponseDto.failure("该预约不存在!");
}
@Override
public ResponseDto<AnticipateValueVo> getAnticipateValueBySkuId(String skuId) {
GoblinGoodsAnticipateValueVo anticipateValueVo = goblinMongoUtils.getAnticipateValueVo(skuId);
AnticipateValueVo valueVo = new AnticipateValueVo();
if (anticipateValueVo!=null){
BeanUtils.copyProperties(anticipateValueVo,valueVo);
valueVo.setState(setState(valueVo.getAboutStartDate(),valueVo.getAboutEndDate()));
AnticipateValueVo valueVo = AnticipateValueVo.getNew();
if (anticipateValueVo != null) {
BeanUtils.copyProperties(anticipateValueVo, valueVo);
valueVo.setState(setState(valueVo.getAboutStartDate(), valueVo.getAboutEndDate()));
} else {
valueVo.setState(null);
valueVo.setAboutEndDate(null);
valueVo.setAboutStartDate(null);
}
return ResponseDto.success(valueVo);
}
......
......@@ -4,8 +4,10 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.IGoblinGoodsAnticipateService;
import com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
......@@ -45,6 +47,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
RedisUtil redisUtil;
@Autowired
GoblinCouponService goblinCouponService;
@Autowired
IGoblinGoodsAnticipateService goblinGoodsAnticipateService;
@Override
public ResponseDto<PagedResult<GoblinNftGoodsSkuListVo>> goodsList(int page) {
......@@ -68,8 +72,10 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
List<GoblinGoodsSkuInfoVo> skuInfoVos = mongoTemplate.find(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
for (GoblinGoodsSkuInfoVo info : skuInfoVos) {
//获取预约相关
AnticipateValueVo anticipateValueVo = goblinGoodsAnticipateService.getAnticipateValueBySkuId(info.getSkuId()).getData();
// sku信息
GoblinNftGoodsSkuListVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuListVo.getNew().copy(info);
GoblinNftGoodsSkuListVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuListVo.getNew().copy(info, anticipateValueVo);
// spu信息
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(info.getSpuId());
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
......@@ -112,7 +118,10 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
public GoblinNftGoodsSkuInfoVo goodsDetail(String skuId) {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (goblinRedisUtils.getSkuAllStatusShow(goodsSkuInfoVo)) {
GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo);
//获取预约相关
AnticipateValueVo anticipateValueVo = goblinGoodsAnticipateService.getAnticipateValueBySkuId(skuId).getData();
GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo, anticipateValueVo);
// 限购数量
Integer buyCount = 0;
String userId = CurrentUtil.getCurrentUid();
......
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