Commit 31b8ee425fdd19fd13ed167faee5519d4abc1d3f

Authored by YunaiV
1 parent 1519c03c

reactor:移除 promotion-statistics 的 api 包

Showing 470 changed files with 9013 additions and 9059 deletions

Too many changes.

To preserve performance only 100 of 470 files are displayed.

yudao-module-mall/pom.xml
@@ -19,8 +19,7 @@ @@ -19,8 +19,7 @@
19 </description> 19 </description>
20 <modules> 20 <modules>
21 <module>yudao-module-product</module> 21 <module>yudao-module-product</module>
22 - <module>yudao-module-promotion-api</module>  
23 - <module>yudao-module-promotion-biz</module> 22 + <module>yudao-module-promotion</module>
24 <module>yudao-module-trade-biz</module> 23 <module>yudao-module-trade-biz</module>
25 <module>yudao-module-statistics</module> 24 <module>yudao-module-statistics</module>
26 <!-- 25 <!--
yudao-module-mall/yudao-module-promotion-api/pom.xml deleted
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0"  
3 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
5 - <parent>  
6 - <groupId>cn.iocoder.boot</groupId>  
7 - <artifactId>yudao-module-mall</artifactId>  
8 - <version>${revision}</version>  
9 - </parent>  
10 - <modelVersion>4.0.0</modelVersion>  
11 - <artifactId>yudao-module-promotion-api</artifactId>  
12 - <packaging>jar</packaging>  
13 -  
14 - <name>${project.artifactId}</name>  
15 - <description>  
16 - promotion 模块 API,暴露给其它模块调用  
17 - </description>  
18 -  
19 - <dependencies>  
20 - <dependency>  
21 - <groupId>cn.iocoder.boot</groupId>  
22 - <artifactId>yudao-common</artifactId>  
23 - </dependency>  
24 -  
25 - <!-- 参数校验 -->  
26 - <dependency>  
27 - <groupId>org.springframework.boot</groupId>  
28 - <artifactId>spring-boot-starter-validation</artifactId>  
29 - <optional>true</optional>  
30 - </dependency>  
31 -  
32 - <!-- 工具类中使用了 -->  
33 - <dependency>  
34 - <groupId>com.fasterxml.jackson.core</groupId>  
35 - <artifactId>jackson-databind</artifactId>  
36 - <optional>true</optional>  
37 - </dependency>  
38 - </dependencies>  
39 -  
40 -</project>  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/diy/AppDiyPageController.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;  
5 -import cn.iocoder.yudao.module.promotion.controller.app.diy.vo.AppDiyPagePropertyRespVO;  
6 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;  
7 -import cn.iocoder.yudao.module.promotion.service.diy.DiyPageService;  
8 -import io.swagger.v3.oas.annotations.Operation;  
9 -import io.swagger.v3.oas.annotations.Parameter;  
10 -import io.swagger.v3.oas.annotations.tags.Tag;  
11 -import jakarta.annotation.Resource;  
12 -import jakarta.annotation.security.PermitAll;  
13 -import org.springframework.validation.annotation.Validated;  
14 -import org.springframework.web.bind.annotation.GetMapping;  
15 -import org.springframework.web.bind.annotation.RequestMapping;  
16 -import org.springframework.web.bind.annotation.RequestParam;  
17 -import org.springframework.web.bind.annotation.RestController;  
18 -  
19 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
20 -  
21 -@Tag(name = "用户 APP - 装修页面")  
22 -@RestController  
23 -@RequestMapping("/promotion/diy-page")  
24 -@Validated  
25 -public class AppDiyPageController {  
26 -  
27 - @Resource  
28 - private DiyPageService diyPageService;  
29 -  
30 - @GetMapping("/get")  
31 - @Operation(summary = "获得装修页面")  
32 - @Parameter(name = "id", description = "编号", required = true, example = "1024")  
33 - @PermitAll  
34 - public CommonResult<AppDiyPagePropertyRespVO> getDiyPage(@RequestParam("id") Long id) {  
35 - DiyPageDO diyPage = diyPageService.getDiyPage(id);  
36 - return success(BeanUtils.toBean(diyPage, AppDiyPagePropertyRespVO.class));  
37 - }  
38 -  
39 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/diy/vo/AppDiyTemplatePropertyRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.diy.vo;  
2 -  
3 -import com.fasterxml.jackson.annotation.JsonRawValue;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import lombok.Data;  
6 -import lombok.ToString;  
7 -  
8 -@Schema(description = "用户 App - 装修模板属性 Response VO")  
9 -@Data  
10 -@ToString(callSuper = true)  
11 -public class AppDiyTemplatePropertyRespVO {  
12 -  
13 - @Schema(description = "装修模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31209")  
14 - private Long id;  
15 -  
16 - @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "默认主题")  
17 - private String name;  
18 -  
19 - @Schema(description = "模板属性", requiredMode = Schema.RequiredMode.REQUIRED, example = "{}")  
20 - @JsonRawValue  
21 - private String property;  
22 -  
23 - @Schema(description = "首页", requiredMode = Schema.RequiredMode.REQUIRED, example = "{}")  
24 - @JsonRawValue  
25 - private String home;  
26 -  
27 - @Schema(description = "我的", requiredMode = Schema.RequiredMode.REQUIRED, example = "{}")  
28 - @JsonRawValue  
29 - private String user;  
30 -  
31 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/kefu/vo/message/AppKeFuMessagePageReqVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.kefu.vo.message;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import jakarta.validation.constraints.Max;  
5 -import jakarta.validation.constraints.Min;  
6 -import jakarta.validation.constraints.NotNull;  
7 -import lombok.Data;  
8 -import org.springframework.format.annotation.DateTimeFormat;  
9 -  
10 -import java.time.LocalDateTime;  
11 -  
12 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
13 -  
14 -@Schema(description = "用户 App - 客服消息 Request VO")  
15 -@Data  
16 -public class AppKeFuMessagePageReqVO {  
17 -  
18 - private static final Integer LIMIT = 10;  
19 -  
20 - @Schema(description = "会话编号", example = "12580")  
21 - private Long conversationId;  
22 -  
23 - @Schema(description = "发送时间", example = "2024-03-27 12:00:00")  
24 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
25 - private LocalDateTime createTime;  
26 -  
27 - @Schema(description = "每次查询条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")  
28 - @NotNull(message = "每次查询条数不能为空")  
29 - @Min(value = 1, message = "每次查询条数最小值为 1")  
30 - @Max(value = 100, message = "每次查询最大值为 100")  
31 - private Integer limit = LIMIT;  
32 -  
33 -}  
34 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/kefu/vo/message/AppKeFuMessageSendReqVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.kefu.vo.message;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import jakarta.validation.constraints.NotEmpty;  
5 -import jakarta.validation.constraints.NotNull;  
6 -import lombok.Data;  
7 -  
8 -@Schema(description = "用户 App - 发送客服消息 Request VO")  
9 -@Data  
10 -public class AppKeFuMessageSendReqVO {  
11 -  
12 - @Schema(description = "消息类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
13 - @NotNull(message = "消息类型不能为空")  
14 - private Integer contentType;  
15 - @Schema(description = "消息", requiredMode = Schema.RequiredMode.REQUIRED)  
16 - @NotEmpty(message = "消息不能为空")  
17 - private String content;  
18 -  
19 - // ========== 后端设置的参数,前端无需传递 ==========  
20 -  
21 - @Schema(description = "发送人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24571", hidden = true)  
22 - private Long senderId;  
23 - @Schema(description = "发送人类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1", hidden = true)  
24 - private Integer senderType;  
25 -  
26 -}  
27 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/point/vo/AppPointActivityDetailRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.point.vo;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -  
6 -import java.util.List;  
7 -  
8 -@Schema(description = "用户 App - 积分商城活动的详细 Response VO")  
9 -@Data  
10 -public class AppPointActivityDetailRespVO {  
11 -  
12 - @Schema(description = "积分商城活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11373")  
13 - private Long id;  
14 -  
15 - @Schema(description = "积分商城活动商品", requiredMode = Schema.RequiredMode.REQUIRED, example = "19509")  
16 - private Long spuId;  
17 -  
18 - @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")  
19 - private Integer status;  
20 -  
21 - @Schema(description = "积分商城活动库存(剩余库存积分兑换时扣减)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")  
22 - private Integer stock;  
23 -  
24 - @Schema(description = "积分商城活动总库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")  
25 - private Integer totalStock;  
26 -  
27 - @Schema(description = "备注", example = "你说的对")  
28 - private String remark;  
29 -  
30 - @Schema(description = "商品信息数组", requiredMode = Schema.RequiredMode.REQUIRED)  
31 - private List<Product> products;  
32 -  
33 - //======================= 显示所需兑换积分最少的 SKU 信息 =======================  
34 -  
35 - @Schema(description = "兑换积分", requiredMode = Schema.RequiredMode.REQUIRED)  
36 - private Integer point;  
37 -  
38 - @Schema(description = "兑换金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "15860")  
39 - private Integer price;  
40 -  
41 - @Schema(description = "商品信息")  
42 - @Data  
43 - public static class Product {  
44 -  
45 - @Schema(description = "积分商城商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31718")  
46 - private Long id;  
47 -  
48 - @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2736")  
49 - private Long skuId;  
50 -  
51 - @Schema(description = "可兑换数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "3926")  
52 - private Integer count;  
53 -  
54 - @Schema(description = "兑换积分", requiredMode = Schema.RequiredMode.REQUIRED)  
55 - private Integer point;  
56 -  
57 - @Schema(description = "兑换金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "15860")  
58 - private Integer price;  
59 -  
60 - @Schema(description = "积分商城商品库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")  
61 - private Integer stock;  
62 -  
63 - }  
64 -  
65 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/point/vo/AppPointActivityRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.point.vo;  
2 -  
3 -import com.alibaba.excel.annotation.ExcelProperty;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import lombok.Data;  
6 -  
7 -@Schema(description = "用户 App - 积分商城活动 Response VO")  
8 -@Data  
9 -public class AppPointActivityRespVO {  
10 -  
11 - @Schema(description = "积分商城活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11373")  
12 - @ExcelProperty("积分商城活动编号")  
13 - private Long id;  
14 -  
15 - @Schema(description = "积分商城活动商品", requiredMode = Schema.RequiredMode.REQUIRED, example = "19509")  
16 - @ExcelProperty("积分商城活动商品")  
17 - private Long spuId;  
18 -  
19 - @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")  
20 - @ExcelProperty("活动状态")  
21 - private Integer status;  
22 -  
23 - @Schema(description = "积分商城活动库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")  
24 - @ExcelProperty("积分商城活动库存")  
25 - private Integer stock; // 剩余库存积分兑换时扣减  
26 -  
27 - @Schema(description = "积分商城活动总库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")  
28 - @ExcelProperty("积分商城活动总库存")  
29 - private Integer totalStock;  
30 -  
31 - // ========== 商品字段 ==========  
32 -  
33 - @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 name 读取  
34 - example = "618大促")  
35 - private String spuName;  
36 - @Schema(description = "商品主图", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 picUrl 读取  
37 - example = "https://www.iocoder.cn/xx.png")  
38 - private String picUrl;  
39 - @Schema(description = "商品市场价,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 marketPrice 读取  
40 - example = "50")  
41 - private Integer marketPrice;  
42 -  
43 - //======================= 显示所需兑换积分最少的 sku 信息 =======================  
44 -  
45 - @Schema(description = "兑换积分", requiredMode = Schema.RequiredMode.REQUIRED)  
46 - private Integer point;  
47 -  
48 - @Schema(description = "兑换金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "15860")  
49 - private Integer price;  
50 -  
51 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/reward/AppRewardActivityController.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.reward;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;  
5 -import cn.iocoder.yudao.module.promotion.controller.app.reward.vo.AppRewardActivityRespVO;  
6 -import cn.iocoder.yudao.module.promotion.dal.dataobject.reward.RewardActivityDO;  
7 -import cn.iocoder.yudao.module.promotion.service.reward.RewardActivityService;  
8 -import io.swagger.v3.oas.annotations.Operation;  
9 -import io.swagger.v3.oas.annotations.Parameter;  
10 -import io.swagger.v3.oas.annotations.tags.Tag;  
11 -import jakarta.annotation.Resource;  
12 -import jakarta.annotation.security.PermitAll;  
13 -import org.springframework.validation.annotation.Validated;  
14 -import org.springframework.web.bind.annotation.GetMapping;  
15 -import org.springframework.web.bind.annotation.RequestMapping;  
16 -import org.springframework.web.bind.annotation.RequestParam;  
17 -import org.springframework.web.bind.annotation.RestController;  
18 -  
19 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
20 -  
21 -@Tag(name = "用户 App - 满减送活动")  
22 -@RestController  
23 -@RequestMapping("/promotion/reward-activity")  
24 -@Validated  
25 -public class AppRewardActivityController {  
26 -  
27 - @Resource  
28 - private RewardActivityService rewardActivityService;  
29 -  
30 - @GetMapping("/get")  
31 - @Operation(summary = "获得满减送活动")  
32 - @Parameter(name = "id", description = "编号", required = true, example = "1024")  
33 - @PermitAll  
34 - public CommonResult<AppRewardActivityRespVO> getRewardActivity(@RequestParam("id") Long id) {  
35 - RewardActivityDO activity = rewardActivityService.getRewardActivity(id);  
36 - if (activity == null) {  
37 - return success(null);  
38 - }  
39 - // 拼接 Rule 描述  
40 - AppRewardActivityRespVO activityVO = BeanUtils.toBean(activity, AppRewardActivityRespVO.class);  
41 - for (int i = 0; i < activityVO.getRules().size(); i++) {  
42 - AppRewardActivityRespVO.Rule ruleVO = activityVO.getRules().get(i);  
43 - RewardActivityDO.Rule rule = activity.getRules().get(i);  
44 - ruleVO.setDescription(rewardActivityService.getRewardActivityRuleDescription(activity.getConditionType(), rule));  
45 - }  
46 - return success(activityVO);  
47 - }  
48 -  
49 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/reward/vo/AppRewardActivityRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.reward.vo;  
2 -  
3 -import cn.iocoder.yudao.module.promotion.controller.admin.reward.vo.RewardActivityBaseVO;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import lombok.Data;  
6 -  
7 -import java.time.LocalDateTime;  
8 -import java.util.List;  
9 -  
10 -@Schema(description = "用户 App - 满减送活动 Response VO")  
11 -@Data  
12 -public class AppRewardActivityRespVO {  
13 -  
14 - @Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
15 - private Integer id;  
16 -  
17 - @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
18 - private Integer status;  
19 -  
20 - @Schema(description = "活动标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "满啦满啦")  
21 - private String name;  
22 -  
23 - @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)  
24 - private LocalDateTime startTime;  
25 -  
26 - @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)  
27 - private LocalDateTime endTime;  
28 -  
29 - @Schema(description = "条件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
30 - private Integer conditionType;  
31 -  
32 - @Schema(description = "商品范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
33 - private Integer productScope;  
34 -  
35 - @Schema(description = "商品 SPU 编号的数组", example = "1,2,3")  
36 - private List<Long> productScopeValues;  
37 -  
38 - @Schema(description = "优惠规则的数组")  
39 - private List<Rule> rules;  
40 -  
41 - @Schema(description = "优惠规则")  
42 - @Data  
43 - public static class Rule extends RewardActivityBaseVO.Rule {  
44 -  
45 - @Schema(description = "规则描述")  
46 - private String description; // 通过 {@link #limit}、{@link #discountPrice} 等字段进行拼接  
47 -  
48 - }  
49 -  
50 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillConfigController.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.seckill;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
5 -import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO;  
6 -import cn.iocoder.yudao.module.promotion.convert.seckill.SeckillConfigConvert;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;  
8 -import cn.iocoder.yudao.module.promotion.service.seckill.SeckillConfigService;  
9 -import io.swagger.v3.oas.annotations.Operation;  
10 -import io.swagger.v3.oas.annotations.tags.Tag;  
11 -import jakarta.annotation.security.PermitAll;  
12 -import org.springframework.validation.annotation.Validated;  
13 -import org.springframework.web.bind.annotation.GetMapping;  
14 -import org.springframework.web.bind.annotation.RequestMapping;  
15 -import org.springframework.web.bind.annotation.RestController;  
16 -  
17 -import jakarta.annotation.Resource;  
18 -import java.util.List;  
19 -  
20 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
21 -  
22 -@Tag(name = "用户 App - 秒杀时间段")  
23 -@RestController  
24 -@RequestMapping("/promotion/seckill-config")  
25 -@Validated  
26 -public class AppSeckillConfigController {  
27 - @Resource  
28 - private SeckillConfigService configService;  
29 -  
30 - @GetMapping("/list")  
31 - @Operation(summary = "获得秒杀时间段列表")  
32 - @PermitAll  
33 - public CommonResult<List<AppSeckillConfigRespVO>> getSeckillConfigList() {  
34 - List<SeckillConfigDO> list = configService.getSeckillConfigListByStatus(CommonStatusEnum.ENABLE.getStatus());  
35 - return success(SeckillConfigConvert.INSTANCE.convertList2(list));  
36 - }  
37 -  
38 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityDetailRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -  
6 -import java.time.LocalDateTime;  
7 -import java.util.List;  
8 -  
9 -@Schema(description = "用户 App - 秒杀活动的详细 Response VO")  
10 -@Data  
11 -public class AppSeckillActivityDetailRespVO {  
12 -  
13 - @Schema(description = "秒杀活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
14 - private Long id;  
15 -  
16 - @Schema(description = "秒杀活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晚九点限时秒杀")  
17 - private String name;  
18 -  
19 - @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
20 - private Integer status;  
21 -  
22 - @Schema(description = "活动开始时间", requiredMode = Schema.RequiredMode.REQUIRED)  
23 - private LocalDateTime startTime;  
24 -  
25 - @Schema(description = "活动结束时间", requiredMode = Schema.RequiredMode.REQUIRED)  
26 - private LocalDateTime endTime;  
27 -  
28 - @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")  
29 - private Long spuId;  
30 -  
31 - @Schema(description = "总共限购数量", example = "10")  
32 - private Integer totalLimitCount;  
33 -  
34 - @Schema(description = "单次限购数量", example = "5")  
35 - private Integer singleLimitCount;  
36 -  
37 - @Schema(description = "秒杀库存(剩余)", requiredMode = Schema.RequiredMode.REQUIRED, example = "50")  
38 - private Integer stock;  
39 -  
40 - @Schema(description = "秒杀库存(总计)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")  
41 - private Integer totalStock;  
42 -  
43 - @Schema(description = "商品信息数组", requiredMode = Schema.RequiredMode.REQUIRED)  
44 - private List<Product> products;  
45 -  
46 - @Schema(description = "商品信息")  
47 - @Data  
48 - public static class Product {  
49 -  
50 - @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096")  
51 - private Long skuId;  
52 -  
53 - @Schema(description = "秒杀金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")  
54 - private Integer seckillPrice;  
55 -  
56 - @Schema(description = "秒杀限量库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "50")  
57 - private Integer stock;  
58 -  
59 - }  
60 -  
61 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityNowRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity;  
2 -  
3 -import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import lombok.Data;  
6 -  
7 -import java.util.List;  
8 -  
9 -@Schema(description = "用户 App - 当前秒杀活动 Response VO")  
10 -@Data  
11 -public class AppSeckillActivityNowRespVO {  
12 -  
13 - @Schema(description = "秒杀时间段", requiredMode = Schema.RequiredMode.REQUIRED)  
14 - private AppSeckillConfigRespVO config;  
15 -  
16 - @Schema(description = "秒杀活动数组", requiredMode = Schema.RequiredMode.REQUIRED)  
17 - private List<AppSeckillActivityRespVO> activities;  
18 -  
19 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityPageReqVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import lombok.Data;  
6 -import lombok.EqualsAndHashCode;  
7 -import lombok.ToString;  
8 -  
9 -@Schema(description = "用户 App - 商品评价分页 Request VO")  
10 -@Data  
11 -@EqualsAndHashCode(callSuper = true)  
12 -@ToString(callSuper = true)  
13 -public class AppSeckillActivityPageReqVO extends PageParam {  
14 -  
15 - @Schema(description = "秒杀配置编号", example = "1024")  
16 - private Long configId;  
17 -  
18 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -  
6 -@Schema(description = "用户 App - 秒杀活动 Response VO")  
7 -@Data  
8 -public class AppSeckillActivityRespVO {  
9 -  
10 - @Schema(description = "秒杀活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
11 - private Long id;  
12 -  
13 - @Schema(description = "秒杀活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晚九点限时秒杀")  
14 - private String name;  
15 -  
16 - @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")  
17 - private Long spuId;  
18 -  
19 - @Schema(description = "商品 SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "一个白菜")  
20 - private String spuName; // 从 SPU 的 name 读取  
21 -  
22 - @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 picUrl 读取  
23 - example = "https://www.iocoder.cn/xx.png")  
24 - private String picUrl;  
25 -  
26 - @Schema(description = "商品市场价,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 marketPrice 读取  
27 - example = "50")  
28 - private Integer marketPrice;  
29 -  
30 - @Schema(description = "秒杀活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
31 - private Integer status;  
32 -  
33 - @Schema(description = "秒杀库存(剩余)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")  
34 - private Integer stock;  
35 - @Schema(description = "秒杀库存(总共)", requiredMode = Schema.RequiredMode.REQUIRED, example = "200")  
36 - private Integer totalStock;  
37 -  
38 - @Schema(description = "秒杀金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")  
39 - private Integer seckillPrice;  
40 -  
41 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/vo/config/AppSeckillConfigRespVO.java deleted
1 -package cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -  
6 -import java.util.List;  
7 -  
8 -@Schema(description = "用户 App - 秒杀时间段 Response VO")  
9 -@Data  
10 -public class AppSeckillConfigRespVO {  
11 -  
12 - @Schema(description = "秒杀时间段编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
13 - private Long id;  
14 -  
15 - @Schema(description = "开始时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:00")  
16 - private String startTime;  
17 - @Schema(description = "结束时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:59")  
18 - private String endTime;  
19 -  
20 - @Schema(description = "轮播图", requiredMode = Schema.RequiredMode.REQUIRED)  
21 - private List<String> sliderPicUrls;  
22 -  
23 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/article/ArticleCategoryConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.*;  
5 -import cn.iocoder.yudao.module.promotion.controller.app.article.vo.category.AppArticleCategoryRespVO;  
6 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO;  
7 -import org.mapstruct.Mapper;  
8 -import org.mapstruct.factory.Mappers;  
9 -  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 文章分类 Convert  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@Mapper  
18 -public interface ArticleCategoryConvert {  
19 -  
20 - ArticleCategoryConvert INSTANCE = Mappers.getMapper(ArticleCategoryConvert.class);  
21 -  
22 - ArticleCategoryDO convert(ArticleCategoryCreateReqVO bean);  
23 -  
24 - ArticleCategoryDO convert(ArticleCategoryUpdateReqVO bean);  
25 -  
26 - ArticleCategoryRespVO convert(ArticleCategoryDO bean);  
27 -  
28 - List<ArticleCategoryRespVO> convertList(List<ArticleCategoryDO> list);  
29 -  
30 - PageResult<ArticleCategoryRespVO> convertPage(PageResult<ArticleCategoryDO> page);  
31 -  
32 - List<ArticleCategorySimpleRespVO> convertList03(List<ArticleCategoryDO> list);  
33 -  
34 - List<AppArticleCategoryRespVO> convertList04(List<ArticleCategoryDO> categoryList);  
35 -  
36 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/article/ArticleConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleRespVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticleRespVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO;  
9 -import org.mapstruct.Mapper;  
10 -import org.mapstruct.factory.Mappers;  
11 -  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 文章管理 Convert  
16 - *  
17 - * @author HUIHUI  
18 - */  
19 -@Mapper  
20 -public interface ArticleConvert {  
21 -  
22 - ArticleConvert INSTANCE = Mappers.getMapper(ArticleConvert.class);  
23 -  
24 - ArticleDO convert(ArticleCreateReqVO bean);  
25 -  
26 - ArticleDO convert(ArticleUpdateReqVO bean);  
27 -  
28 - ArticleRespVO convert(ArticleDO bean);  
29 -  
30 - List<ArticleRespVO> convertList(List<ArticleDO> list);  
31 -  
32 - PageResult<ArticleRespVO> convertPage(PageResult<ArticleDO> page);  
33 -  
34 - AppArticleRespVO convert01(ArticleDO article);  
35 -  
36 - PageResult<AppArticleRespVO> convertPage02(PageResult<ArticleDO> articlePage);  
37 -  
38 - List<AppArticleRespVO> convertList03(List<ArticleDO> articleCategoryListByRecommendHotAndRecommendBanner);  
39 -  
40 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/banner/BannerConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.banner;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerRespVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.app.banner.vo.AppBannerRespVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.banner.BannerDO;  
9 -import org.mapstruct.Mapper;  
10 -import org.mapstruct.factory.Mappers;  
11 -  
12 -import java.util.List;  
13 -  
14 -@Mapper  
15 -public interface BannerConvert {  
16 -  
17 - BannerConvert INSTANCE = Mappers.getMapper(BannerConvert.class);  
18 -  
19 - List<BannerRespVO> convertList(List<BannerDO> list);  
20 -  
21 - PageResult<BannerRespVO> convertPage(PageResult<BannerDO> pageResult);  
22 -  
23 - BannerRespVO convert(BannerDO banner);  
24 -  
25 - BannerDO convert(BannerCreateReqVO createReqVO);  
26 -  
27 - BannerDO convert(BannerUpdateReqVO updateReqVO);  
28 -  
29 - List<AppBannerRespVO> convertList01(List<BannerDO> bannerList);  
30 -  
31 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/bargain/BargainHelpConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.bargain;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.common.util.collection.MapUtils;  
5 -import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.help.BargainHelpRespVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.help.AppBargainHelpRespVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainHelpDO;  
9 -import org.mapstruct.Mapper;  
10 -import org.mapstruct.factory.Mappers;  
11 -  
12 -import java.util.List;  
13 -import java.util.Map;  
14 -  
15 -/**  
16 - * 砍价助力 Convert  
17 - *  
18 - * @author 芋道源码  
19 - */  
20 -@Mapper  
21 -public interface BargainHelpConvert {  
22 -  
23 - BargainHelpConvert INSTANCE = Mappers.getMapper(BargainHelpConvert.class);  
24 -  
25 - default PageResult<BargainHelpRespVO> convertPage(PageResult<BargainHelpDO> page,  
26 - Map<Long, MemberUserRespDTO> userMap) {  
27 - PageResult<BargainHelpRespVO> pageResult = convertPage(page);  
28 - // 拼接数据  
29 - pageResult.getList().forEach(record ->  
30 - MapUtils.findAndThen(userMap, record.getUserId(),  
31 - user -> record.setNickname(user.getNickname()).setAvatar(user.getAvatar())));  
32 - return pageResult;  
33 - }  
34 - PageResult<BargainHelpRespVO> convertPage(PageResult<BargainHelpDO> page);  
35 -  
36 - default List<AppBargainHelpRespVO> convertList(List<BargainHelpDO> helps,  
37 - Map<Long, MemberUserRespDTO> userMap) {  
38 - List<AppBargainHelpRespVO> helpVOs = convertList02(helps);  
39 - helpVOs.forEach(help ->  
40 - MapUtils.findAndThen(userMap, help.getUserId(),  
41 - user -> help.setNickname(user.getNickname()).setAvatar(user.getAvatar())));  
42 - return helpVOs;  
43 - }  
44 - List<AppBargainHelpRespVO> convertList02(List<BargainHelpDO> helps);  
45 -  
46 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/coupon/CouponConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.coupon;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponRespDTO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageItemRespVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon.AppCouponPageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;  
10 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponStatusEnum;  
11 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTemplateValidityTypeEnum;  
12 -import org.mapstruct.Mapper;  
13 -import org.mapstruct.factory.Mappers;  
14 -  
15 -import java.time.LocalDateTime;  
16 -import java.util.Collection;  
17 -  
18 -/**  
19 - * 优惠劵 Convert  
20 - *  
21 - * @author 芋道源码  
22 - */  
23 -@Mapper  
24 -public interface CouponConvert {  
25 -  
26 - CouponConvert INSTANCE = Mappers.getMapper(CouponConvert.class);  
27 -  
28 - PageResult<CouponPageItemRespVO> convertPage(PageResult<CouponDO> page);  
29 -  
30 - CouponRespDTO convert(CouponDO bean);  
31 -  
32 - default CouponDO convert(CouponTemplateDO template, Long userId) {  
33 - CouponDO couponDO = new CouponDO()  
34 - .setTemplateId(template.getId())  
35 - .setName(template.getName())  
36 - .setTakeType(template.getTakeType())  
37 - .setUsePrice(template.getUsePrice())  
38 - .setProductScope(template.getProductScope())  
39 - .setProductScopeValues(template.getProductScopeValues())  
40 - .setDiscountType(template.getDiscountType())  
41 - .setDiscountPercent(template.getDiscountPercent())  
42 - .setDiscountPrice(template.getDiscountPrice())  
43 - .setDiscountLimitPrice(template.getDiscountLimitPrice())  
44 - .setStatus(CouponStatusEnum.UNUSED.getStatus())  
45 - .setUserId(userId);  
46 - if (CouponTemplateValidityTypeEnum.DATE.getType().equals(template.getValidityType())) {  
47 - couponDO.setValidStartTime(template.getValidStartTime());  
48 - couponDO.setValidEndTime(template.getValidEndTime());  
49 - } else if (CouponTemplateValidityTypeEnum.TERM.getType().equals(template.getValidityType())) {  
50 - couponDO.setValidStartTime(LocalDateTime.now().plusDays(template.getFixedStartTerm()));  
51 - couponDO.setValidEndTime(LocalDateTime.now().plusDays(template.getFixedEndTerm()));  
52 - }  
53 - return couponDO;  
54 - }  
55 -  
56 - CouponPageReqVO convert(AppCouponPageReqVO pageReqVO, Collection<Long> userIds);  
57 -  
58 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/coupon/CouponTemplateConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.coupon;  
2 -  
3 -import cn.hutool.core.map.MapUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateCreateReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateRespVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateUpdateReqVO;  
9 -import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.template.AppCouponTemplatePageReqVO;  
10 -import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.template.AppCouponTemplateRespVO;  
11 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;  
12 -import org.mapstruct.Mapper;  
13 -import org.mapstruct.factory.Mappers;  
14 -  
15 -import java.util.List;  
16 -import java.util.Map;  
17 -  
18 -/**  
19 - * 优惠劵模板 Convert  
20 - *  
21 - * @author 芋道源码  
22 - */  
23 -@Mapper  
24 -public interface CouponTemplateConvert {  
25 -  
26 - CouponTemplateConvert INSTANCE = Mappers.getMapper(CouponTemplateConvert.class);  
27 -  
28 - CouponTemplateDO convert(CouponTemplateCreateReqVO bean);  
29 -  
30 - CouponTemplateDO convert(CouponTemplateUpdateReqVO bean);  
31 -  
32 - CouponTemplateRespVO convert(CouponTemplateDO bean);  
33 -  
34 - PageResult<CouponTemplateRespVO> convertPage(PageResult<CouponTemplateDO> page);  
35 -  
36 - CouponTemplatePageReqVO convert(AppCouponTemplatePageReqVO pageReqVO, List<Integer> canTakeTypes, Integer productScope, Long productScopeValue);  
37 -  
38 - PageResult<AppCouponTemplateRespVO> convertAppPage(PageResult<CouponTemplateDO> pageResult);  
39 -  
40 - List<AppCouponTemplateRespVO> convertAppList(List<CouponTemplateDO> list);  
41 -  
42 - default PageResult<AppCouponTemplateRespVO> convertAppPage(PageResult<CouponTemplateDO> pageResult, Map<Long, Boolean> userCanTakeMap) {  
43 - PageResult<AppCouponTemplateRespVO> result = convertAppPage(pageResult);  
44 - copyTo(result.getList(), userCanTakeMap);  
45 - return result;  
46 - }  
47 -  
48 - default List<AppCouponTemplateRespVO> convertAppList(List<CouponTemplateDO> list, Map<Long, Boolean> userCanTakeMap) {  
49 - List<AppCouponTemplateRespVO> result = convertAppList(list);  
50 - copyTo(result, userCanTakeMap);  
51 - return result;  
52 - }  
53 -  
54 - default void copyTo(List<AppCouponTemplateRespVO> list, Map<Long, Boolean> userCanTakeMap) {  
55 - for (AppCouponTemplateRespVO template : list) {  
56 - // 检查已领取数量是否超过限领数量  
57 - template.setCanTake(MapUtil.getBool(userCanTakeMap, template.getId(), false));  
58 - }  
59 - }  
60 -  
61 - List<CouponTemplateRespVO> convertList(List<CouponTemplateDO> list);  
62 -  
63 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/discount/DiscountActivityConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.discount;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityBaseVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityRespVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityUpdateReqVO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountActivityDO;  
10 -import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProductDO;  
11 -import org.mapstruct.Mapper;  
12 -import org.mapstruct.factory.Mappers;  
13 -  
14 -import java.util.List;  
15 -  
16 -/**  
17 - * 限时折扣活动 Convert  
18 - *  
19 - * @author 芋道源码  
20 - */  
21 -@Mapper  
22 -public interface DiscountActivityConvert {  
23 -  
24 - DiscountActivityConvert INSTANCE = Mappers.getMapper(DiscountActivityConvert.class);  
25 -  
26 - DiscountActivityDO convert(DiscountActivityCreateReqVO bean);  
27 -  
28 - DiscountActivityDO convert(DiscountActivityUpdateReqVO bean);  
29 -  
30 - DiscountActivityRespVO convert(DiscountActivityDO bean);  
31 -  
32 - List<DiscountActivityRespVO> convertList(List<DiscountActivityDO> list);  
33 -  
34 - List<DiscountActivityBaseVO.Product> convertList2(List<DiscountProductDO> list);  
35 -  
36 - PageResult<DiscountActivityRespVO> convertPage(PageResult<DiscountActivityDO> page);  
37 -  
38 - default PageResult<DiscountActivityRespVO> convertPage(PageResult<DiscountActivityDO> page,  
39 - List<DiscountProductDO> discountProductDOList) {  
40 - PageResult<DiscountActivityRespVO> pageResult = convertPage(page);  
41 - pageResult.getList().forEach(item -> item.setProducts(convertList2(discountProductDOList)));  
42 - return pageResult;  
43 - }  
44 -  
45 - DiscountProductDO convert(DiscountActivityBaseVO.Product bean);  
46 -  
47 - default DiscountActivityRespVO convert(DiscountActivityDO activity, List<DiscountProductDO> products) {  
48 - return BeanUtils.toBean(activity, DiscountActivityRespVO.class).setProducts(convertList2(products));  
49 - }  
50 -  
51 -}  
52 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/diy/DiyPageConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.*;  
5 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;  
6 -import org.mapstruct.Mapper;  
7 -import org.mapstruct.factory.Mappers;  
8 -  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * 装修页面 Convert  
13 - *  
14 - * @author owen  
15 - */  
16 -@Mapper  
17 -public interface DiyPageConvert {  
18 -  
19 - DiyPageConvert INSTANCE = Mappers.getMapper(DiyPageConvert.class);  
20 -  
21 - DiyPageDO convert(DiyPageCreateReqVO bean);  
22 -  
23 - DiyPageDO convert(DiyPageUpdateReqVO bean);  
24 -  
25 - DiyPageRespVO convert(DiyPageDO bean);  
26 -  
27 - List<DiyPageRespVO> convertList(List<DiyPageDO> list);  
28 -  
29 - PageResult<DiyPageRespVO> convertPage(PageResult<DiyPageDO> page);  
30 -  
31 - DiyPageCreateReqVO convertCreateVo(Long templateId, String name, String remark);  
32 -  
33 - DiyPagePropertyRespVO convertPropertyVo(DiyPageDO diyPage);  
34 -  
35 - DiyPageDO convert(DiyPagePropertyUpdateRequestVO updateReqVO);  
36 -  
37 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/diy/DiyTemplateConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.template.*;  
5 -import cn.iocoder.yudao.module.promotion.controller.app.diy.vo.AppDiyTemplatePropertyRespVO;  
6 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyTemplateDO;  
8 -import org.mapstruct.Mapper;  
9 -import org.mapstruct.factory.Mappers;  
10 -  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * 装修模板 Convert  
15 - *  
16 - * @author owen  
17 - */  
18 -@Mapper  
19 -public interface DiyTemplateConvert {  
20 -  
21 - DiyTemplateConvert INSTANCE = Mappers.getMapper(DiyTemplateConvert.class);  
22 -  
23 - DiyTemplateDO convert(DiyTemplateCreateReqVO bean);  
24 -  
25 - DiyTemplateDO convert(DiyTemplateUpdateReqVO bean);  
26 -  
27 - DiyTemplateRespVO convert(DiyTemplateDO bean);  
28 -  
29 - List<DiyTemplateRespVO> convertList(List<DiyTemplateDO> list);  
30 -  
31 - PageResult<DiyTemplateRespVO> convertPage(PageResult<DiyTemplateDO> page);  
32 -  
33 - DiyTemplatePropertyRespVO convertPropertyVo(DiyTemplateDO diyTemplate, List<DiyPageDO> pages);  
34 -  
35 - AppDiyTemplatePropertyRespVO convertPropertyVo2(DiyTemplateDO diyTemplate, String home, String user);  
36 -  
37 - DiyTemplateDO convert(DiyTemplatePropertyUpdateRequestVO updateReqVO);  
38 -  
39 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/SeckillConfigConvert.java deleted
1 -package cn.iocoder.yudao.module.promotion.convert.seckill;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigRespVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigSimpleRespVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;  
10 -import org.mapstruct.Mapper;  
11 -import org.mapstruct.factory.Mappers;  
12 -  
13 -import java.util.List;  
14 -  
15 -/**  
16 - * 秒杀时段 Convert  
17 - *  
18 - * @author 芋道源码  
19 - */  
20 -@Mapper  
21 -public interface SeckillConfigConvert {  
22 -  
23 - SeckillConfigConvert INSTANCE = Mappers.getMapper(SeckillConfigConvert.class);  
24 -  
25 - SeckillConfigDO convert(SeckillConfigCreateReqVO bean);  
26 -  
27 - SeckillConfigDO convert(SeckillConfigUpdateReqVO bean);  
28 -  
29 - SeckillConfigRespVO convert(SeckillConfigDO bean);  
30 -  
31 - List<SeckillConfigRespVO> convertList(List<SeckillConfigDO> list);  
32 -  
33 - List<SeckillConfigSimpleRespVO> convertList1(List<SeckillConfigDO> list);  
34 -  
35 - PageResult<SeckillConfigRespVO> convertPage(PageResult<SeckillConfigDO> page);  
36 -  
37 - List<AppSeckillConfigRespVO> convertList2(List<SeckillConfigDO> list);  
38 -  
39 - AppSeckillConfigRespVO convert1(SeckillConfigDO filteredConfig);  
40 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/article/ArticleCategoryDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -/**  
11 - * 文章分类 DO  
12 - *  
13 - * @author HUIHUI  
14 - */  
15 -@TableName("promotion_article_category")  
16 -@KeySequence("promotion_article_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
17 -@Data  
18 -@EqualsAndHashCode(callSuper = true)  
19 -@ToString(callSuper = true)  
20 -@Builder  
21 -@NoArgsConstructor  
22 -@AllArgsConstructor  
23 -public class ArticleCategoryDO extends BaseDO {  
24 -  
25 - /**  
26 - * 文章分类编号  
27 - */  
28 - @TableId  
29 - private Long id;  
30 - /**  
31 - * 文章分类名称  
32 - */  
33 - private String name;  
34 - /**  
35 - * 图标地址  
36 - */  
37 - private String picUrl;  
38 - /**  
39 - * 状态  
40 - *  
41 - * 枚举 {@link CommonStatusEnum}  
42 - */  
43 - private Integer status;  
44 - /**  
45 - * 排序  
46 - */  
47 - private Integer sort;  
48 -  
49 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/article/ArticleDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -/**  
11 - * 文章管理 DO  
12 - *  
13 - * @author HUIHUI  
14 - */  
15 -@TableName("promotion_article")  
16 -@KeySequence("promotion_article_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
17 -@Data  
18 -@EqualsAndHashCode(callSuper = true)  
19 -@ToString(callSuper = true)  
20 -@Builder  
21 -@NoArgsConstructor  
22 -@AllArgsConstructor  
23 -public class ArticleDO extends BaseDO {  
24 -  
25 - /**  
26 - * 文章管理编号  
27 - */  
28 - @TableId  
29 - private Long id;  
30 - /**  
31 - * 分类编号 ArticleCategoryDO#id  
32 - */  
33 - private Long categoryId;  
34 - /**  
35 - * 关联商品编号 ProductSpuDO#id  
36 - */  
37 - private Long spuId;  
38 - /**  
39 - * 文章标题  
40 - */  
41 - private String title;  
42 - /**  
43 - * 文章作者  
44 - */  
45 - private String author;  
46 - /**  
47 - * 文章封面图片地址  
48 - */  
49 - private String picUrl;  
50 - /**  
51 - * 文章简介  
52 - */  
53 - private String introduction;  
54 - /**  
55 - * 浏览次数  
56 - */  
57 - private Integer browseCount;  
58 - /**  
59 - * 排序  
60 - */  
61 - private Integer sort;  
62 - /**  
63 - * 状态  
64 - *  
65 - * 枚举 {@link CommonStatusEnum}  
66 - */  
67 - private Integer status;  
68 - /**  
69 - * 是否热门(小程序)  
70 - */  
71 - private Boolean recommendHot;  
72 - /**  
73 - * 是否轮播图(小程序)  
74 - */  
75 - private Boolean recommendBanner;  
76 - /**  
77 - * 文章内容  
78 - */  
79 - private String content;  
80 -  
81 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/banner/BannerDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.banner;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import cn.iocoder.yudao.module.promotion.enums.banner.BannerPositionEnum;  
6 -import com.baomidou.mybatisplus.annotation.KeySequence;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -/**  
11 - * banner DO  
12 - *  
13 - * @author xia  
14 - */  
15 -@TableName("promotion_banner")  
16 -@KeySequence("promotion_banner_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
17 -@Data  
18 -@EqualsAndHashCode(callSuper = true)  
19 -@ToString(callSuper = true)  
20 -@Builder  
21 -@NoArgsConstructor  
22 -@AllArgsConstructor  
23 -public class BannerDO extends BaseDO {  
24 -  
25 - /**  
26 - * 编号  
27 - */  
28 - private Long id;  
29 - /**  
30 - * 标题  
31 - */  
32 - private String title;  
33 - /**  
34 - * 跳转链接  
35 - */  
36 - private String url;  
37 - /**  
38 - * 图片链接  
39 - */  
40 - private String picUrl;  
41 - /**  
42 - * 排序  
43 - */  
44 - private Integer sort;  
45 -  
46 - /**  
47 - * 状态 {@link CommonStatusEnum}  
48 - */  
49 - private Integer status;  
50 -  
51 - /**  
52 - * 定位 {@link BannerPositionEnum}  
53 - */  
54 - private Integer position;  
55 -  
56 - /**  
57 - * 备注  
58 - */  
59 - private String memo;  
60 -  
61 - /**  
62 - * 点击次数  
63 - */  
64 - private Integer browseCount;  
65 -  
66 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/bargain/BargainActivityDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.bargain;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -import java.time.LocalDateTime;  
11 -  
12 -/**  
13 - * 砍价活动 DO  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@TableName("promotion_bargain_activity")  
18 -@KeySequence("promotion_bargain_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
19 -@Data  
20 -@EqualsAndHashCode(callSuper = true)  
21 -@ToString(callSuper = true)  
22 -@Builder  
23 -@NoArgsConstructor  
24 -@AllArgsConstructor  
25 -public class BargainActivityDO extends BaseDO {  
26 -  
27 - /**  
28 - * 砍价活动编号  
29 - */  
30 - @TableId  
31 - private Long id;  
32 -  
33 - /**  
34 - * 砍价活动名称  
35 - */  
36 - private String name;  
37 -  
38 - /**  
39 - * 活动开始时间  
40 - */  
41 - private LocalDateTime startTime;  
42 - /**  
43 - * 活动结束时间  
44 - */  
45 - private LocalDateTime endTime;  
46 -  
47 - /**  
48 - * 活动状态  
49 - *  
50 - * 枚举 {@link CommonStatusEnum}  
51 - */  
52 - private Integer status;  
53 -  
54 - /**  
55 - * 商品 SPU 编号  
56 - */  
57 - private Long spuId;  
58 - /**  
59 - * 商品 SKU 编号  
60 - */  
61 - private Long skuId;  
62 - /**  
63 - * 砍价起始价格,单位:分  
64 - */  
65 - private Integer bargainFirstPrice;  
66 - /**  
67 - * 砍价底价,单位:分  
68 - */  
69 - private Integer bargainMinPrice;  
70 -  
71 - /**  
72 - * 砍价库存(剩余库存砍价时扣减)  
73 - */  
74 - private Integer stock;  
75 - /**  
76 - * 砍价总库存  
77 - */  
78 - private Integer totalStock;  
79 -  
80 - /**  
81 - * 砍价人数  
82 - *  
83 - * 需要多少人,砍价才能成功,即 {@link BargainRecordDO#getStatus()} 更新为 {@link BargainRecordDO#getStatus()} 成功状态  
84 - */  
85 - private Integer helpMaxCount;  
86 - /**  
87 - * 帮砍次数  
88 - *  
89 - * 单个活动,用户可以帮砍的次数。  
90 - * 例如说:帮砍次数为 1 时,A 和 B 同时将该活动链接发给 C,C 只能帮其中一个人砍价。  
91 - */  
92 - private Integer bargainCount;  
93 -  
94 - /**  
95 - * 总限购数量  
96 - */  
97 - private Integer totalLimitCount;  
98 - /**  
99 - * 用户每次砍价的最小金额,单位:分  
100 - */  
101 - private Integer randomMinPrice;  
102 - /**  
103 - * 用户每次砍价的最大金额,单位:分  
104 - */  
105 - private Integer randomMaxPrice;  
106 -  
107 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/bargain/BargainHelpDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.bargain;  
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.*;  
8 -  
9 -/**  
10 - * 砍价助力 DO  
11 - *  
12 - * @author HUIHUI  
13 - */  
14 -@TableName("promotion_bargain_help")  
15 -@KeySequence("promotion_bargain_help_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
16 -@Data  
17 -@EqualsAndHashCode(callSuper = true)  
18 -@ToString(callSuper = true)  
19 -@Builder  
20 -@NoArgsConstructor  
21 -@AllArgsConstructor  
22 -public class BargainHelpDO extends BaseDO {  
23 -  
24 - /**  
25 - * 编号  
26 - */  
27 - @TableId  
28 - private Long id;  
29 -  
30 - /**  
31 - * 砍价活动编号  
32 - *  
33 - * 关联 {@link BargainActivityDO#getId()} 字段  
34 - */  
35 - private Long activityId;  
36 - /**  
37 - * 砍价记录编号  
38 - *  
39 - * 关联 {@link BargainRecordDO#getId()} 字段  
40 - */  
41 - private Long recordId;  
42 -  
43 - /**  
44 - * 用户编号  
45 - */  
46 - private Long userId;  
47 - /**  
48 - * 减少价格,单位:分  
49 - */  
50 - private Integer reducePrice;  
51 -  
52 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/bargain/BargainRecordDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.bargain;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.module.promotion.enums.bargain.BargainRecordStatusEnum;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -import java.time.LocalDateTime;  
11 -  
12 -/**  
13 - * 砍价记录 DO TODO  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@TableName("promotion_bargain_record")  
18 -@KeySequence("promotion_bargain_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
19 -@Data  
20 -@EqualsAndHashCode(callSuper = true)  
21 -@ToString(callSuper = true)  
22 -@Builder  
23 -@NoArgsConstructor  
24 -@AllArgsConstructor  
25 -public class BargainRecordDO extends BaseDO {  
26 -  
27 - /**  
28 - * 编号  
29 - */  
30 - @TableId  
31 - private Long id;  
32 - /**  
33 - * 用户编号  
34 - */  
35 - private Long userId;  
36 -  
37 - /**  
38 - * 砍价活动编号  
39 - *  
40 - * 关联 {@link BargainActivityDO#getId()} 字段  
41 - */  
42 - private Long activityId;  
43 - /**  
44 - * 商品 SPU 编号  
45 - */  
46 - private Long spuId;  
47 - /**  
48 - * 商品 SKU 编号  
49 - */  
50 - private Long skuId;  
51 -  
52 - /**  
53 - * 砍价起始价格,单位:分  
54 - */  
55 - private Integer bargainFirstPrice;  
56 - /**  
57 - * 当前砍价,单位:分  
58 - */  
59 - private Integer bargainPrice;  
60 -  
61 - /**  
62 - * 砍价状态  
63 - *  
64 - * 砍价成功的条件是:(2 选 1)  
65 - * 1. 砍价到 {@link BargainActivityDO#getBargainMinPrice()} 底价  
66 - * 2. 助力人数到达 {@link BargainActivityDO#getHelpMaxCount()} 人  
67 - *  
68 - * 枚举 {@link BargainRecordStatusEnum}  
69 - */  
70 - private Integer status;  
71 - /**  
72 - * 结束时间  
73 - */  
74 - private LocalDateTime endTime;  
75 -  
76 - /**  
77 - * 订单编号  
78 - */  
79 - private Long orderId;  
80 -  
81 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/combination/CombinationActivityDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.combination;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -import java.time.LocalDateTime;  
11 -  
12 -/**  
13 - * 拼团活动 DO  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@TableName("promotion_combination_activity")  
18 -@KeySequence("promotion_combination_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
19 -@Data  
20 -@EqualsAndHashCode(callSuper = true)  
21 -@ToString(callSuper = true)  
22 -@Builder  
23 -@NoArgsConstructor  
24 -@AllArgsConstructor  
25 -public class CombinationActivityDO extends BaseDO {  
26 -  
27 - /**  
28 - * 活动编号  
29 - */  
30 - @TableId  
31 - private Long id;  
32 - /**  
33 - * 拼团名称  
34 - */  
35 - private String name;  
36 - /**  
37 - * 商品 SPU 编号  
38 - *  
39 - * 关联 ProductSpuDO 的 id  
40 - */  
41 - private Long spuId;  
42 - /**  
43 - * 总限购数量  
44 - */  
45 - private Integer totalLimitCount;  
46 - /**  
47 - * 单次限购数量  
48 - */  
49 - private Integer singleLimitCount;  
50 - /**  
51 - * 开始时间  
52 - */  
53 - private LocalDateTime startTime;  
54 - /**  
55 - * 结束时间  
56 - */  
57 - private LocalDateTime endTime;  
58 - /**  
59 - * 几人团  
60 - */  
61 - private Integer userSize;  
62 - /**  
63 - * 虚拟成团  
64 - */  
65 - private Boolean virtualGroup;  
66 - /**  
67 - * 活动状态  
68 - *  
69 - * 枚举 {@link CommonStatusEnum}  
70 - */  
71 - private Integer status;  
72 - /**  
73 - * 限制时长(小时)  
74 - */  
75 - private Integer limitDuration;  
76 -  
77 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/combination/CombinationProductDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.combination;  
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.*;  
8 -  
9 -import java.time.LocalDateTime;  
10 -  
11 -/**  
12 - * 拼团商品 DO  
13 - *  
14 - * @author HUIHUI  
15 - */  
16 -@TableName("promotion_combination_product")  
17 -@KeySequence("promotion_combination_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
18 -@Data  
19 -@EqualsAndHashCode(callSuper = true)  
20 -@ToString(callSuper = true)  
21 -@Builder  
22 -@NoArgsConstructor  
23 -@AllArgsConstructor  
24 -public class CombinationProductDO extends BaseDO {  
25 -  
26 - /**  
27 - * 编号  
28 - */  
29 - @TableId  
30 - private Long id;  
31 - /**  
32 - * 拼团活动编号  
33 - */  
34 - private Long activityId;  
35 - /**  
36 - * 商品 SPU 编号  
37 - */  
38 - private Long spuId;  
39 - /**  
40 - * 商品 SKU 编号  
41 - */  
42 - private Long skuId;  
43 - /**  
44 - * 拼团价格,单位分  
45 - */  
46 - private Integer combinationPrice;  
47 -  
48 - /**  
49 - * 拼团商品状态  
50 - *  
51 - * 关联 {@link CombinationActivityDO#getStatus()}  
52 - */  
53 - private Integer activityStatus;  
54 - /**  
55 - * 活动开始时间点  
56 - *  
57 - * 冗余 {@link CombinationActivityDO#getStartTime()}  
58 - */  
59 - private LocalDateTime activityStartTime;  
60 - /**  
61 - * 活动结束时间点  
62 - *  
63 - * 冗余 {@link CombinationActivityDO#getEndTime()}  
64 - */  
65 - private LocalDateTime activityEndTime;  
66 -  
67 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/combination/CombinationRecordDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.combination;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -import java.time.LocalDateTime;  
11 -  
12 -// TODO 芋艿:把字段的顺序,和 do 顺序对齐下  
13 -/**  
14 - * 拼团记录 DO  
15 - *  
16 - * 1. 用户参与拼团时,会创建一条记录  
17 - * 2. 团长的拼团记录,和参团人的拼团记录,通过 {@link #headId} 关联  
18 - *  
19 - * @author HUIHUI  
20 - */  
21 -@TableName("promotion_combination_record")  
22 -@KeySequence("promotion_combination_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
23 -@Data  
24 -@EqualsAndHashCode(callSuper = true)  
25 -@ToString(callSuper = true)  
26 -@Builder  
27 -@NoArgsConstructor  
28 -@AllArgsConstructor  
29 -public class CombinationRecordDO extends BaseDO {  
30 -  
31 - /**  
32 - * 团长编号 - 团长  
33 - */  
34 - public static final Long HEAD_ID_GROUP = 0L;  
35 -  
36 - /**  
37 - * 编号,主键自增  
38 - */  
39 - @TableId  
40 - private Long id;  
41 -  
42 - /**  
43 - * 拼团活动编号  
44 - *  
45 - * 关联 {@link CombinationActivityDO#getId()}  
46 - */  
47 - private Long activityId;  
48 - /**  
49 - * 拼团商品单价  
50 - *  
51 - * 冗余 {@link CombinationProductDO#getCombinationPrice()}  
52 - */  
53 - private Integer combinationPrice;  
54 - /**  
55 - * SPU 编号  
56 - */  
57 - private Long spuId;  
58 - /**  
59 - * 商品名字  
60 - */  
61 - private String spuName;  
62 - /**  
63 - * 商品图片  
64 - */  
65 - private String picUrl;  
66 - /**  
67 - * SKU 编号  
68 - */  
69 - private Long skuId;  
70 - /**  
71 - * 购买的商品数量  
72 - */  
73 - private Integer count;  
74 -  
75 - /**  
76 - * 用户编号  
77 - */  
78 - private Long userId;  
79 -  
80 - /**  
81 - * 用户昵称  
82 - */  
83 - private String nickname;  
84 - /**  
85 - * 用户头像  
86 - */  
87 - private String avatar;  
88 -  
89 - /**  
90 - * 团长编号  
91 - *  
92 - * 关联 {@link CombinationRecordDO#getId()}  
93 - *  
94 - * 如果是团长,则它的值是 {@link #HEAD_ID_GROUP}  
95 - */  
96 - private Long headId;  
97 - /**  
98 - * 开团状态  
99 - *  
100 - * 关联 {@link CombinationRecordStatusEnum}  
101 - */  
102 - private Integer status;  
103 - /**  
104 - * 订单编号  
105 - */  
106 - private Long orderId;  
107 - /**  
108 - * 开团需要人数  
109 - *  
110 - * 关联 {@link CombinationActivityDO#getUserSize()}  
111 - */  
112 - private Integer userSize;  
113 - /**  
114 - * 已加入拼团人数  
115 - */  
116 - private Integer userCount;  
117 - /**  
118 - * 是否虚拟成团  
119 - *  
120 - * 默认为 false。  
121 - * 拼团过期都还没有成功,如果 {@link CombinationActivityDO#getVirtualGroup()} 为 true,则执行虚拟成团的逻辑,才会更新该字段为 true  
122 - */  
123 - private Boolean virtualGroup;  
124 -  
125 - /**  
126 - * 过期时间  
127 - *  
128 - * 基于 {@link CombinationRecordDO#getStartTime()} + {@link CombinationActivityDO#getLimitDuration()} 计算  
129 - */  
130 - private LocalDateTime expireTime;  
131 - /**  
132 - * 开始时间 (订单付款后开始的时间)  
133 - */  
134 - private LocalDateTime startTime;  
135 - /**  
136 - * 结束时间(成团时间/失败时间)  
137 - */  
138 - private LocalDateTime endTime;  
139 -  
140 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/coupon/CouponDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.coupon;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;  
5 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionDiscountTypeEnum;  
6 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;  
7 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponStatusEnum;  
8 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;  
9 -import com.baomidou.mybatisplus.annotation.KeySequence;  
10 -import com.baomidou.mybatisplus.annotation.TableField;  
11 -import com.baomidou.mybatisplus.annotation.TableId;  
12 -import com.baomidou.mybatisplus.annotation.TableName;  
13 -import lombok.Data;  
14 -import lombok.EqualsAndHashCode;  
15 -  
16 -import java.time.LocalDateTime;  
17 -import java.util.List;  
18 -  
19 -/**  
20 - * 优惠劵 DO  
21 - *  
22 - * @author 芋道源码  
23 - */  
24 -@TableName(value = "promotion_coupon", autoResultMap = true)  
25 -@KeySequence("promotion_coupon_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
26 -@Data  
27 -@EqualsAndHashCode(callSuper = true)  
28 -public class CouponDO extends BaseDO {  
29 -  
30 - // ========== 基本信息 BEGIN ==========  
31 - /**  
32 - * 优惠劵编号  
33 - */  
34 - @TableId  
35 - private Long id;  
36 - /**  
37 - * 优惠劵模板编号  
38 - *  
39 - * 关联 {@link CouponTemplateDO#getId()}  
40 - */  
41 - private Long templateId;  
42 - /**  
43 - * 优惠劵名  
44 - *  
45 - * 冗余 {@link CouponTemplateDO#getName()}  
46 - */  
47 - private String name;  
48 - /**  
49 - * 优惠码状态  
50 - *  
51 - * 枚举 {@link CouponStatusEnum}  
52 - */  
53 - private Integer status;  
54 -  
55 - // TODO 芋艿:发放 adminid?  
56 -  
57 - // ========== 基本信息 END ==========  
58 -  
59 - // ========== 领取情况 BEGIN ==========  
60 - /**  
61 - * 用户编号  
62 - *  
63 - * 关联 MemberUserDO 的 id 字段  
64 - */  
65 - private Long userId;  
66 - /**  
67 - * 领取类型  
68 - *  
69 - * 枚举 {@link CouponTakeTypeEnum}  
70 - */  
71 - private Integer takeType;  
72 - // ========== 领取情况 END ==========  
73 -  
74 - // ========== 使用规则 BEGIN ==========  
75 - /**  
76 - * 是否设置满多少金额可用,单位:分  
77 - *  
78 - * 冗余 {@link CouponTemplateDO#getUsePrice()}  
79 - */  
80 - private Integer usePrice;  
81 - /**  
82 - * 生效开始时间  
83 - */  
84 - private LocalDateTime validStartTime;  
85 - /**  
86 - * 生效结束时间  
87 - */  
88 - private LocalDateTime validEndTime;  
89 - /**  
90 - * 商品范围  
91 - *  
92 - * 枚举 {@link PromotionProductScopeEnum}  
93 - */  
94 - private Integer productScope;  
95 - /**  
96 - * 商品范围编号的数组  
97 - *  
98 - * 冗余 {@link CouponTemplateDO#getProductScopeValues()}  
99 - */  
100 - @TableField(typeHandler = LongListTypeHandler.class)  
101 - private List<Long> productScopeValues;  
102 - // ========== 使用规则 END ==========  
103 -  
104 - // ========== 使用效果 BEGIN ==========  
105 - /**  
106 - * 折扣类型  
107 - *  
108 - * 冗余 {@link CouponTemplateDO#getDiscountType()}  
109 - */  
110 - private Integer discountType;  
111 - /**  
112 - * 折扣百分比  
113 - *  
114 - * 冗余 {@link CouponTemplateDO#getDiscountPercent()}  
115 - */  
116 - private Integer discountPercent;  
117 - /**  
118 - * 优惠金额,单位:分  
119 - *  
120 - * 冗余 {@link CouponTemplateDO#getDiscountPrice()}  
121 - */  
122 - private Integer discountPrice;  
123 - /**  
124 - * 折扣上限,仅在 {@link #discountType} 等于 {@link PromotionDiscountTypeEnum#PERCENT} 时生效  
125 - *  
126 - * 冗余 {@link CouponTemplateDO#getDiscountLimitPrice()}  
127 - */  
128 - private Integer discountLimitPrice;  
129 - // ========== 使用效果 END ==========  
130 -  
131 - // ========== 使用情况 BEGIN ==========  
132 - /**  
133 - * 使用订单号  
134 - */  
135 - private Long useOrderId;  
136 - /**  
137 - * 使用时间  
138 - */  
139 - private LocalDateTime useTime;  
140 -  
141 - // ========== 使用情况 END ==========  
142 -  
143 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/coupon/CouponTemplateDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.coupon;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;  
6 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionDiscountTypeEnum;  
7 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;  
8 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;  
9 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTemplateValidityTypeEnum;  
10 -import com.baomidou.mybatisplus.annotation.KeySequence;  
11 -import com.baomidou.mybatisplus.annotation.TableField;  
12 -import com.baomidou.mybatisplus.annotation.TableId;  
13 -import com.baomidou.mybatisplus.annotation.TableName;  
14 -import lombok.Data;  
15 -import lombok.EqualsAndHashCode;  
16 -  
17 -import java.time.LocalDateTime;  
18 -import java.util.List;  
19 -  
20 -/**  
21 - * 优惠劵模板 DO  
22 - *  
23 - * 当用户领取时,会生成 {@link CouponDO} 优惠劵  
24 - *  
25 - * @author 芋道源码  
26 - */  
27 -@TableName(value = "promotion_coupon_template", autoResultMap = true)  
28 -@KeySequence("promotion_coupon_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
29 -@Data  
30 -@EqualsAndHashCode(callSuper = true)  
31 -public class CouponTemplateDO extends BaseDO {  
32 -  
33 - /**  
34 - * 不限制领取数量  
35 - */  
36 - public static final Integer TIME_LIMIT_COUNT_MAX = -1;  
37 -  
38 - // ========== 基本信息 BEGIN ==========  
39 - /**  
40 - * 模板编号,自增唯一  
41 - */  
42 - @TableId  
43 - private Long id;  
44 - /**  
45 - * 优惠劵名  
46 - */  
47 - private String name;  
48 - /**  
49 - * 优惠券说明  
50 - */  
51 - private String description;  
52 - /**  
53 - * 状态  
54 - *  
55 - * 枚举 {@link CommonStatusEnum}  
56 - */  
57 - // TODO 芋艿:要不要改成 3 个状态??  
58 - private Integer status;  
59 -  
60 - // ========== 基本信息 END ==========  
61 -  
62 - // ========== 领取规则 BEGIN ==========  
63 - /**  
64 - * 发放数量  
65 - *  
66 - * -1 - 则表示不限制发放数量  
67 - */  
68 - private Integer totalCount;  
69 - /**  
70 - * 每人限领个数  
71 - *  
72 - * -1 - 则表示不限制  
73 - */  
74 - private Integer takeLimitCount;  
75 - /**  
76 - * 领取方式  
77 - *  
78 - * 枚举 {@link CouponTakeTypeEnum}  
79 - */  
80 - private Integer takeType;  
81 - // ========== 领取规则 END ==========  
82 -  
83 - // ========== 使用规则 BEGIN ==========  
84 - /**  
85 - * 是否设置满多少金额可用,单位:分  
86 - *  
87 - * 0 - 不限制  
88 - * 大于 0 - 多少金额可用  
89 - */  
90 - private Integer usePrice;  
91 - /**  
92 - * 商品范围  
93 - *  
94 - * 枚举 {@link PromotionProductScopeEnum}  
95 - */  
96 - private Integer productScope;  
97 - /**  
98 - * 商品范围编号的数组  
99 - */  
100 - @TableField(typeHandler = LongListTypeHandler.class)  
101 - private List<Long> productScopeValues;  
102 - /**  
103 - * 生效日期类型  
104 - *  
105 - * 枚举 {@link CouponTemplateValidityTypeEnum}  
106 - */  
107 - private Integer validityType;  
108 - /**  
109 - * 固定日期 - 生效开始时间  
110 - *  
111 - * 当 {@link #validityType} 为 {@link CouponTemplateValidityTypeEnum#DATE}  
112 - */  
113 - private LocalDateTime validStartTime;  
114 - /**  
115 - * 固定日期 - 生效结束时间  
116 - *  
117 - * 当 {@link #validityType} 为 {@link CouponTemplateValidityTypeEnum#DATE}  
118 - */  
119 - private LocalDateTime validEndTime;  
120 - /**  
121 - * 领取日期 - 开始天数  
122 - *  
123 - * 当 {@link #validityType} 为 {@link CouponTemplateValidityTypeEnum#TERM}  
124 - */  
125 - private Integer fixedStartTerm;  
126 - /**  
127 - * 领取日期 - 结束天数  
128 - *  
129 - * 当 {@link #validityType} 为 {@link CouponTemplateValidityTypeEnum#TERM}  
130 - */  
131 - private Integer fixedEndTerm;  
132 - // ========== 使用规则 END ==========  
133 -  
134 - // ========== 使用效果 BEGIN ==========  
135 - /**  
136 - * 折扣类型  
137 - *  
138 - * 枚举 {@link PromotionDiscountTypeEnum}  
139 - */  
140 - private Integer discountType;  
141 - /**  
142 - * 折扣百分比  
143 - *  
144 - * 例如,80% 为 80  
145 - */  
146 - private Integer discountPercent;  
147 - /**  
148 - * 优惠金额,单位:分  
149 - *  
150 - * 当 {@link #discountType} 为 {@link PromotionDiscountTypeEnum#PRICE} 生效  
151 - */  
152 - private Integer discountPrice;  
153 - /**  
154 - * 折扣上限,仅在 {@link #discountType} 等于 {@link PromotionDiscountTypeEnum#PERCENT} 时生效  
155 - *  
156 - * 例如,折扣上限为 20 元,当使用 8 折优惠券,订单金额为 1000 元时,最高只可折扣 20 元,而非 80 元。  
157 - */  
158 - private Integer discountLimitPrice;  
159 - // ========== 使用效果 END ==========  
160 -  
161 - // ========== 统计信息 BEGIN ==========  
162 - /**  
163 - * 领取优惠券的数量  
164 - */  
165 - private Integer takeCount;  
166 - /**  
167 - * 使用优惠券的次数  
168 - */  
169 - private Integer useCount;  
170 -  
171 - // ========== 统计信息 END ==========  
172 -  
173 - // TODO 芋艿:领取开始时间、领取结束时间  
174 -  
175 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/discount/DiscountActivityDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.discount;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
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.time.LocalDateTime;  
12 -  
13 -/**  
14 - * 限时折扣活动 DO  
15 - *  
16 - * 一个活动下,可以有 {@link DiscountProductDO} 商品;  
17 - * 一个商品,在指定时间段内,只能属于一个活动;  
18 - *  
19 - * @author 芋道源码  
20 - */  
21 -@TableName(value = "promotion_discount_activity", autoResultMap = true)  
22 -@KeySequence("promotion_discount_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
23 -@Data  
24 -@EqualsAndHashCode(callSuper = true)  
25 -public class DiscountActivityDO extends BaseDO {  
26 -  
27 - /**  
28 - * 活动编号,主键自增  
29 - */  
30 - @TableId  
31 - private Long id;  
32 - /**  
33 - * 活动标题  
34 - */  
35 - private String name;  
36 - /**  
37 - * 状态  
38 - *  
39 - * 枚举 {@link CommonStatusEnum}  
40 - *  
41 - * 活动被关闭后,不允许再次开启。  
42 - */  
43 - private Integer status;  
44 - /**  
45 - * 开始时间  
46 - */  
47 - private LocalDateTime startTime;  
48 - /**  
49 - * 结束时间  
50 - */  
51 - private LocalDateTime endTime;  
52 - /**  
53 - * 备注  
54 - */  
55 - private String remark;  
56 -  
57 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/discount/DiscountProductDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.discount;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionDiscountTypeEnum;  
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.time.LocalDateTime;  
12 -  
13 -/**  
14 - * 限时折扣商品 DO  
15 - *  
16 - * @author 芋道源码  
17 - */  
18 -@TableName(value = "promotion_discount_product", autoResultMap = true)  
19 -@KeySequence("promotion_discount_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
20 -@Data  
21 -@EqualsAndHashCode(callSuper = true)  
22 -public class DiscountProductDO extends BaseDO {  
23 -  
24 - /**  
25 - * 编号,主键自增  
26 - */  
27 - @TableId  
28 - private Long id;  
29 -  
30 - /**  
31 - * 限时折扣活动的编号  
32 - *  
33 - * 关联 {@link DiscountActivityDO#getId()}  
34 - */  
35 - private Long activityId;  
36 -  
37 - /**  
38 - * 商品 SPU 编号  
39 - *  
40 - * 关联 ProductSpuDO 的 id 编号  
41 - */  
42 - private Long spuId;  
43 - /**  
44 - * 商品 SKU 编号  
45 - *  
46 - * 关联 ProductSkuDO 的 id 编号  
47 - */  
48 - private Long skuId;  
49 -  
50 - /**  
51 - * 折扣类型  
52 - *  
53 - * 枚举 {@link PromotionDiscountTypeEnum}  
54 - */  
55 - private Integer discountType;  
56 - /**  
57 - * 折扣百分比  
58 - *  
59 - * 例如,80% 为 80  
60 - */  
61 - private Integer discountPercent;  
62 - /**  
63 - * 优惠金额,单位:分  
64 - *  
65 - * 当 {@link #discountType} 为 {@link PromotionDiscountTypeEnum#PRICE} 生效  
66 - */  
67 - private Integer discountPrice;  
68 -  
69 - /**  
70 - * 活动标题  
71 - *  
72 - * 冗余 {@link DiscountActivityDO#getName()}  
73 - */  
74 - private String activityName;  
75 - /**  
76 - * 活动状态  
77 - *  
78 - * 冗余 {@link DiscountActivityDO#getStatus()}  
79 - */  
80 - private Integer activityStatus;  
81 - /**  
82 - * 活动开始时间点  
83 - *  
84 - * 冗余 {@link DiscountActivityDO#getStartTime()}  
85 - */  
86 - private LocalDateTime activityStartTime;  
87 - /**  
88 - * 活动结束时间点  
89 - *  
90 - * 冗余 {@link DiscountActivityDO#getEndTime()}  
91 - */  
92 - private LocalDateTime activityEndTime;  
93 -  
94 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/diy/DiyPageDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableField;  
7 -import com.baomidou.mybatisplus.annotation.TableId;  
8 -import com.baomidou.mybatisplus.annotation.TableName;  
9 -import lombok.*;  
10 -  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * 装修页面 DO  
15 - *  
16 - * @author owen  
17 - */  
18 -@TableName(value = "promotion_diy_page", autoResultMap = true)  
19 -@KeySequence("promotion_diy_page_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
20 -@Data  
21 -@EqualsAndHashCode(callSuper = true)  
22 -@ToString(callSuper = true)  
23 -@Builder  
24 -@NoArgsConstructor  
25 -@AllArgsConstructor  
26 -public class DiyPageDO extends BaseDO {  
27 -  
28 - /**  
29 - * 装修页面编号  
30 - */  
31 - @TableId  
32 - private Long id;  
33 - /**  
34 - * 装修模板编号  
35 - *  
36 - * 关联 {@link DiyTemplateDO#getId()}  
37 - */  
38 - private Long templateId;  
39 - /**  
40 - * 页面名称  
41 - */  
42 - private String name;  
43 - /**  
44 - * 备注  
45 - */  
46 - private String remark;  
47 - /**  
48 - * 预览图,多个逗号分隔  
49 - */  
50 - @TableField(typeHandler = StringListTypeHandler.class)  
51 - private List<String> previewPicUrls;  
52 - /**  
53 - * 页面属性,JSON 格式  
54 - */  
55 - private String property;  
56 -  
57 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/diy/DiyTemplateDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableField;  
7 -import com.baomidou.mybatisplus.annotation.TableId;  
8 -import com.baomidou.mybatisplus.annotation.TableName;  
9 -import lombok.*;  
10 -  
11 -import java.time.LocalDateTime;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 装修模板 DO  
16 - *  
17 - * 1. 新建一个模版,下面可以包含多个 {@link DiyPageDO} 页面,例如说首页、我的  
18 - * 2. 如果需要使用某个模版,则将 {@link #used} 设置为 true,表示已使用,有且仅有一个  
19 - *  
20 - * @author owen  
21 - */  
22 -@TableName(value = "promotion_diy_template", autoResultMap = true)  
23 -@KeySequence("promotion_diy_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
24 -@Data  
25 -@EqualsAndHashCode(callSuper = true)  
26 -@ToString(callSuper = true)  
27 -@Builder  
28 -@NoArgsConstructor  
29 -@AllArgsConstructor  
30 -public class DiyTemplateDO extends BaseDO {  
31 -  
32 - /**  
33 - * 装修模板编号  
34 - */  
35 - @TableId  
36 - private Long id;  
37 - /**  
38 - * 模板名称  
39 - */  
40 - private String name;  
41 - /**  
42 - * 是否使用  
43 - */  
44 - private Boolean used;  
45 - /**  
46 - * 使用时间  
47 - */  
48 - private LocalDateTime usedTime;  
49 - /**  
50 - * 备注  
51 - */  
52 - private String remark;  
53 -  
54 - /**  
55 - * 预览图  
56 - */  
57 - @TableField(typeHandler = StringListTypeHandler.class)  
58 - private List<String> previewPicUrls;  
59 - /**  
60 - * uni-app 底部导航属性,JSON 格式  
61 - */  
62 - private String property;  
63 -  
64 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/kefu/KeFuConversationDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.kefu;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;  
5 -import cn.iocoder.yudao.module.promotion.enums.kefu.KeFuMessageContentTypeEnum;  
6 -import com.baomidou.mybatisplus.annotation.KeySequence;  
7 -import com.baomidou.mybatisplus.annotation.TableId;  
8 -import com.baomidou.mybatisplus.annotation.TableName;  
9 -import lombok.*;  
10 -  
11 -import java.time.LocalDateTime;  
12 -  
13 -/**  
14 - * 客服会话 DO  
15 - *  
16 - * @author HUIHUI  
17 - */  
18 -@TableName("promotion_kefu_conversation")  
19 -@KeySequence("promotion_kefu_conversation_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
20 -@Data  
21 -@EqualsAndHashCode(callSuper = true)  
22 -@ToString(callSuper = true)  
23 -@Builder  
24 -@NoArgsConstructor  
25 -@AllArgsConstructor  
26 -public class KeFuConversationDO extends BaseDO {  
27 -  
28 - /**  
29 - * 编号  
30 - */  
31 - @TableId  
32 - private Long id;  
33 - /**  
34 - * 会话所属用户  
35 - *  
36 - * 关联 {@link MemberUserRespDTO#getId()}  
37 - */  
38 - private Long userId;  
39 -  
40 - /**  
41 - * 最后聊天时间  
42 - */  
43 - private LocalDateTime lastMessageTime;  
44 - /**  
45 - * 最后聊天内容  
46 - */  
47 - private String lastMessageContent;  
48 - /**  
49 - * 最后发送的消息类型  
50 - *  
51 - * 枚举 {@link KeFuMessageContentTypeEnum}  
52 - */  
53 - private Integer lastMessageContentType;  
54 -  
55 - //======================= 会话操作相关 =======================  
56 -  
57 - /**  
58 - * 管理端置顶  
59 - */  
60 - private Boolean adminPinned;  
61 - /**  
62 - * 用户是否可见  
63 - *  
64 - * false - 可见,默认值  
65 - * true - 不可见,用户删除时设置为 true  
66 - */  
67 - private Boolean userDeleted;  
68 - /**  
69 - * 管理员是否可见  
70 - *  
71 - * false - 可见,默认值  
72 - * true - 不可见,管理员删除时设置为 true  
73 - */  
74 - private Boolean adminDeleted;  
75 -  
76 - /**  
77 - * 管理员未读消息数  
78 - *  
79 - * 用户发送消息时增加,管理员查看后扣减  
80 - */  
81 - private Integer adminUnreadMessageCount;  
82 -  
83 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/kefu/KeFuMessageDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.kefu;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import cn.iocoder.yudao.module.promotion.enums.kefu.KeFuMessageContentTypeEnum;  
6 -import com.baomidou.mybatisplus.annotation.KeySequence;  
7 -import com.baomidou.mybatisplus.annotation.TableId;  
8 -import com.baomidou.mybatisplus.annotation.TableName;  
9 -import lombok.*;  
10 -  
11 -/**  
12 - * 客服消息 DO  
13 - *  
14 - * @author HUIHUI  
15 - */  
16 -@TableName("promotion_kefu_message")  
17 -@KeySequence("promotion_kefu_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
18 -@Data  
19 -@EqualsAndHashCode(callSuper = true)  
20 -@ToString(callSuper = true)  
21 -@Builder  
22 -@NoArgsConstructor  
23 -@AllArgsConstructor  
24 -public class KeFuMessageDO extends BaseDO {  
25 -  
26 - /**  
27 - * 编号  
28 - */  
29 - @TableId  
30 - private Long id;  
31 - /**  
32 - * 会话编号  
33 - *  
34 - * 关联 {@link KeFuConversationDO#getId()}  
35 - */  
36 - private Long conversationId;  
37 -  
38 - /**  
39 - * 发送人编号  
40 - *  
41 - * 存储的是用户编号  
42 - */  
43 - private Long senderId;  
44 - /**  
45 - * 发送人类型  
46 - *  
47 - * 枚举,{@link UserTypeEnum}  
48 - */  
49 - private Integer senderType;  
50 - /**  
51 - * 接收人编号  
52 - *  
53 - * 存储的是用户编号  
54 - */  
55 - private Long receiverId;  
56 - /**  
57 - * 接收人类型  
58 - *  
59 - * 枚举,{@link UserTypeEnum}  
60 - */  
61 - private Integer receiverType;  
62 -  
63 - /**  
64 - * 消息类型  
65 - *  
66 - * 枚举 {@link KeFuMessageContentTypeEnum}  
67 - */  
68 - private Integer contentType;  
69 - /**  
70 - * 消息  
71 - */  
72 - private String content;  
73 -  
74 - //======================= 消息相关状态 =======================  
75 -  
76 - /**  
77 - * 是/否已读  
78 - */  
79 - private Boolean readStatus;  
80 -  
81 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/point/PointActivityDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.point;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
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 -import lombok.ToString;  
11 -  
12 -/**  
13 - * 积分商城活动 DO  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@TableName(value = "promotion_point_activity", autoResultMap = true)  
18 -@KeySequence("promotion_point_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
19 -@Data  
20 -@EqualsAndHashCode(callSuper = true)  
21 -@ToString(callSuper = true)  
22 -public class PointActivityDO extends BaseDO {  
23 -  
24 - /**  
25 - * 积分商城活动编号  
26 - */  
27 - @TableId  
28 - private Long id;  
29 - /**  
30 - * 积分商城活动商品  
31 - */  
32 - private Long spuId;  
33 - /**  
34 - * 活动状态  
35 - *  
36 - * 枚举 {@link CommonStatusEnum 对应的类}  
37 - */  
38 - private Integer status;  
39 - /**  
40 - * 备注  
41 - */  
42 - private String remark;  
43 - /**  
44 - * 排序  
45 - */  
46 - private Integer sort;  
47 -  
48 - /**  
49 - * 积分商城活动库存(剩余库存积分兑换时扣减)  
50 - */  
51 - private Integer stock;  
52 - /**  
53 - * 积分商城活动总库存  
54 - */  
55 - private Integer totalStock;  
56 -  
57 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/point/PointProductDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.point;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -/**  
11 - * 积分商城商品 DO  
12 - *  
13 - * @author HUIHUI  
14 - */  
15 -@TableName("promotion_point_product")  
16 -@KeySequence("promotion_point_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
17 -@Data  
18 -@EqualsAndHashCode(callSuper = true)  
19 -@ToString(callSuper = true)  
20 -@Builder  
21 -@NoArgsConstructor  
22 -@AllArgsConstructor  
23 -public class PointProductDO extends BaseDO {  
24 -  
25 - /**  
26 - * 积分商城商品编号  
27 - */  
28 - @TableId  
29 - private Long id;  
30 - /**  
31 - * 积分商城活动 id  
32 - *  
33 - * 关联 {@link PointActivityDO#getId()}  
34 - */  
35 - private Long activityId;  
36 - /**  
37 - * 商品 SPU 编号  
38 - */  
39 - private Long spuId;  
40 - /**  
41 - * 商品 SKU 编号  
42 - */  
43 - private Long skuId;  
44 - /**  
45 - * 可兑换次数  
46 - */  
47 - private Integer count;  
48 - /**  
49 - * 所需兑换积分  
50 - */  
51 - private Integer point;  
52 - /**  
53 - * 所需兑换金额,单位:分  
54 - */  
55 - private Integer price;  
56 - /**  
57 - * 积分商城商品库存  
58 - */  
59 - private Integer stock;  
60 - /**  
61 - * 积分商城商品状态  
62 - *  
63 - * 枚举 {@link CommonStatusEnum 对应的类}  
64 - */  
65 - private Integer activityStatus;  
66 -  
67 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/reward/RewardActivityDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.reward;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;  
6 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionConditionTypeEnum;  
7 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;  
8 -import com.baomidou.mybatisplus.annotation.KeySequence;  
9 -import com.baomidou.mybatisplus.annotation.TableField;  
10 -import com.baomidou.mybatisplus.annotation.TableId;  
11 -import com.baomidou.mybatisplus.annotation.TableName;  
12 -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;  
13 -import lombok.Data;  
14 -import lombok.EqualsAndHashCode;  
15 -  
16 -import java.io.Serializable;  
17 -import java.time.LocalDateTime;  
18 -import java.util.List;  
19 -import java.util.Map;  
20 -  
21 -/**  
22 - * 满减送活动 DO  
23 - *  
24 - * @author 芋道源码  
25 - */  
26 -@TableName(value = "promotion_reward_activity", autoResultMap = true)  
27 -@KeySequence("promotion_reward_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
28 -@Data  
29 -@EqualsAndHashCode(callSuper = true)  
30 -public class RewardActivityDO extends BaseDO {  
31 -  
32 - /**  
33 - * 活动编号,主键自增  
34 - */  
35 - @TableId  
36 - private Long id;  
37 - /**  
38 - * 活动标题  
39 - */  
40 - private String name;  
41 - /**  
42 - * 状态  
43 - *  
44 - * 枚举 {@link CommonStatusEnum}  
45 - */  
46 - private Integer status;  
47 - /**  
48 - * 开始时间  
49 - */  
50 - private LocalDateTime startTime;  
51 - /**  
52 - * 结束时间  
53 - */  
54 - private LocalDateTime endTime;  
55 - /**  
56 - * 备注  
57 - */  
58 - private String remark;  
59 - /**  
60 - * 条件类型  
61 - *  
62 - * 枚举 {@link PromotionConditionTypeEnum}  
63 - */  
64 - private Integer conditionType;  
65 - /**  
66 - * 商品范围  
67 - *  
68 - * 枚举 {@link PromotionProductScopeEnum}  
69 - */  
70 - private Integer productScope;  
71 - /**  
72 - * 商品 SPU 编号的数组  
73 - */  
74 - @TableField(typeHandler = LongListTypeHandler.class)  
75 - private List<Long> productScopeValues;  
76 - /**  
77 - * 优惠规则的数组  
78 - */  
79 - @TableField(typeHandler = JacksonTypeHandler.class)  
80 - private List<Rule> rules;  
81 -  
82 - /**  
83 - * 优惠规则  
84 - */  
85 - @Data  
86 - public static class Rule implements Serializable {  
87 -  
88 - /**  
89 - * 优惠门槛  
90 - *  
91 - * 1. 满 N 元,单位:分  
92 - * 2. 满 N 件  
93 - */  
94 - private Integer limit;  
95 - /**  
96 - * 优惠价格,单位:分  
97 - */  
98 - private Integer discountPrice;  
99 - /**  
100 - * 是否包邮  
101 - */  
102 - private Boolean freeDelivery;  
103 - /**  
104 - * 赠送的积分  
105 - */  
106 - private Integer point;  
107 - /**  
108 - * 赠送的优惠劵  
109 - *  
110 - * key: 优惠劵模版编号  
111 - * value:对应的优惠券数量  
112 - *  
113 - * 目的:用于订单支付后赠送优惠券  
114 - */  
115 - private Map<Long, Integer> giveCouponTemplateCounts;  
116 -  
117 - }  
118 -  
119 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/SeckillActivityDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;  
6 -import com.baomidou.mybatisplus.annotation.KeySequence;  
7 -import com.baomidou.mybatisplus.annotation.TableField;  
8 -import com.baomidou.mybatisplus.annotation.TableId;  
9 -import com.baomidou.mybatisplus.annotation.TableName;  
10 -import lombok.Data;  
11 -import lombok.EqualsAndHashCode;  
12 -import lombok.ToString;  
13 -  
14 -import java.time.LocalDateTime;  
15 -import java.util.List;  
16 -  
17 -/**  
18 - * 秒杀活动 DO  
19 - *  
20 - * @author halfninety  
21 - */  
22 -@TableName(value = "promotion_seckill_activity", autoResultMap = true)  
23 -@KeySequence("promotion_seckill_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
24 -@Data  
25 -@EqualsAndHashCode(callSuper = true)  
26 -@ToString(callSuper = true)  
27 -public class SeckillActivityDO extends BaseDO {  
28 -  
29 - /**  
30 - * 秒杀活动编号  
31 - */  
32 - @TableId  
33 - private Long id;  
34 - /**  
35 - * 秒杀活动商品  
36 - */  
37 - private Long spuId;  
38 - /**  
39 - * 秒杀活动名称  
40 - */  
41 - private String name;  
42 - /**  
43 - * 活动状态  
44 - *  
45 - * 枚举 {@link CommonStatusEnum 对应的类}  
46 - */  
47 - private Integer status;  
48 - /**  
49 - * 备注  
50 - */  
51 - private String remark;  
52 - /**  
53 - * 活动开始时间  
54 - */  
55 - private LocalDateTime startTime;  
56 - /**  
57 - * 活动结束时间  
58 - */  
59 - private LocalDateTime endTime;  
60 - /**  
61 - * 排序  
62 - */  
63 - private Integer sort;  
64 - /**  
65 - * 秒杀时段 id  
66 - */  
67 - @TableField(typeHandler = LongListTypeHandler.class)  
68 - private List<Long> configIds;  
69 -  
70 - /**  
71 - * 总限购数量  
72 - */  
73 - private Integer totalLimitCount;  
74 - /**  
75 - * 单次限够数量  
76 - */  
77 - private Integer singleLimitCount;  
78 -  
79 - /**  
80 - * 秒杀库存(剩余库存秒杀时扣减)  
81 - */  
82 - private Integer stock;  
83 - /**  
84 - * 秒杀总库存  
85 - */  
86 - private Integer totalStock;  
87 -  
88 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/SeckillConfigDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import com.baomidou.mybatisplus.annotation.KeySequence;  
6 -import com.baomidou.mybatisplus.annotation.TableField;  
7 -import com.baomidou.mybatisplus.annotation.TableId;  
8 -import com.baomidou.mybatisplus.annotation.TableName;  
9 -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;  
10 -import lombok.*;  
11 -  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 秒杀时段 DO  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -@TableName(value = "promotion_seckill_config", autoResultMap = true)  
20 -@KeySequence("promotion_seckill_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
21 -@Data  
22 -@EqualsAndHashCode(callSuper = true)  
23 -@ToString(callSuper = true)  
24 -@Builder  
25 -@NoArgsConstructor  
26 -@AllArgsConstructor  
27 -public class SeckillConfigDO extends BaseDO {  
28 -  
29 - /**  
30 - * 编号  
31 - */  
32 - @TableId  
33 - private Long id;  
34 - /**  
35 - * 秒杀时段名称  
36 - */  
37 - private String name;  
38 - /**  
39 - * 开始时间点  
40 - */  
41 - private String startTime;  
42 - /**  
43 - * 结束时间点  
44 - */  
45 - private String endTime;  
46 - /**  
47 - * 秒杀轮播图  
48 - */  
49 - @TableField(typeHandler = JacksonTypeHandler.class)  
50 - private List<String> sliderPicUrls;  
51 - /**  
52 - * 状态  
53 - *  
54 - * 枚举 {@link CommonStatusEnum 对应的类}  
55 - */  
56 - private Integer status;  
57 -  
58 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/SeckillProductDO.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.dataobject.seckill;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;  
6 -import com.baomidou.mybatisplus.annotation.KeySequence;  
7 -import com.baomidou.mybatisplus.annotation.TableField;  
8 -import com.baomidou.mybatisplus.annotation.TableId;  
9 -import com.baomidou.mybatisplus.annotation.TableName;  
10 -import lombok.*;  
11 -  
12 -import java.time.LocalDateTime;  
13 -import java.util.List;  
14 -  
15 -/**  
16 - * 秒杀参与商品 DO  
17 - *  
18 - * @author HUIHUI  
19 - */  
20 -@TableName("promotion_seckill_product")  
21 -@KeySequence("promotion_seckill_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
22 -@Data  
23 -@EqualsAndHashCode(callSuper = true)  
24 -@ToString(callSuper = true)  
25 -@Builder  
26 -@NoArgsConstructor  
27 -@AllArgsConstructor  
28 -public class SeckillProductDO extends BaseDO {  
29 -  
30 - /**  
31 - * 秒杀参与商品编号  
32 - */  
33 - @TableId  
34 - private Long id;  
35 - /**  
36 - * 秒杀活动 id  
37 - *  
38 - * 关联 {@link SeckillActivityDO#getId()}  
39 - */  
40 - private Long activityId;  
41 - /**  
42 - * 秒杀时段 id  
43 - *  
44 - * 关联 {@link SeckillConfigDO#getId()}  
45 - */  
46 - @TableField(typeHandler = LongListTypeHandler.class)  
47 - private List<Long> configIds;  
48 - /**  
49 - * 商品 SPU 编号  
50 - */  
51 - private Long spuId;  
52 - /**  
53 - * 商品 SKU 编号  
54 - */  
55 - private Long skuId;  
56 - /**  
57 - * 秒杀金额,单位:分  
58 - */  
59 - private Integer seckillPrice;  
60 - /**  
61 - * 秒杀库存  
62 - */  
63 - private Integer stock;  
64 -  
65 - /**  
66 - * 秒杀商品状态  
67 - *  
68 - * 枚举 {@link CommonStatusEnum 对应的类}  
69 - */  
70 - private Integer activityStatus;  
71 - /**  
72 - * 活动开始时间点  
73 - */  
74 - private LocalDateTime activityStartTime;  
75 - /**  
76 - * 活动结束时间点  
77 - */  
78 - private LocalDateTime activityEndTime;  
79 -  
80 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/article/ArticleCategoryMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.ArticleCategoryPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 文章分类 Mapper  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@Mapper  
18 -public interface ArticleCategoryMapper extends BaseMapperX<ArticleCategoryDO> {  
19 -  
20 - default PageResult<ArticleCategoryDO> selectPage(ArticleCategoryPageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<ArticleCategoryDO>()  
22 - .likeIfPresent(ArticleCategoryDO::getName, reqVO.getName())  
23 - .eqIfPresent(ArticleCategoryDO::getStatus, reqVO.getStatus())  
24 - .betweenIfPresent(ArticleCategoryDO::getCreateTime, reqVO.getCreateTime())  
25 - .orderByDesc(ArticleCategoryDO::getSort));  
26 - }  
27 -  
28 - default List<ArticleCategoryDO> selectListByStatus(Integer status) {  
29 - return selectList(ArticleCategoryDO::getStatus, status);  
30 - }  
31 -  
32 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/article/ArticleMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticlePageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO;  
9 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
10 -import org.apache.ibatis.annotations.Mapper;  
11 -  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 文章管理 Mapper  
16 - *  
17 - * @author HUIHUI  
18 - */  
19 -@Mapper  
20 -public interface ArticleMapper extends BaseMapperX<ArticleDO> {  
21 -  
22 - default PageResult<ArticleDO> selectPage(ArticlePageReqVO reqVO) {  
23 - return selectPage(reqVO, new LambdaQueryWrapperX<ArticleDO>()  
24 - .eqIfPresent(ArticleDO::getCategoryId, reqVO.getCategoryId())  
25 - .eqIfPresent(ArticleDO::getTitle, reqVO.getTitle())  
26 - .eqIfPresent(ArticleDO::getAuthor, reqVO.getAuthor())  
27 - .eqIfPresent(ArticleDO::getStatus, reqVO.getStatus())  
28 - .eqIfPresent(ArticleDO::getSpuId, reqVO.getSpuId())  
29 - .eqIfPresent(ArticleDO::getRecommendHot, reqVO.getRecommendHot())  
30 - .eqIfPresent(ArticleDO::getRecommendBanner, reqVO.getRecommendBanner())  
31 - .betweenIfPresent(ArticleDO::getCreateTime, reqVO.getCreateTime())  
32 - .orderByDesc(ArticleDO::getId));  
33 - }  
34 -  
35 - default List<ArticleDO> selectList(Boolean recommendHot, Boolean recommendBanner) {  
36 - return selectList(new LambdaQueryWrapperX<ArticleDO>()  
37 - .eqIfPresent(ArticleDO::getRecommendHot, recommendHot)  
38 - .eqIfPresent(ArticleDO::getRecommendBanner, recommendBanner));  
39 - }  
40 -  
41 - default List<ArticleDO> selectListByTitle(String title) {  
42 - return selectList(ArticleDO::getTitle, title);  
43 - }  
44 -  
45 - default PageResult<ArticleDO> selectPage(AppArticlePageReqVO pageReqVO) {  
46 - return selectPage(pageReqVO, new LambdaQueryWrapperX<ArticleDO>()  
47 - .eqIfPresent(ArticleDO::getCategoryId, pageReqVO.getCategoryId()));  
48 - }  
49 -  
50 - default void updateBrowseCount(Long id) {  
51 - update(null, new LambdaUpdateWrapper<ArticleDO>()  
52 - .eq(ArticleDO::getId, id)  
53 - .setSql("browse_count = browse_count + 1"));  
54 - }  
55 -  
56 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/banner/BannerMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.banner;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.banner.BannerDO;  
8 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
9 -import org.apache.ibatis.annotations.Mapper;  
10 -  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * Banner Mapper  
15 - *  
16 - * @author xia  
17 - */  
18 -@Mapper  
19 -public interface BannerMapper extends BaseMapperX<BannerDO> {  
20 -  
21 - default PageResult<BannerDO> selectPage(BannerPageReqVO reqVO) {  
22 - return selectPage(reqVO, new LambdaQueryWrapperX<BannerDO>()  
23 - .likeIfPresent(BannerDO::getTitle, reqVO.getTitle())  
24 - .eqIfPresent(BannerDO::getStatus, reqVO.getStatus())  
25 - .betweenIfPresent(BannerDO::getCreateTime, reqVO.getCreateTime())  
26 - .orderByDesc(BannerDO::getSort));  
27 - }  
28 -  
29 - default void updateBrowseCount(Long id) {  
30 - update(null, new LambdaUpdateWrapper<BannerDO>()  
31 - .eq(BannerDO::getId, id)  
32 - .setSql("browse_count = browse_count + 1"));  
33 - }  
34 -  
35 - default List<BannerDO> selectBannerListByPosition(Integer position) {  
36 - return selectList(new LambdaQueryWrapperX<BannerDO>().eq(BannerDO::getPosition, position));  
37 - }  
38 -  
39 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/bargain/BargainActivityMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.bargain;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;  
9 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
10 -import org.apache.ibatis.annotations.Mapper;  
11 -  
12 -import java.time.LocalDateTime;  
13 -import java.util.List;  
14 -  
15 -/**  
16 - * 砍价活动 Mapper  
17 - *  
18 - * @author HUIHUI  
19 - */  
20 -@Mapper  
21 -public interface BargainActivityMapper extends BaseMapperX<BargainActivityDO> {  
22 -  
23 - default PageResult<BargainActivityDO> selectPage(BargainActivityPageReqVO reqVO) {  
24 - return selectPage(reqVO, new LambdaQueryWrapperX<BargainActivityDO>()  
25 - .likeIfPresent(BargainActivityDO::getName, reqVO.getName())  
26 - .eqIfPresent(BargainActivityDO::getStatus, reqVO.getStatus())  
27 - .orderByDesc(BargainActivityDO::getId));  
28 - }  
29 -  
30 - default List<BargainActivityDO> selectListByStatus(Integer status) {  
31 - return selectList(BargainActivityDO::getStatus, status);  
32 - }  
33 -  
34 - /**  
35 - * 更新活动库存  
36 - *  
37 - * @param id 活动编号  
38 - * @param count 扣减的库存数量  
39 - * @return 影响的行数  
40 - */  
41 - default int updateStock(Long id, int count) {  
42 - // 情况一:增加库存  
43 - if (count > 0) {  
44 - return update(null, new LambdaUpdateWrapper<BargainActivityDO>()  
45 - .eq(BargainActivityDO::getId, id)  
46 - .setSql("stock = stock + " + count));  
47 - }  
48 - // 情况二:扣减库存  
49 - count = -count; // 取正  
50 - return update(null, new LambdaUpdateWrapper<BargainActivityDO>()  
51 - .eq(BargainActivityDO::getId, id)  
52 - .ge(BargainActivityDO::getStock, count)  
53 - .setSql("stock = stock - " + count));  
54 - }  
55 -  
56 - /**  
57 - * 查询处在 now 日期时间且是 status 状态的活动分页  
58 - *  
59 - * @param pageReqVO 分页参数  
60 - * @param status 状态  
61 - * @param now 当前日期时间  
62 - * @return 活动分页  
63 - */  
64 - default PageResult<BargainActivityDO> selectPage(PageParam pageReqVO, Integer status, LocalDateTime now) {  
65 - return selectPage(pageReqVO, new LambdaQueryWrapperX<BargainActivityDO>()  
66 - .eq(BargainActivityDO::getStatus, status)  
67 - .le(BargainActivityDO::getStartTime, now)  
68 - .ge(BargainActivityDO::getEndTime, now));  
69 - }  
70 -  
71 - /**  
72 - * 查询处在 now 日期时间且是 status 状态的活动分页  
73 - *  
74 - * @param status 状态  
75 - * @param now 当前日期时间  
76 - * @return 活动分页  
77 - */  
78 - default List<BargainActivityDO> selectList(Integer count, Integer status, LocalDateTime now) {  
79 - return selectList(new LambdaQueryWrapperX<BargainActivityDO>()  
80 - .eq(BargainActivityDO::getStatus, status)  
81 - .le(BargainActivityDO::getStartTime, now)  
82 - .ge(BargainActivityDO::getEndTime, now)  
83 - .last("LIMIT " + count));  
84 - }  
85 -  
86 - default BargainActivityDO selectBySpuIdAndStatusAndNow(Long spuId, Integer status) {  
87 - LocalDateTime now = LocalDateTime.now();  
88 - return selectOne(new LambdaQueryWrapperX<BargainActivityDO>()  
89 - .eq(BargainActivityDO::getSpuId, spuId)  
90 - .eq(BargainActivityDO::getStatus, status)  
91 - .lt(BargainActivityDO::getStartTime, now)  
92 - .gt(BargainActivityDO::getEndTime, now)); // 开始时间 < now < 结束时间,也就是说获取指定时间段的活动  
93 - }  
94 -  
95 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/bargain/BargainHelpMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.bargain;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.map.MapUtil;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
7 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
8 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
9 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.help.BargainHelpPageReqVO;  
10 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainHelpDO;  
11 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
12 -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;  
13 -import org.apache.ibatis.annotations.Mapper;  
14 -  
15 -import java.util.Collection;  
16 -import java.util.Collections;  
17 -import java.util.List;  
18 -import java.util.Map;  
19 -  
20 -@Mapper  
21 -public interface BargainHelpMapper extends BaseMapperX<BargainHelpDO> {  
22 -  
23 - default Long selectCountByUserIdAndActivityId(Long userId, Long activityId) {  
24 - return selectCount(new LambdaQueryWrapper<>(BargainHelpDO.class)  
25 - .eq(BargainHelpDO::getUserId, userId)  
26 - .eq(BargainHelpDO::getActivityId, activityId));  
27 - }  
28 -  
29 - default Long selectUserCountMapByRecordId(Long recordId) {  
30 - return selectCount(BargainHelpDO::getRecordId, recordId);  
31 - }  
32 -  
33 - default BargainHelpDO selectByUserIdAndRecordId(Long userId, Long recordId) {  
34 - return selectOne(new LambdaQueryWrapper<>(BargainHelpDO.class)  
35 - .eq(BargainHelpDO::getUserId, userId)  
36 - .eq(BargainHelpDO::getRecordId, recordId));  
37 - }  
38 -  
39 - default Map<Long, Integer> selectUserCountMapByActivityId(Collection<Long> activityIds) {  
40 - // SQL count 查询  
41 - List<Map<String, Object>> result = selectMaps(new QueryWrapper<BargainHelpDO>()  
42 - .select("COUNT(DISTINCT(user_id)) AS userCount, activity_id AS activityId")  
43 - .in("activity_id", activityIds)  
44 - .groupBy("activity_id"));  
45 - if (CollUtil.isEmpty(result)) {  
46 - return Collections.emptyMap();  
47 - }  
48 - // 转换数据  
49 - return CollectionUtils.convertMap(result,  
50 - record -> MapUtil.getLong(record, "activityId"),  
51 - record -> MapUtil.getInt(record, "userCount" ));  
52 - }  
53 -  
54 - default Map<Long, Integer> selectUserCountMapByRecordId(Collection<Long> recordIds) {  
55 - // SQL count 查询  
56 - List<Map<String, Object>> result = selectMaps(new QueryWrapper<BargainHelpDO>()  
57 - .select("COUNT(1) AS userCount, record_id AS recordId")  
58 - .in("record_id", recordIds)  
59 - .groupBy("record_id"));  
60 - if (CollUtil.isEmpty(result)) {  
61 - return Collections.emptyMap();  
62 - }  
63 - // 转换数据  
64 - return CollectionUtils.convertMap(result,  
65 - record -> MapUtil.getLong(record, "recordId"),  
66 - record -> MapUtil.getInt(record, "userCount" ));  
67 - }  
68 -  
69 - default PageResult<BargainHelpDO> selectPage(BargainHelpPageReqVO reqVO) {  
70 - return selectPage(reqVO, new LambdaQueryWrapperX<BargainHelpDO>()  
71 - .eqIfPresent(BargainHelpDO::getRecordId, reqVO.getRecordId())  
72 - .orderByDesc(BargainHelpDO::getId));  
73 - }  
74 -  
75 - default List<BargainHelpDO> selectListByRecordId(Long recordId) {  
76 - return selectList(new LambdaQueryWrapperX<BargainHelpDO>()  
77 - .eq(BargainHelpDO::getRecordId, recordId));  
78 - }  
79 -  
80 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/bargain/BargainRecordMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.bargain;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.map.MapUtil;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
8 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
9 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
10 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.recrod.BargainRecordPageReqVO;  
11 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainRecordDO;  
12 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
13 -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;  
14 -import org.apache.ibatis.annotations.Mapper;  
15 -import org.apache.ibatis.annotations.Param;  
16 -import org.apache.ibatis.annotations.Select;  
17 -  
18 -import java.time.LocalDateTime;  
19 -import java.util.Collection;  
20 -import java.util.Collections;  
21 -import java.util.List;  
22 -import java.util.Map;  
23 -  
24 -/**  
25 - * 砍价记录 Mapper  
26 - *  
27 - * @author HUIHUI  
28 - */  
29 -@Mapper  
30 -public interface BargainRecordMapper extends BaseMapperX<BargainRecordDO> {  
31 -  
32 - default BargainRecordDO selectByIdAndUserId(Long id, Long userId) {  
33 - return selectOne(BargainRecordDO::getId, id,  
34 - BargainRecordDO::getUserId, userId);  
35 - }  
36 -  
37 - default List<BargainRecordDO> selectListByUserIdAndActivityIdAndStatus(  
38 - Long userId, Long activityId, Integer status) {  
39 - return selectList(new LambdaQueryWrapper<>(BargainRecordDO.class)  
40 - .eq(BargainRecordDO::getUserId, userId)  
41 - .eq(BargainRecordDO::getActivityId, activityId)  
42 - .eq(BargainRecordDO::getStatus, status));  
43 - }  
44 -  
45 - default BargainRecordDO selectLastByUserIdAndActivityId(Long userId, Long activityId) {  
46 - return selectOne(new LambdaQueryWrapper<>(BargainRecordDO.class)  
47 - .eq(BargainRecordDO::getUserId, userId)  
48 - .eq(BargainRecordDO::getActivityId, activityId)  
49 - .orderByDesc(BargainRecordDO::getId)  
50 - .last("LIMIT 1"));  
51 - }  
52 -  
53 - default Long selectCountByUserIdAndActivityIdAndStatus(  
54 - Long userId, Long activityId, Integer status) {  
55 - return selectCount(new LambdaQueryWrapper<>(BargainRecordDO.class)  
56 - .eq(BargainRecordDO::getUserId, userId)  
57 - .eq(BargainRecordDO::getActivityId, activityId)  
58 - .eq(BargainRecordDO::getStatus, status));  
59 - }  
60 -  
61 - default int updateByIdAndBargainPrice(Long id, Integer whereBargainPrice, BargainRecordDO updateObj) {  
62 - return update(updateObj, new LambdaQueryWrapper<>(BargainRecordDO.class)  
63 - .eq(BargainRecordDO::getId, id)  
64 - .eq(BargainRecordDO::getBargainPrice, whereBargainPrice));  
65 - }  
66 -  
67 - default Map<Long, Integer> selectUserCountByActivityIdsAndStatus(Collection<Long> activityIds, Integer status) {  
68 - // SQL count 查询  
69 - List<Map<String, Object>> result = selectMaps(new QueryWrapper<BargainRecordDO>()  
70 - .select("COUNT(DISTINCT(user_id)) AS userCount, activity_id AS activityId")  
71 - .in("activity_id", activityIds)  
72 - .eq(status != null, "status", status)  
73 - .groupBy("activity_id"));  
74 - if (CollUtil.isEmpty(result)) {  
75 - return Collections.emptyMap();  
76 - }  
77 - // 转换数据  
78 - return CollectionUtils.convertMap(result,  
79 - record -> MapUtil.getLong(record, "activityId"),  
80 - record -> MapUtil.getInt(record, "userCount" ));  
81 - }  
82 -  
83 - @Select("SELECT COUNT(DISTINCT(user_id)) FROM promotion_bargain_record " +  
84 - "WHERE status = #{status}")  
85 - Integer selectUserCountByStatus(@Param("status") Integer status);  
86 -  
87 - @Select("SELECT COUNT(DISTINCT(user_id)) FROM promotion_bargain_record " +  
88 - "WHERE activity_id = #{activityId} " +  
89 - "AND status = #{status}")  
90 - Integer selectUserCountByActivityIdAndStatus(@Param("activityId") Long activityId,  
91 - @Param("status") Integer status);  
92 -  
93 - default PageResult<BargainRecordDO> selectPage(BargainRecordPageReqVO reqVO) {  
94 - return selectPage(reqVO, new LambdaQueryWrapperX<BargainRecordDO>()  
95 - .eqIfPresent(BargainRecordDO::getStatus, reqVO.getStatus())  
96 - .betweenIfPresent(BargainRecordDO::getCreateTime, reqVO.getCreateTime())  
97 - .orderByDesc(BargainRecordDO::getId));  
98 - }  
99 -  
100 - default PageResult<BargainRecordDO> selectBargainRecordPage(Long userId, PageParam pageParam) {  
101 - return selectPage(pageParam, new LambdaQueryWrapperX<BargainRecordDO>()  
102 - .eq(BargainRecordDO::getUserId, userId)  
103 - .orderByDesc(BargainRecordDO::getId));  
104 - }  
105 -  
106 - default List<BargainRecordDO> selectListByStatusAndCount(Integer status, Integer count) {  
107 - return selectList(new LambdaQueryWrapper<>(BargainRecordDO.class)  
108 - .eq(BargainRecordDO::getStatus, status)  
109 - .last("LIMIT " + count));  
110 - }  
111 -  
112 - /**  
113 - * 更新砍价的订单编号,前提是 orderId 原本是空的  
114 - *  
115 - * @param id 砍价记录编号  
116 - * @param orderId 订单编号  
117 - * @return 更新数量  
118 - */  
119 - default int updateOrderIdById(Long id, Long orderId) {  
120 - return update(new BargainRecordDO().setOrderId(orderId).setEndTime(LocalDateTime.now()),  
121 - new LambdaQueryWrapper<>(BargainRecordDO.class)  
122 - .eq(BargainRecordDO::getId, id)  
123 - .isNull(BargainRecordDO::getOrderId));  
124 - }  
125 -  
126 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/combination/CombinationActivityMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.combination;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityPageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationActivityDO;  
9 -import org.apache.ibatis.annotations.Mapper;  
10 -  
11 -import java.time.LocalDateTime;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 拼团活动 Mapper  
16 - *  
17 - * @author HUIHUI  
18 - */  
19 -@Mapper  
20 -public interface CombinationActivityMapper extends BaseMapperX<CombinationActivityDO> {  
21 -  
22 - default PageResult<CombinationActivityDO> selectPage(CombinationActivityPageReqVO reqVO) {  
23 - return selectPage(reqVO, new LambdaQueryWrapperX<CombinationActivityDO>()  
24 - .likeIfPresent(CombinationActivityDO::getName, reqVO.getName())  
25 - .eqIfPresent(CombinationActivityDO::getStatus, reqVO.getStatus())  
26 - .orderByDesc(CombinationActivityDO::getId));  
27 - }  
28 -  
29 - default List<CombinationActivityDO> selectListByStatus(Integer status) {  
30 - return selectList(CombinationActivityDO::getStatus, status);  
31 - }  
32 -  
33 - default PageResult<CombinationActivityDO> selectPage(PageParam pageParam, Integer status) {  
34 - return selectPage(pageParam, new LambdaQueryWrapperX<CombinationActivityDO>()  
35 - .eq(CombinationActivityDO::getStatus, status));  
36 - }  
37 -  
38 - default CombinationActivityDO selectBySpuIdAndStatusAndNow(Long spuId, Integer status) {  
39 - LocalDateTime now = LocalDateTime.now();  
40 - return selectOne(new LambdaQueryWrapperX<CombinationActivityDO>()  
41 - .eq(CombinationActivityDO::getSpuId, spuId)  
42 - .eq(CombinationActivityDO::getStatus, status)  
43 - .lt(CombinationActivityDO::getStartTime, now)  
44 - .gt(CombinationActivityDO::getEndTime, now)); // 开始时间 < now < 结束时间,也就是说获取指定时间段的活动  
45 - }  
46 -  
47 -}  
48 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/combination/CombinationProductMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.combination;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationProductDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -import java.util.Collection;  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * 拼团商品 Mapper  
15 - *  
16 - * @author HUIHUI  
17 - */  
18 -@Mapper  
19 -public interface CombinationProductMapper extends BaseMapperX<CombinationProductDO> {  
20 -  
21 - default PageResult<CombinationProductDO> selectPage(CombinationProductPageReqVO reqVO) {  
22 - return selectPage(reqVO, new LambdaQueryWrapperX<CombinationProductDO>()  
23 - .eqIfPresent(CombinationProductDO::getActivityId, reqVO.getActivityId())  
24 - .eqIfPresent(CombinationProductDO::getSpuId, reqVO.getSpuId())  
25 - .eqIfPresent(CombinationProductDO::getSkuId, reqVO.getSkuId())  
26 - .eqIfPresent(CombinationProductDO::getActivityStatus, reqVO.getActivityStatus())  
27 - .betweenIfPresent(CombinationProductDO::getActivityStartTime, reqVO.getActivityStartTime())  
28 - .betweenIfPresent(CombinationProductDO::getActivityEndTime, reqVO.getActivityEndTime())  
29 - .eqIfPresent(CombinationProductDO::getCombinationPrice, reqVO.getActivePrice())  
30 - .betweenIfPresent(CombinationProductDO::getCreateTime, reqVO.getCreateTime())  
31 - .orderByDesc(CombinationProductDO::getId));  
32 - }  
33 -  
34 - default List<CombinationProductDO> selectListByActivityIds(Collection<Long> ids) {  
35 - return selectList(CombinationProductDO::getActivityId, ids);  
36 - }  
37 -  
38 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/coupon/CouponMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.coupon;  
2 -  
3 -import cn.hutool.core.map.MapUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO;  
9 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
10 -import com.github.yulichang.toolkit.MPJWrappers;  
11 -import org.apache.ibatis.annotations.Mapper;  
12 -  
13 -import java.time.LocalDateTime;  
14 -import java.util.Collection;  
15 -import java.util.List;  
16 -import java.util.Map;  
17 -  
18 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;  
19 -  
20 -/**  
21 - * 优惠劵 Mapper  
22 - *  
23 - * @author 芋道源码  
24 - */  
25 -@Mapper  
26 -public interface CouponMapper extends BaseMapperX<CouponDO> {  
27 -  
28 - default PageResult<CouponDO> selectPage(CouponPageReqVO reqVO) {  
29 - return selectPage(reqVO, new LambdaQueryWrapperX<CouponDO>()  
30 - .eqIfPresent(CouponDO::getTemplateId, reqVO.getTemplateId())  
31 - .eqIfPresent(CouponDO::getStatus, reqVO.getStatus())  
32 - .inIfPresent(CouponDO::getUserId, reqVO.getUserIds())  
33 - .betweenIfPresent(CouponDO::getCreateTime, reqVO.getCreateTime())  
34 - .orderByDesc(CouponDO::getId));  
35 - }  
36 -  
37 - default List<CouponDO> selectListByUserIdAndStatus(Long userId, Integer status) {  
38 - return selectList(new LambdaQueryWrapperX<CouponDO>()  
39 - .eq(CouponDO::getUserId, userId).eq(CouponDO::getStatus, status));  
40 - }  
41 -  
42 - default CouponDO selectByIdAndUserId(Long id, Long userId) {  
43 - return selectOne(new LambdaQueryWrapperX<CouponDO>()  
44 - .eq(CouponDO::getId, id).eq(CouponDO::getUserId, userId));  
45 - }  
46 -  
47 - default int delete(Long id, Collection<Integer> whereStatuses) {  
48 - return update(null, new LambdaUpdateWrapper<CouponDO>()  
49 - .eq(CouponDO::getId, id).in(CouponDO::getStatus, whereStatuses)  
50 - .set(CouponDO::getDeleted, 1));  
51 - }  
52 -  
53 - default int updateByIdAndStatus(Long id, Integer status, CouponDO updateObj) {  
54 - return update(updateObj, new LambdaUpdateWrapper<CouponDO>()  
55 - .eq(CouponDO::getId, id).eq(CouponDO::getStatus, status));  
56 - }  
57 -  
58 - default Long selectCountByUserIdAndStatus(Long userId, Integer status) {  
59 - return selectCount(new LambdaQueryWrapperX<CouponDO>()  
60 - .eq(CouponDO::getUserId, userId)  
61 - .eq(CouponDO::getStatus, status));  
62 - }  
63 -  
64 - default List<CouponDO> selectListByTemplateIdAndUserId(Long templateId, Collection<Long> userIds) {  
65 - return selectList(new LambdaQueryWrapperX<CouponDO>()  
66 - .eq(CouponDO::getTemplateId, templateId)  
67 - .in(CouponDO::getUserId, userIds)  
68 - );  
69 - }  
70 -  
71 - default Map<Long, Integer> selectCountByUserIdAndTemplateIdIn(Long userId, Collection<Long> templateIds) {  
72 - String templateIdAlias = "templateId";  
73 - String countAlias = "count";  
74 - List<Map<String, Object>> list = selectMaps(MPJWrappers.lambdaJoin(CouponDO.class)  
75 - .selectAs(CouponDO::getTemplateId, templateIdAlias)  
76 - .selectCount(CouponDO::getId, countAlias)  
77 - .eq(CouponDO::getUserId, userId)  
78 - .in(CouponDO::getTemplateId, templateIds)  
79 - .groupBy(CouponDO::getTemplateId));  
80 - return convertMap(list, map -> MapUtil.getLong(map, templateIdAlias), map -> MapUtil.getInt(map, countAlias));  
81 - }  
82 -  
83 - default List<CouponDO> selectListByStatusAndValidEndTimeLe(Integer status, LocalDateTime validEndTime) {  
84 - return selectList(new LambdaQueryWrapperX<CouponDO>()  
85 - .eq(CouponDO::getStatus, status)  
86 - .le(CouponDO::getValidEndTime, validEndTime)  
87 - );  
88 - }  
89 -  
90 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/coupon/CouponTemplateMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.coupon;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
7 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;  
10 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTemplateValidityTypeEnum;  
11 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
12 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
13 -import org.apache.ibatis.annotations.Mapper;  
14 -  
15 -import java.time.LocalDateTime;  
16 -import java.util.List;  
17 -import java.util.function.Consumer;  
18 -  
19 -/**  
20 - * 优惠劵模板 Mapper  
21 - *  
22 - * @author 芋道源码  
23 - */  
24 -@Mapper  
25 -public interface CouponTemplateMapper extends BaseMapperX<CouponTemplateDO> {  
26 -  
27 - default PageResult<CouponTemplateDO> selectPage(CouponTemplatePageReqVO reqVO) {  
28 - // 构建可领取的查询条件  
29 - Consumer<LambdaQueryWrapper<CouponTemplateDO>> canTakeConsumer = buildCanTakeQueryConsumer(reqVO.getCanTakeTypes());  
30 - // 执行分页查询  
31 - return selectPage(reqVO, new LambdaQueryWrapperX<CouponTemplateDO>()  
32 - .likeIfPresent(CouponTemplateDO::getName, reqVO.getName())  
33 - .eqIfPresent(CouponTemplateDO::getStatus, reqVO.getStatus())  
34 - .eqIfPresent(CouponTemplateDO::getDiscountType, reqVO.getDiscountType())  
35 - .betweenIfPresent(CouponTemplateDO::getCreateTime, reqVO.getCreateTime())  
36 - .eqIfPresent(CouponTemplateDO::getProductScope, reqVO.getProductScope())  
37 - .and(reqVO.getProductScopeValue() != null, w -> w.apply("FIND_IN_SET({0}, product_scope_values)",  
38 - reqVO.getProductScopeValue()))  
39 - .and(canTakeConsumer != null, canTakeConsumer)  
40 - .orderByDesc(CouponTemplateDO::getId));  
41 - }  
42 -  
43 - default void updateTakeCount(Long id, Integer incrCount) {  
44 - update(null, new LambdaUpdateWrapper<CouponTemplateDO>()  
45 - .eq(CouponTemplateDO::getId, id)  
46 - .setSql("take_count = take_count + " + incrCount));  
47 - }  
48 -  
49 - default List<CouponTemplateDO> selectListByTakeType(Integer takeType) {  
50 - return selectList(CouponTemplateDO::getTakeType, takeType, CouponTemplateDO::getStatus, CommonStatusEnum.ENABLE.getStatus());  
51 - }  
52 -  
53 - default List<CouponTemplateDO> selectList(List<Integer> canTakeTypes, Integer productScope, Long productScopeValue, Integer count) {  
54 - // 构建可领取的查询条件  
55 - Consumer<LambdaQueryWrapper<CouponTemplateDO>> canTakeConsumer = buildCanTakeQueryConsumer(canTakeTypes);  
56 - return selectList(new LambdaQueryWrapperX<CouponTemplateDO>()  
57 - .eqIfPresent(CouponTemplateDO::getProductScope, productScope)  
58 - .and(productScopeValue != null, w -> w.apply("FIND_IN_SET({0}, product_scope_values)",  
59 - productScopeValue))  
60 - .and(canTakeConsumer != null, canTakeConsumer)  
61 - .last(" LIMIT " + count)  
62 - .orderByDesc(CouponTemplateDO::getId));  
63 - }  
64 -  
65 - static Consumer<LambdaQueryWrapper<CouponTemplateDO>> buildCanTakeQueryConsumer(List<Integer> canTakeTypes) {  
66 - Consumer<LambdaQueryWrapper<CouponTemplateDO>> canTakeConsumer = null;  
67 - if (CollUtil.isNotEmpty(canTakeTypes)) {  
68 - canTakeConsumer = w ->  
69 - w.eq(CouponTemplateDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) // 1. 状态为可用的  
70 - .in(CouponTemplateDO::getTakeType, canTakeTypes) // 2. 领取方式一致  
71 - .and(ww -> ww.gt(CouponTemplateDO::getValidEndTime, LocalDateTime.now()) // 3.1 未过期  
72 - .or().eq(CouponTemplateDO::getValidityType, CouponTemplateValidityTypeEnum.TERM.getType())) // 3.2 领取之后  
73 - .apply(" (take_count < total_count OR total_count = -1)"); // 4. 剩余数量大于 0,或者无限领取  
74 - }  
75 - return canTakeConsumer;  
76 - }  
77 -  
78 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/discount/DiscountActivityMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.discount;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountActivityDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -import java.time.LocalDateTime;  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 限时折扣活动 Mapper  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -@Mapper  
20 -public interface DiscountActivityMapper extends BaseMapperX<DiscountActivityDO> {  
21 -  
22 - default PageResult<DiscountActivityDO> selectPage(DiscountActivityPageReqVO reqVO) {  
23 - return selectPage(reqVO, new LambdaQueryWrapperX<DiscountActivityDO>()  
24 - .likeIfPresent(DiscountActivityDO::getName, reqVO.getName())  
25 - .eqIfPresent(DiscountActivityDO::getStatus, reqVO.getStatus())  
26 - .betweenIfPresent(DiscountActivityDO::getCreateTime, reqVO.getCreateTime())  
27 - .orderByDesc(DiscountActivityDO::getId));  
28 - }  
29 -  
30 - /**  
31 - * 获取指定活动编号的活动列表且  
32 - * 开始时间和结束时间小于给定时间 dateTime 的活动列表  
33 - *  
34 - * @param ids 活动编号  
35 - * @param dateTime 指定日期  
36 - * @return 活动列表  
37 - */  
38 - default List<DiscountActivityDO> selectListByIdsAndDateTimeLt(Collection<Long> ids, LocalDateTime dateTime) {  
39 - return selectList(new LambdaQueryWrapperX<DiscountActivityDO>()  
40 - .in(DiscountActivityDO::getId, ids)  
41 - .lt(DiscountActivityDO::getStartTime, dateTime)  
42 - .gt(DiscountActivityDO::getEndTime, dateTime)// 开始时间 < 指定时间 < 结束时间,也就是说获取指定时间段的活动  
43 - .orderByDesc(DiscountActivityDO::getCreateTime));  
44 - }  
45 -  
46 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/discount/DiscountProductMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.discount;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
4 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
5 -import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProductDO;  
6 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.time.LocalDateTime;  
10 -import java.util.Collection;  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * 限时折扣商城 Mapper  
15 - *  
16 - * @author 芋道源码  
17 - */  
18 -@Mapper  
19 -public interface DiscountProductMapper extends BaseMapperX<DiscountProductDO> {  
20 -  
21 - default List<DiscountProductDO> selectListByActivityId(Long activityId) {  
22 - return selectList(DiscountProductDO::getActivityId, activityId);  
23 - }  
24 -  
25 - default List<DiscountProductDO> selectListByActivityId(Collection<Long> activityIds) {  
26 - return selectList(DiscountProductDO::getActivityId, activityIds);  
27 - }  
28 -  
29 - default void updateByActivityId(DiscountProductDO discountProductDO) {  
30 - update(discountProductDO, new LambdaUpdateWrapper<DiscountProductDO>()  
31 - .eq(DiscountProductDO::getActivityId, discountProductDO.getActivityId()));  
32 - }  
33 -  
34 - default void deleteByActivityId(Long activityId) {  
35 - delete(DiscountProductDO::getActivityId, activityId);  
36 - }  
37 -  
38 - default List<DiscountProductDO> selectListBySkuIdsAndStatusAndNow(Collection<Long> skuIds, Integer status) {  
39 - LocalDateTime now = LocalDateTime.now();  
40 - return selectList(new LambdaQueryWrapperX<DiscountProductDO>()  
41 - .in(DiscountProductDO::getSkuId, skuIds)  
42 - .eq(DiscountProductDO::getActivityStatus,status)  
43 - .lt(DiscountProductDO::getActivityStartTime, now)  
44 - .gt(DiscountProductDO::getActivityEndTime, now));  
45 - }  
46 -  
47 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/diy/DiyPageMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPagePageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 装修页面 Mapper  
14 - *  
15 - * @author owen  
16 - */  
17 -@Mapper  
18 -public interface DiyPageMapper extends BaseMapperX<DiyPageDO> {  
19 -  
20 - default PageResult<DiyPageDO> selectPage(DiyPagePageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<DiyPageDO>()  
22 - .likeIfPresent(DiyPageDO::getName, reqVO.getName())  
23 - .betweenIfPresent(DiyPageDO::getCreateTime, reqVO.getCreateTime())  
24 - // 模板下面的页面,在模板中管理  
25 - .isNull(DiyPageDO::getTemplateId)  
26 - .orderByDesc(DiyPageDO::getId));  
27 - }  
28 -  
29 - default List<DiyPageDO> selectListByTemplateId(Long templateId) {  
30 - return selectList(DiyPageDO::getTemplateId, templateId);  
31 - }  
32 -  
33 - default DiyPageDO selectByNameAndTemplateIdIsNull(String name) {  
34 - return selectOne(new LambdaQueryWrapperX<DiyPageDO>()  
35 - .eq(DiyPageDO::getName, name)  
36 - .isNull(DiyPageDO::getTemplateId));  
37 - }  
38 -  
39 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/diy/DiyTemplateMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.template.DiyTemplatePageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyTemplateDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -/**  
11 - * 装修模板 Mapper  
12 - *  
13 - * @author owen  
14 - */  
15 -@Mapper  
16 -public interface DiyTemplateMapper extends BaseMapperX<DiyTemplateDO> {  
17 -  
18 - default PageResult<DiyTemplateDO> selectPage(DiyTemplatePageReqVO reqVO) {  
19 - return selectPage(reqVO, new LambdaQueryWrapperX<DiyTemplateDO>()  
20 - .likeIfPresent(DiyTemplateDO::getName, reqVO.getName())  
21 - .eqIfPresent(DiyTemplateDO::getUsed, reqVO.getUsed())  
22 - .betweenIfPresent(DiyTemplateDO::getUsedTime, reqVO.getUsedTime())  
23 - .betweenIfPresent(DiyTemplateDO::getCreateTime, reqVO.getCreateTime())  
24 - .orderByDesc(DiyTemplateDO::getUsed) // 排序规则1:已使用的排到最前面  
25 - .orderByDesc(DiyTemplateDO::getId)); // 排序规则2:新创建的排到前面  
26 - }  
27 -  
28 - default DiyTemplateDO selectByUsed(boolean used) {  
29 - return selectOne(DiyTemplateDO::getUsed, used);  
30 - }  
31 -  
32 - default DiyTemplateDO selectByName(String name) {  
33 - return selectOne(DiyTemplateDO::getName, name);  
34 - }  
35 -  
36 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/kefu/KeFuConversationMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.kefu;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
4 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
5 -import cn.iocoder.yudao.module.promotion.dal.dataobject.kefu.KeFuConversationDO;  
6 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * 客服会话 Mapper  
13 - *  
14 - * @author HUIHUI  
15 - */  
16 -@Mapper  
17 -public interface KeFuConversationMapper extends BaseMapperX<KeFuConversationDO> {  
18 -  
19 - default List<KeFuConversationDO> selectConversationList() {  
20 - return selectList(new LambdaQueryWrapperX<KeFuConversationDO>()  
21 - .eq(KeFuConversationDO::getAdminDeleted, Boolean.FALSE)  
22 - .orderByDesc(KeFuConversationDO::getCreateTime));  
23 - }  
24 -  
25 - default void updateAdminUnreadMessageCountIncrement(Long id) {  
26 - update(new LambdaUpdateWrapper<KeFuConversationDO>()  
27 - .eq(KeFuConversationDO::getId, id)  
28 - .setSql("admin_unread_message_count = admin_unread_message_count + 1"));  
29 - }  
30 -  
31 - default KeFuConversationDO selectByUserId(Long userId) {  
32 - return selectOne(KeFuConversationDO::getUserId, userId);  
33 - }  
34 -  
35 -}  
36 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/kefu/KeFuMessageMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.kefu;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
4 -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.message.KeFuMessageListReqVO;  
6 -import cn.iocoder.yudao.module.promotion.dal.dataobject.kefu.KeFuMessageDO;  
7 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
8 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
9 -import org.apache.ibatis.annotations.Mapper;  
10 -  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 客服消息 Mapper  
16 - *  
17 - * @author HUIHUI  
18 - */  
19 -@Mapper  
20 -public interface KeFuMessageMapper extends BaseMapperX<KeFuMessageDO> {  
21 -  
22 - /**  
23 - * 获得消息列表  
24 - * 1. 第一次查询时,不带时间,默认查询最新的十条消息  
25 - * 2. 第二次查询时,带时间,查询历史消息  
26 - *  
27 - * @param reqVO 列表请求  
28 - * @return 消息列表  
29 - */  
30 - default List<KeFuMessageDO> selectList(KeFuMessageListReqVO reqVO) {  
31 - return selectList(new QueryWrapperX<KeFuMessageDO>()  
32 - .eqIfPresent("conversation_id", reqVO.getConversationId())  
33 - .ltIfPresent("create_time", reqVO.getCreateTime())  
34 - .orderByDesc("create_time")  
35 - .limitN(reqVO.getLimit()));  
36 - }  
37 -  
38 - default List<KeFuMessageDO> selectListByConversationIdAndUserTypeAndReadStatus(Long conversationId, Integer userType,  
39 - Boolean readStatus) {  
40 - return selectList(new LambdaQueryWrapper<KeFuMessageDO>()  
41 - .eq(KeFuMessageDO::getConversationId, conversationId)  
42 - .ne(KeFuMessageDO::getSenderType, userType) // 管理员:查询出未读的会员消息,会员:查询出未读的客服消息  
43 - .eq(KeFuMessageDO::getReadStatus, readStatus));  
44 - }  
45 -  
46 - default void updateReadStatusBatchByIds(Collection<Long> ids, KeFuMessageDO keFuMessageDO) {  
47 - update(keFuMessageDO, new LambdaUpdateWrapper<KeFuMessageDO>()  
48 - .in(KeFuMessageDO::getId, ids));  
49 - }  
50 -  
51 -}  
52 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/point/PointActivityMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.point;  
2 -  
3 -import cn.hutool.core.lang.Assert;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivityPageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointActivityDO;  
9 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
10 -import org.apache.ibatis.annotations.Mapper;  
11 -  
12 -/**  
13 - * 积分商城活动 Mapper  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@Mapper  
18 -public interface PointActivityMapper extends BaseMapperX<PointActivityDO> {  
19 -  
20 - default PageResult<PointActivityDO> selectPage(PointActivityPageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<PointActivityDO>()  
22 - .eqIfPresent(PointActivityDO::getStatus, reqVO.getStatus())  
23 - .orderByDesc(PointActivityDO::getSort));  
24 - }  
25 -  
26 - /**  
27 - * 更新活动库存(减少)  
28 - *  
29 - * @param id 活动编号  
30 - * @param count 扣减的库存数量(正数)  
31 - * @return 影响的行数  
32 - */  
33 - default int updateStockDecr(Long id, int count) {  
34 - Assert.isTrue(count > 0);  
35 - return update(null, new LambdaUpdateWrapper<PointActivityDO>()  
36 - .eq(PointActivityDO::getId, id)  
37 - .ge(PointActivityDO::getStock, count)  
38 - .setSql("stock = stock - " + count));  
39 - }  
40 -  
41 - /**  
42 - * 更新活动库存(增加)  
43 - *  
44 - * @param id 活动编号  
45 - * @param count 增加的库存数量(正数)  
46 - * @return 影响的行数  
47 - */  
48 - default int updateStockIncr(Long id, int count) {  
49 - Assert.isTrue(count > 0);  
50 - return update(null, new LambdaUpdateWrapper<PointActivityDO>()  
51 - .eq(PointActivityDO::getId, id)  
52 - .setSql("stock = stock + " + count));  
53 - }  
54 -  
55 -}  
56 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/point/PointProductMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.point;  
2 -  
3 -import cn.hutool.core.lang.Assert;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointProductDO;  
6 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.util.Collection;  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 积分商城商品 Mapper  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@Mapper  
18 -public interface PointProductMapper extends BaseMapperX<PointProductDO> {  
19 -  
20 - default List<PointProductDO> selectListByActivityId(Collection<Long> activityIds) {  
21 - return selectList(PointProductDO::getActivityId, activityIds);  
22 - }  
23 -  
24 - default List<PointProductDO> selectListByActivityId(Long activityId) {  
25 - return selectList(PointProductDO::getActivityId, activityId);  
26 - }  
27 -  
28 - default void updateByActivityId(PointProductDO pointProductDO) {  
29 - update(pointProductDO, new LambdaUpdateWrapper<PointProductDO>()  
30 - .eq(PointProductDO::getActivityId, pointProductDO.getActivityId()));  
31 - }  
32 -  
33 - default PointProductDO selectListByActivityIdAndSkuId(Long activityId, Long skuId) {  
34 - return selectOne(PointProductDO::getActivityId, activityId,  
35 - PointProductDO::getSkuId, skuId);  
36 - }  
37 -  
38 - /**  
39 - * 更新活动库存(减少)  
40 - *  
41 - * @param id 活动编号  
42 - * @param count 扣减的库存数量(减少库存)  
43 - * @return 影响的行数  
44 - */  
45 - default int updateStockDecr(Long id, int count) {  
46 - Assert.isTrue(count > 0);  
47 - return update(null, new LambdaUpdateWrapper<PointProductDO>()  
48 - .eq(PointProductDO::getId, id)  
49 - .ge(PointProductDO::getStock, count)  
50 - .setSql("stock = stock - " + count));  
51 - }  
52 -  
53 - /**  
54 - * 更新活动库存(增加)  
55 - *  
56 - * @param id 活动编号  
57 - * @param count 需要增加的库存(增加库存)  
58 - * @return 影响的行数  
59 - */  
60 - default int updateStockIncr(Long id, int count) {  
61 - Assert.isTrue(count > 0);  
62 - return update(null, new LambdaUpdateWrapper<PointProductDO>()  
63 - .eq(PointProductDO::getId, id)  
64 - .setSql("stock = stock + " + count));  
65 - }  
66 -}  
67 \ No newline at end of file 0 \ No newline at end of file
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/reward/RewardActivityMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.reward;  
2 -  
3 -import cn.hutool.core.util.StrUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.reward.vo.RewardActivityPageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.reward.RewardActivityDO;  
9 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;  
10 -import org.apache.ibatis.annotations.Mapper;  
11 -  
12 -import java.time.LocalDateTime;  
13 -import java.util.Collection;  
14 -import java.util.List;  
15 -import java.util.function.Function;  
16 -import java.util.stream.Collectors;  
17 -  
18 -/**  
19 - * 满减送活动 Mapper  
20 - *  
21 - * @author 芋道源码  
22 - */  
23 -@Mapper  
24 -public interface RewardActivityMapper extends BaseMapperX<RewardActivityDO> {  
25 -  
26 - default PageResult<RewardActivityDO> selectPage(RewardActivityPageReqVO reqVO) {  
27 - return selectPage(reqVO, new LambdaQueryWrapperX<RewardActivityDO>()  
28 - .likeIfPresent(RewardActivityDO::getName, reqVO.getName())  
29 - .eqIfPresent(RewardActivityDO::getStatus, reqVO.getStatus())  
30 - .orderByDesc(RewardActivityDO::getId));  
31 - }  
32 -  
33 - default List<RewardActivityDO> selectListBySpuIdAndStatusAndNow(Collection<Long> spuIds,  
34 - Collection<Long> categoryIds,  
35 - Integer status) {  
36 - LocalDateTime now = LocalDateTime.now();  
37 - Function<Collection<Long>, String> productScopeValuesFindInSetFunc = ids -> ids.stream()  
38 - .map(id -> StrUtil.format("FIND_IN_SET({}, product_scope_values) ", id))  
39 - .collect(Collectors.joining(" OR "));  
40 - return selectList(new LambdaQueryWrapperX<RewardActivityDO>()  
41 - .eq(RewardActivityDO::getStatus, status)  
42 - .lt(RewardActivityDO::getStartTime, now)  
43 - .gt(RewardActivityDO::getEndTime, now)  
44 - .and(i -> i.eq(RewardActivityDO::getProductScope, PromotionProductScopeEnum.SPU.getScope())  
45 - .and(i1 -> i1.apply(productScopeValuesFindInSetFunc.apply(spuIds)))  
46 - .or(i1 -> i1.eq(RewardActivityDO::getProductScope, PromotionProductScopeEnum.ALL.getScope()))  
47 - .or(i1 -> i1.eq(RewardActivityDO::getProductScope, PromotionProductScopeEnum.CATEGORY.getScope())  
48 - .and(i2 -> i2.apply(productScopeValuesFindInSetFunc.apply(categoryIds)))))  
49 - .orderByDesc(RewardActivityDO::getId)  
50 - );  
51 - }  
52 -  
53 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity;  
2 -  
3 -import cn.hutool.core.lang.Assert;  
4 -import cn.hutool.core.util.ObjectUtil;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
7 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityPageReqVO;  
9 -import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityPageReqVO;  
10 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO;  
11 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
12 -import org.apache.ibatis.annotations.Mapper;  
13 -  
14 -import java.time.LocalDateTime;  
15 -import java.util.List;  
16 -  
17 -/**  
18 - * 秒杀活动 Mapper  
19 - *  
20 - * @author halfninety  
21 - */  
22 -@Mapper  
23 -public interface SeckillActivityMapper extends BaseMapperX<SeckillActivityDO> {  
24 -  
25 - default PageResult<SeckillActivityDO> selectPage(SeckillActivityPageReqVO reqVO) {  
26 - return selectPage(reqVO, new LambdaQueryWrapperX<SeckillActivityDO>()  
27 - .likeIfPresent(SeckillActivityDO::getName, reqVO.getName())  
28 - .eqIfPresent(SeckillActivityDO::getStatus, reqVO.getStatus())  
29 - .betweenIfPresent(SeckillActivityDO::getCreateTime, reqVO.getCreateTime())  
30 - .apply(ObjectUtil.isNotNull(reqVO.getConfigId()), "FIND_IN_SET(" + reqVO.getConfigId() + ", config_ids) > 0")  
31 - .orderByDesc(SeckillActivityDO::getId));  
32 - }  
33 -  
34 - default List<SeckillActivityDO> selectListBySpuIdAndStatus(Long spuId, Integer status) {  
35 - return selectList(SeckillActivityDO::getSpuId, spuId,  
36 - SeckillActivityDO::getStatus, status);  
37 - }  
38 -  
39 - /**  
40 - * 更新活动库存(减少)  
41 - *  
42 - * @param id 活动编号  
43 - * @param count 扣减的库存数量(正数)  
44 - * @return 影响的行数  
45 - */  
46 - default int updateStockDecr(Long id, int count) {  
47 - Assert.isTrue(count > 0);  
48 - return update(null, new LambdaUpdateWrapper<SeckillActivityDO>()  
49 - .eq(SeckillActivityDO::getId, id)  
50 - .ge(SeckillActivityDO::getStock, count)  
51 - .setSql("stock = stock - " + count));  
52 - }  
53 -  
54 - /**  
55 - * 更新活动库存(增加)  
56 - *  
57 - * @param id 活动编号  
58 - * @param count 增加的库存数量(正数)  
59 - * @return 影响的行数  
60 - */  
61 - default int updateStockIncr(Long id, int count) {  
62 - Assert.isTrue(count > 0);  
63 - return update(null, new LambdaUpdateWrapper<SeckillActivityDO>()  
64 - .eq(SeckillActivityDO::getId, id)  
65 - .setSql("stock = stock + " + count));  
66 - }  
67 -  
68 - default PageResult<SeckillActivityDO> selectPage(AppSeckillActivityPageReqVO pageReqVO, Integer status, LocalDateTime dateTime) {  
69 - return selectPage(pageReqVO, new LambdaQueryWrapperX<SeckillActivityDO>()  
70 - .eqIfPresent(SeckillActivityDO::getStatus, status)  
71 - .lt(SeckillActivityDO::getStartTime, dateTime)  
72 - .gt(SeckillActivityDO::getEndTime, dateTime)// 开始时间 < 指定时间 < 结束时间,也就是说获取指定时间段的活动  
73 - .apply(ObjectUtil.isNotNull(pageReqVO.getConfigId()), "FIND_IN_SET(" + pageReqVO.getConfigId() + ",config_ids) > 0"));  
74 - }  
75 -  
76 - default SeckillActivityDO selectBySpuIdAndStatusAndNow(Long spuId, Integer status) {  
77 - LocalDateTime now = LocalDateTime.now();  
78 - return selectOne(new LambdaQueryWrapperX<SeckillActivityDO>()  
79 - .eq(SeckillActivityDO::getSpuId, spuId)  
80 - .eq(SeckillActivityDO::getStatus, status)  
81 - .lt(SeckillActivityDO::getStartTime, now)  
82 - .gt(SeckillActivityDO::getEndTime, now)); // 开始时间 < now < 结束时间,也就是说获取指定时间段的活动  
83 - }  
84 -  
85 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillProductMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity;  
2 -  
3 -import cn.hutool.core.lang.Assert;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO;  
6 -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.util.Collection;  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 秒杀活动商品 Mapper  
14 - *  
15 - * @author halfninety  
16 - */  
17 -@Mapper  
18 -public interface SeckillProductMapper extends BaseMapperX<SeckillProductDO> {  
19 -  
20 - default List<SeckillProductDO> selectListByActivityId(Long activityId) {  
21 - return selectList(SeckillProductDO::getActivityId, activityId);  
22 - }  
23 -  
24 - default SeckillProductDO selectByActivityIdAndSkuId(Long activityId, Long skuId) {  
25 - return selectOne(SeckillProductDO::getActivityId, activityId,  
26 - SeckillProductDO::getSkuId, skuId);  
27 - }  
28 -  
29 - default List<SeckillProductDO> selectListByActivityId(Collection<Long> ids) {  
30 - return selectList(SeckillProductDO::getActivityId, ids);  
31 - }  
32 -  
33 - /**  
34 - * 更新活动库存(减少)  
35 - *  
36 - * @param id 活动编号  
37 - * @param count 扣减的库存数量(减少库存)  
38 - * @return 影响的行数  
39 - */  
40 - default int updateStockDecr(Long id, int count) {  
41 - Assert.isTrue(count > 0);  
42 - return update(null, new LambdaUpdateWrapper<SeckillProductDO>()  
43 - .eq(SeckillProductDO::getId, id)  
44 - .ge(SeckillProductDO::getStock, count)  
45 - .setSql("stock = stock - " + count));  
46 - }  
47 -  
48 - /**  
49 - * 更新活动库存(增加)  
50 - *  
51 - * @param id 活动编号  
52 - * @param count 需要增加的库存(增加库存)  
53 - * @return 影响的行数  
54 - */  
55 - default int updateStockIncr(Long id, int count) {  
56 - Assert.isTrue(count > 0);  
57 - return update(null, new LambdaUpdateWrapper<SeckillProductDO>()  
58 - .eq(SeckillProductDO::getId, id)  
59 - .setSql("stock = stock + " + count));  
60 - }  
61 -  
62 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillconfig/SeckillConfigMapper.java deleted
1 -package cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;  
8 -import org.apache.ibatis.annotations.Mapper;  
9 -  
10 -import java.util.List;  
11 -  
12 -@Mapper  
13 -public interface SeckillConfigMapper extends BaseMapperX<SeckillConfigDO> {  
14 -  
15 - default PageResult<SeckillConfigDO> selectPage(SeckillConfigPageReqVO reqVO) {  
16 - return selectPage(reqVO, new LambdaQueryWrapperX<SeckillConfigDO>()  
17 - .likeIfPresent(SeckillConfigDO::getName, reqVO.getName())  
18 - .eqIfPresent(SeckillConfigDO::getStatus, reqVO.getStatus())  
19 - .orderByAsc(SeckillConfigDO::getStartTime));  
20 - }  
21 -  
22 - default List<SeckillConfigDO> selectListByStatus(Integer status) {  
23 - return selectList(SeckillConfigDO::getStatus, status);  
24 - }  
25 -  
26 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/framework/web/config/PromotionWebConfiguration.java deleted
1 -package cn.iocoder.yudao.module.promotion.framework.web.config;  
2 -  
3 -import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;  
4 -import org.springdoc.core.models.GroupedOpenApi;  
5 -import org.springframework.context.annotation.Bean;  
6 -import org.springframework.context.annotation.Configuration;  
7 -  
8 -/**  
9 - * promotion 模块的 web 组件的 Configuration  
10 - *  
11 - * @author 芋道源码  
12 - */  
13 -@Configuration(proxyBeanMethods = false)  
14 -public class PromotionWebConfiguration {  
15 -  
16 - /**  
17 - * promotion 模块的 API 分组  
18 - */  
19 - @Bean  
20 - public GroupedOpenApi promotionGroupedOpenApi() {  
21 - return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("promotion");  
22 - }  
23 -  
24 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/framework/web/package-info.java deleted
1 -/**  
2 - * promotion 模块的 web 配置  
3 - */  
4 -package cn.iocoder.yudao.module.promotion.framework.web;  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/job/combination/CombinationRecordExpireJob.java deleted
1 -package cn.iocoder.yudao.module.promotion.job.combination;  
2 -  
3 -import cn.hutool.core.util.StrUtil;  
4 -import cn.iocoder.yudao.framework.common.core.KeyValue;  
5 -import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;  
6 -import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;  
7 -import cn.iocoder.yudao.module.promotion.service.combination.CombinationRecordService;  
8 -import org.springframework.stereotype.Component;  
9 -  
10 -import jakarta.annotation.Resource;  
11 -  
12 -/**  
13 - * 拼团过期 Job  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -@Component  
18 -public class CombinationRecordExpireJob implements JobHandler {  
19 -  
20 - @Resource  
21 - private CombinationRecordService combinationRecordService;  
22 -  
23 - @Override  
24 - @TenantJob  
25 - public String execute(String param) {  
26 - KeyValue<Integer, Integer> keyValue = combinationRecordService.expireCombinationRecord();  
27 - return StrUtil.format("过期拼团 {} 个, 虚拟成团 {} 个", keyValue.getKey(), keyValue.getValue());  
28 - }  
29 -  
30 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/job/coupon/CouponExpireJob.java deleted
1 -package cn.iocoder.yudao.module.promotion.job.coupon;  
2 -  
3 -import cn.hutool.core.util.StrUtil;  
4 -import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;  
5 -import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;  
6 -import cn.iocoder.yudao.module.promotion.service.coupon.CouponService;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import jakarta.annotation.Resource;  
10 -  
11 -/**  
12 - * 优惠券过期 Job  
13 - *  
14 - * @author owen  
15 - */  
16 -@Component  
17 -public class CouponExpireJob implements JobHandler {  
18 -  
19 - @Resource  
20 - private CouponService couponService;  
21 -  
22 - @Override  
23 - @TenantJob  
24 - public String execute(String param) {  
25 - int count = couponService.expireCoupon();  
26 - return StrUtil.format("过期优惠券 {} 个", count);  
27 - }  
28 -  
29 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/job/package-info.java deleted
1 -/**  
2 - * TODO 占位,无具体含义  
3 - */  
4 -package cn.iocoder.yudao.module.promotion.job;  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/mq/consumer/coupon/CouponTakeByRegisterConsumer.java deleted
1 -package cn.iocoder.yudao.module.promotion.mq.consumer.coupon;  
2 -  
3 -import cn.iocoder.yudao.module.member.api.message.user.MemberUserCreateMessage;  
4 -import cn.iocoder.yudao.module.promotion.service.coupon.CouponService;  
5 -import lombok.extern.slf4j.Slf4j;  
6 -import org.springframework.context.event.EventListener;  
7 -import org.springframework.scheduling.annotation.Async;  
8 -import org.springframework.stereotype.Component;  
9 -  
10 -import jakarta.annotation.Resource;  
11 -  
12 -/**  
13 - * 用户注册时,发送优惠劵的消费者,基 {@link MemberUserCreateMessage} 消息  
14 - *  
15 - * @author owen  
16 - */  
17 -@Component  
18 -@Slf4j  
19 -public class CouponTakeByRegisterConsumer {  
20 -  
21 - @Resource  
22 - private CouponService couponService;  
23 -  
24 - @EventListener  
25 - @Async // Spring Event 默认在 Producer 发送的线程,通过 @Async 实现异步  
26 - public void onMessage(MemberUserCreateMessage message) {  
27 - log.info("[onMessage][消息内容({})]", message);  
28 - couponService.takeCouponByRegister(message.getUserId());  
29 - }  
30 -  
31 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/mq/consumer/package-info.java deleted
1 -/**  
2 - * 消息队列的消费者  
3 - */  
4 -package cn.iocoder.yudao.module.promotion.mq.consumer;  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/mq/message/package-info.java deleted
1 -/**  
2 - * 消息队列的消息  
3 - */  
4 -package cn.iocoder.yudao.module.promotion.mq.message;  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/mq/producer/package-info.java deleted
1 -/**  
2 - * 消息队列的生产者  
3 - */  
4 -package cn.iocoder.yudao.module.promotion.mq.producer;  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/package-info.java deleted
1 -/**  
2 - * promotion 模块,我们放营销业务。  
3 - * 例如说:营销活动、banner、优惠券等等  
4 - *  
5 - * 1. Controller URL:以 /promotion/ 开头,避免和其它 Module 冲突  
6 - * 2. DataObject 表名:以 promotion_ 开头,方便在数据库中区分  
7 - */  
8 -package cn.iocoder.yudao.module.promotion;  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/article/ArticleCategoryService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.ArticleCategoryCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.ArticleCategoryPageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.ArticleCategoryUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO;  
8 -  
9 -import jakarta.validation.Valid;  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 文章分类 Service 接口  
14 - *  
15 - * @author HUIHUI  
16 - */  
17 -public interface ArticleCategoryService {  
18 -  
19 - /**  
20 - * 创建文章分类  
21 - *  
22 - * @param createReqVO 创建信息  
23 - * @return 编号  
24 - */  
25 - Long createArticleCategory(@Valid ArticleCategoryCreateReqVO createReqVO);  
26 -  
27 - /**  
28 - * 更新文章分类  
29 - *  
30 - * @param updateReqVO 更新信息  
31 - */  
32 - void updateArticleCategory(@Valid ArticleCategoryUpdateReqVO updateReqVO);  
33 -  
34 - /**  
35 - * 删除文章分类  
36 - *  
37 - * @param id 编号  
38 - */  
39 - void deleteArticleCategory(Long id);  
40 -  
41 - /**  
42 - * 获得文章分类  
43 - *  
44 - * @param id 编号  
45 - * @return 文章分类  
46 - */  
47 - ArticleCategoryDO getArticleCategory(Long id);  
48 -  
49 - /**  
50 - * 获得文章分类分页  
51 - *  
52 - * @param pageReqVO 分页查询  
53 - * @return 文章分类分页  
54 - */  
55 - PageResult<ArticleCategoryDO> getArticleCategoryPage(ArticleCategoryPageReqVO pageReqVO);  
56 -  
57 - /**  
58 - * 获得指定状态的文章分类列表  
59 - *  
60 - * @param status 状态  
61 - * @return 文章分类列表  
62 - */  
63 - List<ArticleCategoryDO> getArticleCategoryListByStatus(Integer status);  
64 -  
65 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/article/ArticleCategoryServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.ArticleCategoryCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.ArticleCategoryPageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.ArticleCategoryUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.convert.article.ArticleCategoryConvert;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO;  
9 -import cn.iocoder.yudao.module.promotion.dal.mysql.article.ArticleCategoryMapper;  
10 -import org.springframework.context.annotation.Lazy;  
11 -import org.springframework.stereotype.Service;  
12 -import org.springframework.validation.annotation.Validated;  
13 -  
14 -import jakarta.annotation.Resource;  
15 -import java.util.List;  
16 -  
17 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
18 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.ARTICLE_CATEGORY_DELETE_FAIL_HAVE_ARTICLES;  
19 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.ARTICLE_CATEGORY_NOT_EXISTS;  
20 -  
21 -/**  
22 - * 文章分类 Service 实现类  
23 - *  
24 - * @author HUIHUI  
25 - */  
26 -@Service  
27 -@Validated  
28 -public class ArticleCategoryServiceImpl implements ArticleCategoryService {  
29 -  
30 - @Resource  
31 - private ArticleCategoryMapper articleCategoryMapper;  
32 -  
33 - @Resource  
34 - @Lazy // 延迟加载,解决循环依赖问题  
35 - private ArticleService articleService;  
36 -  
37 - @Override  
38 - public Long createArticleCategory(ArticleCategoryCreateReqVO createReqVO) {  
39 - // 插入  
40 - ArticleCategoryDO category = ArticleCategoryConvert.INSTANCE.convert(createReqVO);  
41 - articleCategoryMapper.insert(category);  
42 - // 返回  
43 - return category.getId();  
44 - }  
45 -  
46 - @Override  
47 - public void updateArticleCategory(ArticleCategoryUpdateReqVO updateReqVO) {  
48 - // 校验存在  
49 - validateArticleCategoryExists(updateReqVO.getId());  
50 - // 更新  
51 - ArticleCategoryDO updateObj = ArticleCategoryConvert.INSTANCE.convert(updateReqVO);  
52 - articleCategoryMapper.updateById(updateObj);  
53 - }  
54 -  
55 - @Override  
56 - public void deleteArticleCategory(Long id) {  
57 - // 校验存在  
58 - validateArticleCategoryExists(id);  
59 - // 校验是不是存在关联文章  
60 - Long count = articleService.getArticleCountByCategoryId(id);  
61 - if (count > 0) {  
62 - throw exception(ARTICLE_CATEGORY_DELETE_FAIL_HAVE_ARTICLES);  
63 - }  
64 -  
65 - // 删除  
66 - articleCategoryMapper.deleteById(id);  
67 - }  
68 -  
69 - private void validateArticleCategoryExists(Long id) {  
70 - if (articleCategoryMapper.selectById(id) == null) {  
71 - throw exception(ARTICLE_CATEGORY_NOT_EXISTS);  
72 - }  
73 - }  
74 -  
75 - @Override  
76 - public ArticleCategoryDO getArticleCategory(Long id) {  
77 - return articleCategoryMapper.selectById(id);  
78 - }  
79 -  
80 - @Override  
81 - public PageResult<ArticleCategoryDO> getArticleCategoryPage(ArticleCategoryPageReqVO pageReqVO) {  
82 - return articleCategoryMapper.selectPage(pageReqVO);  
83 - }  
84 -  
85 - @Override  
86 - public List<ArticleCategoryDO> getArticleCategoryListByStatus(Integer status) {  
87 - return articleCategoryMapper.selectListByStatus(status);  
88 - }  
89 -  
90 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/article/ArticleService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.article;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticlePageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO;  
9 -  
10 -import jakarta.validation.Valid;  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * 文章 Service 接口  
15 - *  
16 - * @author HUIHUI  
17 - */  
18 -public interface ArticleService {  
19 -  
20 - /**  
21 - * 创建文章  
22 - *  
23 - * @param createReqVO 创建信息  
24 - * @return 编号  
25 - */  
26 - Long createArticle(@Valid ArticleCreateReqVO createReqVO);  
27 -  
28 - /**  
29 - * 更新文章  
30 - *  
31 - * @param updateReqVO 更新信息  
32 - */  
33 - void updateArticle(@Valid ArticleUpdateReqVO updateReqVO);  
34 -  
35 - /**  
36 - * 删除文章  
37 - *  
38 - * @param id 编号  
39 - */  
40 - void deleteArticle(Long id);  
41 -  
42 - /**  
43 - * 获得文章  
44 - *  
45 - * @param id 编号  
46 - * @return 文章  
47 - */  
48 - ArticleDO getArticle(Long id);  
49 -  
50 - /**  
51 - * 基于标题,获得文章  
52 - *  
53 - * 如果有重名的文章,获取最后发布的  
54 - *  
55 - * @param title 标题  
56 - * @return 文章  
57 - */  
58 - ArticleDO getLastArticleByTitle(String title);  
59 -  
60 - /**  
61 - * 获得文章分页  
62 - *  
63 - * @param pageReqVO 分页查询  
64 - * @return 文章分页  
65 - */  
66 - PageResult<ArticleDO> getArticlePage(ArticlePageReqVO pageReqVO);  
67 -  
68 - /**  
69 - * 获得文章列表  
70 - *  
71 - * @param recommendHot 是否热门  
72 - * @param recommendBanner 是否轮播图  
73 - * @return 文章列表  
74 - */  
75 - List<ArticleDO> getArticleCategoryListByRecommend(Boolean recommendHot, Boolean recommendBanner);  
76 -  
77 - /**  
78 - * 获得文章分页  
79 - *  
80 - * @param pageReqVO 分页查询  
81 - * @return 文章分页  
82 - */  
83 - PageResult<ArticleDO> getArticlePage(AppArticlePageReqVO pageReqVO);  
84 -  
85 - /**  
86 - * 获得指定分类的文章数量  
87 - *  
88 - * @param categoryId 文章分类编号  
89 - * @return 文章数量  
90 - */  
91 - Long getArticleCountByCategoryId(Long categoryId);  
92 -  
93 - /**  
94 - * 增加文章浏览量  
95 - *  
96 - * @param id 文章编号  
97 - */  
98 - void addArticleBrowseCount(Long id);  
99 -  
100 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/article/ArticleServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.article;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleCreateReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticlePageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleUpdateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO;  
9 -import cn.iocoder.yudao.module.promotion.convert.article.ArticleConvert;  
10 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO;  
11 -import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO;  
12 -import cn.iocoder.yudao.module.promotion.dal.mysql.article.ArticleMapper;  
13 -import org.springframework.stereotype.Service;  
14 -import org.springframework.validation.annotation.Validated;  
15 -  
16 -import jakarta.annotation.Resource;  
17 -import java.util.List;  
18 -  
19 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
20 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.ARTICLE_CATEGORY_NOT_EXISTS;  
21 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.ARTICLE_NOT_EXISTS;  
22 -  
23 -/**  
24 - * 文章管理 Service 实现类  
25 - *  
26 - * @author HUIHUI  
27 - */  
28 -@Service  
29 -@Validated  
30 -public class ArticleServiceImpl implements ArticleService {  
31 -  
32 - @Resource  
33 - private ArticleMapper articleMapper;  
34 -  
35 - @Resource  
36 - private ArticleCategoryService articleCategoryService;  
37 -  
38 - @Override  
39 - public Long createArticle(ArticleCreateReqVO createReqVO) {  
40 - // 校验分类存在  
41 - validateArticleCategoryExists(createReqVO.getCategoryId());  
42 -  
43 - // 插入  
44 - ArticleDO article = ArticleConvert.INSTANCE.convert(createReqVO);  
45 - article.setBrowseCount(0); // 初始浏览量  
46 - articleMapper.insert(article);  
47 - // 返回  
48 - return article.getId();  
49 - }  
50 -  
51 - @Override  
52 - public void updateArticle(ArticleUpdateReqVO updateReqVO) {  
53 - // 校验存在  
54 - validateArticleExists(updateReqVO.getId());  
55 - // 校验分类存在  
56 - validateArticleCategoryExists(updateReqVO.getCategoryId());  
57 -  
58 - // 更新  
59 - ArticleDO updateObj = ArticleConvert.INSTANCE.convert(updateReqVO);  
60 - articleMapper.updateById(updateObj);  
61 - }  
62 -  
63 - @Override  
64 - public void deleteArticle(Long id) {  
65 - // 校验存在  
66 - validateArticleExists(id);  
67 - // 删除  
68 - articleMapper.deleteById(id);  
69 - }  
70 -  
71 - private void validateArticleExists(Long id) {  
72 - if (articleMapper.selectById(id) == null) {  
73 - throw exception(ARTICLE_NOT_EXISTS);  
74 - }  
75 - }  
76 -  
77 - private void validateArticleCategoryExists(Long categoryId) {  
78 - ArticleCategoryDO articleCategory = articleCategoryService.getArticleCategory(categoryId);  
79 - if (articleCategory == null) {  
80 - throw exception(ARTICLE_CATEGORY_NOT_EXISTS);  
81 - }  
82 - }  
83 -  
84 - @Override  
85 - public ArticleDO getArticle(Long id) {  
86 - return articleMapper.selectById(id);  
87 - }  
88 -  
89 - @Override  
90 - public ArticleDO getLastArticleByTitle(String title) {  
91 - List<ArticleDO> articles = articleMapper.selectListByTitle(title);  
92 - return CollUtil.getLast(articles);  
93 - }  
94 -  
95 - @Override  
96 - public PageResult<ArticleDO> getArticlePage(ArticlePageReqVO pageReqVO) {  
97 - return articleMapper.selectPage(pageReqVO);  
98 - }  
99 -  
100 - @Override  
101 - public List<ArticleDO> getArticleCategoryListByRecommend(Boolean recommendHot, Boolean recommendBanner) {  
102 - return articleMapper.selectList(recommendHot, recommendBanner);  
103 - }  
104 -  
105 - @Override  
106 - public PageResult<ArticleDO> getArticlePage(AppArticlePageReqVO pageReqVO) {  
107 - return articleMapper.selectPage(pageReqVO);  
108 - }  
109 -  
110 - @Override  
111 - public Long getArticleCountByCategoryId(Long categoryId) {  
112 - return articleMapper.selectCount(ArticleDO::getCategoryId, categoryId);  
113 - }  
114 -  
115 - @Override  
116 - public void addArticleBrowseCount(Long id) {  
117 - // 校验文章是否存在  
118 - validateArticleExists(id);  
119 - // 增加浏览次数  
120 - articleMapper.updateBrowseCount(id);  
121 - }  
122 -  
123 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/banner/BannerService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.banner;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerPageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.banner.BannerDO;  
8 -  
9 -import jakarta.validation.Valid;  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 首页 Banner Service 接口  
14 - *  
15 - * @author xia  
16 - */  
17 -public interface BannerService {  
18 -  
19 - /**  
20 - * 创建 Banner  
21 - *  
22 - * @param createReqVO 创建信息  
23 - * @return 编号  
24 - */  
25 - Long createBanner(@Valid BannerCreateReqVO createReqVO);  
26 -  
27 - /**  
28 - * 更新 Banner  
29 - *  
30 - * @param updateReqVO 更新信息  
31 - */  
32 - void updateBanner(@Valid BannerUpdateReqVO updateReqVO);  
33 -  
34 - /**  
35 - * 删除 Banner  
36 - *  
37 - * @param id 编号  
38 - */  
39 - void deleteBanner(Long id);  
40 -  
41 - /**  
42 - * 获得 Banner  
43 - *  
44 - * @param id 编号  
45 - * @return Banner  
46 - */  
47 - BannerDO getBanner(Long id);  
48 -  
49 - /**  
50 - * 获得 Banner 分页  
51 - *  
52 - * @param pageReqVO 分页查询  
53 - * @return Banner分页  
54 - */  
55 - PageResult<BannerDO> getBannerPage(BannerPageReqVO pageReqVO);  
56 -  
57 - /**  
58 - * 增加 Banner 点击量  
59 - *  
60 - * @param id Banner编号  
61 - */  
62 - void addBannerBrowseCount(Long id);  
63 -  
64 - /**  
65 - * 获得 Banner 列表  
66 - *  
67 - * @param position 定位  
68 - * @return Banner 列表  
69 - */  
70 - List<BannerDO> getBannerListByPosition(Integer position);  
71 -  
72 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/banner/BannerServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.banner;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerPageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.convert.banner.BannerConvert;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.banner.BannerDO;  
9 -import cn.iocoder.yudao.module.promotion.dal.mysql.banner.BannerMapper;  
10 -import org.springframework.stereotype.Service;  
11 -import org.springframework.validation.annotation.Validated;  
12 -  
13 -import jakarta.annotation.Resource;  
14 -import java.util.List;  
15 -  
16 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
17 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.BANNER_NOT_EXISTS;  
18 -  
19 -/**  
20 - * 首页 banner 实现类  
21 - *  
22 - * @author xia  
23 - */  
24 -@Service  
25 -@Validated  
26 -public class BannerServiceImpl implements BannerService {  
27 -  
28 - @Resource  
29 - private BannerMapper bannerMapper;  
30 -  
31 - @Override  
32 - public Long createBanner(BannerCreateReqVO createReqVO) {  
33 - // 插入  
34 - BannerDO banner = BannerConvert.INSTANCE.convert(createReqVO);  
35 - bannerMapper.insert(banner);  
36 - // 返回  
37 - return banner.getId();  
38 - }  
39 -  
40 - @Override  
41 - public void updateBanner(BannerUpdateReqVO updateReqVO) {  
42 - // 校验存在  
43 - this.validateBannerExists(updateReqVO.getId());  
44 - // 更新  
45 - BannerDO updateObj = BannerConvert.INSTANCE.convert(updateReqVO);  
46 - bannerMapper.updateById(updateObj);  
47 - }  
48 -  
49 - @Override  
50 - public void deleteBanner(Long id) {  
51 - // 校验存在  
52 - this.validateBannerExists(id);  
53 - // 删除  
54 - bannerMapper.deleteById(id);  
55 - }  
56 -  
57 - private void validateBannerExists(Long id) {  
58 - if (bannerMapper.selectById(id) == null) {  
59 - throw exception(BANNER_NOT_EXISTS);  
60 - }  
61 - }  
62 -  
63 - @Override  
64 - public BannerDO getBanner(Long id) {  
65 - return bannerMapper.selectById(id);  
66 - }  
67 -  
68 - @Override  
69 - public PageResult<BannerDO> getBannerPage(BannerPageReqVO pageReqVO) {  
70 - return bannerMapper.selectPage(pageReqVO);  
71 - }  
72 -  
73 - @Override  
74 - public void addBannerBrowseCount(Long id) {  
75 - // 校验 Banner 是否存在  
76 - validateBannerExists(id);  
77 - // 增加点击次数  
78 - bannerMapper.updateBrowseCount(id);  
79 - }  
80 -  
81 - @Override  
82 - public List<BannerDO> getBannerListByPosition(Integer position) {  
83 - return bannerMapper.selectBannerListByPosition(position);  
84 - }  
85 -  
86 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainActivityService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.bargain;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityCreateReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityUpdateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;  
9 -import jakarta.validation.Valid;  
10 -  
11 -import java.util.List;  
12 -import java.util.Set;  
13 -  
14 -/**  
15 - * 砍价活动 Service 接口  
16 - *  
17 - * @author HUIHUI  
18 - */  
19 -public interface BargainActivityService {  
20 -  
21 - /**  
22 - * 创建砍价活动  
23 - *  
24 - * @param createReqVO 创建信息  
25 - * @return 编号  
26 - */  
27 - Long createBargainActivity(@Valid BargainActivityCreateReqVO createReqVO);  
28 -  
29 - /**  
30 - * 更新砍价活动  
31 - *  
32 - * @param updateReqVO 更新信息  
33 - */  
34 - void updateBargainActivity(@Valid BargainActivityUpdateReqVO updateReqVO);  
35 -  
36 - /**  
37 - * 更新砍价活动库存  
38 - *  
39 - * 如果更新失败(库存不足),则抛出业务异常  
40 - *  
41 - * @param id 砍价活动编号  
42 - * @param count 购买数量  
43 - */  
44 - void updateBargainActivityStock(Long id, Integer count);  
45 -  
46 - /**  
47 - * 关闭砍价活动  
48 - *  
49 - * @param id 砍价活动编号  
50 - */  
51 - void closeBargainActivityById(Long id);  
52 -  
53 - /**  
54 - * 删除砍价活动  
55 - *  
56 - * @param id 编号  
57 - */  
58 - void deleteBargainActivity(Long id);  
59 -  
60 - /**  
61 - * 获得砍价活动  
62 - *  
63 - * @param id 编号  
64 - * @return 砍价活动  
65 - */  
66 - BargainActivityDO getBargainActivity(Long id);  
67 -  
68 - /**  
69 - * 获得砍价活动列表  
70 - *  
71 - * @param ids 编号数组  
72 - * @return 砍价活动列表  
73 - */  
74 - List<BargainActivityDO> getBargainActivityList(Set<Long> ids);  
75 -  
76 - /**  
77 - * 校验砍价活动,是否可以参与(发起砍价、下单、帮好友砍价)  
78 - *  
79 - * @param id 编号  
80 - * @return 砍价活动  
81 - */  
82 - BargainActivityDO validateBargainActivityCanJoin(Long id);  
83 -  
84 - /**  
85 - * 获得砍价活动分页  
86 - *  
87 - * @param pageReqVO 分页查询  
88 - * @return 砍价活动分页  
89 - */  
90 - PageResult<BargainActivityDO> getBargainActivityPage(BargainActivityPageReqVO pageReqVO);  
91 -  
92 - /**  
93 - * 获取正在进行的活动分页数据  
94 - *  
95 - * @param pageReqVO 分页请求  
96 - * @return 砍价活动分页  
97 - */  
98 - PageResult<BargainActivityDO> getBargainActivityPage(PageParam pageReqVO);  
99 -  
100 - /**  
101 - * 获取正在进行的活动分页数据  
102 - *  
103 - * @param count 需要的数量  
104 - * @return 砍价活动分页  
105 - */  
106 - List<BargainActivityDO> getBargainActivityListByCount(Integer count);  
107 -  
108 - /**  
109 - * 获得 SPU 进行中的砍价活动  
110 - *  
111 - * @param spuId SPU 编号数组  
112 - * @return 砍价活动  
113 - */  
114 - BargainActivityDO getMatchBargainActivityBySpuId(Long spuId);  
115 -  
116 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainHelpService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.bargain;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.help.BargainHelpPageReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.help.AppBargainHelpCreateReqVO;  
6 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainHelpDO;  
7 -  
8 -import java.util.Collection;  
9 -import java.util.List;  
10 -import java.util.Map;  
11 -  
12 -/**  
13 - * 砍价助力 Service 接口  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -public interface BargainHelpService {  
18 -  
19 - /**  
20 - * 创建砍价助力(帮人砍价)  
21 - *  
22 - * @param userId 用户编号  
23 - * @param reqVO 请求信息  
24 - * @return 砍价助力记录  
25 - */  
26 - BargainHelpDO createBargainHelp(Long userId, AppBargainHelpCreateReqVO reqVO);  
27 -  
28 - /**  
29 - * 【砍价活动】获得助力人数 Map  
30 - *  
31 - * @param activityIds 活动编号  
32 - * @return 助力人数 Map  
33 - */  
34 - Map<Long, Integer> getBargainHelpUserCountMapByActivity(Collection<Long> activityIds);  
35 -  
36 - /**  
37 - * 【砍价记录】获得助力人数 Map  
38 - *  
39 - * @param recordIds 记录编号  
40 - * @return 助力人数 Map  
41 - */  
42 - Map<Long, Integer> getBargainHelpUserCountMapByRecord(Collection<Long> recordIds);  
43 -  
44 - /**  
45 - * 【砍价活动】获得用户的助力次数  
46 - *  
47 - * @param activityId 活动编号  
48 - * @param userId 用户编号  
49 - * @return 助力次数  
50 - */  
51 - Long getBargainHelpCountByActivity(Long activityId, Long userId);  
52 -  
53 - /**  
54 - * 获得砍价助力分页  
55 - *  
56 - * @param pageReqVO 分页查询  
57 - * @return 砍价助力分页  
58 - */  
59 - PageResult<BargainHelpDO> getBargainHelpPage(BargainHelpPageReqVO pageReqVO);  
60 -  
61 - /**  
62 - * 获得指定砍价记录编号,对应的砍价助力列表  
63 - *  
64 - * @param recordId 砍价记录编号  
65 - * @return 砍价助力列表  
66 - */  
67 - List<BargainHelpDO> getBargainHelpListByRecordId(Long recordId);  
68 -  
69 - /**  
70 - * 获得助力记录  
71 - *  
72 - * @param recordId 砍价记录编号  
73 - * @param userId 用户编号  
74 - * @return 助力记录  
75 - */  
76 - BargainHelpDO getBargainHelp(Long recordId, Long userId);  
77 -  
78 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainHelpServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.bargain;  
2 -  
3 -import cn.hutool.core.lang.Assert;  
4 -import cn.hutool.core.util.ObjUtil;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.help.BargainHelpPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.help.AppBargainHelpCreateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainHelpDO;  
10 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainRecordDO;  
11 -import cn.iocoder.yudao.module.promotion.dal.mysql.bargain.BargainHelpMapper;  
12 -import cn.iocoder.yudao.module.promotion.enums.bargain.BargainRecordStatusEnum;  
13 -import jodd.util.MathUtil;  
14 -import org.springframework.stereotype.Service;  
15 -import org.springframework.transaction.annotation.Transactional;  
16 -import org.springframework.validation.annotation.Validated;  
17 -  
18 -import jakarta.annotation.Resource;  
19 -  
20 -import java.util.Collection;  
21 -import java.util.List;  
22 -import java.util.Map;  
23 -  
24 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
25 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;  
26 -  
27 -/**  
28 - * 砍价助力 Service 实现类  
29 - *  
30 - * @author 芋道源码  
31 - */  
32 -@Service  
33 -@Validated  
34 -public class BargainHelpServiceImpl implements BargainHelpService {  
35 -  
36 - @Resource  
37 - private BargainHelpMapper bargainHelpMapper;  
38 -  
39 - @Resource  
40 - private BargainRecordService bargainRecordService;  
41 - @Resource  
42 - private BargainActivityService bargainActivityService;  
43 -  
44 - @Override  
45 - @Transactional(rollbackFor = Exception.class)  
46 - public BargainHelpDO createBargainHelp(Long userId, AppBargainHelpCreateReqVO reqVO) {  
47 - // 1.1 校验砍价记录存在,并且处于进行中  
48 - BargainRecordDO record = bargainRecordService.getBargainRecord(reqVO.getRecordId());  
49 - if (record == null) {  
50 - throw exception(BARGAIN_RECORD_NOT_EXISTS);  
51 - }  
52 - if (ObjUtil.notEqual(record.getStatus(), BargainRecordStatusEnum.IN_PROGRESS.getStatus())) {  
53 - throw exception(BARGAIN_HELP_CREATE_FAIL_RECORD_NOT_IN_PROCESS);  
54 - }  
55 - // 1.2 不能自己给自己砍价  
56 - if (ObjUtil.equal(record.getUserId(), userId)) {  
57 - throw exception(BARGAIN_HELP_CREATE_FAIL_RECORD_SELF);  
58 - }  
59 -  
60 - // 2.1 校验砍价活动  
61 - BargainActivityDO activity = bargainActivityService.getBargainActivity(record.getActivityId());  
62 - // 2.2 校验自己是否助力次数上限  
63 - if (bargainHelpMapper.selectCountByUserIdAndActivityId(userId, activity.getId())  
64 - >= activity.getBargainCount()) {  
65 - throw exception(BARGAIN_HELP_CREATE_FAIL_LIMIT);  
66 - }  
67 - // 2.3 特殊情况:砍价已经砍到最低价,不能再砍了  
68 - if (record.getBargainPrice() <= activity.getBargainMinPrice()) {  
69 - throw exception(BARGAIN_HELP_CREATE_FAIL_RECORD_NOT_IN_PROCESS);  
70 - }  
71 -  
72 - // 3. 已经助力  
73 - if (bargainHelpMapper.selectByUserIdAndRecordId(userId, record.getId()) != null) {  
74 - throw exception(BARGAIN_HELP_CREATE_FAIL_HELP_EXISTS);  
75 - }  
76 -  
77 - // 4.1 计算砍价金额  
78 - Integer reducePrice = calculateReducePrice(activity, record);  
79 - Assert.isTrue(reducePrice > 0, "砍价金额必须大于 0 元");  
80 - // 4.2 创建助力记录  
81 - BargainHelpDO help = BargainHelpDO.builder().userId(userId).activityId(activity.getId())  
82 - .recordId(record.getId()).reducePrice(reducePrice).build();  
83 - bargainHelpMapper.insert(help);  
84 -  
85 - // 5. 判断砍价记录是否完成  
86 - Boolean success = record.getBargainPrice() - reducePrice <= activity.getBargainMinPrice() // 情况一:砍价已经砍到最低价  
87 - || bargainHelpMapper.selectUserCountMapByRecordId(reqVO.getRecordId()) >= activity.getHelpMaxCount(); // 情况二:砍价助力已经达到上限  
88 - if (!bargainRecordService.updateBargainRecordBargainPrice(  
89 - record.getId(), record.getBargainPrice(), reducePrice, success)) {  
90 - // 多人一起砍价,需要重试  
91 - throw exception(BARGAIN_HELP_CREATE_FAIL_CONFLICT);  
92 - }  
93 - return help;  
94 - }  
95 -  
96 - // TODO 芋艿:优化点:实现一个更随机的逻辑,可以按照你自己的业务;  
97 - private Integer calculateReducePrice(BargainActivityDO activity, BargainRecordDO record) {  
98 - // 1. 随机金额  
99 - Integer reducePrice = MathUtil.randomInt(activity.getBargainMinPrice(),  
100 - activity.getRandomMaxPrice() + 1); // + 1 的原因是,randomInt 默认不包含第二个参数  
101 - // 2. 校验是否超过砍价上限  
102 - if (record.getBargainPrice() - reducePrice < activity.getBargainMinPrice()) {  
103 - reducePrice = record.getBargainPrice() - activity.getBargainMinPrice();  
104 - }  
105 - return reducePrice;  
106 - }  
107 -  
108 - @Override  
109 - public Map<Long, Integer> getBargainHelpUserCountMapByActivity(Collection<Long> activityIds) {  
110 - return bargainHelpMapper.selectUserCountMapByActivityId(activityIds);  
111 - }  
112 -  
113 - @Override  
114 - public Map<Long, Integer> getBargainHelpUserCountMapByRecord(Collection<Long> recordIds) {  
115 - return bargainHelpMapper.selectUserCountMapByRecordId(recordIds);  
116 - }  
117 -  
118 - @Override  
119 - public Long getBargainHelpCountByActivity(Long activityId, Long userId) {  
120 - return bargainHelpMapper.selectCountByUserIdAndActivityId(userId, activityId);  
121 - }  
122 -  
123 - @Override  
124 - public PageResult<BargainHelpDO> getBargainHelpPage(BargainHelpPageReqVO pageReqVO) {  
125 - return bargainHelpMapper.selectPage(pageReqVO);  
126 - }  
127 -  
128 - @Override  
129 - public List<BargainHelpDO> getBargainHelpListByRecordId(Long recordId) {  
130 - return bargainHelpMapper.selectListByRecordId(recordId);  
131 - }  
132 -  
133 - @Override  
134 - public BargainHelpDO getBargainHelp(Long recordId, Long userId) {  
135 - return bargainHelpMapper.selectByUserIdAndRecordId(userId, recordId);  
136 - }  
137 -  
138 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainRecordService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.bargain;  
2 -  
3 -  
4 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.module.promotion.api.bargain.dto.BargainValidateJoinRespDTO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.recrod.BargainRecordPageReqVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordCreateReqVO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainRecordDO;  
10 -  
11 -import jakarta.annotation.Nullable;  
12 -import java.util.Collection;  
13 -import java.util.List;  
14 -import java.util.Map;  
15 -  
16 -/**  
17 - * 砍价记录 service 接口  
18 - *  
19 - * @author HUIHUI  
20 - */  
21 -public interface BargainRecordService {  
22 -  
23 - /**  
24 - * 【会员】创建砍价记录(参与参加活动)  
25 - *  
26 - * @param userId 用户编号  
27 - * @param reqVO 创建信息  
28 - * @return 砍价记录编号  
29 - */  
30 - Long createBargainRecord(Long userId, AppBargainRecordCreateReqVO reqVO);  
31 -  
32 - /**  
33 - * 更新砍价记录的砍价金额  
34 - *  
35 - * 如果满足砍价成功的条件,则更新砍价记录的状态为成功  
36 - *  
37 - * @param id 砍价记录编号  
38 - * @param whereBargainPrice 当前的砍价金额  
39 - * @param reducePrice 减少的砍价金额  
40 - * @param success 是否砍价成功  
41 - * @return 是否更新成功。注意,如果并发更新时,会更新失败  
42 - */  
43 - Boolean updateBargainRecordBargainPrice(Long id, Integer whereBargainPrice,  
44 - Integer reducePrice, Boolean success);  
45 -  
46 - /**  
47 - * 【下单前】校验是否参与砍价活动  
48 - * <p>  
49 - * 如果校验失败,则抛出业务异常  
50 - *  
51 - * @param userId 用户编号  
52 - * @param bargainRecordId 砍价活动编号  
53 - * @param skuId SKU 编号  
54 - * @return 砍价信息  
55 - */  
56 - BargainValidateJoinRespDTO validateJoinBargain(Long userId, Long bargainRecordId, Long skuId);  
57 -  
58 - /**  
59 - * 更新砍价记录的订单编号  
60 - *  
61 - * 在砍价成功后,用户发起订单后,会记录该订单编号  
62 - *  
63 - * @param id 砍价记录编号  
64 - * @param orderId 订单编号  
65 - */  
66 - void updateBargainRecordOrderId(Long id, Long orderId);  
67 -  
68 - /**  
69 - * 获得砍价记录  
70 - *  
71 - * @param id 砍价记录编号  
72 - * @return 砍价记录  
73 - */  
74 - BargainRecordDO getBargainRecord(Long id);  
75 -  
76 - /**  
77 - * 获得用户在当前砍价活动中的最后一条砍价记录  
78 - *  
79 - * @param userId 用户编号  
80 - * @param activityId 砍价记录编号  
81 - * @return 砍价记录  
82 - */  
83 - BargainRecordDO getLastBargainRecord(Long userId, Long activityId);  
84 -  
85 - /**  
86 - * 获得砍价人数 Map  
87 - *  
88 - * @param activityIds 活动编号  
89 - * @param status 砍价记录状态  
90 - * @return 砍价人数 Map  
91 - */  
92 - Map<Long, Integer> getBargainRecordUserCountMap(Collection<Long> activityIds, @Nullable Integer status);  
93 -  
94 - /**  
95 - * 获得砍价人数  
96 - *  
97 - * @param status 砍价记录状态  
98 - * @return 砍价人数  
99 - */  
100 - Integer getBargainRecordUserCount(Integer status);  
101 -  
102 - /**  
103 - * 获得砍价人数  
104 - *  
105 - * @param activityId 砍价活动编号  
106 - * @param status 砍价记录状态  
107 - * @return 砍价人数  
108 - */  
109 - Integer getBargainRecordUserCount(Long activityId, Integer status);  
110 -  
111 - /**  
112 - * 【管理员】获得砍价记录分页  
113 - *  
114 - * @param pageReqVO 分页查询  
115 - * @return 砍价记录分页  
116 - */  
117 - PageResult<BargainRecordDO> getBargainRecordPage(BargainRecordPageReqVO pageReqVO);  
118 -  
119 - /**  
120 - * 【会员】获得砍价记录分页  
121 - *  
122 - * @param userId 用户编号  
123 - * @param pageParam 分页查询  
124 - * @return 砍价记录分页  
125 - */  
126 - PageResult<BargainRecordDO> getBargainRecordPage(Long userId, PageParam pageParam);  
127 -  
128 - /**  
129 - * 获得砍价记录列表  
130 - *  
131 - * @param status 砍价记录状态  
132 - * @param count 条数  
133 - * @return 砍价记录列表  
134 - */  
135 - List<BargainRecordDO> getBargainRecordList(Integer status, Integer count);  
136 -  
137 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainRecordServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.bargain;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.lang.Assert;  
5 -import cn.hutool.core.util.ObjUtil;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -import cn.iocoder.yudao.module.promotion.api.bargain.dto.BargainValidateJoinRespDTO;  
9 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.recrod.BargainRecordPageReqVO;  
10 -import cn.iocoder.yudao.module.promotion.controller.app.bargain.vo.record.AppBargainRecordCreateReqVO;  
11 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;  
12 -import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainRecordDO;  
13 -import cn.iocoder.yudao.module.promotion.dal.mysql.bargain.BargainRecordMapper;  
14 -import cn.iocoder.yudao.module.promotion.enums.bargain.BargainRecordStatusEnum;  
15 -import org.springframework.stereotype.Service;  
16 -import org.springframework.transaction.annotation.Transactional;  
17 -import org.springframework.validation.annotation.Validated;  
18 -  
19 -import jakarta.annotation.Nullable;  
20 -import jakarta.annotation.Resource;  
21 -import java.util.Collection;  
22 -import java.util.List;  
23 -import java.util.Map;  
24 -import java.util.Objects;  
25 -  
26 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
27 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;  
28 -  
29 -/**  
30 - * 砍价记录 Service 实现类  
31 - *  
32 - * @author HUIHUI  
33 - */  
34 -@Service  
35 -@Validated  
36 -public class BargainRecordServiceImpl implements BargainRecordService {  
37 -  
38 - @Resource  
39 - private BargainActivityService bargainActivityService;  
40 -  
41 - @Resource  
42 - private BargainRecordMapper bargainRecordMapper;  
43 -  
44 - @Override  
45 - public Long createBargainRecord(Long userId, AppBargainRecordCreateReqVO reqVO) {  
46 - // 1. 校验砍价活动(包括库存)  
47 - BargainActivityDO activity = bargainActivityService.validateBargainActivityCanJoin(reqVO.getActivityId());  
48 -  
49 - // 2.1 校验当前是否已经有参与中的砍价活动  
50 - if (CollUtil.isNotEmpty(bargainRecordMapper.selectListByUserIdAndActivityIdAndStatus(  
51 - userId, reqVO.getActivityId(), BargainRecordStatusEnum.IN_PROGRESS.getStatus()))) {  
52 - throw exception(BARGAIN_RECORD_CREATE_FAIL_EXISTS);  
53 - }  
54 - // 2.2 是否超过参与的上限  
55 - if (bargainRecordMapper.selectCountByUserIdAndActivityIdAndStatus(  
56 - userId, reqVO.getActivityId(), BargainRecordStatusEnum.SUCCESS.getStatus()) >= activity.getTotalLimitCount()) {  
57 - throw exception(BARGAIN_RECORD_CREATE_FAIL_LIMIT);  
58 - }  
59 -  
60 - // 3. 创建砍价记录  
61 - BargainRecordDO record = BargainRecordDO.builder().userId(userId)  
62 - .activityId(reqVO.getActivityId()).spuId(activity.getSpuId()).skuId(activity.getSkuId())  
63 - .bargainFirstPrice(activity.getBargainFirstPrice()).bargainPrice(activity.getBargainFirstPrice())  
64 - .status(BargainRecordStatusEnum.IN_PROGRESS.getStatus()).build();  
65 - bargainRecordMapper.insert(record);  
66 - return record.getId();  
67 - }  
68 -  
69 - @Override  
70 - public Boolean updateBargainRecordBargainPrice(Long id, Integer whereBargainPrice,  
71 - Integer reducePrice, Boolean success) {  
72 - BargainRecordDO updateObj = new BargainRecordDO().setBargainPrice(whereBargainPrice - reducePrice);  
73 - if (success) {  
74 - updateObj.setStatus(BargainRecordStatusEnum.SUCCESS.getStatus());  
75 - }  
76 - return bargainRecordMapper.updateByIdAndBargainPrice(id, whereBargainPrice, updateObj) > 0;  
77 - }  
78 -  
79 - @Override  
80 - public BargainValidateJoinRespDTO validateJoinBargain(Long userId, Long bargainRecordId, Long skuId) {  
81 - // 1.1 砍价记录不存在  
82 - BargainRecordDO record = bargainRecordMapper.selectByIdAndUserId(bargainRecordId, userId);  
83 - if (record == null) {  
84 - throw exception(BARGAIN_RECORD_NOT_EXISTS);  
85 - }  
86 - // 1.2 砍价记录未在进行中  
87 - if (ObjUtil.notEqual(record.getStatus(), BargainRecordStatusEnum.SUCCESS.getStatus())) {  
88 - throw exception(BARGAIN_JOIN_RECORD_NOT_SUCCESS);  
89 - }  
90 - // 1.3 砍价记录已经下单  
91 - if (record.getOrderId() != null) {  
92 - throw exception(BARGAIN_JOIN_RECORD_ALREADY_ORDER);  
93 - }  
94 -  
95 - // 2.1 校验砍价活动(包括库存)  
96 - BargainActivityDO activity = bargainActivityService.validateBargainActivityCanJoin(record.getActivityId());  
97 - Assert.isTrue(Objects.equals(skuId, activity.getSkuId()), "砍价商品不匹配"); // 防御性校验  
98 - return new BargainValidateJoinRespDTO().setActivityId(activity.getId()).setName(activity.getName())  
99 - .setBargainPrice(record.getBargainPrice());  
100 - }  
101 -  
102 - @Override  
103 - @Transactional(rollbackFor = Exception.class)  
104 - public void updateBargainRecordOrderId(Long id, Long orderId) {  
105 - // 更新失败,说明已经下单  
106 - int updateCount = bargainRecordMapper.updateOrderIdById(id, orderId);  
107 - if (updateCount == 0) {  
108 - throw exception(BARGAIN_JOIN_RECORD_ALREADY_ORDER);  
109 - }  
110 - }  
111 -  
112 - @Override  
113 - public BargainRecordDO getBargainRecord(Long id) {  
114 - return bargainRecordMapper.selectById(id);  
115 - }  
116 -  
117 - @Override  
118 - public BargainRecordDO getLastBargainRecord(Long userId, Long activityId) {  
119 - return bargainRecordMapper.selectLastByUserIdAndActivityId(userId, activityId);  
120 - }  
121 -  
122 - @Override  
123 - public Map<Long, Integer> getBargainRecordUserCountMap(Collection<Long> activityIds, @Nullable Integer status) {  
124 - return bargainRecordMapper.selectUserCountByActivityIdsAndStatus(activityIds, status);  
125 - }  
126 -  
127 - @Override  
128 - public Integer getBargainRecordUserCount(Integer status) {  
129 - return bargainRecordMapper.selectUserCountByStatus(status);  
130 - }  
131 -  
132 - @Override  
133 - public Integer getBargainRecordUserCount(Long activityId, Integer status) {  
134 - return bargainRecordMapper.selectUserCountByActivityIdAndStatus(activityId, status);  
135 - }  
136 -  
137 - @Override  
138 - public PageResult<BargainRecordDO> getBargainRecordPage(BargainRecordPageReqVO pageReqVO) {  
139 - return bargainRecordMapper.selectPage(pageReqVO);  
140 - }  
141 -  
142 - @Override  
143 - public PageResult<BargainRecordDO> getBargainRecordPage(Long userId, PageParam pageParam) {  
144 - return bargainRecordMapper.selectBargainRecordPage(userId, pageParam);  
145 - }  
146 -  
147 - @Override  
148 - public List<BargainRecordDO> getBargainRecordList(Integer status, Integer count) {  
149 - return bargainRecordMapper.selectListByStatusAndCount(status, count);  
150 - }  
151 -  
152 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationActivityService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.combination;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityCreateReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityUpdateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationActivityDO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationProductDO;  
10 -import jakarta.validation.Valid;  
11 -  
12 -import java.util.Collection;  
13 -import java.util.Collections;  
14 -import java.util.List;  
15 -  
16 -/**  
17 - * 拼团活动 Service 接口  
18 - *  
19 - * @author HUIHUI  
20 - */  
21 -public interface CombinationActivityService {  
22 -  
23 - /**  
24 - * 创建拼团活动  
25 - *  
26 - * @param createReqVO 创建信息  
27 - * @return 编号  
28 - */  
29 - Long createCombinationActivity(@Valid CombinationActivityCreateReqVO createReqVO);  
30 -  
31 - /**  
32 - * 更新拼团活动  
33 - *  
34 - * @param updateReqVO 更新信息  
35 - */  
36 - void updateCombinationActivity(@Valid CombinationActivityUpdateReqVO updateReqVO);  
37 -  
38 - /**  
39 - * 关闭拼团活动  
40 - *  
41 - * @param id 拼团活动编号  
42 - */  
43 - void closeCombinationActivityById(Long id);  
44 -  
45 - /**  
46 - * 删除拼团活动  
47 - *  
48 - * @param id 编号  
49 - */  
50 - void deleteCombinationActivity(Long id);  
51 -  
52 - /**  
53 - * 校验拼团活动是否存在  
54 - *  
55 - * @param id 编号  
56 - * @return 拼团活动  
57 - */  
58 - CombinationActivityDO validateCombinationActivityExists(Long id);  
59 -  
60 - /**  
61 - * 获得拼团活动  
62 - *  
63 - * @param id 编号  
64 - * @return 拼团活动  
65 - */  
66 - CombinationActivityDO getCombinationActivity(Long id);  
67 -  
68 - /**  
69 - * 获得拼团活动分页  
70 - *  
71 - * @param pageReqVO 分页查询  
72 - * @return 拼团活动分页  
73 - */  
74 - PageResult<CombinationActivityDO> getCombinationActivityPage(CombinationActivityPageReqVO pageReqVO);  
75 -  
76 - /**  
77 - * 获得拼团活动商品列表  
78 - *  
79 - * @param activityId 拼团活动 id  
80 - * @return 拼团活动的商品列表  
81 - */  
82 - default List<CombinationProductDO> getCombinationProductsByActivityId(Long activityId) {  
83 - return getCombinationProductListByActivityIds(Collections.singletonList(activityId));  
84 - }  
85 -  
86 - /**  
87 - * 获得拼团活动商品列表  
88 - *  
89 - * @param activityIds 拼团活动 ids  
90 - * @return 拼团活动的商品列表  
91 - */  
92 - List<CombinationProductDO> getCombinationProductListByActivityIds(Collection<Long> activityIds);  
93 -  
94 - /**  
95 - * 获得拼团活动列表  
96 - *  
97 - * @param ids 拼团活动 ids  
98 - * @return 拼团活动的列表  
99 - */  
100 - List<CombinationActivityDO> getCombinationActivityListByIds(Collection<Long> ids);  
101 -  
102 - /**  
103 - * 获取正在进行的活动分页数据  
104 - *  
105 - * @param pageParam 分页请求  
106 - * @return 拼团活动分页  
107 - */  
108 - PageResult<CombinationActivityDO> getCombinationActivityPage(PageParam pageParam);  
109 -  
110 - /**  
111 - * 获取指定活动、指定 SKU 编号的商品  
112 - *  
113 - * @param activityId 活动编号  
114 - * @param skuId SKU 编号  
115 - * @return 活动商品信息  
116 - */  
117 - CombinationProductDO selectByActivityIdAndSkuId(Long activityId, Long skuId);  
118 -  
119 - /**  
120 - * 获得 SPU 进行中的拼团活动  
121 - *  
122 - * @param spuId SPU 编号数组  
123 - * @return 拼团活动  
124 - */  
125 - CombinationActivityDO getMatchCombinationActivityBySpuId(Long spuId);  
126 -  
127 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.combination;  
2 -  
3 -import cn.iocoder.yudao.framework.common.core.KeyValue;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordCreateReqDTO;  
6 -import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationValidateJoinRespDTO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.recrod.CombinationRecordReqPageVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.app.combination.vo.record.AppCombinationRecordPageReqVO;  
9 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationActivityDO;  
10 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationProductDO;  
11 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationRecordDO;  
12 -  
13 -import jakarta.annotation.Nullable;  
14 -import java.util.Collection;  
15 -import java.util.List;  
16 -import java.util.Map;  
17 -  
18 -/**  
19 - * 拼团记录 Service 接口  
20 - *  
21 - * @author HUIHUI  
22 - */  
23 -public interface CombinationRecordService {  
24 -  
25 - /**  
26 - * 【下单前】校验是否满足拼团活动条件  
27 - *  
28 - * 如果校验失败,则抛出业务异常  
29 - *  
30 - * @param userId 用户编号  
31 - * @param activityId 活动编号  
32 - * @param headId 团长编号  
33 - * @param skuId sku 编号  
34 - * @param count 数量  
35 - * @return 拼团信息  
36 - */  
37 - KeyValue<CombinationActivityDO, CombinationProductDO> validateCombinationRecord(Long userId, Long activityId, Long headId,  
38 - Long skuId, Integer count);  
39 -  
40 - /**  
41 - * 创建拼团记录  
42 - *  
43 - * @param reqDTO 创建信息  
44 - * @return 团信息  
45 - */  
46 - CombinationRecordDO createCombinationRecord(CombinationRecordCreateReqDTO reqDTO);  
47 -  
48 - /**  
49 - * 获得拼团记录  
50 - *  
51 - * @param userId 用户编号  
52 - * @param orderId 订单编号  
53 - * @return 拼团记录  
54 - */  
55 - CombinationRecordDO getCombinationRecord(Long userId, Long orderId);  
56 -  
57 - /**  
58 - * 【下单前】校验是否满足拼团活动条件  
59 - *  
60 - * 如果校验失败,则抛出业务异常  
61 - *  
62 - * @param userId 用户编号  
63 - * @param activityId 活动编号  
64 - * @param headId 团长编号  
65 - * @param skuId sku 编号  
66 - * @param count 数量  
67 - * @return 拼团信息  
68 - */  
69 - CombinationValidateJoinRespDTO validateJoinCombination(Long userId, Long activityId, Long headId, Long skuId, Integer count);  
70 -  
71 - /**  
72 - * 获取拼团记录数  
73 - *  
74 - * @param status 状态-允许为空  
75 - * @param virtualGroup 是否虚拟成团-允许为空  
76 - * @param headId 团长编号,允许空。目的 headId 设置为 {@link CombinationRecordDO#HEAD_ID_GROUP} 时,可以设置  
77 - * @return 记录数  
78 - */  
79 - Long getCombinationRecordCount(@Nullable Integer status, @Nullable Boolean virtualGroup, Long headId);  
80 -  
81 - /**  
82 - * 查询用户拼团记录(DISTINCT 去重),也就是说查询会员表中的用户有多少人参与过拼团活动每个人只统计一次  
83 - *  
84 - * @return 参加过拼团的用户数  
85 - */  
86 - Long getCombinationUserCount();  
87 -  
88 - /**  
89 - * 获取最近的 count 条拼团记录  
90 - *  
91 - * @param count 限制数量  
92 - * @return 拼团记录列表  
93 - */  
94 - List<CombinationRecordDO> getLatestCombinationRecordList(int count);  
95 -  
96 - /**  
97 - * 获得最近 n 条拼团记录(团长发起的)  
98 - *  
99 - * @param activityId 拼团活动编号  
100 - * @param status 状态  
101 - * @param count 数量  
102 - * @return 拼团记录列表  
103 - */  
104 - List<CombinationRecordDO> getHeadCombinationRecordList(Long activityId, Integer status, Integer count);  
105 -  
106 - /**  
107 - * 获取指定编号的拼团记录  
108 - *  
109 - * @param id 拼团记录编号  
110 - * @return 拼团记录  
111 - */  
112 - CombinationRecordDO getCombinationRecordById(Long id);  
113 -  
114 - /**  
115 - * 获取指定团长编号的拼团记录  
116 - *  
117 - * @param headId 团长编号  
118 - * @return 拼团记录列表  
119 - */  
120 - List<CombinationRecordDO> getCombinationRecordListByHeadId(Long headId);  
121 -  
122 - /**  
123 - * 获取拼团记录分页数据  
124 - *  
125 - * @param pageVO 分页请求  
126 - * @return 拼团记录分页数据  
127 - */  
128 - PageResult<CombinationRecordDO> getCombinationRecordPage(CombinationRecordReqPageVO pageVO);  
129 -  
130 - /**  
131 - * 【拼团活动】获得拼团记录数量 Map  
132 - *  
133 - * @param activityIds 活动记录编号数组  
134 - * @param status 拼团状态,允许空  
135 - * @param headId 团长编号,允许空。目的 headId 设置为 {@link CombinationRecordDO#HEAD_ID_GROUP} 时,可以设置  
136 - * @return 拼团记录数量 Map  
137 - */  
138 - Map<Long, Integer> getCombinationRecordCountMapByActivity(Collection<Long> activityIds,  
139 - @Nullable Integer status,  
140 - @Nullable Long headId);  
141 -  
142 - /**  
143 - * 处理过期拼团  
144 - *  
145 - * @return key 过期拼团数量, value 虚拟成团数量  
146 - */  
147 - KeyValue<Integer, Integer> expireCombinationRecord();  
148 -  
149 - /**  
150 - * 获得拼团记录分页数据  
151 - *  
152 - * @param userId 用户编号  
153 - * @param pageReqVO 分页请求  
154 - * @return 拼团记录分页数据  
155 - */  
156 - PageResult<CombinationRecordDO> getCombinationRecordPage(Long userId, AppCombinationRecordPageReqVO pageReqVO);  
157 -  
158 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.coupon;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.map.MapUtil;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;  
9 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;  
10 -  
11 -import java.util.*;  
12 -  
13 -/**  
14 - * 优惠劵 Service 接口  
15 - *  
16 - * @author 芋道源码  
17 - */  
18 -public interface CouponService {  
19 -  
20 - /**  
21 - * 使用优惠劵  
22 - *  
23 - * @param id 优惠劵编号  
24 - * @param userId 用户编号  
25 - * @param orderId 订单编号  
26 - */  
27 - void useCoupon(Long id, Long userId, Long orderId);  
28 -  
29 - /**  
30 - * 退还已使用的优惠券  
31 - *  
32 - * @param id 优惠券编号  
33 - */  
34 - void returnUsedCoupon(Long id);  
35 -  
36 - /**  
37 - * 回收优惠劵  
38 - *  
39 - * @param id 优惠劵编号  
40 - */  
41 - void deleteCoupon(Long id);  
42 -  
43 - /**  
44 - * 领取优惠券  
45 - *  
46 - * @param templateId 优惠券模板编号  
47 - * @param userIds 用户编号列表  
48 - * @param takeType 领取方式  
49 - * @return key: userId, value: 优惠券编号列表  
50 - */  
51 - Map<Long, List<Long>> takeCoupon(Long templateId, Set<Long> userIds, CouponTakeTypeEnum takeType);  
52 -  
53 - /**  
54 - * 【管理员】给用户发送优惠券  
55 - *  
56 - * @param templateId 优惠券模板编号  
57 - * @param userIds 用户编号列表  
58 - * @return key: userId, value: 优惠券编号列表  
59 - */  
60 - default Map<Long, List<Long>> takeCouponByAdmin(Long templateId, Set<Long> userIds) {  
61 - return takeCoupon(templateId, userIds, CouponTakeTypeEnum.ADMIN);  
62 - }  
63 -  
64 - /**  
65 - * 【管理员】给指定用户批量发送优惠券  
66 - *  
67 - * @param giveCoupons key: 优惠劵模版编号,value:对应的数量  
68 - * @param userId 用户编号  
69 - * @return 优惠券编号列表  
70 - */  
71 - List<Long> takeCouponsByAdmin(Map<Long, Integer> giveCoupons, Long userId);  
72 -  
73 - /**  
74 - * 【管理员】作废指定用户的指定优惠劵  
75 - *  
76 - * @param giveCouponIds 赠送的优惠券编号  
77 - * @param userId 用户编号  
78 - */  
79 - void invalidateCouponsByAdmin(List<Long> giveCouponIds, Long userId);  
80 -  
81 - /**  
82 - * 【会员】领取优惠券  
83 - *  
84 - * @param templateId 优惠券模板编号  
85 - * @param userId 用户编号  
86 - */  
87 - default void takeCouponByUser(Long templateId, Long userId) {  
88 - takeCoupon(templateId, CollUtil.newHashSet(userId), CouponTakeTypeEnum.USER);  
89 - }  
90 -  
91 - /**  
92 - * 【系统】给用户发送新人券  
93 - *  
94 - * @param userId 用户编号  
95 - */  
96 - void takeCouponByRegister(Long userId);  
97 -  
98 - /**  
99 - * 过期优惠券  
100 - *  
101 - * @return 过期数量  
102 - */  
103 - int expireCoupon();  
104 -  
105 - // ======================= 查询相关 =======================  
106 -  
107 - /**  
108 - * 获得未使用的优惠劵数量  
109 - *  
110 - * @param userId 用户编号  
111 - * @return 未使用的优惠劵数量  
112 - */  
113 - Long getUnusedCouponCount(Long userId);  
114 -  
115 - /**  
116 - * 获得优惠劵分页  
117 - *  
118 - * @param pageReqVO 分页查询  
119 - * @return 优惠劵分页  
120 - */  
121 - PageResult<CouponDO> getCouponPage(CouponPageReqVO pageReqVO);  
122 -  
123 - /**  
124 - * 获得用户的优惠劵列表  
125 - *  
126 - * @param userId 用户编号  
127 - * @param status 优惠劵状态  
128 - * @return 优惠劵列表  
129 - */  
130 - List<CouponDO> getCouponList(Long userId, Integer status);  
131 -  
132 - /**  
133 - * 统计会员领取优惠券的数量  
134 - *  
135 - * @param templateIds 优惠券模板编号列表  
136 - * @param userId 用户编号  
137 - * @return 领取优惠券的数量  
138 - */  
139 - Map<Long, Integer> getTakeCountMapByTemplateIds(Collection<Long> templateIds, Long userId);  
140 -  
141 - /**  
142 - * 获取会员领取指定优惠券的数量  
143 - *  
144 - * @param templateId 优惠券模板编号  
145 - * @param userId 用户编号  
146 - * @return 领取优惠券的数量  
147 - */  
148 - default Integer getTakeCount(Long templateId, Long userId) {  
149 - Map<Long, Integer> map = getTakeCountMapByTemplateIds(Collections.singleton(templateId), userId);  
150 - return MapUtil.getInt(map, templateId, 0);  
151 - }  
152 -  
153 - /**  
154 - * 获取用户是否可以领取优惠券  
155 - *  
156 - * @param userId 用户编号  
157 - * @param templates 优惠券列表  
158 - * @return 是否可以领取  
159 - */  
160 - Map<Long, Boolean> getUserCanCanTakeMap(Long userId, List<CouponTemplateDO> templates);  
161 -  
162 - /**  
163 - * 获得优惠劵  
164 - *  
165 - * @param userId 用户编号  
166 - * @param id 编号  
167 - * @return 优惠劵  
168 - */  
169 - CouponDO getCoupon(Long userId, Long id);  
170 -  
171 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.coupon;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;  
8 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;  
9 -  
10 -import jakarta.validation.Valid;  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 优惠劵模板 Service 接口  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -public interface CouponTemplateService {  
20 -  
21 - /**  
22 - * 创建优惠劵模板  
23 - *  
24 - * @param createReqVO 创建信息  
25 - * @return 编号  
26 - */  
27 - Long createCouponTemplate(@Valid CouponTemplateCreateReqVO createReqVO);  
28 -  
29 - /**  
30 - * 更新优惠劵模板  
31 - *  
32 - * @param updateReqVO 更新信息  
33 - */  
34 - void updateCouponTemplate(@Valid CouponTemplateUpdateReqVO updateReqVO);  
35 -  
36 - /**  
37 - * 更新优惠劵模板的状态  
38 - *  
39 - * @param id 编号  
40 - * @param status 状态  
41 - */  
42 - void updateCouponTemplateStatus(Long id, Integer status);  
43 -  
44 - /**  
45 - * 删除优惠劵模板  
46 - *  
47 - * @param id 编号  
48 - */  
49 - void deleteCouponTemplate(Long id);  
50 -  
51 - /**  
52 - * 获得优惠劵模板  
53 - *  
54 - * @param id 编号  
55 - * @return 优惠劵模板  
56 - */  
57 - CouponTemplateDO getCouponTemplate(Long id);  
58 -  
59 - /**  
60 - * 获得优惠劵模板分页  
61 - *  
62 - * @param pageReqVO 分页查询  
63 - * @return 优惠劵模板分页  
64 - */  
65 - PageResult<CouponTemplateDO> getCouponTemplatePage(CouponTemplatePageReqVO pageReqVO);  
66 -  
67 - /**  
68 - * 更新优惠劵模板的领取数量  
69 - *  
70 - * @param id 优惠劵模板编号  
71 - * @param incrCount 增加数量  
72 - */  
73 - void updateCouponTemplateTakeCount(Long id, int incrCount);  
74 -  
75 - /**  
76 - * 获得指定领取方式的优惠券模板  
77 - *  
78 - * @param takeType 领取方式  
79 - * @return 优惠券模板列表  
80 - */  
81 - List<CouponTemplateDO> getCouponTemplateListByTakeType(CouponTakeTypeEnum takeType);  
82 -  
83 - /**  
84 - * 获得优惠券模板列表  
85 - *  
86 - * @param canTakeTypes 可领取的类型列表  
87 - * @param productScope 商品使用范围类型  
88 - * @param productScopeValue 商品使用范围编号  
89 - * @param count 查询数量  
90 - * @return 优惠券模板列表  
91 - */  
92 - List<CouponTemplateDO> getCouponTemplateList(List<Integer> canTakeTypes, Integer productScope,  
93 - Long productScopeValue, Integer count);  
94 -  
95 - /**  
96 - * 获得优惠券模版列表  
97 - *  
98 - * @param ids 优惠券模版编号  
99 - * @return 优惠券模版列表  
100 - */  
101 - List<CouponTemplateDO> getCouponTemplateList(Collection<Long> ids);  
102 -  
103 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.coupon;  
2 -  
3 -import cn.hutool.core.util.ObjUtil;  
4 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.module.product.api.category.ProductCategoryApi;  
7 -import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateCreateReqVO;  
9 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;  
10 -import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateUpdateReqVO;  
11 -import cn.iocoder.yudao.module.promotion.convert.coupon.CouponTemplateConvert;  
12 -import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;  
13 -import cn.iocoder.yudao.module.promotion.dal.mysql.coupon.CouponTemplateMapper;  
14 -import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;  
15 -import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;  
16 -import jakarta.annotation.Resource;  
17 -import org.springframework.stereotype.Service;  
18 -import org.springframework.validation.annotation.Validated;  
19 -  
20 -import java.util.Collection;  
21 -import java.util.List;  
22 -import java.util.Objects;  
23 -  
24 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
25 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.COUPON_TEMPLATE_NOT_EXISTS;  
26 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.COUPON_TEMPLATE_TOTAL_COUNT_TOO_SMALL;  
27 -  
28 -/**  
29 - * 优惠劵模板 Service 实现类  
30 - *  
31 - * @author 芋道源码  
32 - */  
33 -@Service  
34 -@Validated  
35 -public class CouponTemplateServiceImpl implements CouponTemplateService {  
36 -  
37 - @Resource  
38 - private CouponTemplateMapper couponTemplateMapper;  
39 -  
40 - @Resource  
41 - private ProductCategoryApi productCategoryApi;  
42 - @Resource  
43 - private ProductSpuApi productSpuApi;  
44 -  
45 - @Override  
46 - public Long createCouponTemplate(CouponTemplateCreateReqVO createReqVO) {  
47 - // 校验商品范围  
48 - validateProductScope(createReqVO.getProductScope(), createReqVO.getProductScopeValues());  
49 - // 插入  
50 - CouponTemplateDO couponTemplate = CouponTemplateConvert.INSTANCE.convert(createReqVO)  
51 - .setStatus(CommonStatusEnum.ENABLE.getStatus());  
52 - couponTemplateMapper.insert(couponTemplate);  
53 - // 返回  
54 - return couponTemplate.getId();  
55 - }  
56 -  
57 - @Override  
58 - public void updateCouponTemplate(CouponTemplateUpdateReqVO updateReqVO) {  
59 - // 校验存在  
60 - CouponTemplateDO couponTemplate = validateCouponTemplateExists(updateReqVO.getId());  
61 - // 校验发放数量不能过小(仅在 CouponTakeTypeEnum.USER 用户领取时)  
62 - if (CouponTakeTypeEnum.isUser(couponTemplate.getTakeType())  
63 - && ObjUtil.notEqual(couponTemplate.getTakeLimitCount(), CouponTemplateDO.TIME_LIMIT_COUNT_MAX) // 非不限制  
64 - && updateReqVO.getTotalCount() < couponTemplate.getTakeCount()) {  
65 - throw exception(COUPON_TEMPLATE_TOTAL_COUNT_TOO_SMALL, couponTemplate.getTakeCount());  
66 - }  
67 - // 校验商品范围  
68 - validateProductScope(updateReqVO.getProductScope(), updateReqVO.getProductScopeValues());  
69 -  
70 - // 更新  
71 - CouponTemplateDO updateObj = CouponTemplateConvert.INSTANCE.convert(updateReqVO);  
72 - couponTemplateMapper.updateById(updateObj);  
73 - }  
74 -  
75 - @Override  
76 - public void updateCouponTemplateStatus(Long id, Integer status) {  
77 - // 校验存在  
78 - validateCouponTemplateExists(id);  
79 - // 更新  
80 - couponTemplateMapper.updateById(new CouponTemplateDO().setId(id).setStatus(status));  
81 - }  
82 -  
83 - @Override  
84 - public void deleteCouponTemplate(Long id) {  
85 - // 校验存在  
86 - validateCouponTemplateExists(id);  
87 - // 删除  
88 - couponTemplateMapper.deleteById(id);  
89 - }  
90 -  
91 - private CouponTemplateDO validateCouponTemplateExists(Long id) {  
92 - CouponTemplateDO couponTemplate = couponTemplateMapper.selectById(id);  
93 - if (couponTemplate == null) {  
94 - throw exception(COUPON_TEMPLATE_NOT_EXISTS);  
95 - }  
96 - return couponTemplate;  
97 - }  
98 -  
99 - private void validateProductScope(Integer productScope, List<Long> productScopeValues) {  
100 - if (Objects.equals(PromotionProductScopeEnum.SPU.getScope(), productScope)) {  
101 - productSpuApi.validateSpuList(productScopeValues);  
102 - } else if (Objects.equals(PromotionProductScopeEnum.CATEGORY.getScope(), productScope)) {  
103 - productCategoryApi.validateCategoryList(productScopeValues);  
104 - }  
105 - }  
106 -  
107 - @Override  
108 - public CouponTemplateDO getCouponTemplate(Long id) {  
109 - return couponTemplateMapper.selectById(id);  
110 - }  
111 -  
112 - @Override  
113 - public PageResult<CouponTemplateDO> getCouponTemplatePage(CouponTemplatePageReqVO pageReqVO) {  
114 - return couponTemplateMapper.selectPage(pageReqVO);  
115 - }  
116 -  
117 - @Override  
118 - public void updateCouponTemplateTakeCount(Long id, int incrCount) {  
119 - couponTemplateMapper.updateTakeCount(id, incrCount);  
120 - }  
121 -  
122 - @Override  
123 - public List<CouponTemplateDO> getCouponTemplateListByTakeType(CouponTakeTypeEnum takeType) {  
124 - return couponTemplateMapper.selectListByTakeType(takeType.getType());  
125 - }  
126 -  
127 - @Override  
128 - public List<CouponTemplateDO> getCouponTemplateList(List<Integer> canTakeTypes, Integer productScope,  
129 - Long productScopeValue, Integer count) {  
130 - return couponTemplateMapper.selectList(canTakeTypes, productScope, productScopeValue, count);  
131 - }  
132 -  
133 - @Override  
134 - public List<CouponTemplateDO> getCouponTemplateList(Collection<Long> ids) {  
135 - return couponTemplateMapper.selectBatchIds(ids);  
136 - }  
137 -  
138 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.discount;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityPageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityUpdateReqVO;  
7 -import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountActivityDO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProductDO;  
9 -import jakarta.validation.Valid;  
10 -  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 限时折扣 Service 接口  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -public interface DiscountActivityService {  
20 -  
21 - /**  
22 - * 基于指定 SKU 编号数组,获得匹配的限时折扣商品  
23 - *  
24 - * 注意,匹配的条件,仅仅是日期符合,并且处于开启状态  
25 - *  
26 - * @param skuIds SKU 编号数组  
27 - * @return 匹配的限时折扣商品  
28 - */  
29 - List<DiscountProductDO> getMatchDiscountProductListBySkuIds(Collection<Long> skuIds);  
30 -  
31 - /**  
32 - * 创建限时折扣活动  
33 - *  
34 - * @param createReqVO 创建信息  
35 - * @return 编号  
36 - */  
37 - Long createDiscountActivity(@Valid DiscountActivityCreateReqVO createReqVO);  
38 -  
39 - /**  
40 - * 更新限时折扣活动  
41 - *  
42 - * @param updateReqVO 更新信息  
43 - */  
44 - void updateDiscountActivity(@Valid DiscountActivityUpdateReqVO updateReqVO);  
45 -  
46 - /**  
47 - * 关闭限时折扣活动  
48 - *  
49 - * @param id 编号  
50 - */  
51 - void closeDiscountActivity(Long id);  
52 -  
53 - /**  
54 - * 删除限时折扣活动  
55 - *  
56 - * @param id 编号  
57 - */  
58 - void deleteDiscountActivity(Long id);  
59 -  
60 - /**  
61 - * 获得限时折扣活动  
62 - *  
63 - * @param id 编号  
64 - * @return 限时折扣活动  
65 - */  
66 - DiscountActivityDO getDiscountActivity(Long id);  
67 -  
68 - /**  
69 - * 获得限时折扣活动分页  
70 - *  
71 - * @param pageReqVO 分页查询  
72 - * @return 限时折扣活动分页  
73 - */  
74 - PageResult<DiscountActivityDO> getDiscountActivityPage(DiscountActivityPageReqVO pageReqVO);  
75 -  
76 - /**  
77 - * 获得活动编号,对应对应的商品列表  
78 - *  
79 - * @param activityId 活动编号  
80 - * @return 活动的商品列表  
81 - */  
82 - List<DiscountProductDO> getDiscountProductsByActivityId(Long activityId);  
83 -  
84 - /**  
85 - * 获得活动编号,对应对应的商品列表  
86 - *  
87 - * @param activityIds 活动编号  
88 - * @return 活动的商品列表  
89 - */  
90 - List<DiscountProductDO> getDiscountProductsByActivityId(Collection<Long> activityIds);  
91 -  
92 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/diy/DiyPageService.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.diy;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPageCreateReqVO;  
5 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPagePageReqVO;  
6 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPagePropertyUpdateRequestVO;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPageUpdateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;  
9 -  
10 -import jakarta.validation.Valid;  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 装修页面 Service 接口  
16 - *  
17 - * @author owen  
18 - */  
19 -public interface DiyPageService {  
20 -  
21 - /**  
22 - * 创建装修页面  
23 - *  
24 - * @param createReqVO 创建信息  
25 - * @return 编号  
26 - */  
27 - Long createDiyPage(@Valid DiyPageCreateReqVO createReqVO);  
28 -  
29 - /**  
30 - * 更新装修页面  
31 - *  
32 - * @param updateReqVO 更新信息  
33 - */  
34 - void updateDiyPage(@Valid DiyPageUpdateReqVO updateReqVO);  
35 -  
36 - /**  
37 - * 删除装修页面  
38 - *  
39 - * @param id 编号  
40 - */  
41 - void deleteDiyPage(Long id);  
42 -  
43 - /**  
44 - * 获得装修页面  
45 - *  
46 - * @param id 编号  
47 - * @return 装修页面  
48 - */  
49 - DiyPageDO getDiyPage(Long id);  
50 -  
51 - /**  
52 - * 获得装修页面列表  
53 - *  
54 - * @param ids 编号  
55 - * @return 装修页面列表  
56 - */  
57 - List<DiyPageDO> getDiyPageList(Collection<Long> ids);  
58 -  
59 - /**  
60 - * 获得装修页面分页  
61 - *  
62 - * @param pageReqVO 分页查询  
63 - * @return 装修页面分页  
64 - */  
65 - PageResult<DiyPageDO> getDiyPagePage(DiyPagePageReqVO pageReqVO);  
66 -  
67 - /**  
68 - * 更新装修页面属性  
69 - *  
70 - * @param updateReqVO 更新信息  
71 - */  
72 - void updateDiyPageProperty(DiyPagePropertyUpdateRequestVO updateReqVO);  
73 -  
74 - /**  
75 - * 获得模板所属的页面列表  
76 - *  
77 - * @param templateId 模板编号  
78 - * @return 装修页面列表  
79 - */  
80 - List<DiyPageDO> getDiyPageByTemplateId(Long templateId);  
81 -  
82 -}  
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/diy/DiyPageServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.diy;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.collection.ListUtil;  
5 -import cn.hutool.core.util.StrUtil;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPageCreateReqVO;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPagePageReqVO;  
9 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPagePropertyUpdateRequestVO;  
10 -import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPageUpdateReqVO;  
11 -import cn.iocoder.yudao.module.promotion.convert.diy.DiyPageConvert;  
12 -import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;  
13 -import cn.iocoder.yudao.module.promotion.dal.mysql.diy.DiyPageMapper;  
14 -import org.springframework.stereotype.Service;  
15 -import org.springframework.validation.annotation.Validated;  
16 -  
17 -import jakarta.annotation.Resource;  
18 -import java.util.Collection;  
19 -import java.util.List;  
20 -  
21 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
22 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.DIY_PAGE_NAME_USED;  
23 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.DIY_PAGE_NOT_EXISTS;  
24 -  
25 -/**  
26 - * 装修页面 Service 实现类  
27 - *  
28 - * @author owen  
29 - */  
30 -@Service  
31 -@Validated  
32 -public class DiyPageServiceImpl implements DiyPageService {  
33 -  
34 - @Resource  
35 - private DiyPageMapper diyPageMapper;  
36 -  
37 - @Override  
38 - public Long createDiyPage(DiyPageCreateReqVO createReqVO) {  
39 - // 校验名称唯一  
40 - validateNameUnique(null, createReqVO.getTemplateId(), createReqVO.getName());  
41 - // 插入  
42 - DiyPageDO diyPage = DiyPageConvert.INSTANCE.convert(createReqVO);  
43 - diyPage.setProperty("{}");  
44 - diyPageMapper.insert(diyPage);  
45 - return diyPage.getId();  
46 - }  
47 -  
48 - @Override  
49 - public void updateDiyPage(DiyPageUpdateReqVO updateReqVO) {  
50 - // 校验存在  
51 - validateDiyPageExists(updateReqVO.getId());  
52 - // 校验名称唯一  
53 - validateNameUnique(updateReqVO.getId(), updateReqVO.getTemplateId(), updateReqVO.getName());  
54 - // 更新  
55 - DiyPageDO updateObj = DiyPageConvert.INSTANCE.convert(updateReqVO);  
56 - diyPageMapper.updateById(updateObj);  
57 - }  
58 -  
59 - /**  
60 - * 校验 Page 页面,在一个 template 模版下的名字是唯一的  
61 - *  
62 - * @param id Page 编号  
63 - * @param templateId 模版编号  
64 - * @param name Page 名字  
65 - */  
66 - void validateNameUnique(Long id, Long templateId, String name) {  
67 - if (templateId != null || StrUtil.isBlank(name)) {  
68 - return;  
69 - }  
70 - DiyPageDO page = diyPageMapper.selectByNameAndTemplateIdIsNull(name);  
71 - if (page == null) {  
72 - return;  
73 - }  
74 - // 如果 id 为空,说明不用比较是否为相同 id 的页面  
75 - if (id == null) {  
76 - throw exception(DIY_PAGE_NAME_USED, name);  
77 - }  
78 - if (!page.getId().equals(id)) {  
79 - throw exception(DIY_PAGE_NAME_USED, name);  
80 - }  
81 - }  
82 -  
83 - @Override  
84 - public void deleteDiyPage(Long id) {  
85 - // 校验存在  
86 - validateDiyPageExists(id);  
87 - // 删除  
88 - diyPageMapper.deleteById(id);  
89 - }  
90 -  
91 - private void validateDiyPageExists(Long id) {  
92 - if (diyPageMapper.selectById(id) == null) {  
93 - throw exception(DIY_PAGE_NOT_EXISTS);  
94 - }  
95 - }  
96 -  
97 - @Override  
98 - public DiyPageDO getDiyPage(Long id) {  
99 - return diyPageMapper.selectById(id);  
100 - }  
101 -  
102 - @Override  
103 - public List<DiyPageDO> getDiyPageList(Collection<Long> ids) {  
104 - if (CollUtil.isEmpty(ids)) {  
105 - return ListUtil.empty();  
106 - }  
107 - return diyPageMapper.selectBatchIds(ids);  
108 - }  
109 -  
110 - @Override  
111 - public PageResult<DiyPageDO> getDiyPagePage(DiyPagePageReqVO pageReqVO) {  
112 - return diyPageMapper.selectPage(pageReqVO);  
113 - }  
114 -  
115 - @Override  
116 - public List<DiyPageDO> getDiyPageByTemplateId(Long templateId) {  
117 - return diyPageMapper.selectListByTemplateId(templateId);  
118 - }  
119 -  
120 - @Override  
121 - public void updateDiyPageProperty(DiyPagePropertyUpdateRequestVO updateReqVO) {  
122 - // 校验存在  
123 - validateDiyPageExists(updateReqVO.getId());  
124 - // 更新  
125 - DiyPageDO updateObj = DiyPageConvert.INSTANCE.convert(updateReqVO);  
126 - diyPageMapper.updateById(updateObj);  
127 - }  
128 -  
129 -}