Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
479a05b5
提交
479a05b5
authored
11月 04, 2022
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
移除商品推荐的逻辑
上级
fcea893e
显示空白字符变更
内嵌
并排
正在显示
52 个修改的文件
包含
0 行增加
和
2783 行删除
+0
-2783
PromotionActivityController.java
...oller/promotion/activity/PromotionActivityController.java
+0
-36
PromotionActivityPageReqVO.java
...ler/promotion/activity/vo/PromotionActivityPageReqVO.java
+0
-26
BannerController.java
...ementweb/controller/promotion/brand/BannerController.java
+0
-65
BannerCreateReqVO.java
...tweb/controller/promotion/brand/vo/BannerCreateReqVO.java
+0
-43
BannerPageReqVO.java
...entweb/controller/promotion/brand/vo/BannerPageReqVO.java
+0
-17
BannerRespVO.java
...gementweb/controller/promotion/brand/vo/BannerRespVO.java
+0
-32
BannerUpdateReqVO.java
...tweb/controller/promotion/brand/vo/BannerUpdateReqVO.java
+0
-43
CouponTemplateController.java
...controller/promotion/coupon/CouponTemplateController.java
+0
-71
CouponTemplateCardCreateReqVO.java
...ion/coupon/vo/template/CouponTemplateCardCreateReqVO.java
+0
-84
CouponTemplateCardUpdateReqVO.java
...ion/coupon/vo/template/CouponTemplateCardUpdateReqVO.java
+0
-47
CouponTemplatePageReqVO.java
...promotion/coupon/vo/template/CouponTemplatePageReqVO.java
+0
-23
CouponTemplateRespVO.java
...er/promotion/coupon/vo/template/CouponTemplateRespVO.java
+0
-80
ProductRecommendController.java
...oller/promotion/recommend/ProductRecommendController.java
+0
-60
ProductRecommendCreateReqVO.java
...r/promotion/recommend/vo/ProductRecommendCreateReqVO.java
+0
-33
ProductRecommendDetailVO.java
...ller/promotion/recommend/vo/ProductRecommendDetailVO.java
+0
-43
ProductRecommendPageReqVO.java
...ler/promotion/recommend/vo/ProductRecommendPageReqVO.java
+0
-20
ProductRecommendUpdateReqVO.java
...r/promotion/recommend/vo/ProductRecommendUpdateReqVO.java
+0
-36
CouponTemplateConvert.java
...anagementweb/convert/promotion/CouponTemplateConvert.java
+0
-28
ProductRecommendConvert.java
...agementweb/convert/promotion/ProductRecommendConvert.java
+0
-31
PromotionActivityConvert.java
...gementweb/convert/promotion/PromotionActivityConvert.java
+0
-15
PromotionActivityManager.java
.../manager/promotion/activity/PromotionActivityManager.java
+0
-31
CouponTemplateManager.java
...ntweb/manager/promotion/coupon/CouponTemplateManager.java
+0
-54
ProductRecommendManager.java
.../manager/promotion/recommend/ProductRecommendManager.java
+0
-90
MeetTypeEnum.java
...ava/cn/iocoder/mall/promotion/api/enums/MeetTypeEnum.java
+0
-33
PromotionErrorCodeConstants.java
...mall/promotion/api/enums/PromotionErrorCodeConstants.java
+0
-12
RangeTypeEnum.java
...va/cn/iocoder/mall/promotion/api/enums/RangeTypeEnum.java
+0
-49
CouponCardStatusEnum.java
...promotion/api/enums/coupon/card/CouponCardStatusEnum.java
+0
-45
ProductRecommendTypeEnum.java
...omotion/api/enums/recommend/ProductRecommendTypeEnum.java
+0
-53
PromotionActivityPageReqDTO.java
...ion/api/rpc/activity/dto/PromotionActivityPageReqDTO.java
+0
-33
PromotionActivityRespDTO.java
...motion/api/rpc/activity/dto/PromotionActivityRespDTO.java
+0
-160
CouponCardTemplateCreateReqDTO.java
...c/coupon/dto/template/CouponCardTemplateCreateReqDTO.java
+0
-143
CouponCardTemplateUpdateReqDTO.java
...c/coupon/dto/template/CouponCardTemplateUpdateReqDTO.java
+0
-142
CouponCardTemplateUpdateStatusReqDTO.java
...on/dto/template/CouponCardTemplateUpdateStatusReqDTO.java
+0
-30
CouponTemplatePageReqDTO.java
...api/rpc/coupon/dto/template/CouponTemplatePageReqDTO.java
+0
-33
CouponTemplateRespDTO.java
...on/api/rpc/coupon/dto/template/CouponTemplateRespDTO.java
+0
-156
ProductRecommendFeign.java
...ll/promotion/api/rpc/recommend/ProductRecommendFeign.java
+0
-38
ProductRecommendCreateReqDTO.java
...n/api/rpc/recommend/dto/ProductRecommendCreateReqDTO.java
+0
-48
ProductRecommendListReqDTO.java
...ion/api/rpc/recommend/dto/ProductRecommendListReqDTO.java
+0
-29
ProductRecommendPageReqDTO.java
...ion/api/rpc/recommend/dto/ProductRecommendPageReqDTO.java
+0
-24
ProductRecommendRespDTO.java
...motion/api/rpc/recommend/dto/ProductRecommendRespDTO.java
+0
-50
ProductRecommendUpdateReqDTO.java
...n/api/rpc/recommend/dto/ProductRecommendUpdateReqDTO.java
+0
-53
ProductRecommendController.java
...omotionservice/controller/ProductRecommendController.java
+0
-55
PromotionActivityController.java
...motionservice/controller/PromotionActivityController.java
+0
-40
PromotionActivityConvert.java
...ionservice/convert/activity/PromotionActivityConvert.java
+0
-23
ProductRecommendConvert.java
...ionservice/convert/recommend/ProductRecommendConvert.java
+0
-29
PromotionActivityDO.java
...ce/dal/mysql/dataobject/activity/PromotionActivityDO.java
+0
-197
ProductRecommendDO.java
...ce/dal/mysql/dataobject/recommend/ProductRecommendDO.java
+0
-48
ProductRecommendMapper.java
...ce/dal/mysql/mapper/recommend/ProductRecommendMapper.java
+0
-28
PromotionActivityManager.java
...ionservice/manager/activity/PromotionActivityManager.java
+0
-32
ProductRecommendManager.java
...ionservice/manager/recommend/ProductRecommendManager.java
+0
-65
ProductRecommendService.java
...ionservice/service/recommend/ProductRecommendService.java
+0
-93
ProductRecommendController.java
...pweb/controller/promotion/ProductRecommendController.java
+0
-34
没有找到文件。
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/activity/PromotionActivityController.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
activity
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.activity.vo.PromotionActivityPageReqVO
;
import
cn.iocoder.mall.managementweb.manager.promotion.activity.PromotionActivityManager
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO
;
import
cn.iocoder.security.annotations.RequiresPermissions
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
@RestController
@RequestMapping
(
"/promotion/activity"
)
@Api
(
tags
=
"促销活动 API"
)
@Validated
public
class
PromotionActivityController
{
@Autowired
private
PromotionActivityManager
promotionActivityManager
;
// TODO 芋艿:DTO => VO
@GetMapping
(
"/page"
)
@ApiOperation
(
"获得促销活动分页"
)
@RequiresPermissions
(
"promotion:activity:page"
)
public
CommonResult
<
PageResult
<
PromotionActivityRespDTO
>>
pagePromotionActivity
(
PromotionActivityPageReqVO
pageReqVO
)
{
return
success
(
promotionActivityManager
.
pagePromotionActivity
(
pageReqVO
));
}
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/activity/vo/PromotionActivityPageReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
activity
.
vo
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.Collection
;
/**
* 促销活动分页 Request DTO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
public
class
PromotionActivityPageReqVO
extends
PageParam
{
@ApiModelProperty
(
value
=
"标题"
,
example
=
"优惠劵牛逼"
)
private
String
title
;
@ApiModelProperty
(
value
=
"活动类型"
,
example
=
"1"
,
notes
=
"参见 PromotionActivityTypeEnum 枚举"
)
private
Integer
activityType
;
@ApiModelProperty
(
value
=
"状态数组"
,
example
=
"1,2"
,
notes
=
"参考 PromotionActivityStatusEnum 枚举"
)
private
Collection
<
Integer
>
statuses
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/brand/BannerController.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
brand
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.brand.vo.BannerCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.brand.vo.BannerPageReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.brand.vo.BannerRespVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.brand.vo.BannerUpdateReqVO
;
import
cn.iocoder.mall.managementweb.manager.promotion.brand.BannerManager
;
import
cn.iocoder.security.annotations.RequiresPermissions
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
/**
* Banner Controller
*/
@RestController
@RequestMapping
(
"/promotion/banner"
)
@Api
(
tags
=
"Banner API"
)
@Validated
public
class
BannerController
{
@Autowired
private
BannerManager
bannerManager
;
@PostMapping
(
"/create"
)
@ApiOperation
(
"创建 Banner"
)
@RequiresPermissions
(
"promotion:banner:create"
)
public
CommonResult
<
Integer
>
createBanner
(
@Valid
BannerCreateReqVO
createVO
)
{
return
success
(
bannerManager
.
createBanner
(
createVO
));
}
@PostMapping
(
"/update"
)
@ApiOperation
(
"更新 Banner"
)
@RequiresPermissions
(
"promotion:banner:update"
)
public
CommonResult
<
Boolean
>
updateBanner
(
@Valid
BannerUpdateReqVO
updateVO
)
{
bannerManager
.
updateBanner
(
updateVO
);
return
success
(
true
);
}
@PostMapping
(
"/delete"
)
@ApiOperation
(
"删除 Banner"
)
@ApiImplicitParam
(
name
=
"bannerId"
,
value
=
" Banner 编号"
,
required
=
true
)
@RequiresPermissions
(
"promotion:banner:delete"
)
public
CommonResult
<
Boolean
>
deleteBanner
(
@RequestParam
(
"bannerId"
)
Integer
bannerId
)
{
bannerManager
.
deleteBanner
(
bannerId
);
return
success
(
true
);
}
@GetMapping
(
"/page"
)
@ApiOperation
(
"获得 Banner 分页"
)
@RequiresPermissions
(
"promotion:banner:page"
)
public
CommonResult
<
PageResult
<
BannerRespVO
>>
pageBanner
(
BannerPageReqVO
pageVO
)
{
return
success
(
bannerManager
.
pageBanner
(
pageVO
));
}
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/brand/vo/BannerCreateReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
brand
.
vo
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.URL
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"Banner 创建 Request VO"
)
@Data
public
class
BannerCreateReqVO
{
@ApiModelProperty
(
value
=
"标题"
,
required
=
true
,
example
=
"活动 A"
)
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
2
,
max
=
32
,
message
=
"标题长度为 2-32 位"
)
private
String
title
;
@ApiModelProperty
(
value
=
"跳转链接"
,
required
=
true
,
example
=
"http://www.baidu.com"
)
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@URL
(
message
=
"跳转链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"跳转链接最大长度为 255 位"
)
private
String
url
;
@ApiModelProperty
(
value
=
"跳转链接"
,
required
=
true
,
example
=
"http://www.iocoder.cn/01.jpg"
)
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@URL
(
message
=
"图片链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"图片链接最大长度为 255 位"
)
private
String
picUrl
;
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"10"
)
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"这个活动很牛逼"
)
@Length
(
max
=
255
,
message
=
"备注最大长度为 255 位"
)
private
String
memo
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/brand/vo/BannerPageReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
brand
.
vo
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@ApiModel
(
"Banner 分页 Request VO"
)
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
BannerPageReqVO
extends
PageParam
{
@ApiModelProperty
(
value
=
"标题"
,
required
=
true
,
example
=
"活动 A"
)
private
String
title
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/brand/vo/BannerRespVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
brand
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
@ApiModel
(
"Banner VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
BannerRespVO
{
@ApiModelProperty
(
value
=
"Banner 编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"标题"
,
required
=
true
,
example
=
"活动 A"
)
private
String
title
;
@ApiModelProperty
(
value
=
"跳转链接"
,
required
=
true
,
example
=
"http://www.baidu.com"
)
private
String
url
;
@ApiModelProperty
(
value
=
"图片链接"
,
required
=
true
,
example
=
"http://www.iocoder.cn/01.jpg"
)
private
String
picUrl
;
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"10"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"这个活动很牛逼"
)
private
String
memo
;
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳格式"
)
private
Date
createTime
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/brand/vo/BannerUpdateReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
brand
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.URL
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"Banner 更新 Request VO"
)
@Data
public
class
BannerUpdateReqVO
{
@ApiModelProperty
(
value
=
"Banner 编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"标题"
,
required
=
true
,
example
=
"活动 A"
)
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
2
,
max
=
32
,
message
=
"标题长度为 2-32 位"
)
private
String
title
;
@ApiModelProperty
(
value
=
"跳转链接"
,
required
=
true
,
example
=
"http://www.baidu.com"
)
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@URL
(
message
=
"跳转链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"跳转链接最大长度为 255 位"
)
private
String
url
;
@ApiModelProperty
(
value
=
"跳转链接"
,
required
=
true
,
example
=
"http://www.iocoder.cn/01.jpg"
)
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@URL
(
message
=
"图片链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"图片链接最大长度为 255 位"
)
private
String
picUrl
;
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"10"
)
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"状态不能为空"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"这个活动很牛逼"
)
@Length
(
max
=
255
,
message
=
"备注最大长度为 255 位"
)
private
String
memo
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/coupon/CouponTemplateController.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
coupon
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateCardCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateCardUpdateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplatePageReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateRespVO
;
import
cn.iocoder.mall.managementweb.manager.promotion.coupon.CouponTemplateManager
;
import
cn.iocoder.security.annotations.RequiresPermissions
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
@RestController
@RequestMapping
(
"/promotion/coupon-template"
)
@Api
(
tags
=
"优惠劵(码)模板 API"
)
@Validated
public
class
CouponTemplateController
{
@Autowired
private
CouponTemplateManager
couponTemplateManager
;
// ========== 通用逻辑 =========
@GetMapping
(
"/page"
)
@ApiOperation
(
"获得优惠劵模板分页"
)
@RequiresPermissions
(
"promotion:coupon-template:page"
)
public
CommonResult
<
PageResult
<
CouponTemplateRespVO
>>
pageCouponTemplate
(
CouponTemplatePageReqVO
pageVO
)
{
return
success
(
couponTemplateManager
.
pageCouponTemplate
(
pageVO
));
}
@PostMapping
(
"/update-status"
)
@ApiOperation
(
"更新优惠劵(码)模板的状态"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"优惠劵(码)模板编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"status"
,
value
=
"状态。1 - 开启;2 - 禁用"
,
required
=
true
,
example
=
"1"
),
})
@RequiresPermissions
(
"promotion:coupon-template:update-status"
)
public
CommonResult
<
Boolean
>
updateCouponTemplateStatus
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"status"
)
Integer
status
)
{
couponTemplateManager
.
updateCouponTemplateStatus
(
id
,
status
);
return
success
(
true
);
}
// ========== 优惠劵模板 ==========
@PostMapping
(
"/create-card"
)
@ApiOperation
(
"创建优惠劵模板"
)
@RequiresPermissions
(
"promotion:coupon-template:create-card"
)
public
CommonResult
<
Integer
>
createCouponCardTemplate
(
@Valid
CouponTemplateCardCreateReqVO
createVO
)
{
return
success
(
couponTemplateManager
.
createCouponCardTemplate
(
createVO
));
}
@PostMapping
(
"/update-card"
)
@ApiOperation
(
"更新优惠劵模板"
)
@RequiresPermissions
(
"promotion:coupon-template:update-card"
)
public
CommonResult
<
Boolean
>
updateCouponCardTemplate
(
@Valid
CouponTemplateCardUpdateReqVO
updateVO
)
{
couponTemplateManager
.
updateCouponCardTemplate
(
updateVO
);
return
success
(
true
);
}
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/coupon/vo/template/CouponTemplateCardCreateReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
coupon
.
vo
.
template
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.PreferentialTypeEnum
;
import
cn.iocoder.mall.promotion.api.enums.RangeTypeEnum
;
import
cn.iocoder.mall.promotion.api.enums.coupon.template.CouponTemplateDateTypeEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.hibernate.validator.constraints.Length
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@ApiModel
(
"优惠劵模板创建 Request VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
CouponTemplateCardCreateReqVO
{
// ========== 基本信息 BEGIN ==========
@ApiModelProperty
(
value
=
"标题"
,
required
=
true
,
example
=
"优惠劵牛逼"
)
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
2
,
max
=
16
,
message
=
"标题长度为 {min}-{max} 位"
)
private
String
title
;
@ApiModelProperty
(
value
=
"使用说明"
,
required
=
true
,
example
=
"我只是描述"
)
@Length
(
max
=
255
,
message
=
"使用说明最大长度为 {max} 位"
)
private
String
description
;
@ApiModelProperty
(
value
=
"每人限领个数"
,
example
=
"1"
,
notes
=
"null - 则表示不限制"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
quota
;
@ApiModelProperty
(
value
=
"发放总量"
,
example
=
"100"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
total
;
// ========== 领取规则 END ==========
// ========== 使用规则 BEGIN ==========
@ApiModelProperty
(
value
=
"是否设置满多少金额可用,单位:分"
,
required
=
true
,
example
=
"0"
,
notes
=
"0-不限制;大于0-多少金额可用"
)
@Min
(
value
=
0L
,
message
=
"使用金额门槛最低为 {value}"
)
private
Integer
priceAvailable
;
@ApiModelProperty
(
value
=
"可用范围的类型"
,
required
=
true
,
example
=
"10"
,
notes
=
"参见 RangeTypeEnum 枚举"
)
@NotNull
(
message
=
"可用范围的类型不能为空"
)
@InEnum
(
value
=
RangeTypeEnum
.
class
,
message
=
"可用范围的类型必须在 {value}"
)
private
Integer
rangeType
;
@ApiModelProperty
(
value
=
"指定商品 / 分类列表,使用逗号分隔商品编号"
,
example
=
"1,3,5"
)
private
String
rangeValues
;
@ApiModelProperty
(
value
=
"生效日期类型"
,
example
=
"1"
,
notes
=
"参见 CouponTemplateDateTypeEnum 枚举"
)
@NotNull
(
message
=
"生效日期类型不能为空"
)
@InEnum
(
value
=
CouponTemplateDateTypeEnum
.
class
,
message
=
"生效日期类型必须在 {value}"
)
private
Integer
dateType
;
@ApiModelProperty
(
value
=
"固定日期-生效开始时间"
,
notes
=
"当 dateType 为固定日期时,非空"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
validStartTime
;
@ApiModelProperty
(
value
=
"固定日期-生效结束时间"
,
notes
=
"当 dateType 为固定日期时,非空"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
validEndTime
;
@ApiModelProperty
(
value
=
"领取日期-开始天数"
,
example
=
"0"
,
notes
=
"例如,0-当天;1-次天"
)
@Min
(
value
=
0L
,
message
=
"领取日期开始时间最小为 {value}"
)
private
Integer
fixedStartTerm
;
@ApiModelProperty
(
value
=
"领取日期-结束天数"
,
example
=
"1"
,
notes
=
"当 dateType 为领取日期时,非空"
)
@Min
(
value
=
1L
,
message
=
"领取日期结束时间最小为 {value}"
)
private
Integer
fixedEndTerm
;
// ========== 使用效果 BEGIN ==========
@ApiModelProperty
(
value
=
"优惠类型"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 PreferentialTypeEnum 枚举"
)
@NotNull
(
message
=
"优惠类型不能为空"
)
@InEnum
(
value
=
PreferentialTypeEnum
.
class
,
message
=
"优惠类型必须在 {value}"
)
private
Integer
preferentialType
;
@ApiModelProperty
(
value
=
"折扣百分比"
,
example
=
"80"
,
notes
=
"当 preferentialType 为现金券时,非空"
)
@Max
(
value
=
100
,
message
=
"折扣比最大值为 {value}"
)
private
Integer
percentOff
;
@ApiModelProperty
(
value
=
"优惠金额,单位:分"
,
example
=
"100"
,
notes
=
"当 preferentialType 为折扣卷时,非空"
)
@Min
(
value
=
1
,
message
=
"优惠金额最小值为 {value}"
)
private
Integer
priceOff
;
@ApiModelProperty
(
value
=
"折扣上限"
,
example
=
"100"
,
notes
=
"当 preferentialType 为折扣卷时,非空"
)
@Min
(
value
=
1
,
message
=
"折扣上限最小值为 {value}"
)
private
Integer
discountPriceLimit
;
// ========== 使用效果 END ==========
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/coupon/vo/template/CouponTemplateCardUpdateReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
coupon
.
vo
.
template
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.RangeTypeEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"优惠劵模板更新 Request VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
CouponTemplateCardUpdateReqVO
{
// ========== 基本信息 BEGIN ==========
@ApiModelProperty
(
value
=
"模板编号,自增唯一"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"标题"
,
required
=
true
,
example
=
"优惠劵牛逼"
)
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
2
,
max
=
16
,
message
=
"标题长度为 {min}-{max} 位"
)
private
String
title
;
@ApiModelProperty
(
value
=
"使用说明"
,
required
=
true
,
example
=
"我只是描述"
)
@Length
(
max
=
255
,
message
=
"使用说明最大长度为 {max} 位"
)
private
String
description
;
@ApiModelProperty
(
value
=
"每人限领个数"
,
example
=
"1"
,
notes
=
"null - 则表示不限制"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
quota
;
@ApiModelProperty
(
value
=
"发放总量"
,
example
=
"100"
)
@Min
(
value
=
1
,
message
=
"每人限领个数最小为 {value}"
)
private
Integer
total
;
// ========== 领取规则 END ==========
// ========== 使用规则 BEGIN ==========
@NotNull
(
message
=
"可用范围的类型不能为空"
)
@InEnum
(
value
=
RangeTypeEnum
.
class
,
message
=
"可用范围的类型必须在 {value}"
)
private
Integer
rangeType
;
@ApiModelProperty
(
value
=
"指定商品 / 分类列表,使用逗号分隔商品编号"
,
example
=
"1,3,5"
)
private
String
rangeValues
;
// ========== 使用规则 END ==========
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/coupon/vo/template/CouponTemplatePageReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
coupon
.
vo
.
template
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@ApiModel
(
"优惠劵(码)模板分页 Request VO"
)
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
CouponTemplatePageReqVO
extends
PageParam
{
@ApiModelProperty
(
value
=
"类型"
,
example
=
"1"
,
notes
=
"参考 CouponTemplateTypeEnum 枚举"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"标题"
,
example
=
"优惠劵牛逼"
)
private
String
title
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"1"
,
notes
=
"参考 CouponTemplateStatusEnum 枚举"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"优惠类型"
,
example
=
"1"
,
notes
=
"参见 PreferentialTypeEnum 枚举"
)
private
Integer
preferentialType
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/coupon/vo/template/CouponTemplateRespVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
coupon
.
vo
.
template
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
import
java.util.List
;
@ApiModel
(
"优惠劵(码)模板 VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
CouponTemplateRespVO
{
// ========== 基本信息 BEGIN ==========
@ApiModelProperty
(
value
=
"模板编号,自增唯一"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"标题"
,
required
=
true
,
example
=
"优惠劵牛逼"
)
private
String
title
;
@ApiModelProperty
(
value
=
"使用说明"
,
required
=
true
,
example
=
"我只是描述"
)
private
String
description
;
@ApiModelProperty
(
value
=
"优惠劵类型"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 CouponTemplateTypeEnum 枚举"
)
private
Integer
type
;
/**
* 码类型
*
* 1-一卡一码(UNIQUE)
* 2-通用码(GENERAL)
*
* 【优惠码独有】 @see CouponCodeDO
*/
private
Integer
codeType
;
@ApiModelProperty
(
value
=
"优惠码状态"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 CouponTemplateStatusEnum 枚举"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"每人限领个数"
,
example
=
"1"
,
notes
=
"null - 则表示不限制"
)
private
Integer
quota
;
@ApiModelProperty
(
value
=
"发放总量"
,
example
=
"100"
)
private
Integer
total
;
// ========== 领取规则 END ==========
// ========== 使用规则 BEGIN ==========
@ApiModelProperty
(
value
=
"是否设置满多少金额可用,单位:分"
,
required
=
true
,
example
=
"0"
,
notes
=
"0-不限制;大于0-多少金额可用"
)
private
Integer
priceAvailable
;
@ApiModelProperty
(
value
=
"可用范围的类型"
,
required
=
true
,
example
=
"10"
,
notes
=
"参见 RangeTypeEnum 枚举"
)
private
Integer
rangeType
;
@ApiModelProperty
(
value
=
"指定商品 / 分类列表,使用逗号分隔商品编号"
,
example
=
"1,3,5"
)
private
List
<
Integer
>
rangeValues
;
@ApiModelProperty
(
value
=
"生效日期类型"
,
example
=
"1"
,
notes
=
"参见 CouponTemplateDateTypeEnum 枚举"
)
private
Integer
dateType
;
@ApiModelProperty
(
value
=
"固定日期-生效开始时间"
,
notes
=
"当 dateType 为固定日期时,非空"
)
private
Date
validStartTime
;
@ApiModelProperty
(
value
=
"固定日期-生效结束时间"
,
notes
=
"当 dateType 为固定日期时,非空"
)
private
Date
validEndTime
;
@ApiModelProperty
(
value
=
"领取日期-开始天数"
,
example
=
"0"
,
notes
=
"例如,0-当天;1-次天"
)
private
Integer
fixedStartTerm
;
@ApiModelProperty
(
value
=
"领取日期-结束天数"
,
example
=
"1"
,
notes
=
"当 dateType 为领取日期时,非空"
)
private
Integer
fixedEndTerm
;
// ========== 使用规则 END ==========
// ========== 使用效果 BEGIN ==========
@ApiModelProperty
(
value
=
"优惠类型"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 PreferentialTypeEnum 枚举"
)
private
Integer
preferentialType
;
@ApiModelProperty
(
value
=
"折扣百分比"
,
example
=
"80"
,
notes
=
"当 preferentialType 为现金券时,非空"
)
private
Integer
percentOff
;
@ApiModelProperty
(
value
=
"优惠金额,单位:分"
,
example
=
"100"
,
notes
=
"当 preferentialType 为折扣卷时,非空"
)
private
Integer
priceOff
;
@ApiModelProperty
(
value
=
"折扣上限"
,
example
=
"100"
,
notes
=
"当 preferentialType 为折扣卷时,非空"
)
private
Integer
discountPriceLimit
;
// ========== 使用效果 END ==========
// ========== 统计信息 BEGIN ==========
@ApiModelProperty
(
value
=
"领取优惠券的次数"
,
required
=
true
)
private
Integer
statFetchNum
;
// ========== 统计信息 END ==========
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
)
private
Date
createTime
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/recommend/ProductRecommendController.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
recommend
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendDetailVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendPageReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendUpdateReqVO
;
import
cn.iocoder.mall.managementweb.manager.promotion.recommend.ProductRecommendManager
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
/**
* 商品推荐 Controller
*/
@RestController
@RequestMapping
(
"/promotion/product-recommend"
)
@Api
(
tags
=
"商品推荐"
)
@Validated
public
class
ProductRecommendController
{
@Autowired
private
ProductRecommendManager
productRecommendManager
;
@PostMapping
(
"/create"
)
@ApiOperation
(
"创建商品推荐"
)
public
CommonResult
<
Integer
>
createProductRecommend
(
@Valid
ProductRecommendCreateReqVO
createVO
)
{
return
success
(
productRecommendManager
.
createProductRecommend
(
createVO
));
}
@PostMapping
(
"/update"
)
@ApiOperation
(
"更新商品推荐"
)
public
CommonResult
<
Boolean
>
updateProductRecommend
(
@Valid
ProductRecommendUpdateReqVO
updateVO
)
{
productRecommendManager
.
updateProductRecommend
(
updateVO
);
return
success
(
true
);
}
@PostMapping
(
"/delete"
)
@ApiOperation
(
"删除商品推荐"
)
@ApiImplicitParam
(
name
=
"productRecommendId"
,
value
=
"商品推荐编号"
,
required
=
true
)
public
CommonResult
<
Boolean
>
deleteProductRecommend
(
@RequestParam
(
"productRecommendId"
)
Integer
productRecommendId
)
{
productRecommendManager
.
deleteProductRecommend
(
productRecommendId
);
return
success
(
true
);
}
@GetMapping
(
"/page"
)
@ApiOperation
(
"获得商品推荐分页"
)
public
CommonResult
<
PageResult
<
ProductRecommendDetailVO
>>
pageProductRecommend
(
ProductRecommendPageReqVO
pageVO
)
{
return
success
(
productRecommendManager
.
pageProductRecommend
(
pageVO
));
}
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/recommend/vo/ProductRecommendCreateReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
recommend
.
vo
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"商品推荐创建 Request VO"
)
@Data
public
class
ProductRecommendCreateReqVO
{
@ApiModelProperty
(
value
=
"类型"
,
example
=
"1"
,
required
=
true
,
notes
=
"参见 ProductRecommendTypeEnum 枚举"
)
@NotNull
(
message
=
"类型不能为空"
)
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"推荐类型必须是 {value}"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"商品 Spu 编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"商品 Spu 编号不能为空"
)
private
Integer
productSpuId
;
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 CommonStatusEnum 枚举"
)
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"我是备注"
)
private
String
memo
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/recommend/vo/ProductRecommendDetailVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
recommend
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
@ApiModel
(
"商品推荐明细 VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendDetailVO
{
@ApiModelProperty
(
value
=
"编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"推荐类型"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 ProductRecommendTypeEnum 枚举"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"商品编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
productSpuId
;
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"10"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 CommonStatusEnum 枚举"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"备注"
,
required
=
true
,
example
=
"这个活动很牛逼"
)
private
String
memo
;
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳格式"
)
private
Date
createTime
;
/**
* 商品信息
*/
private
Spu
spu
;
@ApiModel
(
"商品信息"
)
@Data
public
static
class
Spu
{
@ApiModelProperty
(
value
=
"SPU 名字"
,
required
=
true
,
example
=
"厮大牛逼"
)
private
String
name
;
}
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/recommend/vo/ProductRecommendPageReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
recommend
.
vo
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@ApiModel
(
"商品推荐分页 Request VO"
)
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
ProductRecommendPageReqVO
extends
PageParam
{
@ApiModelProperty
(
value
=
"类型"
,
example
=
"1"
,
notes
=
"参见 ProductRecommendTypeEnum 枚举"
)
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"推荐类型必须是 {value}"
)
private
Integer
type
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/promotion/recommend/vo/ProductRecommendUpdateReqVO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
promotion
.
recommend
.
vo
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"商品推荐更新 Request VO"
)
@Data
public
class
ProductRecommendUpdateReqVO
{
@ApiModelProperty
(
value
=
"编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"类型"
,
example
=
"1"
,
required
=
true
,
notes
=
"参见 ProductRecommendTypeEnum 枚举"
)
@NotNull
(
message
=
"类型不能为空"
)
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"推荐类型必须是 {value}"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"商品 Spu 编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"商品 Spu 编号不能为空"
)
private
Integer
productSpuId
;
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
,
notes
=
"参见 CommonStatusEnum 枚举"
)
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"我是备注"
)
private
String
memo
;
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/convert/promotion/CouponTemplateConvert.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
convert
.
promotion
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateCardCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateCardUpdateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplatePageReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateRespVO
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.template.CouponCardTemplateCreateReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.template.CouponCardTemplateUpdateReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.template.CouponTemplatePageReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.template.CouponTemplateRespDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
@Mapper
public
interface
CouponTemplateConvert
{
CouponTemplateConvert
INSTANCE
=
Mappers
.
getMapper
(
CouponTemplateConvert
.
class
);
CouponCardTemplateUpdateReqDTO
convert
(
CouponTemplateCardUpdateReqVO
bean
);
CouponTemplatePageReqDTO
convert
(
CouponTemplatePageReqVO
bean
);
PageResult
<
CouponTemplateRespVO
>
convertPage
(
PageResult
<
CouponTemplateRespDTO
>
page
);
CouponCardTemplateCreateReqDTO
convert
(
CouponTemplateCardCreateReqVO
bean
);
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/convert/promotion/ProductRecommendConvert.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
convert
.
promotion
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendDetailVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendPageReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendUpdateReqVO
;
import
cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuRespDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendCreateReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendPageReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendRespDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendUpdateReqDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
@Mapper
public
interface
ProductRecommendConvert
{
ProductRecommendConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductRecommendConvert
.
class
);
ProductRecommendCreateReqDTO
convert
(
ProductRecommendCreateReqVO
bean
);
ProductRecommendUpdateReqDTO
convert
(
ProductRecommendUpdateReqVO
bean
);
ProductRecommendPageReqDTO
convert
(
ProductRecommendPageReqVO
bean
);
PageResult
<
ProductRecommendDetailVO
>
convertPage
(
PageResult
<
ProductRecommendRespDTO
>
page
);
ProductRecommendDetailVO
.
Spu
convert
(
ProductSpuRespDTO
bean
);
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/convert/promotion/PromotionActivityConvert.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
convert
.
promotion
;
import
cn.iocoder.mall.managementweb.controller.promotion.activity.vo.PromotionActivityPageReqVO
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
@Mapper
public
interface
PromotionActivityConvert
{
PromotionActivityConvert
INSTANCE
=
Mappers
.
getMapper
(
PromotionActivityConvert
.
class
);
PromotionActivityPageReqDTO
convert
(
PromotionActivityPageReqVO
bean
);
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/manager/promotion/activity/PromotionActivityManager.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
manager
.
promotion
.
activity
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.activity.vo.PromotionActivityPageReqVO
;
import
cn.iocoder.mall.managementweb.convert.promotion.PromotionActivityConvert
;
import
cn.iocoder.mall.promotion.api.rpc.activity.PromotionActivityFeign
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
/**
* 促销活动 Manager
*/
@Service
@Validated
public
class
PromotionActivityManager
{
@Autowired
private
PromotionActivityFeign
promotionActivityFeign
;
public
PageResult
<
PromotionActivityRespDTO
>
pagePromotionActivity
(
PromotionActivityPageReqVO
pageReqVO
)
{
CommonResult
<
PageResult
<
PromotionActivityRespDTO
>>
pagePromotionActivityResult
=
promotionActivityFeign
.
pagePromotionActivity
(
PromotionActivityConvert
.
INSTANCE
.
convert
(
pageReqVO
));
pagePromotionActivityResult
.
checkError
();
return
pagePromotionActivityResult
.
getData
();
}
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/manager/promotion/coupon/CouponTemplateManager.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
manager
.
promotion
.
coupon
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateCardCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateCardUpdateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplatePageReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.coupon.vo.template.CouponTemplateRespVO
;
import
cn.iocoder.mall.managementweb.convert.promotion.CouponTemplateConvert
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.CouponTemplateFeign
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.template.CouponCardTemplateUpdateStatusReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.coupon.dto.template.CouponTemplateRespDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
@Service
@Validated
public
class
CouponTemplateManager
{
@Autowired
private
CouponTemplateFeign
couponTemplateFeign
;
// ========== 通用逻辑 =========
public
PageResult
<
CouponTemplateRespVO
>
pageCouponTemplate
(
CouponTemplatePageReqVO
pageVO
)
{
CommonResult
<
PageResult
<
CouponTemplateRespDTO
>>
pageCouponTemplateResult
=
couponTemplateFeign
.
pageCouponTemplate
(
CouponTemplateConvert
.
INSTANCE
.
convert
(
pageVO
));
pageCouponTemplateResult
.
checkError
();
return
CouponTemplateConvert
.
INSTANCE
.
convertPage
(
pageCouponTemplateResult
.
getData
());
}
public
void
updateCouponTemplateStatus
(
Integer
id
,
Integer
status
)
{
CommonResult
<
Boolean
>
updateCouponTemplateStatusResult
=
couponTemplateFeign
.
updateCouponTemplateStatus
(
new
CouponCardTemplateUpdateStatusReqDTO
().
setId
(
id
).
setStatus
(
status
));
updateCouponTemplateStatusResult
.
checkError
();
}
// ========== 优惠劵模板 ==========
public
Integer
createCouponCardTemplate
(
CouponTemplateCardCreateReqVO
createVO
)
{
CommonResult
<
Integer
>
createCouponCardTemplateResult
=
couponTemplateFeign
.
createCouponCardTemplate
(
CouponTemplateConvert
.
INSTANCE
.
convert
(
createVO
));
createCouponCardTemplateResult
.
checkError
();
return
createCouponCardTemplateResult
.
getData
();
}
public
void
updateCouponCardTemplate
(
CouponTemplateCardUpdateReqVO
updateVO
)
{
CommonResult
<
Boolean
>
updateCouponCardTemplateResult
=
couponTemplateFeign
.
updateCouponCardTemplate
(
CouponTemplateConvert
.
INSTANCE
.
convert
(
updateVO
));
updateCouponCardTemplateResult
.
checkError
();
}
}
归档/management-web-app/src/main/java/cn/iocoder/mall/managementweb/manager/promotion/recommend/ProductRecommendManager.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
managementweb
.
manager
.
promotion
.
recommend
;
import
cn.iocoder.common.framework.util.CollectionUtils
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendDetailVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendPageReqVO
;
import
cn.iocoder.mall.managementweb.controller.promotion.recommend.vo.ProductRecommendUpdateReqVO
;
import
cn.iocoder.mall.managementweb.convert.promotion.ProductRecommendConvert
;
import
cn.iocoder.mall.productservice.rpc.spu.ProductSpuFeign
;
import
cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuRespDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.ProductRecommendFeign
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendRespDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
java.util.List
;
import
java.util.Map
;
/**
* 商品推荐 Manager
*/
@Service
@Validated
public
class
ProductRecommendManager
{
@Autowired
private
ProductRecommendFeign
productRecommendFeign
;
@Autowired
private
ProductSpuFeign
productSpuFeign
;
/**
* 创建商品推荐
*
* @param createVO 创建商品推荐 VO
* @return 商品推荐
*/
public
Integer
createProductRecommend
(
ProductRecommendCreateReqVO
createVO
)
{
CommonResult
<
Integer
>
createProductRecommendResult
=
productRecommendFeign
.
createProductRecommend
(
ProductRecommendConvert
.
INSTANCE
.
convert
(
createVO
));
createProductRecommendResult
.
checkError
();
return
createProductRecommendResult
.
getData
();
}
/**
* 更新商品推荐
*
* @param updateVO 更新商品推荐 VO
*/
public
void
updateProductRecommend
(
ProductRecommendUpdateReqVO
updateVO
)
{
CommonResult
<
Boolean
>
updateProductRecommendResult
=
productRecommendFeign
.
updateProductRecommend
(
ProductRecommendConvert
.
INSTANCE
.
convert
(
updateVO
));
updateProductRecommendResult
.
checkError
();
}
/**
* 删除商品推荐
*
* @param productRecommendId 商品推荐编号
*/
public
void
deleteProductRecommend
(
Integer
productRecommendId
)
{
CommonResult
<
Boolean
>
deleteProductRecommendResult
=
productRecommendFeign
.
deleteProductRecommend
(
productRecommendId
);
deleteProductRecommendResult
.
checkError
();
}
/**
* 获得商品推荐分页
*
* @param pageVO 商品推荐分页查询
* @return 商品推荐分页结果
*/
public
PageResult
<
ProductRecommendDetailVO
>
pageProductRecommend
(
ProductRecommendPageReqVO
pageVO
)
{
CommonResult
<
PageResult
<
ProductRecommendRespDTO
>>
pageProductRecommendResult
=
productRecommendFeign
.
pageProductRecommend
(
ProductRecommendConvert
.
INSTANCE
.
convert
(
pageVO
));
pageProductRecommendResult
.
checkError
();
// 拼接结果
PageResult
<
ProductRecommendDetailVO
>
pageResult
=
ProductRecommendConvert
.
INSTANCE
.
convertPage
(
pageProductRecommendResult
.
getData
());
if
(!
CollectionUtils
.
isEmpty
(
pageResult
.
getList
()))
{
// 获取商品信息,并进行拼接
CommonResult
<
List
<
ProductSpuRespDTO
>>
listProductSpusResult
=
productSpuFeign
.
listProductSpus
(
CollectionUtils
.
convertSet
(
pageResult
.
getList
(),
ProductRecommendDetailVO:
:
getProductSpuId
));
listProductSpusResult
.
checkError
();
Map
<
Integer
,
ProductSpuRespDTO
>
productSpuMap
=
CollectionUtils
.
convertMap
(
listProductSpusResult
.
getData
(),
ProductSpuRespDTO:
:
getId
);
pageResult
.
getList
().
forEach
(
detailVO
->
detailVO
.
setSpu
(
ProductRecommendConvert
.
INSTANCE
.
convert
(
productSpuMap
.
get
(
detailVO
.
getProductSpuId
()))));
}
return
pageResult
;
}
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/enums/MeetTypeEnum.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
enums
;
/**
* 匹配类型枚举
*/
public
enum
MeetTypeEnum
{
PRICE
(
1
,
"金额"
),
QUANTITY
(
2
,
"数量"
),;
/**
* 值
*/
private
final
Integer
value
;
/**
* 名字
*/
private
final
String
name
;
MeetTypeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/enums/PromotionErrorCodeConstants.java
浏览文件 @
479a05b5
...
...
@@ -9,15 +9,6 @@ import cn.iocoder.common.framework.exception.ErrorCode;
*/
public
interface
PromotionErrorCodeConstants
{
// ========== Banner 模块 ==========
ErrorCode
BANNER_NOT_EXISTS
=
new
ErrorCode
(
1006000000
,
"账号不存在"
);
// ========== PRODUCT RECOMMEND 模块 ==========
ErrorCode
PRODUCT_RECOMMEND_NOT_EXISTS
=
new
ErrorCode
(
1006001000
,
"商品推荐不存在"
);
ErrorCode
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
=
new
ErrorCode
(
1006001001
,
"商品不存在"
);
ErrorCode
PRODUCT_RECOMMEND_EXISTS
=
new
ErrorCode
(
1006001002
,
"该商品推荐已经存在"
);
// ========== COUPON TEMPLATE 模块 ==========
ErrorCode
COUPON_TEMPLATE_NOT_EXISTS
=
new
ErrorCode
(
1006002000
,
"优惠劵模板(码)不存在"
);
ErrorCode
COUPON_TEMPLATE_NOT_CARD
=
new
ErrorCode
(
1006002001
,
"不是优惠劵模板"
);
...
...
@@ -34,7 +25,4 @@ public interface PromotionErrorCodeConstants {
ErrorCode
COUPON_CARD_STATUS_NOT_UNUSED
=
new
ErrorCode
(
1006003003
,
"优惠劵不处于待使用状态"
);
ErrorCode
COUPON_CARD_STATUS_NOT_USED
=
new
ErrorCode
(
1006003004
,
"优惠劵不处于已使用状态"
);
// ========== PRICE 模块 ==========
ErrorCode
PRICE_PRODUCT_SKU_NOT_EXISTS
=
new
ErrorCode
(
1006004000
,
"有不存在的商品!"
);
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/enums/RangeTypeEnum.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
enums
;
import
cn.iocoder.common.framework.core.IntArrayValuable
;
import
java.util.Arrays
;
/**
* 可用范围的类型枚举
*/
public
enum
RangeTypeEnum
implements
IntArrayValuable
{
ALL
(
10
,
"所有可用"
),
PRODUCT_INCLUDE_PART
(
20
,
"部分商品可用,或指定商品可用"
),
PRODUCT_EXCLUDE_PART
(
21
,
"部分商品不可用,或指定商品不可用"
),
CATEGORY_INCLUDE_PART
(
30
,
"部分分类可用,或指定分类可用"
),
CATEGORY_EXCLUDE_PART
(
31
,
"部分分类不可用,或指定分类不可用"
),
;
public
static
final
int
[]
ARRAYS
=
Arrays
.
stream
(
values
()).
mapToInt
(
RangeTypeEnum:
:
getValue
).
toArray
();
/**
* 值
*/
private
final
Integer
value
;
/**
* 名字
*/
private
final
String
name
;
RangeTypeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
@Override
public
int
[]
array
()
{
return
ARRAYS
;
}
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/enums/coupon/card/CouponCardStatusEnum.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
enums
.
coupon
.
card
;
import
cn.iocoder.common.framework.core.IntArrayValuable
;
import
java.util.Arrays
;
/**
* 优惠劵状态枚举
*/
public
enum
CouponCardStatusEnum
implements
IntArrayValuable
{
UNUSED
(
1
,
"未使用"
),
USED
(
2
,
"已使用"
),
EXPIRE
(
3
,
"已过期"
),
;
public
static
final
int
[]
ARRAYS
=
Arrays
.
stream
(
values
()).
mapToInt
(
CouponCardStatusEnum:
:
getValue
).
toArray
();
/**
* 值
*/
private
final
Integer
value
;
/**
* 名字
*/
private
final
String
name
;
CouponCardStatusEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
@Override
public
int
[]
array
()
{
return
ARRAYS
;
}
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/enums/recommend/ProductRecommendTypeEnum.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
enums
.
recommend
;
import
cn.iocoder.common.framework.core.IntArrayValuable
;
import
java.util.Arrays
;
/**
* 商品推荐类型
*/
public
enum
ProductRecommendTypeEnum
implements
IntArrayValuable
{
HOT
(
1
,
"热卖推荐"
),
NEW
(
2
,
"新品推荐"
),
;
public
static
final
int
[]
ARRAYS
=
Arrays
.
stream
(
values
()).
mapToInt
(
ProductRecommendTypeEnum:
:
getValue
).
toArray
();
/**
* 状态值
*/
private
final
Integer
value
;
/**
* 状态名
*/
private
final
String
name
;
ProductRecommendTypeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
public
static
boolean
isValid
(
Integer
status
)
{
if
(
status
==
null
)
{
return
false
;
}
return
HOT
.
value
.
equals
(
status
)
||
NEW
.
value
.
equals
(
status
);
}
@Override
public
int
[]
array
()
{
return
ARRAYS
;
}
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/activity/dto/PromotionActivityPageReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
activity
.
dto
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.Collection
;
/**
* 促销活动分页 Request DTO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
public
class
PromotionActivityPageReqDTO
extends
PageParam
{
/**
* 标题
*
* 模糊匹配
*/
private
String
title
;
/**
* 活动类型
*/
private
Integer
activityType
;
/**
* 状态
*/
private
Collection
<
Integer
>
statuses
;
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/activity/dto/PromotionActivityRespDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
activity
.
dto
;
import
cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityStatusEnum
;
import
cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 促销活动 Response DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
PromotionActivityRespDTO
implements
Serializable
{
/**
* 活动编号
*/
private
Integer
id
;
/**
* 活动标题
*/
private
String
title
;
/**
* 活动类型
*
* 参见 {@link PromotionActivityTypeEnum} 枚举
*/
private
Integer
activityType
;
/**
* 活动状态
*
* 参见 {@link PromotionActivityStatusEnum} 枚举
*/
private
Integer
status
;
/**
* 开始时间
*/
private
Date
startTime
;
/**
* 结束时间
*/
private
Date
endTime
;
/**
* 限制折扣
*/
private
TimeLimitedDiscount
timeLimitedDiscount
;
/**
* 满减送
*/
private
FullPrivilege
fullPrivilege
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 限时折扣
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
TimeLimitedDiscount
implements
Serializable
{
/**
* 商品折扣
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Item
implements
Serializable
{
/**
* 商品 SPU 编号
*/
private
Integer
spuId
;
/**
* 优惠类型
*/
private
Integer
preferentialType
;
/**
* 优惠值
*/
private
Integer
preferentialValue
;
}
/**
* 每人每种限购多少
*
* 当 quota = 0 时,表示不限购
*/
private
Integer
quota
;
/**
* 商品折扣数组
*/
private
List
<
Item
>
items
;
}
/**
* 满减送
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
FullPrivilege
implements
Serializable
{
/**
* 优惠
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Privilege
implements
Serializable
{
/**
* 满足类型
*
* 1 - 金额
* 2 - 件数
*/
private
Integer
meetType
;
/**
* 满足值
*/
private
Integer
meetValue
;
/**
* 优惠类型
*/
private
Integer
preferentialType
;
/**
* 优惠值
*/
private
Integer
preferentialValue
;
}
/**
* 可用范围的类型
*
* 参见 {@link cn.iocoder.mall.promotion.api.enums.RangeTypeEnum} 枚举
* 暂时只用 “所有可用” + “PRODUCT_INCLUDE_PRT”
*/
private
Integer
rangeType
;
/**
* 指定可用商品列表
*/
private
List
<
Integer
>
rangeValues
;
/**
* 是否循环
*/
private
Boolean
cycled
;
/**
* 优惠数组
*/
private
List
<
Privilege
>
privileges
;
}
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/template/CouponCardTemplateCreateReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dto
.
template
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.coupon.template.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
org.hibernate.validator.constraints.Length
;
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
;
/**
* 优惠劵模板创建 Request DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardTemplateCreateReqDTO
implements
Serializable
{
// ========== 基本信息 BEGIN ==========
/**
* 标题
*/
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
2
,
max
=
16
,
message
=
"标题长度为 {min}-{max} 位"
)
private
String
title
;
/**
* 使用说明
*/
@Length
(
max
=
255
,
message
=
"使用说明最大长度为 {max} 位"
)
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
fixedStartTerm
;
/**
* 领取日期-结束天数
*/
@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-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/template/CouponCardTemplateUpdateReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dto
.
template
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.RangeTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 优惠劵模板更新 Request DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardTemplateUpdateReqDTO
implements
Serializable
{
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
// ========== 基本信息 BEGIN ==========
/**
* 标题
*/
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
2
,
max
=
16
,
message
=
"标题长度为 {min}-{max} 位"
)
private
String
title
;
/**
* 使用说明
*/
@Length
(
max
=
255
,
message
=
"使用说明最大长度为 {max} 位"
)
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 fixedStartTerm;
// /**
// * 领取日期-结束天数
// */
// @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 ==========
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/template/CouponCardTemplateUpdateStatusReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dto
.
template
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.coupon.template.CouponTemplateStatusEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 优惠劵(码)模板更新状态 Request DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponCardTemplateUpdateStatusReqDTO
implements
Serializable
{
/**
* 编号
*/
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
/**
* 状态
*/
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CouponTemplateStatusEnum
.
class
,
message
=
"状态必须是 {value}"
)
private
Integer
status
;
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/template/CouponTemplatePageReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dto
.
template
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* 优惠劵模板分页 Request DTO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
public
class
CouponTemplatePageReqDTO
extends
PageParam
{
/**
* 类型
*/
private
Integer
type
;
/**
* 标题
*/
private
String
title
;
/**
* 状态
*/
private
Integer
status
;
/**
* 优惠类型
*/
private
Integer
preferentialType
;
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/coupon/dto/template/CouponTemplateRespDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
coupon
.
dto
.
template
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 优惠劵(码)模板 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CouponTemplateRespDTO
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
List
<
Integer
>
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-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/recommend/ProductRecommendFeign.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
recommend
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.*
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
/**
* Title:
* Description:
*
* @author zhuyang
* @version 1.0 2021/10/9
*/
@FeignClient
(
"promotion-service"
)
public
interface
ProductRecommendFeign
{
@PostMapping
(
"/promotion/prod/recommend/createProductRecommend"
)
public
CommonResult
<
Integer
>
createProductRecommend
(
@RequestBody
ProductRecommendCreateReqDTO
createDTO
)
;
@PostMapping
(
"/promotion/prod/recommend/updateProductRecommend"
)
public
CommonResult
<
Boolean
>
updateProductRecommend
(
@RequestBody
ProductRecommendUpdateReqDTO
updateDTO
);
@GetMapping
(
"/promotion/prod/recommend/deleteProductRecommend"
)
public
CommonResult
<
Boolean
>
deleteProductRecommend
(
@RequestParam
(
"productRecommendId"
)
Integer
productRecommendId
)
;
@PostMapping
(
"/promotion/prod/recommend/listProductRecommends"
)
public
CommonResult
<
List
<
ProductRecommendRespDTO
>>
listProductRecommends
(
@RequestBody
ProductRecommendListReqDTO
listReqDTO
)
;
@PostMapping
(
"/promotion/prod/recommend/pageProductRecommend"
)
public
CommonResult
<
PageResult
<
ProductRecommendRespDTO
>>
pageProductRecommend
(
@RequestBody
ProductRecommendPageReqDTO
pageDTO
)
;
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/recommend/dto/ProductRecommendCreateReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
recommend
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 商品推荐创建 Request DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendCreateReqDTO
implements
Serializable
{
/**
* 推荐类型
*/
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"修改推荐类型必须是 {value}"
)
@NotNull
(
message
=
"推荐类型不能为空"
)
private
Integer
type
;
/**
* 商品编号
*/
@NotNull
(
message
=
"商品编号不能为空"
)
private
Integer
productSpuId
;
/**
* 排序
*/
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
/**
* 状态
*/
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
/**
* 备注
*/
@Length
(
max
=
255
,
message
=
"备注最大长度为 255 位"
)
private
String
memo
;
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/recommend/dto/ProductRecommendListReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
recommend
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* 商品推荐列表 Req DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendListReqDTO
implements
Serializable
{
/**
* 类型
*/
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"推荐类型必须是 {value}"
)
private
Integer
type
;
/**
* 状态
*/
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/recommend/dto/ProductRecommendPageReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
recommend
.
dto
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* 商品推荐分页 Request DTO
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
public
class
ProductRecommendPageReqDTO
extends
PageParam
{
/**
* 推荐类型
*/
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"推荐类型必须是 {value}"
)
private
Integer
type
;
}
归档/promotion-service-project/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/recommend/dto/ProductRecommendRespDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
recommend
.
dto
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 商品推荐 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendRespDTO
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-api/src/main/java/cn/iocoder/mall/promotion/api/rpc/recommend/dto/ProductRecommendUpdateReqDTO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
rpc
.
recommend
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 商品推荐更新 Request DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendUpdateReqDTO
implements
Serializable
{
/**
* 编号
*/
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
/**
* 推荐类型
*/
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"修改推荐类型必须是 {value}"
)
@NotNull
(
message
=
"推荐类型不能为空"
)
private
Integer
type
;
/**
* 商品编号
*/
@NotNull
(
message
=
"商品编号不能为空"
)
private
Integer
productSpuId
;
/**
* 排序
*/
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
/**
* 状态
*/
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
/**
* 备注
*/
@Length
(
max
=
255
,
message
=
"备注最大长度为 255 位"
)
private
String
memo
;
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/controller/ProductRecommendController.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
controller
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.*
;
import
cn.iocoder.mall.promotionservice.manager.recommend.ProductRecommendManager
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
/**
* Title:
* Description:
*
* @author zhuyang
* @version 1.0 2021/10/9
*/
@RestController
@RequestMapping
(
"/promotion/prod/recommend"
)
public
class
ProductRecommendController
{
@Autowired
private
ProductRecommendManager
productRecommendManager
;
@PostMapping
(
"createProductRecommend"
)
public
CommonResult
<
Integer
>
createProductRecommend
(
@RequestBody
ProductRecommendCreateReqDTO
createDTO
)
{
return
success
(
productRecommendManager
.
createProductRecommend
(
createDTO
));
}
@PostMapping
(
"updateProductRecommend"
)
public
CommonResult
<
Boolean
>
updateProductRecommend
(
@RequestBody
ProductRecommendUpdateReqDTO
updateDTO
)
{
productRecommendManager
.
updateProductRecommend
(
updateDTO
);
return
success
(
true
);
}
@GetMapping
(
"deleteProductRecommend"
)
public
CommonResult
<
Boolean
>
deleteProductRecommend
(
@RequestParam
(
"productRecommendId"
)
Integer
productRecommendId
)
{
productRecommendManager
.
deleteProductRecommend
(
productRecommendId
);
return
success
(
true
);
}
@PostMapping
(
"listProductRecommends"
)
public
CommonResult
<
List
<
ProductRecommendRespDTO
>>
listProductRecommends
(
@RequestBody
ProductRecommendListReqDTO
listReqDTO
)
{
return
success
(
productRecommendManager
.
listProductRecommends
(
listReqDTO
));
}
@PostMapping
(
"pageProductRecommend"
)
public
CommonResult
<
PageResult
<
ProductRecommendRespDTO
>>
pageProductRecommend
(
@RequestBody
ProductRecommendPageReqDTO
pageDTO
)
{
return
success
(
productRecommendManager
.
pageProductRecommend
(
pageDTO
));
}
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/controller/PromotionActivityController.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
controller
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityListReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO
;
import
cn.iocoder.mall.promotionservice.manager.activity.PromotionActivityManager
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
/**
* Title:
* Description:
*
* @author zhuyang
* @version 1.0 2021/10/9
*/
@RestController
@RequestMapping
(
"/promotion/activity"
)
public
class
PromotionActivityController
{
@Autowired
private
PromotionActivityManager
promotionActivityManager
;
@PostMapping
(
"pagePromotionActivity"
)
public
CommonResult
<
PageResult
<
PromotionActivityRespDTO
>>
pagePromotionActivity
(
@RequestBody
PromotionActivityPageReqDTO
pageReqDTO
)
{
return
success
(
promotionActivityManager
.
pagePromotionActivity
(
pageReqDTO
));
}
@PostMapping
(
"listPromotionActivities"
)
public
CommonResult
<
List
<
PromotionActivityRespDTO
>>
listPromotionActivities
(
@RequestBody
PromotionActivityListReqDTO
listReqDTO
)
{
return
success
(
promotionActivityManager
.
listPromotionActivities
(
listReqDTO
));
}
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/convert/activity/PromotionActivityConvert.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
convert
.
activity
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO
;
import
cn.iocoder.mall.promotionservice.dal.mysql.dataobject.activity.PromotionActivityDO
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapping
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
PromotionActivityConvert
{
PromotionActivityConvert
INSTANCE
=
Mappers
.
getMapper
(
PromotionActivityConvert
.
class
);
List
<
PromotionActivityRespDTO
>
convertList
(
List
<
PromotionActivityDO
>
list
);
@Mapping
(
source
=
"records"
,
target
=
"list"
)
PageResult
<
PromotionActivityRespDTO
>
convertPage
(
IPage
<
PromotionActivityDO
>
page
);
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/convert/recommend/ProductRecommendConvert.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
convert
.
recommend
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendCreateReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendRespDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendUpdateReqDTO
;
import
cn.iocoder.mall.promotionservice.dal.mysql.dataobject.recommend.ProductRecommendDO
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapping
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
ProductRecommendConvert
{
ProductRecommendConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductRecommendConvert
.
class
);
List
<
ProductRecommendRespDTO
>
convertList
(
List
<
ProductRecommendDO
>
list
);
@Mapping
(
source
=
"records"
,
target
=
"list"
)
PageResult
<
ProductRecommendRespDTO
>
convertPage
(
IPage
<
ProductRecommendDO
>
page
);
ProductRecommendDO
convert
(
ProductRecommendCreateReqDTO
bean
);
ProductRecommendDO
convert
(
ProductRecommendUpdateReqDTO
bean
);
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/dal/mysql/dataobject/activity/PromotionActivityDO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
dal
.
mysql
.
dataobject
.
activity
;
import
cn.iocoder.mall.mybatis.core.dataobject.BaseDO
;
import
cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityStatusEnum
;
import
cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityTypeEnum
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
import
java.util.List
;
/**
* 促销活动 DO
*/
@TableName
(
value
=
"promotion_activity"
,
autoResultMap
=
true
)
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
public
class
PromotionActivityDO
extends
BaseDO
{
/**
* 活动编号
*/
private
Integer
id
;
/**
* 活动标题
*/
private
String
title
;
/**
* 活动类型
*
* 参见 {@link PromotionActivityTypeEnum} 枚举
*/
private
Integer
activityType
;
// /**
// * 促销类型
// * // TODO 芋艿 https://jos.jd.com/api/complexTemplate.htm?webPamer=promotion_v_o&groupName=%E4%BF%83%E9%94%80API&id=54&restName=jingdong.seller.promotion.list&isMulti=false 促销类型,可选值:单品促销(1),赠品促销(4),套装促销(6),总价促销(10)
// */
// private Integer promotionType;
/**
* 活动状态
*
* 参见 {@link PromotionActivityStatusEnum} 枚举
*/
private
Integer
status
;
/**
* 开始时间
*/
private
Date
startTime
;
/**
* 结束时间
*/
private
Date
endTime
;
/**
* 失效时间
*/
private
Date
invalidTime
;
/**
* 删除时间
*/
private
Date
deleteTime
;
/**
* 限制折扣字符串,使用 JSON 序列化成字符串存储
*/
@TableField
(
typeHandler
=
FastjsonTypeHandler
.
class
)
private
TimeLimitedDiscount
timeLimitedDiscount
;
/**
* 满减送字符串,使用 JSON 序列化成字符串存储
*/
@TableField
(
typeHandler
=
FastjsonTypeHandler
.
class
)
private
FullPrivilege
fullPrivilege
;
/**
* 限制折扣
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
TimeLimitedDiscount
{
/**
* 商品折扣
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Item
{
/**
* 商品 SPU 编号
*/
private
Integer
spuId
;
/**
* 优惠类型
*/
private
Integer
preferentialType
;
/**
* 优惠值
*/
private
Integer
preferentialValue
;
}
/**
* 每人每种限购多少
*
* 当 quota = 0 时,表示不限购
*/
private
Integer
quota
;
/**
* 商品折扣数组
*/
private
List
<
Item
>
items
;
}
/**
* 满减送
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
FullPrivilege
{
/**
* 优惠
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Privilege
{
/**
* 满足类型
*
* 1 - 金额
* 2 - 件数
*/
private
Integer
meetType
;
/**
* 满足值
*/
private
Integer
meetValue
;
/**
* 优惠类型
*/
private
Integer
preferentialType
;
/**
* 优惠值
*/
private
Integer
preferentialValue
;
// /**
// * 是否包邮
// */
// private Boolean isPostage;
// /**
// * 积分
// */
// private Integer score;
// /**
// * 优惠劵(码)分组编号
// */
// private Integer couponTemplateId;
// /**
// * 优惠劵(码)数量
// */
// private Integer couponNum;
// /**
// * 赠品编号
// */
// private Integer presentId;
}
/**
* 可用范围的类型
*
* 参见 {@link cn.iocoder.mall.promotion.api.enums.RangeTypeEnum} 枚举
* 暂时只用 “所有可用” + “PRODUCT_INCLUDE_PRT”
*/
private
Integer
rangeType
;
/**
* 指定可用商品列表
*/
private
List
<
Integer
>
rangeValues
;
/**
* 是否循环
*/
private
Boolean
cycled
;
/**
* 优惠数组
*/
private
List
<
Privilege
>
privileges
;
}
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/dal/mysql/dataobject/recommend/ProductRecommendDO.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
dal
.
mysql
.
dataobject
.
recommend
;
import
cn.iocoder.mall.mybatis.core.dataobject.DeletableDO
;
import
cn.iocoder.mall.promotion.api.enums.recommend.ProductRecommendTypeEnum
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 商品推荐 DO
*/
@TableName
(
"product_recommend"
)
@Data
@Accessors
(
chain
=
true
)
public
class
ProductRecommendDO
extends
DeletableDO
{
/**
* 编号
*/
private
Integer
id
;
/**
* 类型
*
* {@link ProductRecommendTypeEnum}
*/
private
Integer
type
;
/**
* 商品 Spu 编号
*/
private
Integer
productSpuId
;
// TODO 芋艿,商品 spu 名
/**
* 排序
*/
private
Integer
sort
;
/**
* 状态
*
* {@link cn.iocoder.common.framework.enums.CommonStatusEnum}
*/
private
Integer
status
;
/**
* 备注
*/
private
String
memo
;
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/dal/mysql/mapper/recommend/ProductRecommendMapper.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
dal
.
mysql
.
mapper
.
recommend
;
import
cn.iocoder.mall.mybatis.core.query.QueryWrapperX
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendListReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.ProductRecommendPageReqDTO
;
import
cn.iocoder.mall.promotionservice.dal.mysql.dataobject.recommend.ProductRecommendDO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
interface
ProductRecommendMapper
extends
BaseMapper
<
ProductRecommendDO
>
{
default
ProductRecommendDO
selectByProductSpuIdAndType
(
Integer
productSpuId
,
Integer
type
)
{
return
selectOne
(
new
QueryWrapper
<
ProductRecommendDO
>().
eq
(
"product_spu_id"
,
productSpuId
)
.
eq
(
"type"
,
type
));
}
default
IPage
<
ProductRecommendDO
>
selectPage
(
ProductRecommendPageReqDTO
pageReqDTO
)
{
return
selectPage
(
new
Page
<>(
pageReqDTO
.
getPageNo
(),
pageReqDTO
.
getPageSize
()),
new
QueryWrapperX
<
ProductRecommendDO
>().
eqIfPresent
(
"type"
,
pageReqDTO
.
getType
()));
}
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/manager/activity/PromotionActivityManager.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
manager
.
activity
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityListReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO
;
import
cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO
;
import
cn.iocoder.mall.promotionservice.service.activity.PromotionActivityService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
java.util.List
;
/**
* 促销活动 Manager
*/
@Service
@Validated
public
class
PromotionActivityManager
{
@Autowired
private
PromotionActivityService
promotionActivityService
;
public
List
<
PromotionActivityRespDTO
>
listPromotionActivities
(
PromotionActivityListReqDTO
listReqDTO
)
{
return
promotionActivityService
.
listPromotionActivities
(
listReqDTO
);
}
public
PageResult
<
PromotionActivityRespDTO
>
pagePromotionActivity
(
PromotionActivityPageReqDTO
pageReqDTO
)
{
return
promotionActivityService
.
pagePromotionActivity
(
pageReqDTO
);
}
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/manager/recommend/ProductRecommendManager.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
manager
.
recommend
;
import
cn.iocoder.common.framework.exception.util.ServiceExceptionUtil
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.productservice.rpc.spu.ProductSpuFeign
;
import
cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuRespDTO
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.*
;
import
cn.iocoder.mall.promotionservice.service.recommend.ProductRecommendService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
java.util.List
;
import
static
cn
.
iocoder
.
mall
.
promotion
.
api
.
enums
.
PromotionErrorCodeConstants
.
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
;
/**
* 商品推荐 Manager
*/
@Service
@Validated
public
class
ProductRecommendManager
{
@Autowired
private
ProductSpuFeign
productSpuFeign
;
@Autowired
private
ProductRecommendService
productRecommendService
;
public
List
<
ProductRecommendRespDTO
>
listProductRecommends
(
ProductRecommendListReqDTO
listReqDTO
)
{
return
productRecommendService
.
listProductRecommends
(
listReqDTO
);
}
public
PageResult
<
ProductRecommendRespDTO
>
pageProductRecommend
(
ProductRecommendPageReqDTO
pageReqDTO
)
{
return
productRecommendService
.
pageProductRecommend
(
pageReqDTO
);
}
public
Integer
createProductRecommend
(
ProductRecommendCreateReqDTO
createReqDTO
)
{
// 校验商品不存在
checkProductSpu
(
createReqDTO
.
getProductSpuId
());
// 创建商品推荐
return
productRecommendService
.
createProductRecommend
(
createReqDTO
);
}
public
void
updateProductRecommend
(
ProductRecommendUpdateReqDTO
updateReqDTO
)
{
// 校验商品不存在
checkProductSpu
(
updateReqDTO
.
getProductSpuId
());
// 更新商品推荐
productRecommendService
.
updateProductRecommend
(
updateReqDTO
);
}
public
void
deleteProductRecommend
(
Integer
productRecommendId
)
{
productRecommendService
.
deleteProductRecommend
(
productRecommendId
);
}
private
void
checkProductSpu
(
Integer
productSpuId
)
{
CommonResult
<
ProductSpuRespDTO
>
getProductSpuResult
=
productSpuFeign
.
getProductSpu
(
productSpuId
);
getProductSpuResult
.
checkError
();
if
(
getProductSpuResult
.
getData
()
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
);
}
}
}
归档/promotion-service-project/promotion-service-app/src/main/java/cn/iocoder/mall/promotionservice/service/recommend/ProductRecommendService.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
promotionservice
.
service
.
recommend
;
import
cn.iocoder.common.framework.exception.util.ServiceExceptionUtil
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.promotion.api.rpc.recommend.dto.*
;
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
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
java.util.List
;
import
static
cn
.
iocoder
.
mall
.
promotion
.
api
.
enums
.
PromotionErrorCodeConstants
.
PRODUCT_RECOMMEND_EXISTS
;
import
static
cn
.
iocoder
.
mall
.
promotion
.
api
.
enums
.
PromotionErrorCodeConstants
.
PRODUCT_RECOMMEND_NOT_EXISTS
;
/**
* 商品推荐 Service
*/
@Service
@Validated
public
class
ProductRecommendService
{
@Autowired
private
ProductRecommendMapper
productRecommendMapper
;
/**
* 获得商品推荐列表
*
* @param listReqDTO 列表查询 DTO
* @return 商品推荐列表
*/
public
List
<
ProductRecommendRespDTO
>
listProductRecommends
(
ProductRecommendListReqDTO
listReqDTO
)
{
List
<
ProductRecommendDO
>
productRecommends
=
productRecommendMapper
.
selectList
(
listReqDTO
);
return
ProductRecommendConvert
.
INSTANCE
.
convertList
(
productRecommends
);
}
/**
* 获得商品推荐分页
*
* @param pageReqDTO 分页查询 DTO
* @return 商品推荐分页
*/
public
PageResult
<
ProductRecommendRespDTO
>
pageProductRecommend
(
ProductRecommendPageReqDTO
pageReqDTO
)
{
IPage
<
ProductRecommendDO
>
productRecommendPage
=
productRecommendMapper
.
selectPage
(
pageReqDTO
);
return
ProductRecommendConvert
.
INSTANCE
.
convertPage
(
productRecommendPage
);
}
/**
* 创建商品推荐
*
* @param createReqDTO 商品推荐信息
* @return 商品推荐编号
*/
public
Integer
createProductRecommend
(
ProductRecommendCreateReqDTO
createReqDTO
)
{
// 校验商品是否已经推荐
if
(
productRecommendMapper
.
selectByProductSpuIdAndType
(
createReqDTO
.
getProductSpuId
(),
createReqDTO
.
getType
())
!=
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_RECOMMEND_EXISTS
);
}
// 保存到数据库
ProductRecommendDO
productRecommend
=
ProductRecommendConvert
.
INSTANCE
.
convert
(
createReqDTO
);
productRecommendMapper
.
insert
(
productRecommend
);
// 返回成功
return
productRecommend
.
getId
();
}
public
void
updateProductRecommend
(
ProductRecommendUpdateReqDTO
updateReqDTO
)
{
// 校验更新的商品推荐存在
if
(
productRecommendMapper
.
selectById
(
updateReqDTO
.
getId
())
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_RECOMMEND_NOT_EXISTS
);
}
// 校验商品是否已经推荐
ProductRecommendDO
existProductRecommend
=
productRecommendMapper
.
selectByProductSpuIdAndType
(
updateReqDTO
.
getProductSpuId
(),
updateReqDTO
.
getType
());
if
(
existProductRecommend
!=
null
&&
!
existProductRecommend
.
getId
().
equals
(
updateReqDTO
.
getId
()))
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_RECOMMEND_EXISTS
.
getCode
());
}
// 更新到数据库
ProductRecommendDO
updateProductRecommend
=
ProductRecommendConvert
.
INSTANCE
.
convert
(
updateReqDTO
);
productRecommendMapper
.
updateById
(
updateProductRecommend
);
}
public
void
deleteProductRecommend
(
Integer
productRecommendId
)
{
// 校验更新的商品推荐存在
if
(
productRecommendMapper
.
selectById
(
productRecommendId
)
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_RECOMMEND_NOT_EXISTS
);
}
// 更新到数据库
productRecommendMapper
.
deleteById
(
productRecommendId
);
}
}
归档/shop-web-app/src/main/java/cn/iocoder/mall/shopweb/controller/promotion/ProductRecommendController.java
deleted
100644 → 0
浏览文件 @
fcea893e
package
cn
.
iocoder
.
mall
.
shopweb
.
controller
.
promotion
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuRespVO
;
import
cn.iocoder.mall.shopweb.service.promotion.ProductRecommendManager
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Collection
;
import
java.util.Map
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
@RestController
@RequestMapping
(
"/promotion/product-recommend"
)
@Api
(
tags
=
"商品推荐 API"
)
@Validated
public
class
ProductRecommendController
{
@Autowired
private
ProductRecommendManager
productRecommendManager
;
@GetMapping
(
"/list"
)
@ApiOperation
(
"获得所有商品推荐列表"
)
public
CommonResult
<
Map
<
Integer
,
Collection
<
ProductSpuRespVO
>>>
list
()
{
return
success
(
productRecommendManager
.
listProductRecommends
());
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论