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

Commit 4c872b0f authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/jxl_2262_exchange_ext' into pre

parents cb73e80b 7156bc99
...@@ -91,11 +91,17 @@ public class GoblinNftExActivityVo implements Serializable, Cloneable { ...@@ -91,11 +91,17 @@ public class GoblinNftExActivityVo implements Serializable, Cloneable {
/** /**
* * 是否展示生效中
*/ */
@ApiModelProperty(position = 18, required = true, value = "是否展示生效中 0:否 1:是") @ApiModelProperty(position = 18, required = true, value = "是否展示生效中 0:否 1:是")
private Integer isDisplay; private Integer isDisplay;
/**
* 是否展示延期按钮
*/
@ApiModelProperty(position = 19, required = true, value = "是否展示延期按钮 0不展示 1展示")
private Integer isDelay;
private final static GoblinNftExActivityVo obj = new GoblinNftExActivityVo(); private final static GoblinNftExActivityVo obj = new GoblinNftExActivityVo();
......
package com.liquidnet.service.goblin.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
@ApiModel(value = "GoblinNftExActivityDelayParam", description = "该活动下兑换码延期入参")
@Data
public class GoblinNftExActivityDelayParam implements Serializable {
private static final long serialVersionUID = 5608646910502058970L;
@ApiModelProperty(position = 10, required = true, value = "老的活动id")
@NotBlank(message = "老的活动i不能为空")
private String activityId;
@ApiModelProperty(position = 11, required = true, value = "活动标题", example = "")
@NotBlank(message = "活动标题不能为空")
private String title;
@ApiModelProperty(position = 12, required = true, value = "用户id", example = "")
@NotBlank(message = "用户id不能为空")
private String uid;
@ApiModelProperty(position = 12, required = true, value = "开始时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@NotNull(message = "开始时间不能为空")
private LocalDateTime startTime;
@ApiModelProperty(position = 13, required = true, value = "结束时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@NotNull(message = "结束时间不能为空")
private LocalDateTime endTime;
}
...@@ -7,32 +7,31 @@ import io.swagger.annotations.ApiModel; ...@@ -7,32 +7,31 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ApiModel(value ="GoblinNftExActivityParam",description = "添加方法入参") @ApiModel(value = "GoblinNftExActivityParam", description = "添加方法入参")
@Data @Data
public class GoblinNftExActivityParam implements Serializable { public class GoblinNftExActivityParam implements Serializable {
@ApiModelProperty(position = 10,required = false,value = "nft活动id") @ApiModelProperty(position = 10, required = false, value = "nft活动id")
private String activityId; private String activityId;
@ApiModelProperty(position = 11,required = true,value = "活动标题" ,example = "草莓音乐节") @ApiModelProperty(position = 11, required = true, value = "活动标题", example = "")
private String title; private String title;
@ApiModelProperty(position = 12,required = true,value = "用户id",example = "用户id") @ApiModelProperty(position = 12, required = true, value = "用户id", example = "")
private String uid; private String uid;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@ApiModelProperty(position = 12,required = false,value = "开始时间") @ApiModelProperty(position = 12, required = false, value = "开始时间")
private LocalDateTime startTime; private LocalDateTime startTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@ApiModelProperty(position = 13,required = false,value = "结束时间") @ApiModelProperty(position = 13, required = false, value = "结束时间")
private LocalDateTime endTime; private LocalDateTime endTime;
@ApiModelProperty(position = 14,required = true,value = "当前页(查询时传入)") @ApiModelProperty(position = 14, required = true, value = "当前页(查询时传入)", example = "1")
private Integer pageNum; private Integer pageNum;
} }
......
...@@ -5,6 +5,7 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -5,6 +5,7 @@ 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.dto.vo.GoblinNftSkuVo;
import com.liquidnet.service.goblin.dto.vo.PageInfoVo; import com.liquidnet.service.goblin.dto.vo.PageInfoVo;
import com.liquidnet.service.goblin.param.GoblinNftExActivityDelayParam;
import com.liquidnet.service.goblin.param.GoblinNftExActivityParam; import com.liquidnet.service.goblin.param.GoblinNftExActivityParam;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -43,4 +44,6 @@ public interface IGoblinNftExActivityService { ...@@ -43,4 +44,6 @@ public interface IGoblinNftExActivityService {
* @param goblinNftExActivityParam * @param goblinNftExActivityParam
*/ */
void excel(HttpServletResponse httpServletResponse, GoblinNftExActivityParam goblinNftExActivityParam); void excel(HttpServletResponse httpServletResponse, GoblinNftExActivityParam goblinNftExActivityParam);
ResponseDto delay(GoblinNftExActivityDelayParam goblinNftExActivityDelayParam);
} }
package com.liquidnet.service.goblin.dto;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class GoblinNftExCodeNumDto {
private String activityId;
private String storeId;
private String spuId;
private String skuId;
private String unbox;
private LocalDateTime exStartTime;
private LocalDateTime exStopTime;
private Integer num;
private String boxSkuId;
}
...@@ -37,6 +37,11 @@ public class GoblinNftExActivity implements Serializable,Cloneable { ...@@ -37,6 +37,11 @@ public class GoblinNftExActivity implements Serializable,Cloneable {
*/ */
private String title; private String title;
/**
* 延期后的新活动id
*/
private String newActivityId;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType; ...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serializable; import java.io.Serializable;
import com.liquidnet.service.goblin.dto.GoblinNftExCodeNumDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -60,6 +62,23 @@ public class GoblinNftExCodeTask implements Serializable { ...@@ -60,6 +62,23 @@ public class GoblinNftExCodeTask implements Serializable {
} }
} }
public GoblinNftExCodeTask copy(GoblinNftExCodeNumDto vo) {
if (null == vo) return this;
this.setActivityId(vo.getActivityId());
this.setStoreId(vo.getStoreId());
this.setSpuId(vo.getSpuId());
this.setSkuId(vo.getSkuId());
this.setUnbox(vo.getUnbox());
this.setExStock(vo.getNum());
this.setExLimit(0);
this.setExStartTime(vo.getExStartTime());
this.setExStopTime(vo.getExStopTime());
this.setTyp(1);
return this;
}
} }
package com.liquidnet.service.goblin.mapper; package com.liquidnet.service.goblin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.goblin.dto.GoblinNftExCodeNumDto;
import com.liquidnet.service.goblin.entity.GoblinNftExSku; import com.liquidnet.service.goblin.entity.GoblinNftExSku;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -32,4 +33,8 @@ public interface GoblinNftExSkuMapper extends BaseMapper<GoblinNftExSku> { ...@@ -32,4 +33,8 @@ public interface GoblinNftExSkuMapper extends BaseMapper<GoblinNftExSku> {
* @return * @return
*/ */
List<GoblinNftExSku> selectGoblinNftExSkuByActivityIds(@Param("activityIds")String activityIds); List<GoblinNftExSku> selectGoblinNftExSkuByActivityIds(@Param("activityIds")String activityIds);
List<GoblinNftExCodeNumDto> selectExCodeNumAll(@Param("oldActivityId") String oldActivityId);
List<GoblinNftExCodeNumDto> selectExCodeNumBox(@Param("oldActivityId") String oldActivityId, @Param("skuId") String skuId);
} }
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<result column="activity_id" property="activityId" jdbcType="VARCHAR"/> <result column="activity_id" property="activityId" jdbcType="VARCHAR"/>
<result column="uid" property="uid" jdbcType="VARCHAR"/> <result column="uid" property="uid" jdbcType="VARCHAR"/>
<result column="title" property="title" jdbcType="VARCHAR"/> <result column="title" property="title" jdbcType="VARCHAR"/>
<result column="new_activity_id" property="newActivityId" jdbcType="VARCHAR"/>
<result column="created_at" property="createdAt" jdbcType="TIMESTAMP"/> <result column="created_at" property="createdAt" jdbcType="TIMESTAMP"/>
<result column="updated_at" property="updatedAt" jdbcType="TIMESTAMP"/> <result column="updated_at" property="updatedAt" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
...@@ -17,7 +18,7 @@ ...@@ -17,7 +18,7 @@
</select> </select>
<select id="selectPageList" resultMap="BaseResult"> <select id="selectPageList" resultMap="BaseResult">
select activity_id,uid,title,created_at from goblin_nft_ex_activity select activity_id,uid,title,created_at,new_activity_id from goblin_nft_ex_activity
<where> <where>
<if test="uid != null and uid != ''"> <if test="uid != null and uid != ''">
and uid = #{uid,jdbcType=VARCHAR} and uid = #{uid,jdbcType=VARCHAR}
...@@ -37,7 +38,7 @@ ...@@ -37,7 +38,7 @@
</select> </select>
<select id="selectByActivityId" resultMap="BaseResult"> <select id="selectByActivityId" resultMap="BaseResult">
select activity_id, title, created_at select activity_id, title, new_activity_id,created_at
from goblin_nft_ex_activity from goblin_nft_ex_activity
where activity_id = #{activityId,jdbcType=VARCHAR} where activity_id = #{activityId,jdbcType=VARCHAR}
</select> </select>
......
...@@ -17,14 +17,39 @@ ...@@ -17,14 +17,39 @@
<select id="selectGoblinNftExSkuByActivityIds" resultMap="BaseResult"> <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 select activity_id,sku_id,unbox,store_id,ex_start_time,ex_stop_time from goblin_nft_ex_sku where
activity_id in activity_id in
<foreach collection="activityIds.split(',')" item="activityId" open="(" separator="," close=")" > <foreach collection="activityIds.split(',')" item="activityId" open="(" separator="," close=")">
#{activityId,jdbcType=VARCHAR} #{activityId,jdbcType=VARCHAR}
</foreach> </foreach>
</select>
<select id="selectExCodeNumAll" resultType="com.liquidnet.service.goblin.dto.GoblinNftExCodeNumDto">
select gnes.activity_id, gnes.store_id, gnes.spu_id, gnes.sku_id, gnes.unbox, gnes.ex_start_time, gnes.ex_stop_time, count(*) as num, gnec.box_sku_id
from goblin_nft_ex_sku as gnes
left join goblin_nft_ex_code as gnec on gnes.activity_id = gnec.activity_id and gnes.sku_id =
gnec.sku_id
<where>
gnes.activity_id = #{oldActivityId}
and (gnec.state = 3 or (gnec.state = 1 and gnes.ex_stop_time <![CDATA[<]]> NOW()))
group by gnes.sku_id
</where>
</select>
<select id="selectExCodeNumBox" resultType="com.liquidnet.service.goblin.dto.GoblinNftExCodeNumDto">
select gnes.activity_id, gnes.store_id, gnes.spu_id, gnes.sku_id, gnes.unbox, gnes.ex_start_time, gnes.ex_stop_time, count(*) as num, gnec.box_sku_id
from goblin_nft_ex_sku as gnes
left join goblin_nft_ex_code as gnec on gnes.activity_id = gnec.activity_id and gnes.sku_id =
gnec.sku_id
<where>
gnes.activity_id = #{oldActivityId}
and gnes.sku_id = #{skuId}
and (gnec.state = 3 or (gnec.state = 1 and gnes.ex_stop_time <![CDATA[<]]> NOW()))
and gnes.unbox = '1'
group by gnec.box_sku_id
</where>
</select> </select>
<insert id="addGoblinNftExSkus"> <insert id="addGoblinNftExSkus">
insert into goblin_nft_ex_sku (activity_id,spu_id,sku_id,store_id,unbox,ex_stock,ex_limit,ex_start_time,ex_stop_time,created_at) insert into goblin_nft_ex_sku
(activity_id,spu_id,sku_id,store_id,unbox,ex_stock,ex_limit,ex_start_time,ex_stop_time,created_at)
values values
<foreach collection="goblinNftExSkus" item="goblinNftExSku" separator=","> <foreach collection="goblinNftExSkus" item="goblinNftExSku" separator=",">
( (
......
...@@ -38,6 +38,8 @@ CREATE TABLE `goblin_nft_ex_activity` ...@@ -38,6 +38,8 @@ CREATE TABLE `goblin_nft_ex_activity`
PRIMARY KEY (`mid`) USING BTREE, PRIMARY KEY (`mid`) USING BTREE,
INDEX `idx_nft_activity_id`(`activity_id`) USING BTREE INDEX `idx_nft_activity_id`(`activity_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'NFT兑换活动表' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'NFT兑换活动表' ROW_FORMAT = Dynamic;
ALTER TABLE `goblin_nft_ex_activity` ADD `new_activity_id` varchar(64) NOT NULL DEFAULT '' COMMENT '延期后的新活动id' after title;
......
package com.liquidnet.service.platform.controller.goblin.activity; package com.liquidnet.service.platform.controller.goblin.activity;
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.GoblinNftSkuVo; import com.liquidnet.service.goblin.dto.vo.GoblinNftSkuVo;
import com.liquidnet.service.goblin.dto.vo.PageInfoVo; import com.liquidnet.service.goblin.dto.vo.PageInfoVo;
import com.liquidnet.service.goblin.param.GoblinNftExActivityDelayParam;
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;
...@@ -64,4 +63,11 @@ public class GoblinNftExActivityController { ...@@ -64,4 +63,11 @@ public class GoblinNftExActivityController {
iGoblinNftExActivityService.excel(httpServletResponse, goblinNftExActivityParam); iGoblinNftExActivityService.excel(httpServletResponse, goblinNftExActivityParam);
} }
@ApiOperationSupport(order = 5)
@ApiOperation(value = "该活动下兑换码延期")
@PutMapping("delay")
public ResponseDto delay(@Valid @RequestBody GoblinNftExActivityDelayParam goblinNftExActivityDelayParam) {
return iGoblinNftExActivityService.delay(goblinNftExActivityDelayParam);
}
} }
...@@ -335,7 +335,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -335,7 +335,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
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.setExStartTime(goblinNftExSku.getExStartTime());
gnc.setExStopTime(goblinNftExSku.getExStopTime()); gnc.setExStopTime(goblinNftExSku.getExStopTime());
if (now.isAfter(goblinNftExSku.getExStopTime())) { if (now.isAfter(goblinNftExSku.getExStopTime()) && !gnc.getState().equals(2)) {
gnc.setState(3); gnc.setState(3);
} }
break; break;
...@@ -343,7 +343,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -343,7 +343,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
if (gnc.getSkuId().equals(goblinNftExSku.getSkuId())) { 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.getState().equals(2)) {
gnc.setState(3); gnc.setState(3);
} }
break; break;
...@@ -401,7 +401,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -401,7 +401,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
} }
phonestr.append(data.getPhone()).append(","); phonestr.append(data.getPhone()).append(",");
phoneList.add(data.getPhone()); phoneList.add(data.getPhone());
if(phoneList.size()>100){ if (phoneList.size() > 100) {
break; break;
} }
} }
...@@ -412,7 +412,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -412,7 +412,7 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
return ResponseDto.failure("解析文件失败!"); return ResponseDto.failure("解析文件失败!");
} }
if(phoneList.size()>=100){ if (phoneList.size() >= 100) {
return ResponseDto.failure("批量空投暂时数量不能大于100"); return ResponseDto.failure("批量空投暂时数量不能大于100");
} }
......
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