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

Commit a56b7e6e authored by wanglele's avatar wanglele

删除new

parent 4395a16b
...@@ -12,16 +12,30 @@ public class PageInfoVo { ...@@ -12,16 +12,30 @@ public class PageInfoVo {
private int total; private int total;
private Object list; private Object list;
public PageInfoVo(){ public PageInfoVo() {
} }
public PageInfoVo(ArrayList<GoblinNftExActivityVo> goblinNftExActivityArrayList, int count,int num) { /*
public PageInfoVo(ArrayList<GoblinNftExActivityVo> goblinNftExActivityArrayList, int count, int num) {
this.list = goblinNftExActivityArrayList; this.list = goblinNftExActivityArrayList;
this.total= count; this.total = count;
} }
public PageInfoVo(ArrayList<GoblinNftExCodeVo> goblinNftExCodeVos,int count,String vio){
public PageInfoVo(ArrayList<GoblinNftExCodeVo> goblinNftExCodeVos, int count, String vio) {
this.list = goblinNftExCodeVos; this.list = goblinNftExCodeVos;
this.total= count; this.total = count;
} }
*/
private static final PageInfoVo obj = new PageInfoVo();
public static PageInfoVo getNew() {
try {
return (PageInfoVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new PageInfoVo();
}
}
} }
...@@ -10,6 +10,8 @@ public class CollectionUtil { ...@@ -10,6 +10,8 @@ public class CollectionUtil {
private static final HashMap<String, String> STRING_STRING_HASH_MAP = new HashMap<>(); private static final HashMap<String, String> STRING_STRING_HASH_MAP = new HashMap<>();
private static final HashMap<String, Object> STRING_OBJECT_HASH_MAP = new HashMap<>(); private static final HashMap<String, Object> STRING_OBJECT_HASH_MAP = new HashMap<>();
private static final HashMap<String, Integer> STRING_INTEGER_HASH_MAP = new HashMap<>(); private static final HashMap<String, Integer> STRING_INTEGER_HASH_MAP = new HashMap<>();
private static final HashMap<String, BigDecimal> STRING_BIG_DECIMAL_HASH_MAP = new HashMap<>();
private static final HashMap<String, Map<String, Object>> STRING_MAP_HASH_MAP = new HashMap<>();
private static final LinkedList<String> STRING_LINKED_LIST = new LinkedList<>(); private static final LinkedList<String> STRING_LINKED_LIST = new LinkedList<>();
private static final LinkedList<Object[]> OBJECTS_LINKED_LIST = new LinkedList<>(); private static final LinkedList<Object[]> OBJECTS_LINKED_LIST = new LinkedList<>();
private static final LinkedMultiValueMap<String, String> STRING_STRING_LINKED_MULTI_VALUE_MAP = new LinkedMultiValueMap<>(); private static final LinkedMultiValueMap<String, String> STRING_STRING_LINKED_MULTI_VALUE_MAP = new LinkedMultiValueMap<>();
...@@ -20,7 +22,6 @@ public class CollectionUtil { ...@@ -20,7 +22,6 @@ public class CollectionUtil {
private static final ArrayList<BigDecimal> BIG_DECIMALS_ARRAY_LIST = new ArrayList<>(); private static final ArrayList<BigDecimal> BIG_DECIMALS_ARRAY_LIST = new ArrayList<>();
private static final ArrayList<BigDecimal> BIGDECIMAL_ARRAY_LIST = new ArrayList<>(); private static final ArrayList<BigDecimal> BIGDECIMAL_ARRAY_LIST = new ArrayList<>();
public static HashMap<String, String> mapStringString() { public static HashMap<String, String> mapStringString() {
return (HashMap<String, String>) STRING_STRING_HASH_MAP.clone(); return (HashMap<String, String>) STRING_STRING_HASH_MAP.clone();
} }
...@@ -33,6 +34,14 @@ public class CollectionUtil { ...@@ -33,6 +34,14 @@ public class CollectionUtil {
return (HashMap<String, Integer>) STRING_INTEGER_HASH_MAP.clone(); return (HashMap<String, Integer>) STRING_INTEGER_HASH_MAP.clone();
} }
public static HashMap<String, BigDecimal> mapStringBigDecimal() {
return (HashMap<String, BigDecimal>) STRING_BIG_DECIMAL_HASH_MAP.clone();
}
public static HashMap<String, Map<String, Object>> mapHashMap() {
return (HashMap<String, Map<String, Object>>) STRING_MAP_HASH_MAP.clone();
}
public static LinkedList<String> linkedListString() { public static LinkedList<String> linkedListString() {
return (LinkedList<String>) STRING_LINKED_LIST.clone(); return (LinkedList<String>) STRING_LINKED_LIST.clone();
} }
......
...@@ -251,6 +251,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -251,6 +251,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
if (size > 0) {// 说明有未设置抽奖概率的 if (size > 0) {// 说明有未设置抽奖概率的
avgHitRatio = new BigDecimal(100).subtract(sumHitRatio).divide(new BigDecimal(size), 2, RoundingMode.HALF_UP); avgHitRatio = new BigDecimal(100).subtract(sumHitRatio).divide(new BigDecimal(size), 2, RoundingMode.HALF_UP);
} }
// 未设置概率的写入概率 // 未设置概率的写入概率
ArrayList<GoblinGoodsSkuInfoVo> newSkuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo(); ArrayList<GoblinGoodsSkuInfoVo> newSkuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo();
int skuListSize = skuInfoVos.size(); int skuListSize = skuInfoVos.size();
...@@ -274,6 +275,8 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -274,6 +275,8 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
} }
newSkuInfoVos.add(infoVo); newSkuInfoVos.add(infoVo);
} }
if (CollectionUtil.isEmpty(newSkuInfoVos)) { if (CollectionUtil.isEmpty(newSkuInfoVos)) {
log.info("该盲盒概率超过100导致不能卖 skuIdList:{}", skuIdList); log.info("该盲盒概率超过100导致不能卖 skuIdList:{}", skuIdList);
return null; return null;
......
...@@ -78,7 +78,6 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi ...@@ -78,7 +78,6 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi
PageHelper.startPage(goblinNftExActivityParam.getPageNum(), 20, true); PageHelper.startPage(goblinNftExActivityParam.getPageNum(), 20, true);
/* /*
* 获取分页nft兑换活动数据 * 获取分页nft兑换活动数据
*/ */
...@@ -98,7 +97,7 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi ...@@ -98,7 +97,7 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi
} }
ArrayList<GoblinNftExActivityVo> goblinNftExActivityArrayList = ObjectUtil.getGoblinNftExActivityArrayList(); ArrayList<GoblinNftExActivityVo> goblinNftExActivityArrayList = ObjectUtil.getGoblinNftExActivityVoArrayList();
if (StringUtil.isNotBlank(activityIds)) { if (StringUtil.isNotBlank(activityIds)) {
activityIds.deleteCharAt(activityIds.length() - 1); activityIds.deleteCharAt(activityIds.length() - 1);
...@@ -141,8 +140,12 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi ...@@ -141,8 +140,12 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi
} }
} }
PageInfoVo pageInfo = new PageInfoVo(goblinNftExActivityArrayList, count, 0);
return pageInfo; PageInfoVo pageInfoVo = PageInfoVo.getNew();
pageInfoVo.setList(goblinNftExActivityArrayList);
pageInfoVo.setTotal(count);
// PageInfoVo pageInfo = new PageInfoVo(goblinNftExActivityArrayList, count, 0);
return pageInfoVo;
} }
@Override @Override
...@@ -250,6 +253,7 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi ...@@ -250,6 +253,7 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi
ArrayList<ActivityExcelVo> activityExcelVoArrayList = ObjectUtil.getActivityExcelVoArrayList(); ArrayList<ActivityExcelVo> activityExcelVoArrayList = ObjectUtil.getActivityExcelVoArrayList();
if (StringUtil.isNotBlank(activityIds)) { if (StringUtil.isNotBlank(activityIds)) {
activityIds.deleteCharAt(activityIds.length() - 1); activityIds.deleteCharAt(activityIds.length() - 1);
long k = System.currentTimeMillis(); long k = System.currentTimeMillis();
......
...@@ -85,7 +85,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -85,7 +85,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
String skuName = goblinNftExCodeParam.getSkuName(); String skuName = goblinNftExCodeParam.getSkuName();
List<GoblinGoodsSku> goblinGoodsSkus = goblinGoodsSkuMapper.selectSkuLikeName(skuName); List<GoblinGoodsSku> goblinGoodsSkus = goblinGoodsSkuMapper.selectSkuLikeName(skuName);
if (goblinGoodsSkus.size() <= 0) { if (goblinGoodsSkus.size() <= 0) {
return new PageInfoVo(); return PageInfoVo.getNew();
} }
StringBuffer skuIds = new StringBuffer(); StringBuffer skuIds = new StringBuffer();
for (GoblinGoodsSku goblinGoodsSku : goblinGoodsSkus) { for (GoblinGoodsSku goblinGoodsSku : goblinGoodsSkus) {
...@@ -112,7 +112,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -112,7 +112,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
} }
// 获取返回对象实例 // 获取返回对象实例
ArrayList<GoblinNftExCodeVo> goblinNftExCodeArrayList = ObjectUtil.getGoblinNftExCodeArrayList(); ArrayList<GoblinNftExCodeVo> goblinNftExCodeArrayList = ObjectUtil.getGoblinNftExCodeVoArrayList();
if (StringUtil.isNotBlank(skuIds)) { if (StringUtil.isNotBlank(skuIds)) {
// 批量查询 // 批量查询
...@@ -138,87 +138,55 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -138,87 +138,55 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
// 根据活动ids 获取兑换活动和sku的关联 // 根据活动ids 获取兑换活动和sku的关联
List<GoblinNftExSku> goblinNftExSkus = goblinNftExSkuMapper.selectGoblinNftExSkuByActivityIds(acticityIds.toString()); List<GoblinNftExSku> goblinNftExSkus = goblinNftExSkuMapper.selectGoblinNftExSkuByActivityIds(acticityIds.toString());
Map<String, List<GoblinNftExSku>> map = new HashMap<>();
for (GoblinNftExSku goblinNftExSku : goblinNftExSkus) {
if (map.get(goblinNftExSku.getActivityId()) == null) {
map.put(goblinNftExSku.getActivityId(), new ArrayList<>());
}
map.get(goblinNftExSku.getActivityId()).add(goblinNftExSku);
}
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
for (GoblinNftExCodeVo gnc : goblinNftExCodeArrayList) { for (GoblinNftExCodeVo gnc : goblinNftExCodeArrayList) {
List<GoblinNftExSku> goblinNftExSkuList = map.get(gnc.getActivityId()); for (GoblinNftExSku goblinNftExSku : goblinNftExSkus) {
for (GoblinNftExSku goblinNftExSku : goblinNftExSkuList) { if (gnc.getActivityId().equals(goblinNftExSku.getActivityId())) {
if (StringUtil.isNotBlank(gnc.getBoxSkuId()) && gnc.getSkuId().equals(goblinNftExSku.getSkuId())) { if (StringUtil.isNotBlank(gnc.getBoxSkuId()) && gnc.getSkuId().equals(goblinNftExSku.getSkuId())) {
gnc.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime());
if (now.isAfter(goblinNftExSku.getExStopTime())) {
gnc.setState(3);
}
break;
} else {
if (gnc.getSkuId().equals(goblinNftExSku.getSkuId())) {
gnc.setExStartTime(goblinNftExSku.getExStartTime()); gnc.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime()); gnc.setExStopTime(goblinNftExSku.getExStopTime());
if (now.isAfter(goblinNftExSku.getExStopTime())) { if (now.isAfter(goblinNftExSku.getExStopTime())) {
gnc.setState(3); gnc.setState(3);
} }
break; break;
} else {
if (gnc.getSkuId().equals(goblinNftExSku.getSkuId())) {
gnc.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime());
if (now.isAfter(goblinNftExSku.getExStopTime())) {
gnc.setState(3);
}
break;
}
} }
} }
} }
} }
PageInfoVo pageInfo = new PageInfoVo(goblinNftExCodeArrayList, count, ""); PageInfoVo pageInfoVo = PageInfoVo.getNew();
pageInfoVo.setList(goblinNftExCodeArrayList);
return pageInfo; pageInfoVo.setTotal(count);
return pageInfoVo;
} }
@Override @Override
@Transactional
public Boolean defDrivLoseCode(String codeIds) { public Boolean defDrivLoseCode(String codeIds) {
// 获取兑换码 // 获取兑换码
List<GoblinNftExCode> goblinNftExCodes = goblinNftExCodeMapper.selectByIds(codeIds); List<GoblinNftExCode> goblinNftExCodes = goblinNftExCodeMapper.selectByIds(codeIds);
List<String> codes = new ArrayList<>();
Map<String, Integer> skuMap = new HashMap<>();
for (GoblinNftExCode goblinNftExCode : goblinNftExCodes) { for (GoblinNftExCode goblinNftExCode : goblinNftExCodes) {
// redis 主动失效 // redis 主动失效
codes.add(goblinNftExCode.getCode());
goblinNftExCode.setState(3); goblinNftExCode.setState(3);
goblinNftExCode.setUpdatedAt(LocalDateTime.now()); goblinNftExCode.setUpdatedAt(LocalDateTime.now());
String skuId = "";
if (StringUtil.isNotBlank(goblinNftExCode.getBoxSkuId())) {
skuId = goblinNftExCode.getBoxSkuId();
} else {
skuId = goblinNftExCode.getSkuId();
}
if (StringUtil.isNotBlank(skuId)) {
if (skuMap.get(skuId) == null) {
skuMap.put(skuId, 0);
}
Integer number = skuMap.get(skuId);
skuMap.put(skuId, number + 1);
}
goblinRedisUtils.removeCode(goblinNftExCode.getCode()); goblinRedisUtils.removeCode(goblinNftExCode.getCode());
} }
/* if (skuMap.size() > 0) {
for (String key : skuMap.keySet()) {
// goblinRedisUtils.incrSkuStock(null, key, skuMap.get(key));
}
}*/
// 批量修改 // 批量修改
goblinNftExCodeMapper.updateCodes(goblinNftExCodes); goblinNftExCodeMapper.updateCodes(goblinNftExCodes);
return true; return true;
} }
@Override @Override
@Transactional @Transactional
public ResponseDto<Boolean> addAirdrop(GoblinNftExCodeParam goblinNftExCodeParam) { public ResponseDto<Boolean> addAirdrop(GoblinNftExCodeParam goblinNftExCodeParam) {
...@@ -313,8 +281,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -313,8 +281,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
} }
// 获取返回对象实例 // 获取返回对象实例
ArrayList<GoblinNftExCodeVo> goblinNftExCodeArrayList = ObjectUtil.getGoblinNftExCodeArrayList(); ArrayList<GoblinNftExCodeVo> goblinNftExCodeArrayList = ObjectUtil.getGoblinNftExCodeVoArrayList();
if (StringUtil.isNotBlank(skuIds)) { if (StringUtil.isNotBlank(skuIds)) {
// 批量查询 // 批量查询
...@@ -344,35 +311,27 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -344,35 +311,27 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
// 根据活动ids 获取兑换活动和sku的关联 // 根据活动ids 获取兑换活动和sku的关联
List<GoblinNftExSku> goblinNftExSkus = goblinNftExSkuMapper.selectGoblinNftExSkuByActivityIds(acticityIds.toString()); List<GoblinNftExSku> goblinNftExSkus = goblinNftExSkuMapper.selectGoblinNftExSkuByActivityIds(acticityIds.toString());
Map<String, List<GoblinNftExSku>> map = new HashMap<>();
for (GoblinNftExSku goblinNftExSku : goblinNftExSkus) {
if (map.get(goblinNftExSku.getActivityId()) == null) {
map.put(goblinNftExSku.getActivityId(), new ArrayList<>());
}
map.get(goblinNftExSku.getActivityId()).add(goblinNftExSku);
}
ArrayList<CodeExcelVo> codeExcelVoArrayList = ObjectUtil.getCodeExcelVoArrayList(); ArrayList<CodeExcelVo> codeExcelVoArrayList = ObjectUtil.getCodeExcelVoArrayList();
for (GoblinNftExCodeVo gnc : goblinNftExCodeArrayList) { for (GoblinNftExCodeVo gnc : goblinNftExCodeArrayList) {
List<GoblinNftExSku> goblinNftExSkuList = map.get(gnc.getActivityId());
for (GoblinNftExSku goblinNftExSku : goblinNftExSkuList) {
if (StringUtil.isNotBlank(gnc.getBoxSkuId()) && gnc.getSkuId().equals(goblinNftExSku.getSkuId())) { for (GoblinNftExSku goblinNftExSku : goblinNftExSkus) {
gnc.setExStartTime(goblinNftExSku.getExStartTime()); if (gnc.getActivityId().equals(goblinNftExSku.getActivityId())) {
gnc.setExStopTime(goblinNftExSku.getExStopTime()); if (StringUtil.isNotBlank(gnc.getBoxSkuId()) && gnc.getSkuId().equals(goblinNftExSku.getSkuId())) {
break;
} else {
if (gnc.getSkuId().equals(goblinNftExSku.getSkuId())) {
gnc.setExStartTime(goblinNftExSku.getExStartTime()); gnc.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime()); gnc.setExStopTime(goblinNftExSku.getExStopTime());
break; break;
} else {
if (gnc.getSkuId().equals(goblinNftExSku.getSkuId())) {
gnc.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime());
break;
}
} }
} }
} }
CodeExcelVo codeExcelVo = new CodeExcelVo(); CodeExcelVo codeExcelVo = CodeExcelVo.getNew();
codeExcelVo.setCode(gnc.getCode()); codeExcelVo.setCode(gnc.getCode());
String val = ""; String val = "";
switch (gnc.getState()) { switch (gnc.getState()) {
......
...@@ -77,6 +77,7 @@ public class GoblinNftExCodeTaskServiceImpl implements IGoblinNftExCodeTaskServi ...@@ -77,6 +77,7 @@ public class GoblinNftExCodeTaskServiceImpl implements IGoblinNftExCodeTaskServi
List<GoblinNftExSku> goblinNftExSkus = new ArrayList<>(); List<GoblinNftExSku> goblinNftExSkus = new ArrayList<>();
StringBuffer updTaskIds = new StringBuffer(); StringBuffer updTaskIds = new StringBuffer();
for (GoblinNftExCodeTask goblinNftExCodeTask : goblinNftExCodeTasks) { for (GoblinNftExCodeTask goblinNftExCodeTask : goblinNftExCodeTasks) {
GoblinNftExSku goblinNftExSku = new GoblinNftExSku(); GoblinNftExSku goblinNftExSku = new GoblinNftExSku();
...@@ -92,7 +93,6 @@ public class GoblinNftExCodeTaskServiceImpl implements IGoblinNftExCodeTaskServi ...@@ -92,7 +93,6 @@ public class GoblinNftExCodeTaskServiceImpl implements IGoblinNftExCodeTaskServi
goblinNftExSku.setCreatedAt(now); goblinNftExSku.setCreatedAt(now);
goblinNftExSkus.add(goblinNftExSku); goblinNftExSkus.add(goblinNftExSku);
updTaskIds.append(goblinNftExCodeTask.getTaskId()).append(","); updTaskIds.append(goblinNftExCodeTask.getTaskId()).append(",");
switch (goblinNftExCodeTask.getUnbox()) { switch (goblinNftExCodeTask.getUnbox()) {
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.platform.service.impl.goblin; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.platform.service.impl.goblin;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.StringUtil; import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
...@@ -57,11 +58,14 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -57,11 +58,14 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
//ArrayList<GoblinNftExSkuVo> goblinNftExSkuArrayList = ObjectUtil.getGoblinNftExSkuArrayList(); //ArrayList<GoblinNftExSkuVo> goblinNftExSkuArrayList = ObjectUtil.getGoblinNftExSkuArrayList();
//FArrayList<GoblinNftExCodeVo> goblinNftExCodeArrayList = ObjectUtil.getGoblinNftExCodeArrayList(); //FArrayList<GoblinNftExCodeVo> goblinNftExCodeArrayList = ObjectUtil.getGoblinNftExCodeArrayList();
// 是否存在盲盒
Boolean bol = false; Boolean bol = false;
// 配置库存
Integer stockNumber = 0; Integer stockNumber = 0;
StringBuffer spuIds = new StringBuffer(); StringBuffer spuIds = new StringBuffer();
StringBuffer skuIds = new StringBuffer(); StringBuffer skuIds = new StringBuffer();
for (GoblinNftExSkuParam goblinNftExSkuParam : goblinNftExSkuParams) { for (GoblinNftExSkuParam goblinNftExSkuParam : goblinNftExSkuParams) {
if (goblinNftExSkuParam.getUnbox().equals("1")) { if (goblinNftExSkuParam.getUnbox().equals("1")) {
bol = true; bol = true;
...@@ -79,10 +83,12 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -79,10 +83,12 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
return ResponseDto.failure("sku数据不可传空!"); return ResponseDto.failure("sku数据不可传空!");
} }
// 获取sku数据校验是否正确 // 获取sku数据校验是否正确
List<GoblinGoodsSku> goblinGoodsSkuListCheck = goblinGoodsSkuMapper.selectBySkuIds(skuIds.toString()); List<GoblinGoodsSku> goblinGoodsSkuListCheck = goblinGoodsSkuMapper.selectBySkuIds(skuIds.toString());
List<String> skuIdList = new ArrayList<>();
ArrayList<String> skuIdList = CollectionUtil.arrayListString();
for (GoblinGoodsSku goblinGoodsSku : goblinGoodsSkuListCheck) { for (GoblinGoodsSku goblinGoodsSku : goblinGoodsSkuListCheck) {
// 不能购买的 没库存的 概率是0的 过滤 // 不能购买的 没库存的 概率是0的 过滤
if (getSkuAllStatusShow(goblinGoodsSku)) { if (getSkuAllStatusShow(goblinGoodsSku)) {
...@@ -95,7 +101,9 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -95,7 +101,9 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
} }
Map<String, BigDecimal> map = new HashMap<>(); // sku --> 概率
HashMap<String, BigDecimal> map = CollectionUtil.mapStringBigDecimal();
if (bol) { if (bol) {
// 获取spu下所有sku // 获取spu下所有sku
List<GoblinGoodsSku> goblinGoodsSkus = goblinGoodsSkuMapper.selectBySpuIds(spuIds.toString()); List<GoblinGoodsSku> goblinGoodsSkus = goblinGoodsSkuMapper.selectBySpuIds(spuIds.toString());
...@@ -118,11 +126,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -118,11 +126,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
} }
List<GoblinNftExCodeTask> goblinNftExCodeTasks = new ArrayList<>(); List<GoblinNftExCodeTask> goblinNftExCodeTasks = ObjectUtil.getGoblinNftExCodeTaskArrayList();
// List<GoblinNftExCode> goblinNftExCodes = new ArrayList<>();
// sku ---> 兑换码关联
// Map<String, GoblinNftExSkuParam> goblinNftExSkuParamMap = new HashMap<>();
// 构建对象 // 构建对象
for (GoblinNftExSkuParam goblinNftExSkuParam : goblinNftExSkuParams) { for (GoblinNftExSkuParam goblinNftExSkuParam : goblinNftExSkuParams) {
...@@ -147,7 +151,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -147,7 +151,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
goblinNftExCodeTask.setCreatedAt(now); goblinNftExCodeTask.setCreatedAt(now);
if (goblinNftExSkuParam.getUnbox().equals("1")) { if (goblinNftExSkuParam.getUnbox().equals("1")) {
List<GoblinNftExCodeTaskRelation> goblinNftExCodeTaskRelations = new ArrayList<>(); ArrayList<GoblinNftExCodeTaskRelation> goblinNftExCodeTaskRelations = ObjectUtil.getGoblinNftExCodeTaskRelationArrayList();
// sku ---> 库存 // sku ---> 库存
Map<String, Integer> skuMap = getSkuHitRatio(goblinNftExSkuParam.getExStock(), map); Map<String, Integer> skuMap = getSkuHitRatio(goblinNftExSkuParam.getExStock(), map);
...@@ -161,7 +165,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -161,7 +165,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
if (stock < 0) { if (stock < 0) {
goblinRedisUtils.incrSkuStock(null, key, stockNum); goblinRedisUtils.incrSkuStock(null, key, stockNum);
} else { } else {
GoblinNftExCodeTaskRelation goblinNftExCodeTaskRelation = new GoblinNftExCodeTaskRelation(); GoblinNftExCodeTaskRelation goblinNftExCodeTaskRelation = GoblinNftExCodeTaskRelation.getNew();
goblinNftExCodeTaskRelation.setTaskId(goblinNftExCodeTask.getTaskId()); goblinNftExCodeTaskRelation.setTaskId(goblinNftExCodeTask.getTaskId());
goblinNftExCodeTaskRelation.setSkuId(key); goblinNftExCodeTaskRelation.setSkuId(key);
goblinNftExCodeTaskRelation.setStock(stockNum); goblinNftExCodeTaskRelation.setStock(stockNum);
...@@ -182,156 +186,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -182,156 +186,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
} }
goblinNftExCodeTasks.add(goblinNftExCodeTask); goblinNftExCodeTasks.add(goblinNftExCodeTask);
// 盲盒 概率
/*switch (goblinNftExSkuParam.getUnbox()) {
case "1":
// sku ---> 库存
Map<String, Integer> skuMap = getSkuHitRatio(goblinNftExSkuParam.getExStock(), map);
for (String key : skuMap.keySet()) {
Integer stockNum = skuMap.get(key);
// 根据sku减库存
int stock = goblinRedisUtils.decrSkuStock(null, key, stockNum);
if (stock < 0) {
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);
goblinNftExCode.setSkuId(goblinNftExSkuParam.getSkuId());
}
// goblinNftExSkuParamMap.put(key, goblinNftExSkuParam);
}
}
break;
default:
// 根据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.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);
}
}
// goblinNftExSkuArrayList.add(GoblinNftExSkuVo.getNew().copy(goblinNftExSku));
}*/
}
/*
for (String key : goblinNftExSkuParamMap.keySet()) {
GoblinNftExSkuVo goblinNftExSkuVo = goblinRedisUtils.getSkuTime(key);
GoblinNftExSkuParam goblinNftExSkuParam = goblinNftExSkuParamMap.get(key);
LocalDateTime exStartTime = goblinNftExSkuParam.getExStartTime(); // "2022-06-26 19:00:00";
LocalDateTime exStopTime = goblinNftExSkuParam.getExStopTime(); // "2024-06-26 19:00:00";
if (!StringUtil.isEmpty(goblinNftExSkuVo)) {
// redis存储 单个sku的开始和结束时间
LocalDateTime rdExStartTime = LocalDateTime.parse(goblinNftExSkuVo.getRdStartTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // "2019-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";
// 时间比对
if (!rdExStartTime.isAfter(exStartTime)) {
exStartTime = rdExStartTime;
}
if (rdExStopTime.isAfter(exStopTime)) {
exStopTime = rdExStopTime;
}
}
GoblinNftExSkuVo goblinNftExSku = GoblinNftExSkuVo.getNew();
goblinNftExSku.setExStartTime(exStartTime);
goblinNftExSku.setExStopTime(exStopTime);
goblinNftExSku.setRdStartTime(exStartTime.toString());
goblinNftExSku.setRdStopTime(exStopTime.toString());
goblinRedisUtils.addSkuTime(key, goblinNftExSku);
} }
*/
// 数据库操作 // 数据库操作
long startm = System.currentTimeMillis(); long startm = System.currentTimeMillis();
if (goblinNftExCodeTasks.size() > 0) { if (goblinNftExCodeTasks.size() > 0) {
...@@ -371,13 +226,14 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -371,13 +226,14 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
// 获取sku总概率 // 获取sku总概率
BigDecimal hitRatioCount = new BigDecimal(0); BigDecimal hitRatioCount = new BigDecimal(0);
// sku --> 概率/库存
Map<String, Map<String, Object>> mapMap = new HashMap<>();
int countNumber = 0; // Map<String, Map<String, Object>> mapMap = new HashMap<>();
// sku --> 概率/库存
HashMap<String, Map<String, Object>> mapMap = CollectionUtil.mapHashMap();
for (String key : map.keySet()) { for (String key : map.keySet()) {
BigDecimal skuHitRatio = map.get(key); BigDecimal skuHitRatio = BigDecimal.valueOf(Double.valueOf(map.get(key).toString()));
Map<String, Object> objectMap = new HashMap<>(); HashMap<String, Object> objectMap = CollectionUtil.mapStringObject();
if (skuHitRatio == null) { if (skuHitRatio == null) {
continue; continue;
} }
...@@ -390,13 +246,17 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -390,13 +246,17 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
// sku ---> 库存 // sku ---> 库存
Map<String, Integer> stockMap = new HashMap<>(); HashMap<String, Integer> stockMap = CollectionUtil.mapStringInteger();
getStock(exStock, hitRatioCount, mapMap, stockMap); getStock(exStock, hitRatioCount, mapMap, stockMap);
return stockMap; return stockMap;
} }
public static void main(String[] args) { public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("1", new BigDecimal("0.11"));
System.out.println(BigDecimal.valueOf(Double.valueOf(map.get("1").toString())));
Map<String, Map<String, Object>> mapMap = new HashMap<>(); Map<String, Map<String, Object>> mapMap = new HashMap<>();
Map<String, Object> objectMap = new HashMap<>(); Map<String, Object> objectMap = new HashMap<>();
objectMap.put("hitRatio", 10); objectMap.put("hitRatio", 10);
...@@ -436,7 +296,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -436,7 +296,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
continue; continue;
} }
BigDecimal bigDecimal = BigDecimal.valueOf(exStock).multiply((new BigDecimal(hitRatio.toString()).divide(hitRatioCount, 2, BigDecimal.ROUND_HALF_UP))).setScale(0, BigDecimal.ROUND_HALF_UP); // BigDecimal bigDecimal = BigDecimal.valueOf(exStock).multiply((new BigDecimal(hitRatio.toString()).divide(hitRatioCount, 2, BigDecimal.ROUND_HALF_UP))).setScale(0, BigDecimal.ROUND_HALF_UP);
// 要减去的库存 // 要减去的库存
int subStock = BigDecimal.valueOf(exStock).multiply((new BigDecimal(hitRatio.toString()).divide(hitRatioCount, 2, BigDecimal.ROUND_HALF_UP))).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); int subStock = BigDecimal.valueOf(exStock).multiply((new BigDecimal(hitRatio.toString()).divide(hitRatioCount, 2, BigDecimal.ROUND_HALF_UP))).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
...@@ -460,7 +320,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -460,7 +320,7 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
} }
} }
exStock -= subNumber; exStock -= subNumber;
if (exStock > 0) { if (exStock > 0) {
for (String key : mapMap.keySet()) { for (String key : mapMap.keySet()) {
Object hitRatio = mapMap.get(key).get("hitRatio"); Object hitRatio = mapMap.get(key).get("hitRatio");
......
...@@ -7,6 +7,8 @@ import com.liquidnet.service.candy.entity.CandyCouponCode; ...@@ -7,6 +7,8 @@ import com.liquidnet.service.candy.entity.CandyCouponCode;
import com.liquidnet.service.candy.entity.CandyUserCoupon; import com.liquidnet.service.candy.entity.CandyUserCoupon;
import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto; import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinNftExCodeTask;
import com.liquidnet.service.goblin.entity.GoblinNftExCodeTaskRelation;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo; import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons; import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import com.liquidnet.service.goblin.dto.vo.ActivityExcelVo; import com.liquidnet.service.goblin.dto.vo.ActivityExcelVo;
...@@ -60,10 +62,11 @@ public class ObjectUtil { ...@@ -60,10 +62,11 @@ public class ObjectUtil {
private static final ArrayList<SellDataOneVO> sellDataOneVOArrayList = new ArrayList<>(); private static final ArrayList<SellDataOneVO> sellDataOneVOArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftExActivityVo> goblinNftExActivityVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinNftExActivityVo> goblinNftExActivityVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftExCodeVo> goblinNftExCodeVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinNftExCodeVo> goblinNftExCodeVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftExSkuVo> goblinNftExSkuVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftSkuVo> goblinNftSkuVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinNftSkuVo> goblinNftSkuVoArrayList = new ArrayList<>();
private static final ArrayList<ActivityExcelVo> activityExcelVoArrayList = new ArrayList(); private static final ArrayList<ActivityExcelVo> activityExcelVoArrayList = new ArrayList<>();
private static final ArrayList<CodeExcelVo> codeExcelVoArrayList = new ArrayList(); private static final ArrayList<CodeExcelVo> codeExcelVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftExCodeTaskRelation> goblinNftExCodeTaskRelationArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftExCodeTask> goblinNftExCodeTaskArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreMarketDto> goblinStoreMarketDtoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreMarketDto> goblinStoreMarketDtoArrayList = new ArrayList<>();
...@@ -143,18 +146,14 @@ public class ObjectUtil { ...@@ -143,18 +146,14 @@ public class ObjectUtil {
return (ArrayList<KylinApiCameraDevicesVo>) kylinApiCameraDevicesVoArrayList.clone(); return (ArrayList<KylinApiCameraDevicesVo>) kylinApiCameraDevicesVoArrayList.clone();
} }
public static ArrayList<GoblinNftExActivityVo> getGoblinNftExActivityArrayList() { public static ArrayList<GoblinNftExActivityVo> getGoblinNftExActivityVoArrayList() {
return (ArrayList<GoblinNftExActivityVo>) goblinNftExActivityVoArrayList.clone(); return (ArrayList<GoblinNftExActivityVo>) goblinNftExActivityVoArrayList.clone();
} }
public static ArrayList<GoblinNftExCodeVo> getGoblinNftExCodeArrayList() { public static ArrayList<GoblinNftExCodeVo> getGoblinNftExCodeVoArrayList() {
return (ArrayList<GoblinNftExCodeVo>) goblinNftExCodeVoArrayList.clone(); return (ArrayList<GoblinNftExCodeVo>) goblinNftExCodeVoArrayList.clone();
} }
public static ArrayList<GoblinNftExSkuVo> getGoblinNftExSkuArrayList() {
return (ArrayList<GoblinNftExSkuVo>) goblinNftExSkuVoArrayList.clone();
}
public static ArrayList<GoblinNftSkuVo> getGoblinNftSkuVoArrayList() { public static ArrayList<GoblinNftSkuVo> getGoblinNftSkuVoArrayList() {
return (ArrayList<GoblinNftSkuVo>) goblinNftSkuVoArrayList.clone(); return (ArrayList<GoblinNftSkuVo>) goblinNftSkuVoArrayList.clone();
} }
...@@ -163,8 +162,16 @@ public class ObjectUtil { ...@@ -163,8 +162,16 @@ public class ObjectUtil {
return (ArrayList<ActivityExcelVo>) activityExcelVoArrayList.clone(); return (ArrayList<ActivityExcelVo>) activityExcelVoArrayList.clone();
} }
public static ArrayList<CodeExcelVo> getCodeExcelVoArrayList(){ public static ArrayList<CodeExcelVo> getCodeExcelVoArrayList() {
return (ArrayList<CodeExcelVo>)codeExcelVoArrayList.clone(); return (ArrayList<CodeExcelVo>) codeExcelVoArrayList.clone();
}
public static ArrayList<GoblinNftExCodeTaskRelation> getGoblinNftExCodeTaskRelationArrayList() {
return (ArrayList<GoblinNftExCodeTaskRelation>) goblinNftExCodeTaskRelationArrayList.clone();
}
public static ArrayList<GoblinNftExCodeTask> getGoblinNftExCodeTaskArrayList() {
return (ArrayList<GoblinNftExCodeTask>) goblinNftExCodeTaskArrayList.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