Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
495bf2ed
提交
495bf2ed
authored
7月 29, 2020
作者:
wuwenbin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix promotion优惠券工程继续迁移,未完成,再再再提交下
上级
90047c10
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
27 个修改的文件
包含
1278 行增加
和
16 行删除
+1278
-16
CouponRpc.java
...a/cn/iocoder/mall/promotion/api/rpc/coupon/CouponRpc.java
+8
-8
CouponCardAvailableRespDTO.java
...motion/api/rpc/coupon/dto/CouponCardAvailableRespDTO.java
+1
-1
CouponCardDetailRespDTO.java
...promotion/api/rpc/coupon/dto/CouponCardDetailRespDTO.java
+143
-0
CouponCardPageRespDTO.java
...l/promotion/api/rpc/coupon/dto/CouponCardPageRespDTO.java
+2
-2
CouponCardReqDTO.java
...r/mall/promotion/api/rpc/coupon/dto/CouponCardReqDTO.java
+1
-1
CouponTemplatePageRespDTO.java
...omotion/api/rpc/coupon/dto/CouponTemplatePageRespDTO.java
+2
-2
CouponTemplateReqDTO.java
...ll/promotion/api/rpc/coupon/dto/CouponTemplateReqDTO.java
+155
-0
pom.xml
promotion-service-project/promotion-service-app/pom.xml
+7
-0
CouponCardConvert.java
...ll/promotionservice/convert/coupon/CouponCardConvert.java
+41
-0
CouponTemplateConvert.java
...romotionservice/convert/coupon/CouponTemplateConvert.java
+48
-0
ProductRecommendConvert.java
...ionservice/convert/recommend/ProductRecommendConvert.java
+34
-0
CouponService.java
...r/mall/promotionservice/service/coupon/CouponService.java
+0
-0
CouponCardAvailableBO.java
...otionservice/service/coupon/bo/CouponCardAvailableBO.java
+25
-0
CouponCardBO.java
...mall/promotionservice/service/coupon/bo/CouponCardBO.java
+112
-0
CouponCardDetailBO.java
...romotionservice/service/coupon/bo/CouponCardDetailBO.java
+1
-1
CouponCardPageBO.java
.../promotionservice/service/coupon/bo/CouponCardPageBO.java
+26
-0
CouponCardSpuBO.java
...l/promotionservice/service/coupon/bo/CouponCardSpuBO.java
+40
-0
CouponCardTemplateAddBO.java
...ionservice/service/coupon/bo/CouponCardTemplateAddBO.java
+140
-0
CouponCardTemplateUpdateBO.java
...service/service/coupon/bo/CouponCardTemplateUpdateBO.java
+201
-0
CouponCodeTemplateUpdateBO.java
...service/service/coupon/bo/CouponCodeTemplateUpdateBO.java
+14
-0
CouponTemplateBO.java
.../promotionservice/service/coupon/bo/CouponTemplateBO.java
+1
-1
CouponTemplatePageBO.java
...motionservice/service/coupon/bo/CouponTemplatePageBO.java
+26
-0
ProductRecommendService.java
...ionservice/service/recommend/ProductRecommendService.java
+114
-0
ProductRecommendAddBO.java
...onservice/service/recommend/bo/ProductRecommendAddBO.java
+29
-0
ProductRecommendBO.java
...otionservice/service/recommend/bo/ProductRecommendBO.java
+50
-0
ProductRecommendPageBO.java
...nservice/service/recommend/bo/ProductRecommendPageBO.java
+26
-0
ProductRecommendUpdateBO.java
...ervice/service/recommend/bo/ProductRecommendUpdateBO.java
+31
-0
没有找到文件。
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/CouponRpc.java
浏览文件 @
495bf2ed
...
...
@@ -11,9 +11,9 @@ public interface CouponRpc {
// ========== 优惠劵(码)模板 ==========
CouponTemplate
B
O
getCouponTemplate
(
Integer
couponTemplateId
);
CouponTemplate
ReqDT
O
getCouponTemplate
(
Integer
couponTemplateId
);
CouponTemplatePage
B
O
getCouponTemplatePage
(
CouponTemplatePageReqDTO
couponTemplatePageDTO
);
CouponTemplatePage
RespDT
O
getCouponTemplatePage
(
CouponTemplatePageReqDTO
couponTemplatePageDTO
);
/**
* 创建优惠码模板
...
...
@@ -21,7 +21,7 @@ public interface CouponRpc {
* @param couponCodeTemplateAddDTO 优惠码模板添加 DTO
* @return 优惠码模板
*/
CouponTemplate
B
O
addCouponCodeTemplate
(
CouponCodeTemplateAddReqDTO
couponCodeTemplateAddDTO
);
CouponTemplate
ReqDT
O
addCouponCodeTemplate
(
CouponCodeTemplateAddReqDTO
couponCodeTemplateAddDTO
);
/**
* 创建优惠劵模板
...
...
@@ -29,7 +29,7 @@ public interface CouponRpc {
* @param couponCardTemplateAddDTO 优惠码模板添加 DTO
* @return 优惠劵模板
*/
CouponTemplate
B
O
addCouponCardTemplate
(
CouponCardTemplateAddReqDTO
couponCardTemplateAddDTO
);
CouponTemplate
ReqDT
O
addCouponCardTemplate
(
CouponCardTemplateAddReqDTO
couponCardTemplateAddDTO
);
/**
* 更新优惠码模板
...
...
@@ -60,7 +60,7 @@ public interface CouponRpc {
// ========== 优惠劵 ==========
CouponCardPage
B
O
getCouponCardPage
(
CouponCardPageReqDTO
couponCardPageDTO
);
CouponCardPage
RespDT
O
getCouponCardPage
(
CouponCardPageReqDTO
couponCardPageDTO
);
/**
* 基于优惠劵模板,领取优惠劵
...
...
@@ -69,7 +69,7 @@ public interface CouponRpc {
* @param couponTemplateId 优惠劵模板
* @return 优惠劵
*/
CouponCard
B
O
addCouponCard
(
Integer
userId
,
Integer
couponTemplateId
);
CouponCard
ReqDT
O
addCouponCard
(
Integer
userId
,
Integer
couponTemplateId
);
/**
* 使用优惠劵下单
...
...
@@ -97,7 +97,7 @@ public interface CouponRpc {
* @param couponCardId 优惠劵编号
* @return 优惠劵
*/
CouponCardDetail
B
O
getCouponCardDetail
(
Integer
userId
,
Integer
couponCardId
);
CouponCardDetail
RespDT
O
getCouponCardDetail
(
Integer
userId
,
Integer
couponCardId
);
/**
* 获得用户所有优惠劵,并标明是否可用
...
...
@@ -119,6 +119,6 @@ public interface CouponRpc {
* @param code 优惠码
* @return 优惠劵
*/
CouponCard
B
O
useCouponCode
(
Integer
userId
,
String
code
);
CouponCard
ReqDT
O
useCouponCode
(
Integer
userId
,
String
code
);
}
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponCardAvailableRespDTO.java
浏览文件 @
495bf2ed
...
...
@@ -10,7 +10,7 @@ import lombok.experimental.Accessors;
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardAvailableRespDTO
extends
CouponCard
B
O
{
public
class
CouponCardAvailableRespDTO
extends
CouponCard
ReqDT
O
{
/**
* 是否可用
...
...
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponCardDetailRespDTO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 优惠劵明细 BO 。
*
* 主要是,会带上 {@link CouponTemplateReqDTO} 的信息
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardDetailRespDTO
implements
Serializable
{
// ========== 基本信息 BEGIN ==========
/**
* 优惠劵编号
*/
private
Integer
id
;
/**
* 优惠劵(码)分组编号
*/
private
Integer
templateId
;
/**
* 优惠劵名
*/
private
String
title
;
// /**
// * 核销码
// */
// private String verifyCode;
/**
* 优惠码状态
*
* 1-未使用
* 2-已使用
* 3-已失效
*/
private
Integer
status
;
// ========== 基本信息 END ==========
// ========== 领取情况 BEGIN ==========
/**
* 用户编号
*/
private
Integer
userId
;
/**
* 领取类型
*
* 1 - 用户主动领取
* 2 - 后台自动发放
*/
private
Integer
takeType
;
// ========== 领取情况 END ==========
// ========== 使用规则 BEGIN ==========
/**
* 是否设置满多少金额可用,单位:分
*/
private
Integer
priceAvailable
;
/**
* 生效开始时间
*/
private
Date
validStartTime
;
/**
* 生效结束时间
*/
private
Date
validEndTime
;
// ========== 使用规则 END ==========
// ========== 使用效果 BEGIN ==========
/**
* 优惠类型
*
* 1-代金卷
* 2-折扣卷
*/
private
Integer
preferentialType
;
/**
* 折扣
*/
private
Integer
percentOff
;
/**
* 优惠金额,单位:分。
*/
private
Integer
priceOff
;
/**
* 折扣上限,仅在 {@link #preferentialType} 等于 2 时生效。
*
* 例如,折扣上限为 20 元,当使用 8 折优惠券,订单金额为 1000 元时,最高只可折扣 20 元,而非 80 元。
*/
private
Integer
discountPriceLimit
;
// ========== 使用效果 END ==========
// ========== 使用情况 BEGIN ==========
/**
* 是否使用
*/
private
Boolean
used
;
/**
* 使用订单号
*/
private
Integer
usedOrderId
;
/**
* 订单中优惠面值,单位:分
*/
private
Integer
usedPrice
;
/**
* 使用时间
*/
private
Date
usedTime
;
// TODO 芋艿,后续要加优惠劵的使用日志,因为下单后,可能会取消。
// ========== 使用情况 END ==========
/**
* 创建时间
*/
private
Date
createTime
;
// ========== FROM template 使用规则 BEGIN ==========
/**
* 可用范围的类型
*
* 10-全部(ALL):所有可用
* 20-部分(PART):部分商品可用,或指定商品可用
* 21-部分(PART):部分商品不可用,或指定商品可用
* 30-部分(PART):部分分类可用,或指定商品可用
* 31-部分(PART):部分分类不可用,或指定商品可用
*/
private
Integer
rangeType
;
/**
* 指定商品 / 分类列表,使用逗号分隔商品编号
*/
private
List
<
Integer
>
rangeValues
;
}
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponCardPage
B
O.java
→
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponCardPage
RespDT
O.java
浏览文件 @
495bf2ed
...
...
@@ -11,12 +11,12 @@ import java.util.List;
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardPage
B
O
implements
Serializable
{
public
class
CouponCardPage
RespDT
O
implements
Serializable
{
/**
* 优惠劵数组
*/
private
List
<
CouponCard
B
O
>
list
;
private
List
<
CouponCard
ReqDT
O
>
list
;
/**
* 总量
*/
...
...
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponCard
B
O.java
→
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponCard
ReqDT
O.java
浏览文件 @
495bf2ed
...
...
@@ -11,7 +11,7 @@ import java.util.Date;
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCard
B
O
implements
Serializable
{
public
class
CouponCard
ReqDT
O
implements
Serializable
{
// ========== 基本信息 BEGIN ==========
/**
...
...
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponTemplatePage
B
O.java
→
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponTemplatePage
RespDT
O.java
浏览文件 @
495bf2ed
...
...
@@ -11,12 +11,12 @@ import java.util.List;
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponTemplatePage
B
O
implements
Serializable
{
public
class
CouponTemplatePage
RespDT
O
implements
Serializable
{
/**
* 优惠劵(码)数组
*/
private
List
<
CouponTemplate
B
O
>
list
;
private
List
<
CouponTemplate
ReqDT
O
>
list
;
/**
* 总量
*/
...
...
promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/CouponTemplateReqDTO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 优惠劵(码)模板 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponTemplateReqDTO
implements
Serializable
{
// ========== 基本信息 BEGIN ==========
/**
* 模板编号,自增唯一。
*/
private
Integer
id
;
/**
* 标题
*/
private
String
title
;
/**
* 使用说明
*/
private
String
description
;
/**
* 类型
*
* 1-优惠劵
* 2-优惠码
*/
private
Integer
type
;
/**
* 码类型
*
* 1-一卡一码(UNIQUE)
* 2-通用码(GENERAL)
*
* 【优惠码独有】 @see CouponCodeDO
*/
private
Integer
codeType
;
/**
* 优惠码状态
*
* 1-开启中
* 2-禁用中
* 3-已过期
*
* 当优惠劵(码)开启中,可以手动操作,设置禁用中。
*/
private
Integer
status
;
/**
* 每人限领个数
*
* null - 则表示不限制
*/
private
Integer
quota
;
/**
* 发放总量
*/
private
Integer
total
;
// ========== 领取规则 END ==========
// ========== 使用规则 BEGIN ==========
/**
* 是否设置满多少金额可用,单位:分
*
* 0-不限制
* 大于0-多少金额可用
*/
private
Integer
priceAvailable
;
/**
* 可用范围的类型
*
* 10-全部(ALL):所有可用
* 20-部分(PART):部分商品可用,或指定商品可用
* 21-部分(PART):部分商品不可用,或指定商品可用
* 30-部分(PART):部分分类可用,或指定商品可用
* 31-部分(PART):部分分类不可用,或指定商品可用
*/
private
Integer
rangeType
;
/**
* 指定商品 / 分类列表,使用逗号分隔商品编号
*/
private
String
rangeValues
;
/**
* 生效日期类型
*
* 1-固定日期
* 2-领取日期:领到券 {@link #fixedStartTerm} 日开始 N 天内有效
*/
private
Integer
dateType
;
/**
* 固定日期-生效开始时间
*/
private
Date
validStartTime
;
/**
* 固定日期-生效结束时间
*/
private
Date
validEndTime
;
/**
* 领取日期-开始天数
*
* 例如,0-当天;1-次天
*/
private
Integer
fixedStartTerm
;
/**
* 领取日期-结束天数
*/
private
Integer
fixedEndTerm
;
// ========== 使用规则 END ==========
// ========== 使用效果 BEGIN ==========
/**
* 优惠类型
*
* 1-代金卷
* 2-折扣卷
*/
private
Integer
preferentialType
;
/**
* 折扣百分比。
*
* 例如,80% 为 80。
* 当 100% 为 100 ,则代表免费。
*/
private
Integer
percentOff
;
/**
* 优惠金额,单位:分
*/
private
Integer
priceOff
;
/**
* 折扣上限,仅在 {@link #preferentialType} 等于 2 时生效。
*
* 例如,折扣上限为 20 元,当使用 8 折优惠券,订单金额为 1000 元时,最高只可折扣 20 元,而非 80 元。
*/
private
Integer
discountPriceLimit
;
// ========== 使用效果 END ==========
// ========== 统计信息 BEGIN ==========
/**
* 领取优惠券的次数
*/
private
Integer
statFetchNum
;
// ========== 统计信息 END ==========
/**
* 创建时间
*/
private
Date
createTime
;
}
promotion-service-project/promotion-service-app/pom.xml
浏览文件 @
495bf2ed
...
...
@@ -46,6 +46,12 @@
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
mall-spring-boot-starter-mybatis
</artifactId>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-service-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/convert/coupon/CouponCardConvert.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
convert
.
coupon
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.CouponCardDetailRespDTO
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.CouponCardReqDTO
;
import
cn.iocoder.mall.promotionservice.dal.mysql.dataobject.coupon.CouponCardDO
;
import
cn.iocoder.mall.promotionservice.service.coupon.bo.CouponCardAvailableBO
;
import
cn.iocoder.mall.promotionservice.service.coupon.bo.CouponCardBO
;
import
cn.iocoder.mall.promotionservice.service.coupon.bo.CouponCardDetailBO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
CouponCardConvert
{
CouponCardConvert
INSTANCE
=
Mappers
.
getMapper
(
CouponCardConvert
.
class
);
// @Mappings({})
// CouponCardBO convertToBO(CouponCardDO banner);
//
@Mappings
({})
List
<
CouponCardBO
>
convertToBO
(
List
<
CouponCardDO
>
cardList
);
List
<
CouponCardReqDTO
>
convertToDTO
(
List
<
CouponCardDO
>
cardList
);
CouponCardReqDTO
convertToSingleDTO
(
CouponCardDO
card
);
@Mappings
({})
CouponCardBO
convert
(
CouponCardDO
card
);
@Mappings
({})
CouponCardDetailRespDTO
convert2
(
CouponCardDO
card
);
CouponCardAvailableBO
convertAvailBO
(
CouponCardDO
card
,
boolean
x
);
//@Mappings({})
//CouponCardAvailableBO convert2(CouponCardDO card, boolean x); // TODO 芋艿,临时用来解决 mapstruct 无法正确匹配方法的问题
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/convert/coupon/CouponTemplateConvert.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
convert
.
coupon
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.*
;
import
cn.iocoder.mall.promotionservice.dal.mysql.dataobject.coupon.CouponTemplateDO
;
import
cn.iocoder.mall.promotionservice.service.coupon.bo.CouponCardTemplateAddBO
;
import
cn.iocoder.mall.promotionservice.service.coupon.bo.CouponCardTemplateUpdateBO
;
import
cn.iocoder.mall.promotionservice.service.coupon.bo.CouponTemplateBO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
CouponTemplateConvert
{
CouponTemplateConvert
INSTANCE
=
Mappers
.
getMapper
(
CouponTemplateConvert
.
class
);
// @Mappings({})
// CouponTemplateBO convertToBO(CouponTemplateDO banner);
//
@Mappings
({})
List
<
CouponTemplateBO
>
convertToBO
(
List
<
CouponTemplateDO
>
templateList
);
List
<
CouponTemplateReqDTO
>
convertToDTO
(
List
<
CouponTemplateDO
>
templateList
);
@Mappings
({})
CouponTemplateDO
convert
(
CouponCodeTemplateUpdateReqDTO
template
);
@Mappings
({})
CouponTemplateDO
convert
(
CouponCardTemplateAddReqDTO
template
);
@Mappings
({})
CouponTemplateDO
convert
(
CouponCardTemplateUpdateReqDTO
template
);
@Mappings
({})
CouponTemplateDO
convert
(
CouponCodeTemplateAddReqDTO
template
);
@Mappings
({})
CouponTemplateDO
convert
(
CouponCardTemplateAddBO
template
);
@Mappings
({})
CouponTemplateDO
convert
(
CouponCardTemplateUpdateBO
template
);
@Mappings
({})
CouponTemplateBO
convert
(
CouponTemplateDO
template
);
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/convert/recommend/ProductRecommendConvert.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
convert
.
recommend
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendRespDTO
;
import
cn.iocoder.mall.promotionservice.dal.mysql.dataobject.recommend.ProductRecommendDO
;
import
cn.iocoder.mall.promotionservice.service.recommend.bo.ProductRecommendAddBO
;
import
cn.iocoder.mall.promotionservice.service.recommend.bo.ProductRecommendBO
;
import
cn.iocoder.mall.promotionservice.service.recommend.bo.ProductRecommendUpdateBO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
ProductRecommendConvert
{
ProductRecommendConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductRecommendConvert
.
class
);
@Mappings
({})
ProductRecommendBO
convertToBO
(
ProductRecommendDO
recommend
);
@Mappings
({})
List
<
ProductRecommendBO
>
convertToBO
(
List
<
ProductRecommendDO
>
recommendList
);
@Mappings
({})
List
<
ProductRecommendRespDTO
>
convertToDTO
(
List
<
ProductRecommendDO
>
recommendList
);
@Mappings
({})
ProductRecommendDO
convert
(
ProductRecommendAddBO
recommendAddDTO
);
@Mappings
({})
ProductRecommendDO
convert
(
ProductRecommendUpdateBO
recommendUpdateDTO
);
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/CouponService.java
0 → 100644
浏览文件 @
495bf2ed
差异被折叠。
点击展开。
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponCardAvailableBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.CouponCardReqDTO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 可用优惠劵 BO
*
* 注意,如果优惠劵不可用,标记 available = false ,并写明 unavailableReason 原因
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardAvailableBO
extends
CouponCardReqDTO
{
/**
* 是否可用
*/
private
Boolean
available
;
/**
* 不可用原因
*/
private
String
unavailableReason
;
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponCardBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 优惠劵 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardBO
implements
Serializable
{
// ========== 基本信息 BEGIN ==========
/**
* 优惠劵编号
*/
private
Integer
id
;
/**
* 优惠劵(码)分组编号
*/
private
Integer
templateId
;
/**
* 优惠劵名
*/
private
String
title
;
// /**
// * 核销码
// */
// private String verifyCode;
/**
* 优惠码状态
*
* 1-未使用
* 2-已使用
* 3-已失效
*/
private
Integer
status
;
// ========== 基本信息 END ==========
// ========== 领取情况 BEGIN ==========
/**
* 用户编号
*/
private
Integer
userId
;
/**
* 领取类型
*
* 1 - 用户主动领取
* 2 - 后台自动发放
*/
private
Integer
takeType
;
// ========== 领取情况 END ==========
// ========== 使用规则 BEGIN ==========
/**
* 是否设置满多少金额可用,单位:分
*/
private
Integer
priceAvailable
;
/**
* 生效开始时间
*/
private
Date
validStartTime
;
/**
* 生效结束时间
*/
private
Date
validEndTime
;
// ========== 使用规则 END ==========
// ========== 使用效果 BEGIN ==========
/**
* 优惠类型
*
* 1-代金卷
* 2-折扣卷
*/
private
Integer
preferentialType
;
/**
* 折扣
*/
private
Integer
percentOff
;
/**
* 优惠金额,单位:分。
*/
private
Integer
priceOff
;
/**
* 折扣上限,仅在 {@link #preferentialType} 等于 2 时生效。
*
* 例如,折扣上限为 20 元,当使用 8 折优惠券,订单金额为 1000 元时,最高只可折扣 20 元,而非 80 元。
*/
private
Integer
discountPriceLimit
;
// ========== 使用效果 END ==========
// ========== 使用情况 BEGIN ==========
/**
* 使用时间
*/
private
Date
usedTime
;
// TODO 芋艿,后续要加优惠劵的使用日志,因为下单后,可能会取消。
// ========== 使用情况 END ==========
/**
* 创建时间
*/
private
Date
createTime
;
}
promotion-service-project/promotion-service-ap
i/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dt
o/CouponCardDetailBO.java
→
promotion-service-project/promotion-service-ap
p/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/b
o/CouponCardDetailBO.java
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dt
o
;
package
cn
.
iocoder
.
mall
.
promotion
service
.
service
.
coupon
.
b
o
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponCardPageBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.CouponCardReqDTO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 优惠劵分页 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardPageBO
implements
Serializable
{
/**
* 优惠劵数组
*/
private
List
<
CouponCardReqDTO
>
list
;
/**
* 总量
*/
private
Integer
total
;
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponCardSpuBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.CouponRpc
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 优惠劵商品 DTO
*
* 主要用于 {@link CouponRpc#getCouponCardList(Integer, List)}
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardSpuBO
implements
Serializable
{
/**
* 商品 SPU 编号
*/
private
Integer
spuId
;
/**
* 商品 SKU 编号
*/
private
Integer
skuId
;
/**
* 分类编号
*/
private
Integer
categoryId
;
/**
* 价格
*/
private
Integer
price
;
/**
* 数量
*/
private
Integer
quantity
;
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponCardTemplateAddBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.CouponTemplateDateTypeEnum
;
import
cn.iocoder.mall.promotion.api.enums.PreferentialTypeEnum
;
import
cn.iocoder.mall.promotion.api.enums.RangeTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 优惠劵模板添加 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardTemplateAddBO
implements
Serializable
{
// ========== 基本信息 BEGIN ==========
/**
* 标题
*/
@NotEmpty
(
message
=
"标题不能为空"
)
private
String
title
;
/**
* 使用说明
*/
private
String
description
;
// ========== 基本信息 END ==========
// ========== 领取规则 BEGIN ==========
/**
* 每人限领个数
*/
@NotNull
(
message
=
"每人限领个数不能为空"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
quota
;
/**
* 发放总量
*/
@NotNull
(
message
=
"发放总量不能为空"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
total
;
// ========== 领取规则 END ==========
// ========== 使用规则 BEGIN ==========
/**
* 是否设置满多少金额可用,单位:分
*
* 0-不限制
* 大于0-多少金额可用
*/
@NotNull
(
message
=
"使用金额门槛不能为空"
)
@Min
(
value
=
0L
,
message
=
"使用金额门槛最低为 {value}"
)
private
Integer
priceAvailable
;
/**
* 可用范围的类型
*
* 10-全部(ALL):所有可用
* 20-部分(PART):部分商品可用,或指定商品可用
* 21-部分(PART):部分商品不可用,或指定商品可用
* 30-部分(PART):部分分类可用,或指定分类可用
* 31-部分(PART):部分分类不可用,或指定分类可用
*/
@NotNull
(
message
=
"可用范围的类型不能为空"
)
@InEnum
(
value
=
RangeTypeEnum
.
class
,
message
=
"可用范围的类型必须在 {value}"
)
private
Integer
rangeType
;
/**
* 指定商品 / 分类列表,使用逗号分隔商品编号
*/
private
String
rangeValues
;
/**
* 生效日期类型
*
* 1-固定日期
* 2-领取日期:领到券 {@link #fixedEndTerm} 日开始 N 天内有效
*/
@NotNull
(
message
=
"生效日期类型不能为空"
)
@InEnum
(
value
=
CouponTemplateDateTypeEnum
.
class
,
message
=
"生效日期类型必须在 {value}"
)
private
Integer
dateType
;
/**
* 固定日期-生效开始时间
*/
private
Date
validStartTime
;
/**
* 固定日期-生效结束时间
*/
private
Date
validEndTime
;
/**
* 领取日期-开始天数
*
* 例如,0-当天;1-次天
*/
@Min
(
value
=
0L
,
message
=
"领取日期开始时间最小为 {value}"
)
private
Integer
fixedBeginTerm
;
/**
* 领取日期-结束天数
*/
@Min
(
value
=
1L
,
message
=
"领取日期结束时间最小为 {value}"
)
private
Integer
fixedEndTerm
;
// ========== 使用规则 END ==========
// ========== 使用效果 BEGIN ==========
/**
* 优惠类型
*
* 1-代金卷
* 2-折扣卷
*/
@NotNull
(
message
=
"优惠类型不能为空"
)
@InEnum
(
value
=
PreferentialTypeEnum
.
class
,
message
=
"优惠类型必须在 {value}"
)
private
Integer
preferentialType
;
/**
* 优惠金额,单位:分
*/
@Min
(
value
=
1
,
message
=
"优惠金额最小值为 {value}"
)
private
Integer
priceOff
;
/**
* 折扣百分比。
*
* 例如,80% 为 80。
* 当 100% 为 100 ,则代表免费。
*/
@Max
(
value
=
100
,
message
=
"折扣比最大值为 {value}"
)
private
Integer
percentOff
;
/**
* 折扣上限,仅在 {@link #preferentialType} 等于 2 时生效。
*
* 例如,折扣上限为 20 元,当使用 8 折优惠券,订单金额为 1000 元时,最高只可折扣 20 元,而非 80 元。
*/
@Min
(
value
=
1
,
message
=
"折扣上限最小值为 {value}"
)
private
Integer
discountPriceLimit
;
// ========== 使用效果 END ==========
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponCardTemplateUpdateBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.RangeTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 优惠劵模板更新 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardTemplateUpdateBO
implements
Serializable
{
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
// ========== 基本信息 BEGIN ==========
/**
* 标题
*/
@NotEmpty
(
message
=
"标题不能为空"
)
private
String
title
;
/**
* 使用说明
*/
private
String
description
;
// ========== 基本信息 END ==========
// ========== 领取规则 BEGIN ==========
/**
* 每人限领个数
*/
@NotNull
(
message
=
"每人限领个数不能为空"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
quota
;
/**
* 发放总量
*/
@NotNull
(
message
=
"发放总量不能为空"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
total
;
// ========== 领取规则 END ==========
// ========== 使用规则 BEGIN ==========
// /**
// * 是否设置满多少金额可用,单位:分
// *
// * 0-不限制
// * 大于0-多少金额可用
// */
// @NotNull(message = "使用金额门槛不能为空")
// @Min(value = 0L, message = "使用金额门槛最低为 {value}")
// private Integer priceAvailable;
/**
* 可用范围的类型
*
* 10-全部(ALL):所有可用
* 20-部分(PART):部分商品可用,或指定商品可用
* 21-部分(PART):部分商品不可用,或指定商品可用
* 30-部分(PART):部分分类可用,或指定分类可用
* 31-部分(PART):部分分类不可用,或指定分类可用
*/
@NotNull
(
message
=
"可用范围的类型不能为空"
)
@InEnum
(
value
=
RangeTypeEnum
.
class
,
message
=
"可用范围的类型必须在 {value}"
)
private
Integer
rangeType
;
/**
* 指定商品 / 分类列表,使用逗号分隔商品编号
*/
private
String
rangeValues
;
// /**
// * 生效日期类型
// *
// * 1-固定日期
// * 2-领取日期:领到券 {@link #fixedEndTerm} 日开始 N 天内有效
// */
// @NotNull(message = "生效日期类型不能为空")
// @InEnum(value = CouponTemplateDateTypeEnum.class, message = "生效日期类型必须在 {value}")
// private Integer dateType;
// /**
// * 固定日期-生效开始时间
// */
// private Date validStartTime;
// /**
// * 固定日期-生效结束时间
// */
// private Date validEndTime;
// /**
// * 领取日期-开始天数
// *
// * 例如,0-当天;1-次天
// */
// @Min(value = 0L, message = "领取日期开始时间最小为 {value}")
// private Integer fixedBeginTerm;
// /**
// * 领取日期-结束天数
// */
// @Min(value = 1L, message = "领取日期结束时间最小为 {value}")
// private Integer fixedEndTerm;
// ========== 使用规则 END ==========
// ========== 使用效果 BEGIN ==========
// /**
// * 优惠类型
// *
// * 1-代金卷
// * 2-折扣卷
// */
// @NotNull(message = "优惠类型不能为空")
// @InEnum(value = CouponTemplatePreferentialTypeEnum.class, message = "优惠类型必须在 {value}")
// private Integer preferentialType;
// /**
// * 优惠金额,单位:分
// */
// @Min(value = 1, message = "优惠金额最小值为 {value}")
// private Integer priceOff;
// /**
// * 折扣百分比。
// *
// * 例如,80% 为 80。
// * 当 100% 为 100 ,则代表免费。
// */
// @Max(value = 100, message = "折扣比最大值为 {value}")
// private Integer percentOff;
// /**
// * 折扣上限,仅在 {@link #preferentialType} 等于 2 时生效。
// *
// * 例如,折扣上限为 20 元,当使用 8 折优惠券,订单金额为 1000 元时,最高只可折扣 20 元,而非 80 元。
// */
// @Min(value = 1, message = "折扣上限最小值为 {value}")
// private Integer discountPriceLimit;
// ========== 使用效果 END ==========
public
Integer
getId
()
{
return
id
;
}
public
CouponCardTemplateUpdateBO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getTitle
()
{
return
title
;
}
public
CouponCardTemplateUpdateBO
setTitle
(
String
title
)
{
this
.
title
=
title
;
return
this
;
}
public
String
getDescription
()
{
return
description
;
}
public
CouponCardTemplateUpdateBO
setDescription
(
String
description
)
{
this
.
description
=
description
;
return
this
;
}
public
Integer
getQuota
()
{
return
quota
;
}
public
CouponCardTemplateUpdateBO
setQuota
(
Integer
quota
)
{
this
.
quota
=
quota
;
return
this
;
}
public
Integer
getTotal
()
{
return
total
;
}
public
CouponCardTemplateUpdateBO
setTotal
(
Integer
total
)
{
this
.
total
=
total
;
return
this
;
}
public
Integer
getRangeType
()
{
return
rangeType
;
}
public
CouponCardTemplateUpdateBO
setRangeType
(
Integer
rangeType
)
{
this
.
rangeType
=
rangeType
;
return
this
;
}
public
String
getRangeValues
()
{
return
rangeValues
;
}
public
CouponCardTemplateUpdateBO
setRangeValues
(
String
rangeValues
)
{
this
.
rangeValues
=
rangeValues
;
return
this
;
}
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponCodeTemplateUpdateBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* 优惠码模板更新 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCodeTemplateUpdateBO
implements
Serializable
{
}
promotion-service-project/promotion-service-ap
i/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dt
o/CouponTemplateBO.java
→
promotion-service-project/promotion-service-ap
p/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/b
o/CouponTemplateBO.java
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dt
o
;
package
cn
.
iocoder
.
mall
.
promotion
service
.
service
.
coupon
.
b
o
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/coupon/bo/CouponTemplatePageBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
coupon
.
bo
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.CouponTemplateReqDTO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 优惠劵(码)模板分页 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponTemplatePageBO
implements
Serializable
{
/**
* 优惠劵(码)数组
*/
private
List
<
CouponTemplateReqDTO
>
list
;
/**
* 总量
*/
private
Integer
total
;
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/recommend/ProductRecommendService.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
recommend
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.exception.util.ServiceExceptionUtil
;
import
cn.iocoder.mall.mybatis.core.enums.DeletedStatusEnum
;
import
cn.iocoder.mall.productservice.rpc.spu.ProductSpuRpc
;
import
cn.iocoder.mall.promotion.api.enums.PromotionErrorCodeEnum
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendPageReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendPageRespDTO
;
import
cn.iocoder.mall.promotionservice.convert.recommend.ProductRecommendConvert
;
import
cn.iocoder.mall.promotionservice.dal.mysql.dataobject.recommend.ProductRecommendDO
;
import
cn.iocoder.mall.promotionservice.dal.mysql.mapper.recommend.ProductRecommendMapper
;
import
cn.iocoder.mall.promotionservice.service.recommend.bo.ProductRecommendAddBO
;
import
cn.iocoder.mall.promotionservice.service.recommend.bo.ProductRecommendBO
;
import
cn.iocoder.mall.promotionservice.service.recommend.bo.ProductRecommendPageBO
;
import
cn.iocoder.mall.promotionservice.service.recommend.bo.ProductRecommendUpdateBO
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
java.util.Date
;
import
java.util.List
;
@Service
@Validated
public
class
ProductRecommendService
{
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.consumer.ProductSpuService.version}"
)
private
ProductSpuRpc
productSpuRpc
;
@Autowired
private
ProductRecommendMapper
productRecommendMapper
;
public
List
<
ProductRecommendBO
>
getProductRecommendList
(
Integer
type
,
Integer
status
)
{
List
<
ProductRecommendDO
>
productRecommends
=
productRecommendMapper
.
selectListByTypeAndStatus
(
type
,
status
);
return
ProductRecommendConvert
.
INSTANCE
.
convertToBO
(
productRecommends
);
}
public
ProductRecommendPageRespDTO
getProductRecommendPage
(
ProductRecommendPageReqDTO
productRecommendPageDTO
)
{
ProductRecommendPageRespDTO
productRecommendPageBO
=
new
ProductRecommendPageRespDTO
();
// 查询分页数据
int
offset
=
(
productRecommendPageDTO
.
getPageNo
()
-
1
)
*
productRecommendPageDTO
.
getPageSize
();
productRecommendPageBO
.
setList
(
ProductRecommendConvert
.
INSTANCE
.
convertToDTO
(
productRecommendMapper
.
selectPageByType
(
productRecommendPageDTO
.
getType
(),
offset
,
productRecommendPageDTO
.
getPageSize
())));
// 查询分页总数
productRecommendPageBO
.
setTotal
(
productRecommendMapper
.
selectCountByType
(
productRecommendPageDTO
.
getType
()));
return
productRecommendPageBO
;
}
public
ProductRecommendBO
addProductRecommend
(
Integer
adminId
,
ProductRecommendAddBO
productRecommendAddDTO
)
{
// 校验商品不存在
if
(
productSpuRpc
.
getProductSpu
(
productRecommendAddDTO
.
getProductSpuId
())
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
.
getCode
());
}
// 校验商品是否已经推荐
if
(
productRecommendMapper
.
selectByProductSpuIdAndType
(
productRecommendAddDTO
.
getProductSpuId
(),
productRecommendAddDTO
.
getType
())
!=
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_EXISTS
.
getCode
());
}
// 保存到数据库
ProductRecommendDO
productRecommend
=
ProductRecommendConvert
.
INSTANCE
.
convert
(
productRecommendAddDTO
).
setStatus
(
CommonStatusEnum
.
ENABLE
.
getValue
());
productRecommend
.
setDeleted
(
DeletedStatusEnum
.
DELETED_NO
.
getValue
()).
setCreateTime
(
new
Date
());
productRecommendMapper
.
insert
(
productRecommend
);
// 返回成功
return
ProductRecommendConvert
.
INSTANCE
.
convertToBO
(
productRecommend
);
}
public
Boolean
updateProductRecommend
(
Integer
adminId
,
ProductRecommendUpdateBO
productRecommendUpdateDTO
)
{
// 校验更新的商品推荐存在
if
(
productRecommendMapper
.
selectById
(
productRecommendUpdateDTO
.
getId
())
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_NOT_EXISTS
.
getCode
());
}
// 校验商品不存在
if
(
productSpuRpc
.
getProductSpu
(
productRecommendUpdateDTO
.
getProductSpuId
())
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
.
getCode
());
}
// 校验商品是否已经推荐
ProductRecommendDO
existProductRecommend
=
productRecommendMapper
.
selectByProductSpuIdAndType
(
productRecommendUpdateDTO
.
getProductSpuId
(),
productRecommendUpdateDTO
.
getType
());
if
(
existProductRecommend
!=
null
&&
!
existProductRecommend
.
getId
().
equals
(
productRecommendUpdateDTO
.
getId
()))
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_EXISTS
.
getCode
());
}
// 更新到数据库
ProductRecommendDO
updateProductRecommend
=
ProductRecommendConvert
.
INSTANCE
.
convert
(
productRecommendUpdateDTO
);
productRecommendMapper
.
update
(
updateProductRecommend
);
// 返回成功
return
true
;
}
public
Boolean
updateProductRecommendStatus
(
Integer
adminId
,
Integer
productRecommendId
,
Integer
status
)
{
// 校验更新的商品推荐存在
if
(
productRecommendMapper
.
selectById
(
productRecommendId
)
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_NOT_EXISTS
.
getCode
());
}
// 更新到数据库
ProductRecommendDO
updateProductRecommend
=
new
ProductRecommendDO
().
setId
(
productRecommendId
).
setStatus
(
status
);
productRecommendMapper
.
update
(
updateProductRecommend
);
// 返回成功
return
true
;
}
public
Boolean
deleteProductRecommend
(
Integer
adminId
,
Integer
productRecommendId
)
{
// 校验更新的商品推荐存在
if
(
productRecommendMapper
.
selectById
(
productRecommendId
)
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_NOT_EXISTS
.
getCode
());
}
// 更新到数据库
ProductRecommendDO
updateProductRecommend
=
new
ProductRecommendDO
().
setId
(
productRecommendId
);
updateProductRecommend
.
setDeleted
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
());
productRecommendMapper
.
update
(
updateProductRecommend
);
// 返回成功
return
true
;
}
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/recommend/bo/ProductRecommendAddBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
recommend
.
bo
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 商品推荐添加 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendAddBO
implements
Serializable
{
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"修改推荐类型必须是 {value}"
)
@NotNull
(
message
=
"推荐类型不能为空"
)
private
Integer
type
;
@NotNull
(
message
=
"商品编号不能为空"
)
private
Integer
productSpuId
;
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
@Length
(
max
=
255
,
message
=
"备注最大长度为 255 位"
)
private
String
memo
;
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/recommend/bo/ProductRecommendBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
recommend
.
bo
;
import
cn.iocoder.mall.promotion.api.enums.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 商品推荐 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendBO
implements
Serializable
{
/**
* 编号
*/
private
Integer
id
;
/**
* 类型
*
* {@link ProductRecommendTypeEnum}
*/
private
Integer
type
;
/**
* 商品 Spu 编号
*/
private
Integer
productSpuId
;
/**
* 排序
*/
private
Integer
sort
;
/**
* 状态
*
* {@link cn.iocoder.common.framework.enums.CommonStatusEnum}
*/
private
Integer
status
;
/**
* 备注
*/
private
String
memo
;
/**
* 创建时间
*/
private
Date
createTime
;
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/recommend/bo/ProductRecommendPageBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
recommend
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 商品推荐分页 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendPageBO
implements
Serializable
{
/**
* 推荐类型
*/
private
Integer
type
;
@NotNull
(
message
=
"页码不能为空"
)
private
Integer
pageNo
;
@NotNull
(
message
=
"每页条数不能为空"
)
private
Integer
pageSize
;
}
promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/recommend/bo/ProductRecommendUpdateBO.java
0 → 100644
浏览文件 @
495bf2ed
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
recommend
.
bo
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 商品推荐更新 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendUpdateBO
implements
Serializable
{
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
@NotNull
(
message
=
"类型不能为空"
)
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"修改推荐类型必须是 {value}"
)
private
Integer
type
;
@NotNull
(
message
=
"商品编号不能为空"
)
private
Integer
productSpuId
;
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
@Length
(
max
=
255
,
message
=
"备注最大长度为 255 位"
)
private
String
memo
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论