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

Commit 68332867 authored by wanglele's avatar wanglele

兑换码相关

parent f33a0d5d
......@@ -297,6 +297,13 @@ public class GoblinRedisConst {
/**
* 活动兑换码
*/
public static final String ACTIVITY_SKU_CODE = PREFIX.concat("activity:sku:code:");
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
}
......@@ -78,6 +78,9 @@ public class GoblinNftExActivityVo implements Serializable,Cloneable {
this.setTitle(goblinNftExActivity.getTitle());
this.setCreatedAt(goblinNftExActivity.getCreatedAt());
this.setUpdatedAt(goblinNftExActivity.getUpdatedAt());
this.setCountNumber(goblinNftExActivity.getCountNumber());
this.setUseNumber(goblinNftExActivity.getUseNumber());
this.setUnUseNumber(goblinNftExActivity.getUnUseNumber());
return this;
}
......
......@@ -113,6 +113,15 @@ public class GoblinNftExCodeVo implements Serializable, Cloneable {
*/
private LocalDateTime exStopTime;
/**
* sku名称
*/
private String skuName;
private static final GoblinNftExCodeVo obj = new GoblinNftExCodeVo();
......
......@@ -41,6 +41,16 @@ public class GoblinNftExSkuVo {
*/
private String skuId;
/**
* 是否盲盒 0:否 1:是
*/
private String unBox;
/**
* 店铺id
*/
private String storeId;
/**
* 兑换库存
......@@ -91,6 +101,8 @@ public class GoblinNftExSkuVo {
this.setActivityId(goblinNftExSku.getActivityId());
this.setSpuId(goblinNftExSku.getSpuId());
this.setSkuId(goblinNftExSku.getSkuId());
this.setUnBox(goblinNftExSku.getUnBox());
this.setStoreId(goblinNftExSku.getStoreId());
this.setExStock(goblinNftExSku.getExStock());
this.setExLimit(goblinNftExSku.getExLimit());
this.setExStartTime(goblinNftExSku.getExStartTime());
......
......@@ -29,6 +29,9 @@ public class GoblinNftExSkuParam {
@NotBlank(message = "款式id不可为空")
private String skuId;
@ApiModelProperty(position = 13,required = true,value = "是否盲盒 0:否 1:是")
private String unbox;
@ApiModelProperty(position = 13,required = true,value = "兑换库存数量")
@NotBlank(message = "兑换库存数量不可为空")
private Integer exStock;
......
package com.liquidnet.service.goblin.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExActivityVo;
import com.liquidnet.service.goblin.param.GoblinNftExActivityParam;
public interface IGoblinNftExActivityService {
......@@ -16,5 +18,5 @@ public interface IGoblinNftExActivityService {
* @param goblinNftExActivityParam
* @return
*/
Object pageList(GoblinNftExActivityParam goblinNftExActivityParam);
PageInfo<GoblinNftExActivityVo> pageList(GoblinNftExActivityParam goblinNftExActivityParam);
}
package com.liquidnet.service.goblin.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo;
import com.liquidnet.service.goblin.param.GoblinNftExCodeParam;
public interface IGoblinNftExCodeService {
......@@ -7,7 +9,12 @@ public interface IGoblinNftExCodeService {
/**
* 获取兑换码
*/
Object selectCodePageList(GoblinNftExCodeParam goblinNftExCodeParam);
PageInfo<GoblinNftExCodeVo> selectCodePageList(GoblinNftExCodeParam goblinNftExCodeParam);
/**
* 兑换码主动失效
* @param codeIds
* @return
*/
Boolean defDrivLoseCode(String codeIds);
}
......@@ -149,4 +149,38 @@ public class IDGenerator {
public static void main(String[] args) {
System.out.println(getWriteOffCode());
}
/**
* 获取兑换码
* @param num 次数
* @param sec 单次巡管
* @param bol 是否添加特殊字符
* @return
*/
public static String createCode(int num,int sec,boolean bol) {
//
StringBuffer str = new StringBuffer();
for (int k=0;k<num;k++) {
for(int i=0;i < sec;i++){
int intVal=(int)(Math.random()*58+65);
System.out.println(intVal);
if(intVal >= 91 && intVal <= 122){
i--;
}
if(intVal < 91 || intVal > 122){
if(intVal%2==0){
str.append((char)intVal);
}else{
str.append((int)(Math.random()*10));
}
}
}
if(bol){
str.append("-");
}
}
return str.toString()+"CH";
}
}
......@@ -47,6 +47,11 @@ public class GoblinNftExCode implements Serializable, Cloneable {
*/
private String skuId;
/**
* 盲盒款式id
*/
private String boxSkuId;
/**
* 兑换码状态 1 未兑换 2 已兑换
......@@ -88,7 +93,6 @@ public class GoblinNftExCode implements Serializable, Cloneable {
private Integer isDrivi;
private String sktName;
private static final GoblinNftExCode obj = new GoblinNftExCode();
public static GoblinNftExCode getNew() {
......
......@@ -40,6 +40,11 @@ public class GoblinNftExSku {
*/
private String skuId;
/**
* 是否盲盒 0:否 1:是
*/
private String unBox;
/**
* 兑换库存
......@@ -51,6 +56,10 @@ public class GoblinNftExSku {
*/
private Integer exLimit;
/**
* 店铺id
*/
private String storeId;
/**
* 兑换生效开始时间
......
......@@ -32,4 +32,11 @@ public interface GoblinGoodsSkuMapper extends BaseMapper<GoblinGoodsSku> {
* @return
*/
List<GoblinGoodsSku> selectByIds(@Param("skuIds") String skuIds);
/**
* 根据spuIds获取spu下的sku
* @param spuIds
* @return
*/
List<GoblinGoodsSku> selectBySpuIds(@Param("spuIds") String spuIds);
}
......@@ -40,4 +40,18 @@ public interface GoblinNftExCodeMapper extends BaseMapper<GoblinNftExCode> {
* @return
*/
List<GoblinNftExCode> selectGoblinNftCode(GoblinNftExCode goblinNftExCode);
/**
* 根据codeIds 获取
* @param codeIds
* @return
*/
List<GoblinNftExCode> selectByIds(@Param("codeIds") String codeIds);
/**
* 批量修改
* @param goblinNftExCodes
* @return
*/
int updateCodes(@Param("goblinNftExCodes") List<GoblinNftExCode> goblinNftExCodes);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.goblin.mapper.GoblinGoodsSkuMapper">
<resultMap id="BaseResult" type="com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo">
<result column="sku_id" property="skuId"/>
<result column="name" property="name"/>
<resultMap id="BaseResult" type="com.liquidnet.service.goblin.entity.GoblinGoodsSku">
<result column="sku_id" property="skuId" jdbcType="VARCHAR"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="hit_ratio" property="hitRatio" jdbcType="DECIMAL"/>
</resultMap>
<select id="selectSkuLikeName" resultMap="BaseResult">
......@@ -17,7 +18,16 @@
select sku_id,name from goblin_goods_sku where
sku_id in
<foreach collection="skuIds" item="skuId" open="(" separator="," close=")">
#{skuId}
#{skuId,jdbcType=VARCHAR}
</foreach>
</select>
<select id="selectBySpuIds" resultMap="BaseResult">
select sku_id,hit_ratio from goblin_goods_sku where
spu_id in
<foreach collection="spuIds.split(',')" item="spuId" open="(" separator="," close=")">
#{spuId,jdbcType=VARCHAR}
</foreach>
</select>
</mapper>
......@@ -2,56 +2,51 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.goblin.mapper.GoblinNftExActivityMapper">
<resultMap id="BaseResult" type="com.liquidnet.service.goblin.dto.vo.GoblinNftExActivity">
<result column="activity_id" property="activityId"/>
<result column="title" property="title"/>
<result column="created_at" property="createdAt"/>
<result column="updated_at" property="updatedAt"/>
<resultMap id="BaseResult" type="com.liquidnet.service.goblin.entity.GoblinNftExActivity">
<result column="activity_id" property="activityId" jdbcType="VARCHAR"/>
<result column="title" property="title" jdbcType="VARCHAR"/>
<result column="created_at" property="createdAt" jdbcType="TIMESTAMP"/>
<result column="updated_at" property="updatedAt" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="selectPageList" resultType="BaseResult">
<select id="selectPageList" resultMap="BaseResult">
select activity_id,title,created_at from goblin_nft_ex_activity
<where>
<if test="title != null and title != ''">
<bind name="likeTitle" value="'%'+title+'%'"/>
and title like ${likeTitle}
<bind name="likeTitle" value="'%' + title + '%'"/>
and title like #{likeTitle,jdbcType=VARCHAR}
</if>
<if test="startTime != null">
and created_at &gt; ${startTime}
and created_at &gt; #{startTime,jdbcType=TIMESTAMP}
</if>
<if test="endTime != null">
and created_at &lt; ${endTime}
and created_at &lt; #{endTime,jdbcType=TIMESTAMP}
</if>
</where>
</select>
<insert id="addGoblinNftExActivity" parameterType="com.liquidnet.service.goblin.dto.vo.GoblinNftExActivity">
<insert id="addGoblinNftExActivity" parameterType="com.liquidnet.service.goblin.entity.GoblinNftExActivity">
insert into goblin_nft_ex_activity
(
<if test="activityId != null and activityId != null">
activity_id,
</if>
<if test="title != null and title != ''">
title,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at
</if>
<if test="activityId != null and activityId != null">
activity_id,
</if>
<if test="title != null and title != ''">
title,
</if>
<if test="createdAt != null">
created_at
</if>
) values(
<if test="activityId != null and activityId != null">
#{activityId},
#{activityId,jdbcType=VARCHAR},
</if>
<if test="title != null and title != ''">
#{title},
#{title,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
#{createdAt},
#{createdAt,jdbcType=TIMESTAMP}
</if>
<if test="updatedAt != null">
#{updatedAt}
</if>)
)
</insert>
</mapper>
......@@ -2,19 +2,28 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.goblin.mapper.GoblinNftExCodeMapper">
<resultMap id="BeseResult" type="com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo">
<result column="code_id" property="codeId"/>
<result column="activity_id" property="activityId"/>
<result column="code" property="code"/>
<result column="sku_id" property="skuId"/>
<result column="state" property="state"/>
<result column="redeem_uid" property="redeemUid"/>
<result column="redeem_at" property="redeemAt"/>
<result column="admin_uid" property="adminUid"/>
<result column="created_at" property="createdAt"/>
<result column="updated_at" property="updatedAt"/>
<resultMap id="BeseResult" type="com.liquidnet.service.goblin.entity.GoblinNftExCode">
<result column="code_id" property="codeId" jdbcType="VARCHAR"/>
<result column="activity_id" property="activityId" jdbcType="VARCHAR"/>
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="sku_id" property="skuId" jdbcType="VARCHAR"/>
<result column="box_sku_id" property="boxSkuId" jdbcType="VARCHAR"/>
<result column="state" property="state" jdbcType="INTEGER" />
<result column="redeem_uid" property="redeemUid" jdbcType="VARCHAR"/>
<result column="redeem_at" property="redeemAt" jdbcType="TIMESTAMP"/>
<result column="admin_uid" property="adminUid" jdbcType="VARCHAR"/>
<result column="created_at" property="createdAt" jdbcType="TIMESTAMP"/>
<result column="updated_at" property="updatedAt" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="selectByIds" resultMap="BeseResult">
select code_id,activity_id,state from goblin_nft_ex_code
where code_id in
<foreach collection="codeIds.split(',')" item="codeId" open="(" separator="," close=")">
#{codeId,jdbcType=VARCHAR}
</foreach>
</select>
<insert id="addGoblinNftExCodes">
insert into goblin_nft_ex_code (code_id,activity_id,code,sku_id,state,created_at)
values
......@@ -30,26 +39,36 @@
</foreach>
</insert>
<select id="selectGoblinNftCode" parameterType="com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo"
<update id="updateCodes">
<foreach collection="goblinNftExCodes" item="goblinNftExCode" open="" close="" separator=";" >
update goblin_nft_ex_code
<set>
state = #{goblinNftExCode.state} and updated_at = #{goblinNftExCode.updatedAt}
</set>
where code_id = #{goblinNftExCode.codeId}
</foreach>
</update>
<select id="selectGoblinNftCode" parameterType="com.liquidnet.service.goblin.entity.GoblinNftExCode"
resultMap="BeseResult">
select code_id,code,sku_id from goblin_nft_ex_code
<where>
<if test="code != null and code != ''">
and code = #{code}
and code = #{code,jdbcType=VARCHAR}
</if>
<if test="activityId != null and activityId != null">
and activity_id = #{activityId}
and activity_id = #{activityId,jdbcType=VARCHAR}
</if>
<if test="state != null">
and state = #{state}
and state = #{state,jdbcType=INTEGER}
</if>
<if test="redeemUid != null and redeemUid != ''">
and redeem_uid = #{redeemUid}
and redeem_uid = #{redeemUid,jdbcType=VARCHAR}
</if>
<if test="skuId != null and skuId != ''">
and sku_id in
and sku_id in
<foreach collection="skuId.split(',')" item="sId" open="(" separator="," close=")">
#{sId}
#{sId,jdbcType=VARCHAR}
</foreach>
</if>
<if test="isDrivi != null">
......@@ -68,8 +87,8 @@
<select id="selectByActivityIds" resultMap="BeseResult">
select code_id,activity_id,state from goblin_nft_ex_code where
activity_id in
<foreach collection="activityIds" item="activityId" open="(" close=")" separator=",">
#{activityId}
<foreach collection="activityIds.split(',')" item="activityId" open="(" close=")" separator=",">
#{activityId,jdbcType=VARCHAR}
</foreach>
</select>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.goblin.mapper.GoblinNftExSkuMapper">
<resultMap id="BaseResult" type="">
<result column="activity_id" property="activityId"/>
<result column="sku_id" property="skuId"/>
<result column="ex_start_time" property="exStartTime"/>
<result column="ex_stop_time" property="exStopTime"/>
<resultMap id="BaseResult" type="com.liquidnet.service.goblin.entity.GoblinNftExSku">
<result column="activity_id" property="activityId" jdbcType="VARCHAR"/>
<result column="sku_id" property="skuId" jdbcType="VARCHAR"/>
<result column="store_id" property="storeId" jdbcType="VARCHAR"/>
<result column="unbox" property="unbox" jdbcType="VARCHAR"/>
<result column="ex_stock" property="exStock" jdbcType="INTEGER"/>
<result column="ex_limit" property="exLimit" jdbcType="INTEGER"/>
<result column="ex_start_time" property="exStartTime" jdbcType="TIMESTAMP"/>
<result column="ex_stop_time" property="exStopTime" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="">
<select id="selectGoblinNftExSkuByActivityIds" resultMap="BaseResult">
select activity_id,sku_id,unbox,store_id,ex_start_time,ex_stop_time from goblin_nft_ex_sku where
activity_id in
<foreach collection="activityIds.split(',')" item="activityId" open="(" separator="," close=")" >
#{activityId,jdbcType=VARCHAR}
</foreach>
</select>
</mapper>
package com.liquidnet.service.platform.controller.goblin.activity;
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.param.GoblinNftExActivityParam;
import com.liquidnet.service.goblin.service.IGoblinNftExActivityService;
import io.swagger.annotations.Api;
......@@ -35,14 +37,14 @@ public class GoblinNftExActivityController {
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加nft兑换活动")
@PostMapping("add")
public ResponseDto<Object> add(@Valid @RequestBody GoblinNftExActivityParam goblinNftExActivityParam){
public ResponseDto<String> add(@Valid @RequestBody GoblinNftExActivityParam goblinNftExActivityParam){
return ResponseDto.success(iGoblinNftExActivityService.add(goblinNftExActivityParam));
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "活动列表")
@PostMapping("pageList")
public ResponseDto<Object> pageList(@Valid @RequestBody GoblinNftExActivityParam goblinNftExActivityParam){
public ResponseDto<PageInfo<GoblinNftExActivityVo>> pageList(@Valid @RequestBody GoblinNftExActivityParam goblinNftExActivityParam){
return ResponseDto.success(iGoblinNftExActivityService.pageList(goblinNftExActivityParam));
}
......
package com.liquidnet.service.platform.controller.goblin.code;
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.GoblinNftExCodeVo;
import com.liquidnet.service.goblin.param.GoblinNftExCodeParam;
import com.liquidnet.service.goblin.service.IGoblinNftExCodeService;
import io.swagger.annotations.Api;
......@@ -9,10 +11,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.*;
/**
* @Author: wll
......@@ -33,10 +32,18 @@ public class GoblinNftExCodeController {
@ApiOperationSupport(order = 1)
@ApiOperation(value = "根据nft兑换活动获取兑换码")
@PostMapping("selectCodePageList")
public ResponseDto<Object> selectCodePageList(@RequestBody GoblinNftExCodeParam goblinNftExCodeParam){
public ResponseDto<PageInfo<GoblinNftExCodeVo>> selectCodePageList(@RequestBody GoblinNftExCodeParam goblinNftExCodeParam){
return ResponseDto.success(iGoblinNftExCodeService.selectCodePageList(goblinNftExCodeParam));
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "兑换码主动失效")
@PostMapping("defDrivLoseCodes/{codeIds}")
public ResponseDto<Boolean> defDrivLoseCode(@PathVariable("codeIds")String codeIds){
return ResponseDto.success(iGoblinNftExCodeService.defDrivLoseCode(codeIds));
}
......
......@@ -12,12 +12,14 @@ import com.liquidnet.service.goblin.mapper.GoblinNftExCodeMapper;
import com.liquidnet.service.goblin.param.GoblinNftExActivityParam;
import com.liquidnet.service.goblin.service.IGoblinNftExActivityService;
import com.liquidnet.service.platform.utils.GoblinRedisUtils;
import com.liquidnet.service.platform.utils.ObjectUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -51,7 +53,7 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServ
}
@Override
public Object pageList(GoblinNftExActivityParam goblinNftExActivityParam) {
public PageInfo<GoblinNftExActivityVo> pageList(GoblinNftExActivityParam goblinNftExActivityParam) {
PageHelper.startPage(goblinNftExActivityParam.getPageNum(),20,true);
......@@ -69,6 +71,8 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServ
activityIds.append(GoblinNftExActivity.getActivityId()).append(",");
}
ArrayList<GoblinNftExActivityVo> goblinNftExActivityArrayList = ObjectUtil.getGoblinNftExActivityArrayList();
if (StringUtil.isNotBlank(activityIds)){
activityIds.deleteCharAt(activityIds.length()-1);
......@@ -96,10 +100,11 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServ
goblinNftExActivity.setCountNumber(countNumber);
goblinNftExActivity.setUseNumber(useNumber);
goblinNftExActivity.setUnUseNumber(unUseNumber);
goblinNftExActivityArrayList.add(GoblinNftExActivityVo.getNew().copy(goblinNftExActivity));
}
}
PageInfo<GoblinNftExActivity> pageInfo = new PageInfo<GoblinNftExActivity>(goblinNftExActivities);
PageInfo<GoblinNftExActivityVo> pageInfo = new PageInfo<>(goblinNftExActivityArrayList);
return pageInfo;
}
}
......@@ -3,18 +3,27 @@ package com.liquidnet.service.platform.service.impl.goblin;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo;
import com.liquidnet.service.goblin.entity.GoblinGoodsSku;
import com.liquidnet.service.goblin.entity.GoblinNftExCode;
import com.liquidnet.service.goblin.entity.GoblinNftExSku;
import com.liquidnet.service.goblin.mapper.GoblinGoodsSkuMapper;
import com.liquidnet.service.goblin.mapper.GoblinNftExCodeMapper;
import com.liquidnet.service.goblin.mapper.GoblinNftExSkuMapper;
import com.liquidnet.service.goblin.param.GoblinNftExCodeParam;
import com.liquidnet.service.goblin.service.IGoblinNftExCodeService;
import com.liquidnet.service.platform.utils.GoblinRedisUtils;
import com.liquidnet.service.platform.utils.ObjectUtil;
import com.sun.org.apache.xpath.internal.operations.Bool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author: wll
......@@ -31,9 +40,11 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
private GoblinNftExCodeMapper goblinNftExCodeMapper;
@Autowired
private GoblinNftExSkuMapper goblinNftExSkuMapper;
@Autowired
private GoblinRedisUtils goblinRedisUtils;
@Override
public Object selectCodePageList(GoblinNftExCodeParam goblinNftExCodeParam) {
public PageInfo<GoblinNftExCodeVo> selectCodePageList(GoblinNftExCodeParam goblinNftExCodeParam) {
// 入参
GoblinNftExCode goblinNftExCode = GoblinNftExCode.getNew();
......@@ -47,7 +58,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
String skuName = goblinNftExCodeParam.getSkuName();
List<GoblinGoodsSku> goblinGoodsSkus = goblinGoodsSkuMapper.selectSkuLikeName(skuName);
if (goblinGoodsSkus.size() <= 0){
return new PageHelper();
return new PageInfo<>();
}
StringBuffer skuIds = new StringBuffer();
for (GoblinGoodsSku goblinGoodsSku:goblinGoodsSkus) {
......@@ -70,23 +81,72 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
List<GoblinGoodsSku> goblinNftExCodeList = goblinGoodsSkuMapper.selectByIds(skuIds.toString());
// 获取对象实例
ArrayList<GoblinNftExCodeVo> goblinNftExCodeArrayList = ObjectUtil.getGoblinNftExCodeArrayList();
for (GoblinNftExCode gnc: goblinNftExCodes) {
for (GoblinGoodsSku goblinGoodsSku: goblinNftExCodeList) {
if (gnc.getSkuId().equals(goblinGoodsSku.getSkuId())){
gnc.setSktName(goblinGoodsSku.getName());
GoblinNftExCodeVo goblinNftExCodeVo = GoblinNftExCodeVo.getNew().copy(gnc);
goblinNftExCodeVo.setSkuName(goblinGoodsSku.getName());
goblinNftExCodeArrayList.add(goblinNftExCodeVo);
break;
}
}
}
// 根据活动ids 获取兑换活动和sku的关联
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);
}
for (GoblinNftExCodeVo gnc: goblinNftExCodeArrayList) {
List<GoblinNftExSku> goblinNftExSkuList = map.get(gnc.getActivityId());
for (GoblinNftExSku goblinNftExSku: goblinNftExSkuList) {
if (gnc.getSkuId().equals(goblinNftExSku.getSkuId())){
gnc.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime());
break;
}
}
}
PageInfo<GoblinNftExCode> pageInfo = new PageInfo<>(goblinNftExCodes);
return null;
PageInfo<GoblinNftExCodeVo> pageInfo = new PageInfo<>(goblinNftExCodeArrayList);
return pageInfo;
}
@Override
public Boolean defDrivLoseCode(String codeIds) {
LocalDateTime now = LocalDateTime.now();
// 获取兑换码
List<GoblinNftExCode> goblinNftExCodes = goblinNftExCodeMapper.selectByIds(codeIds);
List<String> codes = new ArrayList<>();
for (GoblinNftExCode goblinNftExCode: goblinNftExCodes) {
// redis 主动失效
codes.add(goblinNftExCode.getCode());
goblinNftExCode.setState(3);
goblinNftExCode.setUpdatedAt(now);
}
goblinRedisUtils.removeCodes(codes);
// 批量修改
goblinNftExCodeMapper.updateCodes(goblinNftExCodes);
return true;
}
}
......@@ -9,6 +9,7 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto;
import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderSkuVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -181,6 +182,28 @@ public class GoblinRedisUtils {
}
}
/**
* 添加code码 添加过期时间
* @param code
* @param goblinNftExCodeVo
* @param millisNum
* @return
*/
public boolean addCode(String code, GoblinNftExCodeVo goblinNftExCodeVo, long millisNum) {
String key = GoblinRedisConst.ACTIVITY_SKU_CODE.concat(code);
return getRedis().set(key,goblinNftExCodeVo,millisNum);
}
/**
* redis codes主动失效
* @param codes
*/
public void removeCodes(List<String> codes) {
getRedis().delList(codes);
}
/* ---------------------------------------- ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
......
......@@ -68,9 +68,9 @@ public class ObjectUtil {
private static final ArrayList<KylinOrderCoupons> kylinOrderCouponsArrayList = new ArrayList<>();
private static final ArrayList<KylinApiCameraDevicesVo> kylinApiCameraDevicesVoArrayList = new ArrayList<>();
private static final ArrayList<SellDataOneVO> sellDataOneVOArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftExActivityVo> GOBLIN_NFT_EX_ACTIVITY_VO_ARRAY_LIST = new ArrayList<>();
private static final ArrayList<GoblinNftExCodeVo> GOBLIN_NFT_EX_CODE_VO_ARRAY_LIST = new ArrayList<>();
private static final ArrayList<GoblinNftExSkuVo> GOBLIN_NFT_EX_SKU_VO_ARRAY_LIST = new ArrayList<>();
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<GoblinStoreMarketDto> goblinStoreMarketDtoArrayList = new ArrayList<>();
......@@ -150,15 +150,15 @@ public class ObjectUtil {
}
public static ArrayList<GoblinNftExActivityVo> getGoblinNftExActivityArrayList(){
return (ArrayList<GoblinNftExActivityVo>) GOBLIN_NFT_EX_ACTIVITY_VO_ARRAY_LIST.clone();
return (ArrayList<GoblinNftExActivityVo>) goblinNftExActivityVoArrayList.clone();
}
public static ArrayList<GoblinNftExCodeVo> getGoblinNftExCodeArrayList(){
return (ArrayList<GoblinNftExCodeVo>) GOBLIN_NFT_EX_CODE_VO_ARRAY_LIST.clone();
return (ArrayList<GoblinNftExCodeVo>) goblinNftExCodeVoArrayList.clone();
}
public static ArrayList<GoblinNftExSkuVo> getGoblinNftExSkuArrayList(){
return (ArrayList<GoblinNftExSkuVo>) GOBLIN_NFT_EX_SKU_VO_ARRAY_LIST.clone();
return (ArrayList<GoblinNftExSkuVo>) goblinNftExSkuVoArrayList.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