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

Commit c889cdf4 authored by wanglele's avatar wanglele

兑换码相关

parent 90253d36
......@@ -2,12 +2,15 @@ package com.liquidnet.service.goblin.dto.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.liquidnet.service.goblin.entity.GoblinGoods;
import com.liquidnet.service.goblin.entity.GoblinNftExActivity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @Author: wll
......@@ -29,38 +32,48 @@ public class GoblinNftExActivityVo implements Serializable,Cloneable {
/**
* 活动id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String activityId;
/**
* 活动标题
*/
@ApiModelProperty(position = 11,required = true,value ="")
private String title;
/**
* 创建时间
*/
@ApiModelProperty(position = 12,required = true,value ="")
private LocalDateTime createdAt;
/**
* 更新时间
*/
@ApiModelProperty(position = 13,required = true,value ="")
private LocalDateTime updatedAt;
/**
* 总数量
*/
@ApiModelProperty(position = 14,required = true,value ="")
private Integer countNumber;
/**
* 使用数量
*/
@ApiModelProperty(position = 15,required = true,value ="")
private Integer useNumber;
/**
* 未使用数量
*/
@ApiModelProperty(position = 16,required = true,value ="")
private Integer unUseNumber;
@ApiModelProperty(position = 17,required = true,value ="")
private List<GoblinNftSkuVo> goblinNftSkuVos;
private final static GoblinNftExActivityVo obj = new GoblinNftExActivityVo();
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.dto.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.liquidnet.service.goblin.entity.GoblinNftExCode;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -28,95 +29,111 @@ public class GoblinNftExCodeVo implements Serializable, Cloneable {
/**
* 兑换码id
*/
@ApiModelProperty(position = 10,required = true,value ="兑换码id")
private String codeId;
/**
* 活动id
*/
@ApiModelProperty(position = 10,required = true,value ="活动id")
private String activityId;
/**
* 兑换码
*/
@ApiModelProperty(position = 10,required = true,value ="兑换码")
private String code;
/**
* 款式id
* 商品id
*/
@ApiModelProperty(position = 10,required = true,value ="款式id")
private String spuId;
/**
* 款式id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String skuId;
/**
* 盲盒抽取的款式id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String boxSkuId;
/**
* 店铺id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String storeId;
/**
* 兑换码状态 1 未兑换 2 已兑换
*/
@ApiModelProperty(position = 10,required = true,value ="")
private Integer state;
/**
* 兑换用户id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String redeemUid;
/**
* 操作用户id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String adminUid;
/**
* 兑换时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime redeemAt;
/**
* 创建时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime createdAt;
/**
* 更新时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime updatedAt;
/**
* 兑换限购
*/
@ApiModelProperty(position = 10,required = true,value ="")
private Integer exLimit;
/**
* 兑换生效开始时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime exStartTime;
/**
* 兑换生效结束时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime exStopTime;
/**
* sku名称
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String skuName;
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.dto.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.liquidnet.service.goblin.entity.GoblinNftExSku;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -28,60 +29,71 @@ public class GoblinNftExSkuVo {
/**
* 活动id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String activityId;
/**
* 商品id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String spuId;
/**
* 款式id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String skuId;
/**
* 是否盲盒 0:否 1:是
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String unBox;
/**
* 店铺id
*/
@ApiModelProperty(position = 10,required = true,value ="")
private String storeId;
/**
* 兑换库存
*/
@ApiModelProperty(position = 10,required = true,value ="")
private Integer exStock;
/**
* 兑换限购
*/
@ApiModelProperty(position = 10,required = true,value ="")
private Integer exLimit;
/**
* 兑换生效开始时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime exStartTime;
/**
* 兑换生效结束时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime exStopTime;
/**
* 创建时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime createdAt;
/**
* 修改时间
*/
@ApiModelProperty(position = 10,required = true,value ="")
private LocalDateTime updatedAt;
private static final GoblinNftExSkuVo obj = new GoblinNftExSkuVo();
......
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.service.goblin.entity.GoblinGoods;
import com.liquidnet.service.goblin.entity.GoblinGoodsSku;
import com.liquidnet.service.goblin.entity.GoblinNftExActivity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @Author: wll
* @Description:
* @Date:Create:in 2022/4/24 2:02 下午
*/
@ApiModel(value = "GoblinNftSkuVo", description = "单个活动下的sku]")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinNftSkuVo implements Serializable,Cloneable{
private String skuId;
private String spuName;
private String image;
/**
* 总数量
*/
private Integer countNumber;
/**
* 使用数量
*/
private Integer useNumber;
/**
* 未使用数量
*/
private Integer unUseNumber;
private GoblinNftExSkuVo goblinNftExSkuVo;
private final static GoblinNftSkuVo obj = new GoblinNftSkuVo();
public static GoblinNftSkuVo getNew(){
try {
return (GoblinNftSkuVo) obj.clone();
}catch (CloneNotSupportedException e){
return new GoblinNftSkuVo();
}
}
public GoblinNftSkuVo copy(GoblinGoodsSku goblinGoodsSku){
if (null == goblinGoodsSku){
return this;
}
this.setSkuId(goblinGoodsSku.getSkuId());
this.setSpuName(goblinGoodsSku.getName());
this.setImage(goblinGoodsSku.getSkuPic());
return this;
}
}
......@@ -17,7 +17,7 @@ public class GoblinNftExCodeParam {
private String activityId;
@ApiModelProperty(position = 11,required = true,value = "当前页")
private Integer pageNum;
@ApiModelProperty(position = 12,required = false,value = "兑换码")
@ApiModelProperty(position = 12,required = false,value = "兑换码/发送空投时必传")
private String code;
@ApiModelProperty(position = 13,required = false,value = "兑换码状态 全部非传 1未兑换 2已兑换 3已失效")
private Integer state;
......@@ -27,6 +27,9 @@ public class GoblinNftExCodeParam {
private String skuName;
@ApiModelProperty(position = 16,required = false,value = "用户id搜索")
private String userId;
@ApiModelProperty(position = 17,required = true,value = "手机号/ 发送空投时传入")
private String phone;
}
......@@ -21,30 +21,35 @@ public class GoblinNftExSkuParam {
@NotBlank(message = "nft兑换活动id不可为空")
private String activityId;
@ApiModelProperty(position = 11,required = true,value = "商品id")
@ApiModelProperty(position = 11,required = true,value = "店铺id")
private String storeId;
@ApiModelProperty(position = 12,required = true,value = "商品id")
@NotBlank(message = "商品id不可为空")
private String spuId;
@ApiModelProperty(position = 12,required = true,value = "款式id")
@ApiModelProperty(position = 13,required = true,value = "款式id")
@NotBlank(message = "款式id不可为空")
private String skuId;
@ApiModelProperty(position = 13,required = true,value = "是否盲盒 0:否 1:是")
@ApiModelProperty(position = 14,required = true,value = "是否盲盒 0:否 1:是")
@NotBlank(message = "是否盲盒 0:否 1:是")
private String unbox;
@ApiModelProperty(position = 13,required = true,value = "兑换库存数量")
@ApiModelProperty(position = 15,required = true,value = "兑换库存数量")
@NotBlank(message = "兑换库存数量不可为空")
private Integer exStock;
@ApiModelProperty(position = 14,required = true,value = "兑换限购数量")
@ApiModelProperty(position = 16,required = true,value = "兑换限购数量")
@NotBlank(message = "兑换限购数量不可为空")
private Integer exLimit;
@ApiModelProperty(position = 15,required = true,value = "兑换生效开始时间")
@ApiModelProperty(position = 17,required = true,value = "兑换生效开始时间")
@NotBlank(message = "兑换生效开始时间不可为空")
private LocalDateTime exStartTime;
@ApiModelProperty(position = 16,required = true,value = "兑换生效结束时间")
@ApiModelProperty(position = 18,required = true,value = "兑换生效结束时间")
@NotBlank(message = "兑换生效结束时间不可为空")
private LocalDateTime exStopTime;
......
......@@ -2,8 +2,11 @@ package com.liquidnet.service.goblin.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExActivityVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftSkuVo;
import com.liquidnet.service.goblin.param.GoblinNftExActivityParam;
import java.util.List;
public interface IGoblinNftExActivityService {
/**
......@@ -19,4 +22,11 @@ public interface IGoblinNftExActivityService {
* @return
*/
PageInfo<GoblinNftExActivityVo> pageList(GoblinNftExActivityParam goblinNftExActivityParam);
/**
* 根据活动id获取活动下商品
* @param activityId
* @return
*/
List<GoblinNftSkuVo> selectNftSkuByActivityId(String activityId);
}
......@@ -17,4 +17,11 @@ public interface IGoblinNftExCodeService {
* @return
*/
Boolean defDrivLoseCode(String codeIds);
/**
* 空投发送
* @param goblinNftExCodeParam
* @return
*/
Boolean addAirdrop(GoblinNftExCodeParam goblinNftExCodeParam);
}
......@@ -31,7 +31,7 @@ public interface GoblinGoodsSkuMapper extends BaseMapper<GoblinGoodsSku> {
* @param skuIds
* @return
*/
List<GoblinGoodsSku> selectByIds(@Param("skuIds") String skuIds);
List<GoblinGoodsSku> selectBySkuIds(@Param("skuIds") String skuIds);
/**
* 根据spuIds获取spu下的sku
......@@ -39,4 +39,5 @@ public interface GoblinGoodsSkuMapper extends BaseMapper<GoblinGoodsSku> {
* @return
*/
List<GoblinGoodsSku> selectBySpuIds(@Param("spuIds") String spuIds);
}
......@@ -35,4 +35,11 @@ public interface GoblinNftExActivityMapper extends BaseMapper<GoblinNftExActivit
* @return
*/
List<GoblinNftExActivity> selectPageList(@Param("title") String title, @Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime);
/**
* 根据活动ids 获取活动
* @param activityIds
* @return
*/
GoblinNftExActivity selectByActivityIds(@Param("activityIds") String activityIds);
}
......@@ -14,10 +14,10 @@
name like #{likeSkuName}
</select>
<select id="selectByIds" resultMap="BaseResult">
<select id="selectBySkuIds" resultMap="BaseResult">
select sku_id,name from goblin_goods_sku where
sku_id in
<foreach collection="skuIds" item="skuId" open="(" separator="," close=")">
<foreach collection="skuIds.split(',')" item="skuId" open="(" separator="," close=")">
#{skuId,jdbcType=VARCHAR}
</foreach>
</select>
......
......@@ -25,6 +25,13 @@
</where>
</select>
<select id="selectByActivityIds" resultMap="BaseResult">
select activity_id,title,created_at from goblin_nft_ex_activity where activity_id in
<foreach collection="activityIds.split(',')" item="activityId" open="(" separator="," close=")">
#{activityId}
</foreach>
</select>
<insert id="addGoblinNftExActivity" parameterType="com.liquidnet.service.goblin.entity.GoblinNftExActivity">
insert into goblin_nft_ex_activity
(
......
......@@ -4,6 +4,8 @@ import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExActivityVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftSkuVo;
import com.liquidnet.service.goblin.entity.GoblinGoods;
import com.liquidnet.service.goblin.param.GoblinNftExActivityParam;
import com.liquidnet.service.goblin.service.IGoblinNftExActivityService;
import io.swagger.annotations.Api;
......@@ -11,12 +13,10 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @Author: wll
......@@ -48,4 +48,13 @@ public class GoblinNftExActivityController {
return ResponseDto.success(iGoblinNftExActivityService.pageList(goblinNftExActivityParam));
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "根据nft兑换活动获取绑定商品")
@PostMapping("selectNftSkuByActivityId/{activityId}")
public ResponseDto<List<GoblinNftSkuVo>> selectNftSkuByActivityId(@PathVariable("activityId")String activityId){
return ResponseDto.success(iGoblinNftExActivityService.selectNftSkuByActivityId(activityId));
}
}
......@@ -36,13 +36,21 @@ public class GoblinNftExCodeController {
return ResponseDto.success(iGoblinNftExCodeService.selectCodePageList(goblinNftExCodeParam));
}
@ApiOperationSupport(order = 1)
@ApiOperationSupport(order = 2)
@ApiOperation(value = "兑换码主动失效")
@PostMapping("defDrivLoseCodes/{codeIds}")
public ResponseDto<Boolean> defDrivLoseCode(@PathVariable("codeIds")String codeIds){
return ResponseDto.success(iGoblinNftExCodeService.defDrivLoseCode(codeIds));
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "空投发送")
@PostMapping("addAirdrop")
public ResponseDto<Boolean> addAirdrop(@RequestBody GoblinNftExCodeParam goblinNftExCodeParam){
return ResponseDto.success(iGoblinNftExCodeService.addAirdrop(goblinNftExCodeParam));
}
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.platform.controller.goblin.sku;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.entity.GoblinGoods;
import com.liquidnet.service.goblin.param.GoblinNftExSkuParam;
import com.liquidnet.service.goblin.service.IGoblinNftExSkuService;
import io.swagger.annotations.Api;
......@@ -9,10 +10,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
......@@ -41,5 +39,4 @@ public class GoblinNftExSkuController {
}
......@@ -4,11 +4,12 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExActivityVo;
import com.liquidnet.service.goblin.entity.GoblinNftExActivity;
import com.liquidnet.service.goblin.entity.GoblinNftExCode;
import com.liquidnet.service.goblin.mapper.GoblinNftExActivityMapper;
import com.liquidnet.service.goblin.mapper.GoblinNftExCodeMapper;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExSkuVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftSkuVo;
import com.liquidnet.service.goblin.entity.*;
import com.liquidnet.service.goblin.mapper.*;
import com.liquidnet.service.goblin.param.GoblinNftExActivityParam;
import com.liquidnet.service.goblin.service.IGoblinNftExActivityService;
import com.liquidnet.service.platform.utils.GoblinRedisUtils;
......@@ -19,8 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
/**
* @Author: wll
......@@ -37,6 +37,10 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServ
private GoblinNftExActivityMapper goblinNftExActivityMapper;
@Autowired
private GoblinNftExCodeMapper goblinNftExCodeMapper;
@Autowired
private GoblinNftExSkuMapper goblinNftExSkuMapper;
@Autowired
private GoblinGoodsSkuMapper goblinGoodsSkuMapper;
@Override
public String add(GoblinNftExActivityParam goblinNftExActivityParam) {
......@@ -55,7 +59,7 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServ
@Override
public PageInfo<GoblinNftExActivityVo> pageList(GoblinNftExActivityParam goblinNftExActivityParam) {
PageHelper.startPage(goblinNftExActivityParam.getPageNum(),20,true);
PageHelper.startPage(goblinNftExActivityParam.getPageNum(), 20, true);
/*
......@@ -73,21 +77,21 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServ
ArrayList<GoblinNftExActivityVo> goblinNftExActivityArrayList = ObjectUtil.getGoblinNftExActivityArrayList();
if (StringUtil.isNotBlank(activityIds)){
activityIds.deleteCharAt(activityIds.length()-1);
if (StringUtil.isNotBlank(activityIds)) {
activityIds.deleteCharAt(activityIds.length() - 1);
long k = System.currentTimeMillis();
List<GoblinNftExCode> goblinNftExCodes = goblinNftExCodeMapper.selectByActivityIds(activityIds.toString());
log.debug("#MYS耗时:{}ms", System.currentTimeMillis() - k);
for (GoblinNftExActivity goblinNftExActivity :goblinNftExActivities) {
for (GoblinNftExActivity goblinNftExActivity : goblinNftExActivities) {
Integer countNumber = 0;
Integer useNumber = 0;
Integer unUseNumber = 0;
for (GoblinNftExCode goblinNftExCode : goblinNftExCodes) {
if (goblinNftExActivity.getActivityId().equals(goblinNftExCode.getActivityId())){
if (goblinNftExActivity.getActivityId().equals(goblinNftExCode.getActivityId())) {
countNumber++;
switch (goblinNftExCode.getState()){
switch (goblinNftExCode.getState()) {
case 2:
useNumber++;
break;
......@@ -107,4 +111,85 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServ
PageInfo<GoblinNftExActivityVo> pageInfo = new PageInfo<>(goblinNftExActivityArrayList);
return pageInfo;
}
@Override
public List<GoblinNftSkuVo> selectNftSkuByActivityId(String activityId) {
ArrayList<GoblinNftSkuVo> goblinNftSkuVoArrayList = ObjectUtil.getGoblinNftSkuVoArrayList();
// 获取兑换活动
GoblinNftExActivity goblinNftExActivity = goblinNftExActivityMapper.selectByActivityIds(activityId);
if (goblinNftExActivity == null) {
return goblinNftSkuVoArrayList;
}
// 获取兑换活动和sku的关联
List<GoblinNftExSku> goblinNftExSkus = goblinNftExSkuMapper.selectGoblinNftExSkuByActivityIds(activityId);
if (goblinNftExSkus.size() <= 0){
return goblinNftSkuVoArrayList;
}
StringBuffer skuIds = new StringBuffer();
Map<String,GoblinNftExSku> goblinNftExSkuMap = new HashMap<>();
for (GoblinNftExSku goblinNftExSku : goblinNftExSkus) {
skuIds.append(goblinNftExSku.getSkuId()).append(",");
goblinNftExSkuMap.put(goblinNftExSku.getSkuId(),goblinNftExSku);
}
List<GoblinGoodsSku> goblinGoodsSkus = goblinGoodsSkuMapper.selectBySkuIds(skuIds.toString());
// 根据活动id获取code码
List<GoblinNftExCode> goblinNftExCodes = goblinNftExCodeMapper.selectByActivityIds(activityId);
Map<String, List<GoblinNftExCode>> codeMap = new HashMap<>();
for (GoblinNftExCode goblinNftExCode : goblinNftExCodes) {
if (codeMap.get(goblinNftExCode.getSkuId()) == null) {
codeMap.put(goblinNftExCode.getSkuId(), new ArrayList<>());
}
codeMap.get(goblinNftExCode.getSkuId()).add(goblinNftExCode);
}
for (GoblinGoodsSku goblinGoodsSku : goblinGoodsSkus) {
GoblinNftSkuVo goblinNftSkuVo = GoblinNftSkuVo.getNew().copy(goblinGoodsSku);
// 构建
GoblinNftExSku goblinNftExSku = goblinNftExSkuMap.get(goblinNftSkuVo.getSkuId());
GoblinNftExSkuVo goblinNftExSkuVo = GoblinNftExSkuVo.getNew().copy(goblinNftExSku);
Integer countNumber = 0;
Integer useNumber = 0;
Integer unUseNumber = 0;
List<GoblinNftExCode> gCodes = codeMap.get(goblinGoodsSku.getSkuId());
if (gCodes == null) {
continue;
}
for (GoblinNftExCode goblinNftExCode : gCodes) {
countNumber++;
switch (goblinNftExCode.getState()) {
case 2:
useNumber++;
break;
default:
unUseNumber++;
}
}
goblinNftSkuVo.setCountNumber(countNumber);
goblinNftSkuVo.setUseNumber(useNumber);
goblinNftSkuVo.setUnUseNumber(unUseNumber);
goblinNftSkuVo.setGoblinNftExSkuVo(goblinNftExSkuVo);
goblinNftSkuVoArrayList.add(goblinNftSkuVo);
}
return goblinNftSkuVoArrayList;
}
}
......@@ -78,7 +78,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
}
// 批量查询
List<GoblinGoodsSku> goblinNftExCodeList = goblinGoodsSkuMapper.selectByIds(skuIds.toString());
List<GoblinGoodsSku> goblinNftExCodeList = goblinGoodsSkuMapper.selectBySkuIds(skuIds.toString());
// 获取对象实例
......@@ -148,5 +148,13 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
return true;
}
@Override
public Boolean addAirdrop(GoblinNftExCodeParam goblinNftExCodeParam) {
String code = goblinNftExCodeParam.getCode();
String phone = goblinNftExCodeParam.getPhone();
return null;
}
}
......@@ -94,7 +94,16 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
// sku ---> 库存
Map<String, Integer> skuMap = getSkuHitRatio(goblinNftExSkuParam.getExStock(), map);
for (String key : skuMap.keySet()) {
Integer stockNum = skuMap.get(key);
// 根据sku减库存
int stock = goblinRedisUtils.decrSkuStock("", key, stockNum);
if (stock < 0) {
goblinRedisUtils.incrSkuStock("",key,stockNum);
}
for (int i = 0; i < stockNum; i++) {
GoblinNftExCode goblinNftExCode = GoblinNftExCode.getNew();
goblinNftExCode.setCodeId(IDGenerator.nextSnowId());
......@@ -127,10 +136,14 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
}
}
break;
default:
// 根据sku减库存
int stock = goblinRedisUtils.decrSkuStock("", goblinNftExSkuParam.getSkuId(), goblinNftExSkuParam.getExStock());
if (stock < 0) {
goblinRedisUtils.incrSkuStock("",goblinNftExSkuParam.getSkuId(),goblinNftExSkuParam.getExStock());
}
// 构建兑换码数量
for (int i = 0; i < goblinNftExSkuParam.getExStock(); i++) {
......
......@@ -113,6 +113,16 @@ public class GoblinRedisUtils {
return (int) getRedis().incr(rk, stock);
}
// 减少库存
public int decrSkuStock(String marketPre, String skuId, Integer stock){
String rk = GoblinRedisConst.REAL_STOCK_SKU;
if (marketPre != null && !marketPre.equals("null")) {
rk = rk.concat(marketPre + ":");
}
rk = rk.concat(skuId);
return (int) getRedis().decr(rk, stock);
}
// 减少 用户sku购买个数
public int decrSkuCountByUid(String uid, String skuId, int number) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_BUY_COUNT.concat(uid + ":skuId:" + skuId);
......
......@@ -6,10 +6,7 @@ import com.liquidnet.service.candy.entity.CandyCommonCoupon;
import com.liquidnet.service.candy.entity.CandyCouponCode;
import com.liquidnet.service.candy.entity.CandyUserCoupon;
import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExActivityVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExSkuVo;
import com.liquidnet.service.goblin.dto.vo.SellDataOneVO;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinNftExActivity;
import com.liquidnet.service.goblin.entity.GoblinNftExCode;
import com.liquidnet.service.goblin.entity.GoblinNftExSku;
......@@ -71,6 +68,7 @@ public class ObjectUtil {
private static final ArrayList<GoblinNftExActivityVo> goblinNftExActivityVoArrayList = 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<GoblinStoreMarketDto> goblinStoreMarketDtoArrayList = new ArrayList<>();
......@@ -161,6 +159,10 @@ public class ObjectUtil {
return (ArrayList<GoblinNftExSkuVo>) goblinNftExSkuVoArrayList.clone();
}
public static ArrayList<GoblinNftSkuVo> getGoblinNftSkuVoArrayList(){
return (ArrayList<GoblinNftSkuVo>) goblinNftSkuVoArrayList.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