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

Commit 16833338 authored by jiangxiulong's avatar jiangxiulong

活动延期接口初步

parent 4c94b18c
package com.liquidnet.service.goblin.param;
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 = "开始时间")
@NotNull(message = "开始时间不能为空")
private LocalDateTime startTime;
@ApiModelProperty(position = 13, required = true, value = "结束时间")
@NotNull(message = "结束时间不能为空")
private LocalDateTime endTime;
}
...@@ -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);
} }
...@@ -4,6 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; ...@@ -4,6 +4,7 @@ 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.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;
...@@ -62,4 +63,11 @@ public class GoblinNftExActivityController { ...@@ -62,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);
}
} }
...@@ -13,6 +13,7 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -13,6 +13,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.*; import com.liquidnet.service.goblin.entity.*;
import com.liquidnet.service.goblin.mapper.*; import com.liquidnet.service.goblin.mapper.*;
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 com.liquidnet.service.platform.utils.ObjectUtil; import com.liquidnet.service.platform.utils.ObjectUtil;
...@@ -353,4 +354,52 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi ...@@ -353,4 +354,52 @@ public class GoblinNftExActivityServiceImpl implements IGoblinNftExActivityServi
return response.getOutputStream(); return response.getOutputStream();
} }
@Override
public ResponseDto delay(GoblinNftExActivityDelayParam delayParam) {
// 结束时间不能大于开始时间
if (delayParam.getStartTime().isAfter(delayParam.getEndTime())) {
return ResponseDto.failure("结束时间不能大于开始时间!");
}
// 名称不能重复
String title = delayParam.getTitle();
String uid = delayParam.getUid();
GoblinNftExActivity goblinNftExActivityShow = goblinNftExActivityMapper.selectByTitle(title, uid);
if (goblinNftExActivityShow != null) {
return ResponseDto.failure("活动名称已存在!");
}
// 是否已过最大结束时间
String oldActivityId = delayParam.getActivityId();
List<GoblinNftExSku> goblinNftExSkus = goblinNftExSkuMapper.selectList(
Wrappers.lambdaQuery(GoblinNftExSku.class)
.eq(GoblinNftExSku::getActivityId, oldActivityId)
.orderByDesc(GoblinNftExSku::getExStopTime)
);
if (CollectionUtil.isEmpty(goblinNftExSkus)) {
return ResponseDto.failure("该活动尚未配置SKU信息!");
} else {
// TODO: 2022/6/2 时间未到 但是全部手动设置了失效????
if (LocalDateTime.now().isBefore(goblinNftExSkus.get(0).getExStopTime())) {
return ResponseDto.failure("该活动还有未过期的兑换码!");
}
}
// 是否有失效的code???
// 活动入库
LocalDateTime now = LocalDateTime.now();
GoblinNftExActivity goblinNftExActivity = GoblinNftExActivity.getNew();
String activityId = IDGenerator.nextSnowId();
goblinNftExActivity.setActivityId(activityId);
goblinNftExActivity.setUid(uid);
goblinNftExActivity.setTitle(title);
goblinNftExActivity.setCreatedAt(now);
goblinNftExActivityMapper.addGoblinNftExActivity(goblinNftExActivity);
// TODO: 2022/6/2 是否需要更新活动标识 记录延期过
// 查询出所有过期的码
// 重新生成
return ResponseDto.success("操作成功");
}
} }
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