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

Commit c889cdf4 authored by wanglele's avatar wanglele

兑换码相关

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