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

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

增加 预约字段

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