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

Commit 21f1d7de authored by wanglele's avatar wanglele

兑换码sku--->时间

parent e594e802
...@@ -102,6 +102,9 @@ public class GoblinNftExSkuVo { ...@@ -102,6 +102,9 @@ public class GoblinNftExSkuVo {
@ApiModelProperty(position = 20,required = true,value ="修改时间") @ApiModelProperty(position = 20,required = true,value ="修改时间")
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private String rdStartTime;
private String rdStopTime;
private static final GoblinNftExSkuVo obj = new GoblinNftExSkuVo(); private static final GoblinNftExSkuVo obj = new GoblinNftExSkuVo();
public static GoblinNftExSkuVo getNew(){ public static GoblinNftExSkuVo getNew(){
......
...@@ -6,13 +6,13 @@ ...@@ -6,13 +6,13 @@
<result column="name" property="name" jdbcType="VARCHAR"/> <result column="name" property="name" jdbcType="VARCHAR"/>
<result column="unbox" property="unbox" jdbcType="VARCHAR"/> <result column="unbox" property="unbox" jdbcType="VARCHAR"/>
<result column="hit_ratio" property="hitRatio" jdbcType="DECIMAL"/> <result column="hit_ratio" property="hitRatio" jdbcType="DECIMAL"/>
<result column="sku_type" property="sku_type" jdbcType="INTEGER"/> <result column="sku_type" property="skuType" jdbcType="INTEGER"/>
<result column="status" property="status" jdbcType="VARCHAR"/> <result column="status" property="status" jdbcType="VARCHAR"/>
<result column="shelves_status" property="shelves_status" jdbcType="VARCHAR"/> <result column="shelves_status" property="shelvesStatus" jdbcType="VARCHAR"/>
<result column="sku_appear" property="sku_appear" jdbcType="VARCHAR"/> <result column="sku_appear" property="skuAppear" jdbcType="VARCHAR"/>
<result column="del_flg" property="del_flg" jdbcType="VARCHAR"/> <result column="del_flg" property="delFlg" jdbcType="VARCHAR"/>
<result column="soldout_status" property="soldout_status" jdbcType="VARCHAR"/> <result column="soldout_status" property="soldoutStatus" jdbcType="VARCHAR"/>
<result column="sale_start_time" property="sale_start_time" jdbcType="TIMESTAMP"/> <result column="sale_start_time" property="saleStartTime" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
<select id="selectSkuLikeName" resultMap="BaseResult"> <select id="selectSkuLikeName" resultMap="BaseResult">
......
...@@ -123,9 +123,8 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -123,9 +123,8 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
for (GoblinNftExCodeVo gnc : goblinNftExCodeArrayList) { for (GoblinNftExCodeVo gnc : goblinNftExCodeArrayList) {
List<GoblinNftExSku> goblinNftExSkuList = map.get(gnc.getActivityId()); for (GoblinNftExSku goblinNftExSku:goblinNftExSkus) {
for (GoblinNftExSku goblinNftExSku : goblinNftExSkuList) { if (goblinNftExSku.getSkuId().equals(gnc.getSkuId())){
if (gnc.getSkuId().equals(goblinNftExSku.getSkuId())) {
gnc.setExStartTime(goblinNftExSku.getExStartTime()); gnc.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime()); gnc.setExStopTime(goblinNftExSku.getExStopTime());
break; break;
......
...@@ -114,10 +114,55 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -114,10 +114,55 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
int stock = goblinRedisUtils.decrSkuStock(null, key, stockNum); int stock = goblinRedisUtils.decrSkuStock(null, key, stockNum);
if (stock < 0) { if (stock < 0) {
goblinRedisUtils.incrSkuStock(null, key, stockNum); goblinRedisUtils.incrSkuStock(null, key, stockNum);
}else {
for (int i = 0; i < stockNum; i++) {
GoblinNftExCode goblinNftExCode = GoblinNftExCode.getNew();
goblinNftExCode.setCodeId(IDGenerator.nextSnowId());
goblinNftExCode.setActivityId(goblinNftExSkuParam.getActivityId());
// 获取兑换码ZA
// 样例 2978-6496-9269-0694-XX
String code = IDGenerator.createCode(3, 4, true);
goblinNftExCode.setCode(code);
goblinNftExCode.setBoxSkuId(key);
goblinNftExCode.setState(1);
goblinNftExCode.setCreatedAt(now);
goblinNftExCodes.add(goblinNftExCode);
GoblinNftExCodeVo goblinNftExCodeVo = GoblinNftExCodeVo.getNew().copy(goblinNftExCode);
// 赋值额外属性
goblinNftExCodeVo.setExLimit(goblinNftExSkuParam.getExLimit());
goblinNftExCodeVo.setExStartTime(goblinNftExSkuParam.getExStartTime());
goblinNftExCodeVo.setExStopTime(goblinNftExSkuParam.getExStopTime());
goblinNftExCodeVo.setStoreId(goblinNftExSkuParam.getStoreId());
goblinNftExCodeVo.setSpuId(goblinNftExSkuParam.getSpuId());
// LocalDateTime exStartTime = goblinNftExSkuParam.getExStartTime();
LocalDateTime exStopTime = goblinNftExSkuParam.getExStopTime();
// 时间差 以秒表示
long millisNum = Duration.between(LocalDateTime.now(), exStopTime).toMillis();
// redis 存储
goblinRedisUtils.addCode(code, goblinNftExCodeVo, millisNum);
}
goblinNftExSkuParamMap.put(key, goblinNftExSkuParam);
goblinNftExSkus.add(goblinNftExSku);
} }
}
break;
default:
for (int i = 0; i < stockNum; i++) { // 根据sku减库存
int stock = goblinRedisUtils.decrSkuStock(null, goblinNftExSkuParam.getSkuId(), goblinNftExSkuParam.getExStock());
if (stock < 0) {
goblinRedisUtils.incrSkuStock(null, goblinNftExSkuParam.getSkuId(), goblinNftExSkuParam.getExStock());
}else {
// 构建兑换码数量
for (int i = 0; i < goblinNftExSkuParam.getExStock(); i++) {
GoblinNftExCode goblinNftExCode = GoblinNftExCode.getNew(); GoblinNftExCode goblinNftExCode = GoblinNftExCode.getNew();
goblinNftExCode.setCodeId(IDGenerator.nextSnowId()); goblinNftExCode.setCodeId(IDGenerator.nextSnowId());
goblinNftExCode.setActivityId(goblinNftExSkuParam.getActivityId()); goblinNftExCode.setActivityId(goblinNftExSkuParam.getActivityId());
...@@ -126,7 +171,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -126,7 +171,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
// 样例 2978-6496-9269-0694-XX // 样例 2978-6496-9269-0694-XX
String code = IDGenerator.createCode(3, 4, true); String code = IDGenerator.createCode(3, 4, true);
goblinNftExCode.setCode(code); goblinNftExCode.setCode(code);
goblinNftExCode.setBoxSkuId(key); goblinNftExCode.setSkuId(goblinNftExSkuParam.getSkuId());
goblinNftExCode.setState(1); goblinNftExCode.setState(1);
goblinNftExCode.setCreatedAt(now); goblinNftExCode.setCreatedAt(now);
goblinNftExCodes.add(goblinNftExCode); goblinNftExCodes.add(goblinNftExCode);
...@@ -134,12 +179,11 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -134,12 +179,11 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
GoblinNftExCodeVo goblinNftExCodeVo = GoblinNftExCodeVo.getNew().copy(goblinNftExCode); GoblinNftExCodeVo goblinNftExCodeVo = GoblinNftExCodeVo.getNew().copy(goblinNftExCode);
// 赋值额外属性 // 赋值额外属性
goblinNftExCodeVo.setStoreId(goblinNftExSkuParam.getStoreId());
goblinNftExCodeVo.setExLimit(goblinNftExSkuParam.getExLimit()); goblinNftExCodeVo.setExLimit(goblinNftExSkuParam.getExLimit());
goblinNftExCodeVo.setExStartTime(goblinNftExSkuParam.getExStartTime()); goblinNftExCodeVo.setExStartTime(goblinNftExSkuParam.getExStartTime());
goblinNftExCodeVo.setExStopTime(goblinNftExSkuParam.getExStopTime()); goblinNftExCodeVo.setExStopTime(goblinNftExSkuParam.getExStopTime());
goblinNftExCodeVo.setStoreId(goblinNftExSkuParam.getStoreId());
goblinNftExCodeVo.setSpuId(goblinNftExSkuParam.getSpuId()); goblinNftExCodeVo.setSpuId(goblinNftExSkuParam.getSpuId());
// LocalDateTime exStartTime = goblinNftExSkuParam.getExStartTime(); // LocalDateTime exStartTime = goblinNftExSkuParam.getExStartTime();
LocalDateTime exStopTime = goblinNftExSkuParam.getExStopTime(); LocalDateTime exStopTime = goblinNftExSkuParam.getExStopTime();
...@@ -148,60 +192,17 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -148,60 +192,17 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
// redis 存储 // redis 存储
goblinRedisUtils.addCode(code, goblinNftExCodeVo, millisNum); goblinRedisUtils.addCode(code, goblinNftExCodeVo, millisNum);
// goblinNftExCodeArrayList.add(GoblinNftExCodeVo.getNew().copy(goblinNftExCode));
} }
goblinNftExSkuParamMap.put(key, goblinNftExSkuParam); GoblinNftExSkuParam value = goblinNftExSkuParamMap.get(goblinNftExSkuParam.getSkuId());
if (value == null) {
} goblinNftExSkuParamMap.put(goblinNftExSkuParam.getSkuId(), goblinNftExSkuParam);
}
break; goblinNftExSkus.add(goblinNftExSku);
default:
// 根据sku减库存
int stock = goblinRedisUtils.decrSkuStock(null, goblinNftExSkuParam.getSkuId(), goblinNftExSkuParam.getExStock());
if (stock < 0) {
goblinRedisUtils.incrSkuStock(null, goblinNftExSkuParam.getSkuId(), goblinNftExSkuParam.getExStock());
} }
// 构建兑换码数量
for (int i = 0; i < goblinNftExSkuParam.getExStock(); i++) {
GoblinNftExCode goblinNftExCode = GoblinNftExCode.getNew();
goblinNftExCode.setCodeId(IDGenerator.nextSnowId());
goblinNftExCode.setActivityId(goblinNftExSkuParam.getActivityId());
// 获取兑换码ZA
// 样例 2978-6496-9269-0694-XX
String code = IDGenerator.createCode(3, 4, true);
goblinNftExCode.setCode(code);
goblinNftExCode.setSkuId(goblinNftExSkuParam.getSkuId());
goblinNftExCode.setState(1);
goblinNftExCode.setCreatedAt(now);
goblinNftExCodes.add(goblinNftExCode);
GoblinNftExCodeVo goblinNftExCodeVo = GoblinNftExCodeVo.getNew().copy(goblinNftExCode);
// 赋值额外属性
goblinNftExCodeVo.setStoreId(goblinNftExSkuParam.getStoreId());
goblinNftExCodeVo.setExLimit(goblinNftExSkuParam.getExLimit());
goblinNftExCodeVo.setExStartTime(goblinNftExSkuParam.getExStartTime());
goblinNftExCodeVo.setExStopTime(goblinNftExSkuParam.getExStopTime());
goblinNftExCodeVo.setSpuId(goblinNftExSkuParam.getSpuId());
// LocalDateTime exStartTime = goblinNftExSkuParam.getExStartTime();
LocalDateTime exStopTime = goblinNftExSkuParam.getExStopTime();
// 时间差 以秒表示
long millisNum = Duration.between(LocalDateTime.now(), exStopTime).toMillis();
// redis 存储
goblinRedisUtils.addCode(code, goblinNftExCodeVo, millisNum);
// goblinNftExCodeArrayList.add(GoblinNftExCodeVo.getNew().copy(goblinNftExCode));
}
GoblinNftExSkuParam value = goblinNftExSkuParamMap.get(goblinNftExSkuParam.getSkuId());
if (value == null) {
goblinNftExSkuParamMap.put(goblinNftExSkuParam.getSkuId(), goblinNftExSkuParam);
}
goblinNftExSkus.add(goblinNftExSku);
// goblinNftExSkuArrayList.add(GoblinNftExSkuVo.getNew().copy(goblinNftExSku)); // goblinNftExSkuArrayList.add(GoblinNftExSkuVo.getNew().copy(goblinNftExSku));
} }
...@@ -209,18 +210,17 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -209,18 +210,17 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
for (String key : goblinNftExSkuParamMap.keySet()) { for (String key : goblinNftExSkuParamMap.keySet()) {
Object object = goblinRedisUtils.getSkuTime(key); GoblinNftExSkuVo goblinNftExSkuVo = goblinRedisUtils.getSkuTime(key);
GoblinNftExSkuParam goblinNftExSkuParam = goblinNftExSkuParamMap.get(key); GoblinNftExSkuParam goblinNftExSkuParam = goblinNftExSkuParamMap.get(key);
LocalDateTime exStartTime = goblinNftExSkuParam.getExStartTime(); // "2022-06-26 19:00:00"; LocalDateTime exStartTime = goblinNftExSkuParam.getExStartTime(); // "2022-06-26 19:00:00";
LocalDateTime exStopTime = goblinNftExSkuParam.getExStopTime(); // "2024-06-26 19:00:00"; LocalDateTime exStopTime = goblinNftExSkuParam.getExStopTime(); // "2024-06-26 19:00:00";
if (!StringUtil.isEmpty(object)) { if (!StringUtil.isEmpty(goblinNftExSkuVo)) {
GoblinNftExSkuVo goblinNftExSkuVo = JSON.parseObject(object.toString(), GoblinNftExSkuVo.class);
// redis存储 单个sku的开始和结束时间 // redis存储 单个sku的开始和结束时间
LocalDateTime rdExStartTime = goblinNftExSkuVo.getExStartTime(); // "2019-06-26 19:00:00"; LocalDateTime rdExStartTime = LocalDateTime.parse(goblinNftExSkuVo.getRdStartTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // "2019-06-26 19:00:00";
LocalDateTime rdExStopTime = goblinNftExSkuVo.getExStopTime(); // "2023-06-26 19:00:00"; LocalDateTime rdExStopTime = LocalDateTime.parse(goblinNftExSkuVo.getRdStopTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // "2019-06-26 19:00:00";
// 时间比对 // 时间比对
...@@ -233,11 +233,11 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -233,11 +233,11 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
} }
} }
GoblinNftExSkuVo goblinNftExSkuVo = GoblinNftExSkuVo.getNew(); GoblinNftExSkuVo goblinNftExSku = GoblinNftExSkuVo.getNew();
goblinNftExSkuVo.setExStartTime(exStartTime); goblinNftExSku.setRdStartTime(exStartTime.toString());
goblinNftExSkuVo.setExStopTime(exStopTime); goblinNftExSku.setRdStopTime(exStopTime.toString());
goblinRedisUtils.addSkuTime(key,goblinNftExSkuVo); goblinRedisUtils.addSkuTime(key,goblinNftExSku);
} }
log.debug("RDM耗时:ms", System.currentTimeMillis() - startr); log.debug("RDM耗时:ms", System.currentTimeMillis() - startr);
......
package com.liquidnet.service.platform.utils; package com.liquidnet.service.platform.utils;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.liquidnet.common.cache.redis.util.AbstractRedisUtil; import com.liquidnet.common.cache.redis.util.AbstractRedisUtil;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil; import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto; import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto;
...@@ -235,9 +238,14 @@ public class GoblinRedisUtils { ...@@ -235,9 +238,14 @@ public class GoblinRedisUtils {
* @param skuId * @param skuId
* @return * @return
*/ */
public Object getSkuTime(String skuId) { public GoblinNftExSkuVo getSkuTime(String skuId) {
String key = GoblinRedisConst.ACTIVITY_SKU_TIME.concat(skuId); String key = GoblinRedisConst.ACTIVITY_SKU_TIME.concat(skuId);
return getRedis().get(key); GoblinNftExSkuVo goblinNftExSkuVo = null;
if (!StringUtil.isEmpty(getRedis().get(key))){
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.convertValue (getRedis().get(key), GoblinNftExSkuVo.class);
}
return goblinNftExSkuVo;
} }
/** /**
...@@ -246,9 +254,9 @@ public class GoblinRedisUtils { ...@@ -246,9 +254,9 @@ public class GoblinRedisUtils {
* @param obj * @param obj
* @return * @return
*/ */
public boolean addSkuTime(String skuId,Object obj) { public boolean addSkuTime(String skuId,GoblinNftExSkuVo goblinNftExSkuVo) {
String key = GoblinRedisConst.ACTIVITY_SKU_TIME.concat(skuId); String key = GoblinRedisConst.ACTIVITY_SKU_TIME.concat(skuId);
return getRedis().set(key,obj); return getRedis().set(key,goblinNftExSkuVo);
} }
/* ---------------------------------------- ---------------------------------------- */ /* ---------------------------------------- ---------------------------------------- */
......
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