fix: 完善拼团、秒杀、砍价活动管理

This commit is contained in:
puhui999
2023-08-06 20:21:53 +08:00
parent 5f9184904a
commit 384359c9d4
27 changed files with 245 additions and 300 deletions

View File

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.promotion.api.bargain;
import cn.iocoder.yudao.module.promotion.api.bargain.dto.BargainRecordCreateReqDTO;
import javax.validation.Valid;
// TODO @芋艿:后面也再撸撸这几个接口
/**
* 砍价记录 API 接口
*
* @author HUIHUI
*/
public interface BargainRecordApi {
/**
* 创建开团记录
*
* @param reqDTO 请求 DTO
*/
void createRecord(@Valid BargainRecordCreateReqDTO reqDTO);
}

View File

@ -0,0 +1,79 @@
package cn.iocoder.yudao.module.promotion.api.bargain.dto;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
// TODO @芋艿:这块要在看看
/**
* 砍价记录的创建 Request DTO
*
* @author HUIHUI
*/
@Data
public class BargainRecordCreateReqDTO {
/**
* 砍价活动编号
*/
@NotNull(message = "砍价活动编号不能为空")
private Long activityId;
/**
* spu 编号
*/
@NotNull(message = "spu 编号不能为空")
private Long spuId;
/**
* sku 编号
*/
@NotNull(message = "sku 编号不能为空")
private Long skuId;
/**
* 用户编号
*/
@NotNull(message = "用户编号不能为空")
private Long userId;
/**
* 订单编号
*/
@NotNull(message = "订单编号不能为空")
private Long orderId;
/**
* 商品名字
*/
@NotEmpty(message = "商品名字不能为空")
private String spuName;
/**
* 商品图片
*/
@NotEmpty(message = "商品图片不能为空")
private String picUrl;
/**
* 砍价商品单价
*/
@NotNull(message = "砍价底价不能为空")
private Integer bargainPrice;
/**
* 商品原价,单位分
*/
@NotNull(message = "商品原价不能为空")
private Integer price;
/**
* 用户昵称
*/
@NotEmpty(message = "用户昵称不能为空")
private String nickname;
/**
* 用户头像
*/
@NotEmpty(message = "用户头像不能为空")
private String avatar;
/**
* 开团状态:进行中 砍价成功 砍价失败
*/
@NotNull(message = "开团状态不能为空")
private Integer status;
}

View File

@ -1,10 +0,0 @@
package cn.iocoder.yudao.module.promotion.api.combination;
/**
* 拼团活动 API 接口
*
* @author HUIHUI
*/
public interface CombinationActivityApi {
}

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.promotion.api.combination;
import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordCreateReqDTO;
import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordUpdateReqDTO;
import javax.validation.Valid;
@ -17,7 +18,7 @@ public interface CombinationRecordApi {
*
* @param reqDTO 请求 DTO
*/
void createCombinationRecord(@Valid CombinationRecordCreateReqDTO reqDTO);
void createRecord(@Valid CombinationRecordCreateReqDTO reqDTO);
/**
* 查询拼团记录是否成功
@ -26,25 +27,13 @@ public interface CombinationRecordApi {
* @param orderId 订单编号
* @return 拼团是否成功
*/
boolean isCombinationRecordSuccess(Long userId, Long orderId);
boolean isRecordSuccess(Long userId, Long orderId);
// TODO @puhui999updateRecordStatus 和 updateRecordStatusAndStartTime 看看后续是不是可以统一掉;
/**
* 更新开团记录状态
*
* @param userId 用户编号
* @param orderId 订单编号
* @param status 状态值
* @param reqDTO 请求 DTO
*/
void updateCombinationRecordStatus(Long userId, Long orderId, Integer status);
/**
* 更新开团记录状态和开始时间
*
* @param userId 用户编号
* @param orderId 订单编号
* @param status 状态值
*/
void updateCombinationRecordStatusAndStartTime(Long userId, Long orderId, Integer status);
void updateRecordStatus(CombinationRecordUpdateReqDTO reqDTO);
}

View File

@ -70,7 +70,7 @@ public class CombinationRecordCreateReqDTO {
@NotEmpty(message = "用户头像不能为空")
private String avatar;
/**
* 开团状态:正在开团 拼团成功 拼团失败 TODO 等待支付
* 开团状态:正在开团 拼团成功 拼团失败
*/
@NotNull(message = "开团状态不能为空")
private Integer status;

View File

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.promotion.api.combination.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
/**
* 拼团记录的更新 Request DTO
*
* @author HUIHUI
*/
@Data
public class CombinationRecordUpdateReqDTO {
/**
* 用户编号
*/
@NotNull(message = "用户编号不能为空")
private Long userId;
/**
* 订单编号
*/
@NotNull(message = "订单编号不能为空")
private Long orderId;
/**
* 开团状态:正在开团 拼团成功 拼团失败
*/
@NotNull(message = "开团状态不能为空")
private Integer status;
/**
* 团开始时间
*/
private LocalDateTime startTime;
}

View File

@ -16,10 +16,9 @@ import java.util.Arrays;
@Getter
public enum CombinationRecordStatusEnum implements IntArrayValuable {
WAITING(0, "未付款"),
IN_PROGRESS(1, "进行中"),
SUCCESS(2, "拼团成功"),
FAILED(3, "拼团失败");
IN_PROGRESS(0, "进行中"),
SUCCESS(1, "拼团成功"),
FAILED(2, "拼团失败");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CombinationRecordStatusEnum::getStatus).toArray();