Commit 405bf497ef5ae3f80fd76db6428895c28dccfee8

Authored by YunaiV
1 parent 96fc2523

mall:新增 discount 限时折扣、reward 满减送

Showing 24 changed files with 313 additions and 737 deletions
yudao-module-mall/yudao-module-market-api/src/main/java/cn/iocoder/yudao/module/market/enums/activity/MarketActivityStatusEnum.java renamed to yudao-module-mall/yudao-module-market-api/src/main/java/cn/iocoder/yudao/module/market/enums/common/PromotionActivityStatusEnum.java
1 -package cn.iocoder.yudao.module.market.enums.activity; 1 +package cn.iocoder.yudao.module.market.enums.common;
2 2
3 import cn.iocoder.yudao.framework.common.core.IntArrayValuable; 3 import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
4 6
5 import java.util.Arrays; 7 import java.util.Arrays;
6 8
7 /** 9 /**
8 - * 促销活动状态枚举 10 + * 促销活动的状态枚举
  11 + *
  12 + * @author 芋道源码
9 */ 13 */
10 -public enum MarketActivityStatusEnum implements IntArrayValuable { 14 +@AllArgsConstructor
  15 +@Getter
  16 +public enum PromotionActivityStatusEnum implements IntArrayValuable {
11 17
12 WAIT(10, "未开始"), 18 WAIT(10, "未开始"),
13 RUN(20, "进行中"), 19 RUN(20, "进行中"),
14 END(30, "已结束"), 20 END(30, "已结束"),
15 - /**  
16 - * 1. WAIT、RUN、END 可以转换成 INVALID 状态。  
17 - * 2. INVALID 只可以转换成 DELETED 状态。  
18 - */  
19 - INVALID(40, "已撤销"),  
20 - DELETED(50, "已删除"),  
21 - ; 21 + CLOSE(40, "已关闭");
22 22
23 - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MarketActivityStatusEnum::getValue).toArray(); 23 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(PromotionActivityStatusEnum::getStatus).toArray();
24 24
25 /** 25 /**
26 * 状态值 26 * 状态值
27 */ 27 */
28 - private final Integer value; 28 + private final Integer status;
29 /** 29 /**
30 * 状态名 30 * 状态名
31 */ 31 */
32 private final String name; 32 private final String name;
33 33
34 - MarketActivityStatusEnum(Integer value, String name) {  
35 - this.value = value;  
36 - this.name = name;  
37 - }  
38 -  
39 - public Integer getValue() {  
40 - return value;  
41 - }  
42 -  
43 - public String getName() {  
44 - return name;  
45 - }  
46 -  
47 @Override 34 @Override
48 public int[] array() { 35 public int[] array() {
49 return ARRAYS; 36 return ARRAYS;
50 } 37 }
  38 +
51 } 39 }
yudao-module-mall/yudao-module-market-api/src/main/java/cn/iocoder/yudao/module/market/enums/common/PromotionConditionTypeEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.market.enums.common;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * 营销的条件类型枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@AllArgsConstructor
  15 +@Getter
  16 +public enum PromotionConditionTypeEnum implements IntArrayValuable {
  17 +
  18 + PRICE(10, "满 N 元"),
  19 + COUNT(20, "满 N 件");
  20 +
  21 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(PromotionConditionTypeEnum::getType).toArray();
  22 +
  23 + /**
  24 + * 类型值
  25 + */
  26 + private final Integer type;
  27 + /**
  28 + * 类型名
  29 + */
  30 + private final String name;
  31 +
  32 + @Override
  33 + public int[] array() {
  34 + return ARRAYS;
  35 + }
  36 +
  37 +}
yudao-module-mall/yudao-module-market-api/src/main/java/cn/iocoder/yudao/module/market/enums/common/PromotionProductScopeEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.market.enums.common;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * 营销的商品范围枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@Getter
  15 +@AllArgsConstructor
  16 +public enum PromotionProductScopeEnum implements IntArrayValuable {
  17 +
  18 + ALL(1, "全部商品参与"),
  19 + SPU(2, "指定商品参与"),
  20 + ;
  21 +
  22 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(PromotionProductScopeEnum::getScope).toArray();
  23 +
  24 + /**
  25 + * 范围值
  26 + */
  27 + private final Integer scope;
  28 + /**
  29 + * 范围名
  30 + */
  31 + private final String name;
  32 +
  33 + @Override
  34 + public int[] array() {
  35 + return ARRAYS;
  36 + }
  37 +
  38 +}
yudao-module-mall/yudao-module-market-api/src/main/java/cn/iocoder/yudao/module/market/enums/common/PromotionTypeEnum.java
@@ -15,8 +15,8 @@ import java.util.Arrays; @@ -15,8 +15,8 @@ import java.util.Arrays;
15 @AllArgsConstructor 15 @AllArgsConstructor
16 public enum PromotionTypeEnum implements IntArrayValuable { 16 public enum PromotionTypeEnum implements IntArrayValuable {
17 17
18 - TIME_LIMITED_DISCOUNT(1, "限时折扣"),  
19 - FULL_PRIVILEGE(2, "满减送"), 18 + DISCOUNT(1, "限时折扣"),
  19 + REWARD(2, "满减送"),
20 ; 20 ;
21 21
22 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(PromotionTypeEnum::getType).toArray(); 22 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(PromotionTypeEnum::getType).toArray();
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/MarketTestController.java deleted
1 -package cn.iocoder.yudao.module.market.controller.admin;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import io.swagger.annotations.Api;  
5 -import io.swagger.annotations.ApiOperation;  
6 -import org.springframework.validation.annotation.Validated;  
7 -import org.springframework.web.bind.annotation.GetMapping;  
8 -import org.springframework.web.bind.annotation.RequestMapping;  
9 -import org.springframework.web.bind.annotation.RestController;  
10 -  
11 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
12 -  
13 -@Api(tags = "管理后台 - 营销")  
14 -@RestController  
15 -@RequestMapping("/market/test")  
16 -@Validated  
17 -public class MarketTestController {  
18 -  
19 - @GetMapping("/get")  
20 - @ApiOperation("获取 market 信息")  
21 - public CommonResult<String> get() {  
22 - return success("true");  
23 - }  
24 -  
25 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/activity/ActivityController.java deleted
1 -package cn.iocoder.yudao.module.market.controller.admin.activity;  
2 -  
3 -import org.springframework.web.bind.annotation.*;  
4 -import javax.annotation.Resource;  
5 -import org.springframework.validation.annotation.Validated;  
6 -import org.springframework.security.access.prepost.PreAuthorize;  
7 -import io.swagger.annotations.*;  
8 -import javax.validation.*;  
9 -import java.util.*;  
10 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
11 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
12 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
13 -import cn.iocoder.yudao.module.market.controller.admin.activity.vo.*;  
14 -import cn.iocoder.yudao.module.market.dal.dataobject.activity.ActivityDO;  
15 -import cn.iocoder.yudao.module.market.convert.activity.ActivityConvert;  
16 -import cn.iocoder.yudao.module.market.service.activity.ActivityService;  
17 -  
18 -@Api(tags = "管理后台 - 促销活动")  
19 -@RestController  
20 -@RequestMapping("/market/activity")  
21 -@Validated  
22 -public class ActivityController {  
23 -  
24 - @Resource  
25 - private ActivityService activityService;  
26 -  
27 - @PostMapping("/create")  
28 - @ApiOperation("创建促销活动")  
29 - @PreAuthorize("@ss.hasPermission('market:activity:create')")  
30 - public CommonResult<Long> createActivity(@Valid @RequestBody ActivityCreateReqVO createReqVO) {  
31 - return success(activityService.createActivity(createReqVO));  
32 - }  
33 -  
34 - @PutMapping("/update")  
35 - @ApiOperation("更新促销活动")  
36 - @PreAuthorize("@ss.hasPermission('market:activity:update')")  
37 - public CommonResult<Boolean> updateActivity(@Valid @RequestBody ActivityUpdateReqVO updateReqVO) {  
38 - activityService.updateActivity(updateReqVO);  
39 - return success(true);  
40 - }  
41 -  
42 - @DeleteMapping("/delete")  
43 - @ApiOperation("删除促销活动")  
44 - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)  
45 - @PreAuthorize("@ss.hasPermission('market:activity:delete')")  
46 - public CommonResult<Boolean> deleteActivity(@RequestParam("id") Long id) {  
47 - activityService.deleteActivity(id);  
48 - return success(true);  
49 - }  
50 -  
51 - @GetMapping("/get")  
52 - @ApiOperation("获得促销活动")  
53 - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)  
54 - @PreAuthorize("@ss.hasPermission('market:activity:query')")  
55 - public CommonResult<ActivityRespVO> getActivity(@RequestParam("id") Long id) {  
56 - ActivityDO activity = activityService.getActivity(id);  
57 - return success(ActivityConvert.INSTANCE.convert(activity));  
58 - }  
59 -  
60 - @GetMapping("/list")  
61 - @ApiOperation("获得促销活动列表")  
62 - @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)  
63 - @PreAuthorize("@ss.hasPermission('market:activity:query')")  
64 - public CommonResult<List<ActivityRespVO>> getActivityList(@RequestParam("ids") Collection<Long> ids) {  
65 - List<ActivityDO> list = activityService.getActivityList(ids);  
66 - return success(ActivityConvert.INSTANCE.convertList(list));  
67 - }  
68 -  
69 - @GetMapping("/page")  
70 - @ApiOperation("获得促销活动分页")  
71 - @PreAuthorize("@ss.hasPermission('market:activity:query')")  
72 - public CommonResult<PageResult<ActivityRespVO>> getActivityPage(@Valid ActivityPageReqVO pageVO) {  
73 - PageResult<ActivityDO> pageResult = activityService.getActivityPage(pageVO);  
74 - return success(ActivityConvert.INSTANCE.convertPage(pageResult));  
75 - }  
76 -  
77 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/activity/vo/ActivityBaseVO.java deleted
1 -package cn.iocoder.yudao.module.market.controller.admin.activity.vo;  
2 -  
3 -import cn.iocoder.yudao.framework.common.validation.InEnum;  
4 -import cn.iocoder.yudao.module.market.enums.activity.MarketActivityStatusEnum;  
5 -import cn.iocoder.yudao.module.market.enums.common.PromotionTypeEnum;  
6 -import lombok.*;  
7 -import java.util.*;  
8 -import io.swagger.annotations.*;  
9 -import javax.validation.constraints.*;  
10 -import org.springframework.format.annotation.DateTimeFormat;  
11 -  
12 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
13 -  
14 -/**  
15 -* 促销活动 Base VO,提供给添加、修改、详细的子 VO 使用  
16 -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成  
17 -*/  
18 -@Data  
19 -public class ActivityBaseVO {  
20 -  
21 - @ApiModelProperty(value = "活动标题", required = true)  
22 - @NotNull(message = "活动标题不能为空")  
23 - private String title;  
24 -  
25 - @ApiModelProperty(value = "活动类型", required = true)  
26 - @NotNull(message = "活动类型不能为空")  
27 - @InEnum(PromotionTypeEnum.class)  
28 - private Integer activityType;  
29 -  
30 - @ApiModelProperty(value = "活动状态", required = true)  
31 - @NotNull(message = "活动状态不能为空")  
32 - @InEnum(MarketActivityStatusEnum.class)  
33 - private Integer status;  
34 -  
35 - @ApiModelProperty(value = "开始时间", required = true)  
36 - @NotNull(message = "开始时间不能为空")  
37 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
38 - private Date startTime;  
39 -  
40 - @ApiModelProperty(value = "结束时间", required = true)  
41 - @NotNull(message = "结束时间不能为空")  
42 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
43 - private Date endTime;  
44 -  
45 - @ApiModelProperty(value = "失效时间")  
46 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
47 - private Date invalidTime;  
48 -  
49 - @ApiModelProperty(value = "删除时间")  
50 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
51 - private Date deleteTime;  
52 -  
53 - @ApiModelProperty(value = "限制折扣字符串,使用 JSON 序列化成字符串存储")  
54 - private String timeLimitedDiscount;  
55 -  
56 - @ApiModelProperty(value = "限制折扣字符串,使用 JSON 序列化成字符串存储")  
57 - private String fullPrivilege;  
58 -  
59 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/activity/vo/ActivityCreateReqVO.java deleted
1 -package cn.iocoder.yudao.module.market.controller.admin.activity.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -import javax.validation.constraints.*;  
7 -  
8 -/**  
9 - * @author xia  
10 - */  
11 -@ApiModel("管理后台 - 促销活动创建 Request VO")  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -@ToString(callSuper = true)  
15 -public class ActivityCreateReqVO extends ActivityBaseVO {  
16 -  
17 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/activity/vo/ActivityPageReqVO.java deleted
1 -package cn.iocoder.yudao.module.market.controller.admin.activity.vo;  
2 -  
3 -import cn.iocoder.yudao.framework.common.validation.InEnum;  
4 -import cn.iocoder.yudao.module.market.enums.activity.MarketActivityStatusEnum;  
5 -import cn.iocoder.yudao.module.market.enums.common.PromotionTypeEnum;  
6 -import lombok.*;  
7 -import java.util.*;  
8 -import io.swagger.annotations.*;  
9 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
10 -import org.springframework.format.annotation.DateTimeFormat;  
11 -  
12 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
13 -  
14 -@ApiModel("管理后台 - 促销活动分页 Request VO")  
15 -@Data  
16 -@EqualsAndHashCode(callSuper = true)  
17 -@ToString(callSuper = true)  
18 -public class ActivityPageReqVO extends PageParam {  
19 -  
20 - @ApiModelProperty(value = "活动标题")  
21 - private String title;  
22 -  
23 - @ApiModelProperty(value = "活动类型")  
24 - @InEnum(PromotionTypeEnum.class)  
25 - private Integer activityType;  
26 -  
27 - @ApiModelProperty(value = "活动状态")  
28 - @InEnum(MarketActivityStatusEnum.class)  
29 - private Integer status;  
30 -  
31 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
32 - @ApiModelProperty(value = "开始时间")  
33 - private Date[] startTime;  
34 -  
35 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
36 - @ApiModelProperty(value = "结束时间")  
37 - private Date[] endTime;  
38 -  
39 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
40 - @ApiModelProperty(value = "失效时间")  
41 - private Date[] invalidTime;  
42 -  
43 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
44 - @ApiModelProperty(value = "删除时间")  
45 - private Date[] deleteTime;  
46 -  
47 - @ApiModelProperty(value = "限制折扣字符串,使用 JSON 序列化成字符串存储")  
48 - private String timeLimitedDiscount;  
49 -  
50 - @ApiModelProperty(value = "限制折扣字符串,使用 JSON 序列化成字符串存储")  
51 - private String fullPrivilege;  
52 -  
53 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
54 - @ApiModelProperty(value = "创建时间")  
55 - private Date[] createTime;  
56 -  
57 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/activity/vo/ActivityRespVO.java deleted
1 -package cn.iocoder.yudao.module.market.controller.admin.activity.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -  
7 -@ApiModel("管理后台 - 促销活动 Response VO")  
8 -@Data  
9 -@EqualsAndHashCode(callSuper = true)  
10 -@ToString(callSuper = true)  
11 -public class ActivityRespVO extends ActivityBaseVO {  
12 -  
13 - @ApiModelProperty(value = "活动编号", required = true)  
14 - private Long id;  
15 -  
16 - @ApiModelProperty(value = "创建时间", required = true)  
17 - private Date createTime;  
18 -  
19 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/activity/vo/ActivityUpdateReqVO.java deleted
1 -package cn.iocoder.yudao.module.market.controller.admin.activity.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -import javax.validation.constraints.*;  
7 -  
8 -@ApiModel("管理后台 - 促销活动更新 Request VO")  
9 -@Data  
10 -@EqualsAndHashCode(callSuper = true)  
11 -@ToString(callSuper = true)  
12 -public class ActivityUpdateReqVO extends ActivityBaseVO {  
13 -  
14 - @ApiModelProperty(value = "活动编号", required = true)  
15 - @NotNull(message = "活动编号不能为空")  
16 - private Long id;  
17 -  
18 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/controller/admin/discount/package-info.java 0 → 100644
  1 +/**
  2 + * TODO 占位
  3 + */
  4 +package cn.iocoder.yudao.module.market.controller.admin.discount;
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/convert/activity/ActivityConvert.java deleted
1 -package cn.iocoder.yudao.module.market.convert.activity;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -  
7 -import org.mapstruct.Mapper;  
8 -import org.mapstruct.factory.Mappers;  
9 -import cn.iocoder.yudao.module.market.controller.admin.activity.vo.*;  
10 -import cn.iocoder.yudao.module.market.dal.dataobject.activity.ActivityDO;  
11 -  
12 -/**  
13 - * 促销活动 Convert  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Mapper  
18 -public interface ActivityConvert {  
19 -  
20 - ActivityConvert INSTANCE = Mappers.getMapper(ActivityConvert.class);  
21 -  
22 - ActivityDO convert(ActivityCreateReqVO bean);  
23 -  
24 - ActivityDO convert(ActivityUpdateReqVO bean);  
25 -  
26 - ActivityRespVO convert(ActivityDO bean);  
27 -  
28 - List<ActivityRespVO> convertList(List<ActivityDO> list);  
29 -  
30 - PageResult<ActivityRespVO> convertPage(PageResult<ActivityDO> page);  
31 -  
32 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/convert/discount/package-info.java 0 → 100644
  1 +/**
  2 + * TODO 占位
  3 + */
  4 +package cn.iocoder.yudao.module.market.convert.discount;
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/dataobject/activity/ActivityDO.java renamed to yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/dataobject/discount/DiscountActivityDO.java
1 -package cn.iocoder.yudao.module.market.dal.dataobject.activity; 1 +package cn.iocoder.yudao.module.market.dal.dataobject.discount;
2 2
3 -import lombok.*;  
4 -import java.util.*;  
5 -import com.baomidou.mybatisplus.annotation.*;  
6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.market.enums.common.PromotionActivityStatusEnum;
  5 +import com.baomidou.mybatisplus.annotation.KeySequence;
  6 +import com.baomidou.mybatisplus.annotation.TableId;
  7 +import com.baomidou.mybatisplus.annotation.TableName;
  8 +import lombok.Data;
  9 +import lombok.EqualsAndHashCode;
  10 +
  11 +import java.util.Date;
7 12
8 /** 13 /**
9 - * 促销活动 DO 14 + * 限时折扣活动 DO
  15 + *
  16 + * 一个活动下,可以有 {@link DiscountProductDO} 商品;
  17 + * 一个商品,在指定时间段内,只能属于一个活动;
10 * 18 *
11 * @author 芋道源码 19 * @author 芋道源码
12 */ 20 */
13 -@TableName("market_activity") 21 +@TableName(value = "promotion_discount_activity", autoResultMap = true)
  22 +@KeySequence("promotion_discount_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
14 @Data 23 @Data
15 @EqualsAndHashCode(callSuper = true) 24 @EqualsAndHashCode(callSuper = true)
16 -@ToString(callSuper = true)  
17 -@Builder  
18 -@NoArgsConstructor  
19 -@AllArgsConstructor  
20 -public class ActivityDO extends BaseDO { 25 +public class DiscountActivityDO extends BaseDO {
21 26
22 /** 27 /**
23 - * 活动编号 28 + * 活动编号,主键自增
24 */ 29 */
25 @TableId 30 @TableId
26 private Long id; 31 private Long id;
27 /** 32 /**
28 * 活动标题 33 * 活动标题
29 */ 34 */
30 - private String title; 35 + private String name;
31 /** 36 /**
32 - * 活动类型MarketActivityTypeEnum  
33 - */  
34 - private Integer activityType;  
35 - /**  
36 - * 活动状态MarketActivityStatusEnum 37 + * 状态
  38 + *
  39 + * 枚举 {@link PromotionActivityStatusEnum}
37 */ 40 */
38 private Integer status; 41 private Integer status;
39 /** 42 /**
@@ -45,20 +48,8 @@ public class ActivityDO extends BaseDO { @@ -45,20 +48,8 @@ public class ActivityDO extends BaseDO {
45 */ 48 */
46 private Date endTime; 49 private Date endTime;
47 /** 50 /**
48 - * 失效时间  
49 - */  
50 - private Date invalidTime;  
51 - /**  
52 - * 删除时间  
53 - */  
54 - private Date deleteTime;  
55 - /**  
56 - * 限制折扣字符串,使用 JSON 序列化成字符串存储  
57 - */  
58 - private String timeLimitedDiscount;  
59 - /**  
60 - * 限制折扣字符串,使用 JSON 序列化成字符串存储 51 + * 备注
61 */ 52 */
62 - private String fullPrivilege; 53 + private String remark;
63 54
64 } 55 }
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/dataobject/discount/DiscountProductDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.market.dal.dataobject.discount;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import com.baomidou.mybatisplus.annotation.KeySequence;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.Data;
  8 +import lombok.EqualsAndHashCode;
  9 +
  10 +import java.util.Date;
  11 +
  12 +/**
  13 + * 限时折扣商品 DO
  14 + *
  15 + * @author 芋道源码
  16 + */
  17 +@TableName(value = "promotion_discount_product", autoResultMap = true)
  18 +@KeySequence("promotion_discount_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  19 +@Data
  20 +@EqualsAndHashCode(callSuper = true)
  21 +public class DiscountProductDO extends BaseDO {
  22 +
  23 + /**
  24 + * 编号,主键自增
  25 + */
  26 + @TableId
  27 + private Long id;
  28 + /**
  29 + * 限时折扣活动的编号
  30 + *
  31 + * 关联 {@link DiscountActivityDO#getId()}
  32 + */
  33 + private Long activityId;
  34 + /**
  35 + * 商品 SPU 编号
  36 + *
  37 + * 关联 ProductSpuDO 的 id 编号
  38 + */
  39 + private Long spuId;
  40 + /**
  41 + * 商品 SKU 编号
  42 + *
  43 + * 关联 ProductSkuDO 的 id 编号
  44 + */
  45 + private Long skuId;
  46 + /**
  47 + * 开始时间
  48 + */
  49 + private Date startTime;
  50 + /**
  51 + * 结束时间
  52 + */
  53 + private Date endTime;
  54 + /**
  55 + * 销售价格,单位:分
  56 + *
  57 + * 冗余 ProductSkuDO 的 price 字段
  58 + */
  59 + private Integer originalPrice;
  60 + /**
  61 + * 优惠价格,单位:分
  62 + */
  63 + private Integer promotionPrice;
  64 +
  65 +}
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/dataobject/reward/RewardActivityDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.market.dal.dataobject.reward;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.market.enums.common.PromotionActivityStatusEnum;
  5 +import cn.iocoder.yudao.module.market.enums.common.PromotionConditionTypeEnum;
  6 +import cn.iocoder.yudao.module.market.enums.common.PromotionProductScopeEnum;
  7 +import com.baomidou.mybatisplus.annotation.KeySequence;
  8 +import com.baomidou.mybatisplus.annotation.TableField;
  9 +import com.baomidou.mybatisplus.annotation.TableId;
  10 +import com.baomidou.mybatisplus.annotation.TableName;
  11 +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
  12 +import lombok.Data;
  13 +import lombok.EqualsAndHashCode;
  14 +
  15 +import java.util.Date;
  16 +import java.util.List;
  17 +
  18 +/**
  19 + * 满减送活动 DO
  20 + *
  21 + * @author 芋道源码
  22 + */
  23 +@TableName(value = "promotion_reward_activity", autoResultMap = true)
  24 +@KeySequence("promotion_reward_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  25 +@Data
  26 +@EqualsAndHashCode(callSuper = true)
  27 +public class RewardActivityDO extends BaseDO {
  28 +
  29 + /**
  30 + * 活动编号,主键自增
  31 + */
  32 + @TableId
  33 + private Long id;
  34 + /**
  35 + * 活动标题
  36 + */
  37 + private String name;
  38 + /**
  39 + * 状态
  40 + *
  41 + * 枚举 {@link PromotionActivityStatusEnum}
  42 + */
  43 + private Integer status;
  44 + /**
  45 + * 开始时间
  46 + */
  47 + private Date startTime;
  48 + /**
  49 + * 结束时间
  50 + */
  51 + private Date endTime;
  52 + /**
  53 + * 备注
  54 + */
  55 + private String remark;
  56 + /**
  57 + * 条件类型
  58 + *
  59 + * 枚举 {@link PromotionConditionTypeEnum}
  60 + */
  61 + private Integer conditionType;
  62 + /**
  63 + * 商品范围
  64 + *
  65 + * 枚举 {@link PromotionProductScopeEnum}
  66 + */
  67 + private Integer productScope;
  68 + /**
  69 + * 商品 SPU 编号的数组
  70 + */
  71 + @TableField(typeHandler = JacksonTypeHandler.class)
  72 + private List<Long> spuIds;
  73 + /**
  74 + * 优惠规则的数组
  75 + */
  76 + @TableField(typeHandler = JacksonTypeHandler.class)
  77 + private List<Rule> rules;
  78 +
  79 + /**
  80 + * 优惠规则
  81 + */
  82 + @Data
  83 + public static class Rule {
  84 +
  85 + /**
  86 + * 优惠门槛
  87 + *
  88 + * 1. 满 N 元,单位:分
  89 + * 2. 满 N 件
  90 + */
  91 + private Integer limit;
  92 + /**
  93 + * 优惠价格,单位:分
  94 + */
  95 + private Integer promotionPrice;
  96 + /**
  97 + * 是否包邮
  98 + */
  99 + private Boolean freeDelivery;
  100 + /**
  101 + * 赠送的积分
  102 + */
  103 + private Integer integral;
  104 + /**
  105 + * 赠送的优惠劵编号的数组
  106 + */
  107 + private List<Long> couponIds;
  108 + /**
  109 + * 赠送的优惠卷数量的数组
  110 + */
  111 + private List<Integer> couponCounts;
  112 +
  113 + }
  114 +
  115 +
  116 +}
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/mysql/activity/ActivityMapper.java deleted
1 -package cn.iocoder.yudao.module.market.dal.mysql.activity;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
8 -import cn.iocoder.yudao.module.market.dal.dataobject.activity.ActivityDO;  
9 -import org.apache.ibatis.annotations.Mapper;  
10 -import cn.iocoder.yudao.module.market.controller.admin.activity.vo.*;  
11 -  
12 -/**  
13 - * 促销活动 Mapper  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Mapper  
18 -public interface ActivityMapper extends BaseMapperX<ActivityDO> {  
19 -  
20 - default PageResult<ActivityDO> selectPage(ActivityPageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<ActivityDO>()  
22 - .eqIfPresent(ActivityDO::getTitle, reqVO.getTitle())  
23 - .eqIfPresent(ActivityDO::getActivityType, reqVO.getActivityType())  
24 - .eqIfPresent(ActivityDO::getStatus, reqVO.getStatus())  
25 - .betweenIfPresent(ActivityDO::getStartTime, reqVO.getStartTime())  
26 - .betweenIfPresent(ActivityDO::getEndTime, reqVO.getEndTime())  
27 - .betweenIfPresent(ActivityDO::getInvalidTime, reqVO.getInvalidTime())  
28 - .betweenIfPresent(ActivityDO::getDeleteTime, reqVO.getDeleteTime())  
29 - .eqIfPresent(ActivityDO::getTimeLimitedDiscount, reqVO.getTimeLimitedDiscount())  
30 - .eqIfPresent(ActivityDO::getFullPrivilege, reqVO.getFullPrivilege())  
31 - .betweenIfPresent(ActivityDO::getCreateTime, reqVO.getCreateTime())  
32 - .orderByDesc(ActivityDO::getId));  
33 - }  
34 -  
35 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/dal/mysql/discount/package-info.java 0 → 100644
  1 +/**
  2 + * TODO 占位
  3 + */
  4 +package cn.iocoder.yudao.module.market.dal.mysql.discount;
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/package-info.java
1 /** 1 /**
2 - * market 模块,我们放营销业务。 2 + * promotion 模块,我们放营销业务。
3 * 例如说:营销活动、banner、优惠券等等 3 * 例如说:营销活动、banner、优惠券等等
4 * 4 *
5 - * 1. Controller URL:以 /market/ 开头,避免和其它 Module 冲突  
6 - * 2. DataObject 表名:以 market_ 开头,方便在数据库中区分 5 + * 1. Controller URL:以 /promotion/ 开头,避免和其它 Module 冲突
  6 + * 2. DataObject 表名:以 promotion_ 开头,方便在数据库中区分
7 */ 7 */
8 package cn.iocoder.yudao.module.market; 8 package cn.iocoder.yudao.module.market;
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/service/activity/ActivityService.java deleted
1 -package cn.iocoder.yudao.module.market.service.activity;  
2 -  
3 -import java.util.*;  
4 -import javax.validation.*;  
5 -import cn.iocoder.yudao.module.market.controller.admin.activity.vo.*;  
6 -import cn.iocoder.yudao.module.market.dal.dataobject.activity.ActivityDO;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -  
9 -/**  
10 - * 促销活动 Service 接口  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -public interface ActivityService {  
15 -  
16 - /**  
17 - * 创建促销活动  
18 - *  
19 - * @param createReqVO 创建信息  
20 - * @return 编号  
21 - */  
22 - Long createActivity(@Valid ActivityCreateReqVO createReqVO);  
23 -  
24 - /**  
25 - * 更新促销活动  
26 - *  
27 - * @param updateReqVO 更新信息  
28 - */  
29 - void updateActivity(@Valid ActivityUpdateReqVO updateReqVO);  
30 -  
31 - /**  
32 - * 删除促销活动  
33 - *  
34 - * @param id 编号  
35 - */  
36 - void deleteActivity(Long id);  
37 -  
38 - /**  
39 - * 获得促销活动  
40 - *  
41 - * @param id 编号  
42 - * @return 促销活动  
43 - */  
44 - ActivityDO getActivity(Long id);  
45 -  
46 - /**  
47 - * 获得促销活动列表  
48 - *  
49 - * @param ids 编号  
50 - * @return 促销活动列表  
51 - */  
52 - List<ActivityDO> getActivityList(Collection<Long> ids);  
53 -  
54 - /**  
55 - * 获得促销活动分页  
56 - *  
57 - * @param pageReqVO 分页查询  
58 - * @return 促销活动分页  
59 - */  
60 - PageResult<ActivityDO> getActivityPage(ActivityPageReqVO pageReqVO);  
61 -  
62 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/service/activity/ActivityServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.market.service.activity;  
2 -  
3 -import org.springframework.stereotype.Service;  
4 -import javax.annotation.Resource;  
5 -import org.springframework.validation.annotation.Validated;  
6 -  
7 -import java.util.*;  
8 -import cn.iocoder.yudao.module.market.controller.admin.activity.vo.*;  
9 -import cn.iocoder.yudao.module.market.dal.dataobject.activity.ActivityDO;  
10 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
11 -  
12 -import cn.iocoder.yudao.module.market.convert.activity.ActivityConvert;  
13 -import cn.iocoder.yudao.module.market.dal.mysql.activity.ActivityMapper;  
14 -  
15 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
16 -import static cn.iocoder.yudao.module.market.enums.ErrorCodeConstants.*;  
17 -  
18 -/**  
19 - * 促销活动 Service 实现类  
20 - *  
21 - * @author 芋道源码  
22 - */  
23 -@Service  
24 -@Validated  
25 -public class ActivityServiceImpl implements ActivityService {  
26 -  
27 - @Resource  
28 - private ActivityMapper activityMapper;  
29 -  
30 - @Override  
31 - public Long createActivity(ActivityCreateReqVO createReqVO) {  
32 - // 插入  
33 - ActivityDO activity = ActivityConvert.INSTANCE.convert(createReqVO);  
34 - activityMapper.insert(activity);  
35 - // 返回  
36 - return activity.getId();  
37 - }  
38 -  
39 - @Override  
40 - public void updateActivity(ActivityUpdateReqVO updateReqVO) {  
41 - // 校验存在  
42 - this.validateActivityExists(updateReqVO.getId());  
43 - // 更新  
44 - ActivityDO updateObj = ActivityConvert.INSTANCE.convert(updateReqVO);  
45 - activityMapper.updateById(updateObj);  
46 - }  
47 -  
48 - @Override  
49 - public void deleteActivity(Long id) {  
50 - // 校验存在  
51 - this.validateActivityExists(id);  
52 - // 删除  
53 - activityMapper.deleteById(id);  
54 - }  
55 -  
56 - private void validateActivityExists(Long id) {  
57 - if (activityMapper.selectById(id) == null) {  
58 - throw exception(ACTIVITY_NOT_EXISTS);  
59 - }  
60 - }  
61 -  
62 - @Override  
63 - public ActivityDO getActivity(Long id) {  
64 - return activityMapper.selectById(id);  
65 - }  
66 -  
67 - @Override  
68 - public List<ActivityDO> getActivityList(Collection<Long> ids) {  
69 - return activityMapper.selectBatchIds(ids);  
70 - }  
71 -  
72 - @Override  
73 - public PageResult<ActivityDO> getActivityPage(ActivityPageReqVO pageReqVO) {  
74 - return activityMapper.selectPage(pageReqVO);  
75 - }  
76 -  
77 -}  
yudao-module-mall/yudao-module-market-biz/src/main/java/cn/iocoder/yudao/module/market/service/discount/package-info.java 0 → 100644
  1 +/**
  2 + * TODO 占位
  3 + */
  4 +package cn.iocoder.yudao.module.market.service.discount;
yudao-module-mall/yudao-module-market-biz/src/test/java/cn/iocoder/yudao/module/market/service/activity/ActivityServiceImplTest.java deleted
1 -package cn.iocoder.yudao.module.market.service.activity;  
2 -  
3 -import org.junit.jupiter.api.Disabled;  
4 -import org.junit.jupiter.api.Test;  
5 -  
6 -import javax.annotation.Resource;  
7 -  
8 -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;  
9 -  
10 -import cn.iocoder.yudao.module.market.controller.admin.activity.vo.*;  
11 -import cn.iocoder.yudao.module.market.dal.dataobject.activity.ActivityDO;  
12 -import cn.iocoder.yudao.module.market.dal.mysql.activity.ActivityMapper;  
13 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
14 -  
15 -import org.springframework.context.annotation.Import;  
16 -  
17 -import static cn.iocoder.yudao.module.market.enums.ErrorCodeConstants.*;  
18 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;  
19 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;  
20 -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;  
21 -import static org.junit.jupiter.api.Assertions.*;  
22 -  
23 -/**  
24 -* {@link ActivityServiceImpl} 的单元测试类  
25 -*  
26 -* @author 芋道源码  
27 -*/  
28 -@Import(ActivityServiceImpl.class)  
29 -public class ActivityServiceImplTest extends BaseDbUnitTest {  
30 -  
31 - @Resource  
32 - private ActivityServiceImpl activityService;  
33 -  
34 - @Resource  
35 - private ActivityMapper activityMapper;  
36 -  
37 - @Test  
38 - public void testCreateActivity_success() {  
39 - // 准备参数  
40 - ActivityCreateReqVO reqVO = randomPojo(ActivityCreateReqVO.class);  
41 -  
42 - // 调用  
43 - Long activityId = activityService.createActivity(reqVO);  
44 - // 断言  
45 - assertNotNull(activityId);  
46 - // 校验记录的属性是否正确  
47 - ActivityDO activity = activityMapper.selectById(activityId);  
48 - assertPojoEquals(reqVO, activity);  
49 - }  
50 -  
51 - @Test  
52 - public void testUpdateActivity_success() {  
53 - // mock 数据  
54 - ActivityDO dbActivity = randomPojo(ActivityDO.class);  
55 - activityMapper.insert(dbActivity);// @Sql: 先插入出一条存在的数据  
56 - // 准备参数  
57 - ActivityUpdateReqVO reqVO = randomPojo(ActivityUpdateReqVO.class, o -> {  
58 - o.setId(dbActivity.getId()); // 设置更新的 ID  
59 - });  
60 -  
61 - // 调用  
62 - activityService.updateActivity(reqVO);  
63 - // 校验是否更新正确  
64 - ActivityDO activity = activityMapper.selectById(reqVO.getId()); // 获取最新的  
65 - assertPojoEquals(reqVO, activity);  
66 - }  
67 -  
68 - @Test  
69 - public void testUpdateActivity_notExists() {  
70 - // 准备参数  
71 - ActivityUpdateReqVO reqVO = randomPojo(ActivityUpdateReqVO.class);  
72 -  
73 - // 调用, 并断言异常  
74 - assertServiceException(() -> activityService.updateActivity(reqVO), ACTIVITY_NOT_EXISTS);  
75 - }  
76 -  
77 - @Test  
78 - public void testDeleteActivity_success() {  
79 - // mock 数据  
80 - ActivityDO dbActivity = randomPojo(ActivityDO.class);  
81 - activityMapper.insert(dbActivity);// @Sql: 先插入出一条存在的数据  
82 - // 准备参数  
83 - Long id = dbActivity.getId();  
84 -  
85 - // 调用  
86 - activityService.deleteActivity(id);  
87 - // 校验数据不存在了  
88 - assertNull(activityMapper.selectById(id));  
89 - }  
90 -  
91 - @Test  
92 - public void testDeleteActivity_notExists() {  
93 - // 准备参数  
94 - Long id = randomLongId();  
95 -  
96 - // 调用, 并断言异常  
97 - assertServiceException(() -> activityService.deleteActivity(id), ACTIVITY_NOT_EXISTS);  
98 - }  
99 -  
100 - @Test  
101 - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解  
102 - public void testGetActivityPage() {  
103 - // mock 数据  
104 - ActivityDO dbActivity = randomPojo(ActivityDO.class, o -> { // 等会查询到  
105 - o.setTitle(null);  
106 - o.setActivityType(null);  
107 - o.setStatus(null);  
108 - o.setStartTime(null);  
109 - o.setEndTime(null);  
110 - o.setInvalidTime(null);  
111 - o.setDeleteTime(null);  
112 - o.setTimeLimitedDiscount(null);  
113 - o.setFullPrivilege(null);  
114 - o.setCreateTime(null);  
115 - });  
116 - activityMapper.insert(dbActivity);  
117 - // 测试 title 不匹配  
118 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setTitle(null)));  
119 - // 测试 activityType 不匹配  
120 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setActivityType(null)));  
121 - // 测试 status 不匹配  
122 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setStatus(null)));  
123 - // 测试 startTime 不匹配  
124 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setStartTime(null)));  
125 - // 测试 endTime 不匹配  
126 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setEndTime(null)));  
127 - // 测试 invalidTime 不匹配  
128 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setInvalidTime(null)));  
129 - // 测试 deleteTime 不匹配  
130 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setDeleteTime(null)));  
131 - // 测试 timeLimitedDiscount 不匹配  
132 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setTimeLimitedDiscount(null)));  
133 - // 测试 fullPrivilege 不匹配  
134 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setFullPrivilege(null)));  
135 - // 测试 createTime 不匹配  
136 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setCreateTime(null)));  
137 - // 准备参数  
138 - ActivityPageReqVO reqVO = new ActivityPageReqVO();  
139 - reqVO.setTitle(null);  
140 - reqVO.setActivityType(null);  
141 - reqVO.setStatus(null);  
142 - reqVO.setStartTime(null);  
143 - reqVO.setEndTime(null);  
144 - reqVO.setInvalidTime(null);  
145 - reqVO.setDeleteTime(null);  
146 - reqVO.setTimeLimitedDiscount(null);  
147 - reqVO.setFullPrivilege(null);  
148 - reqVO.setCreateTime(null);  
149 -  
150 - // 调用  
151 - PageResult<ActivityDO> pageResult = activityService.getActivityPage(reqVO);  
152 - // 断言  
153 - assertEquals(1, pageResult.getTotal());  
154 - assertEquals(1, pageResult.getList().size());  
155 - assertPojoEquals(dbActivity, pageResult.getList().get(0));  
156 - }  
157 -  
158 - @Test  
159 - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解  
160 - public void testGetActivityList() {  
161 - // mock 数据  
162 - ActivityDO dbActivity = randomPojo(ActivityDO.class, o -> { // 等会查询到  
163 - o.setTitle(null);  
164 - o.setActivityType(null);  
165 - o.setStatus(null);  
166 - o.setStartTime(null);  
167 - o.setEndTime(null);  
168 - o.setInvalidTime(null);  
169 - o.setDeleteTime(null);  
170 - o.setTimeLimitedDiscount(null);  
171 - o.setFullPrivilege(null);  
172 - o.setCreateTime(null);  
173 - });  
174 - activityMapper.insert(dbActivity);  
175 - // 测试 title 不匹配  
176 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setTitle(null)));  
177 - // 测试 activityType 不匹配  
178 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setActivityType(null)));  
179 - // 测试 status 不匹配  
180 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setStatus(null)));  
181 - // 测试 startTime 不匹配  
182 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setStartTime(null)));  
183 - // 测试 endTime 不匹配  
184 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setEndTime(null)));  
185 - // 测试 invalidTime 不匹配  
186 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setInvalidTime(null)));  
187 - // 测试 deleteTime 不匹配  
188 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setDeleteTime(null)));  
189 - // 测试 timeLimitedDiscount 不匹配  
190 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setTimeLimitedDiscount(null)));  
191 - // 测试 fullPrivilege 不匹配  
192 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setFullPrivilege(null)));  
193 - // 测试 createTime 不匹配  
194 - activityMapper.insert(cloneIgnoreId(dbActivity, o -> o.setCreateTime(null)));  
195 - }  
196 -  
197 -}