Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
7f024bec
提交
7f024bec
authored
4月 05, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
后端 + 前端:优惠劵列表
上级
2bcaaf20
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
470 行增加
和
95 行删除
+470
-95
couponCardTemplateList.js
admin-web/src/models/promotion/couponCardTemplateList.js
+7
-5
CouponCardTemplateList.js
admin-web/src/pages/Promotion/CouponCardTemplateList.js
+96
-46
promotion.js
admin-web/src/services/promotion.js
+6
-0
AdminsCouponTemplateController.java
...ion/controller/admins/AdminsCouponTemplateController.java
+23
-4
CouponTemplateConvert.java
.../promotion/application/convert/CouponTemplateConvert.java
+12
-4
AdminsCouponTemplatePageVO.java
...ion/application/vo/admins/AdminsCouponTemplatePageVO.java
+34
-0
AdminsCouponTemplateVO.java
...omotion/application/vo/admins/AdminsCouponTemplateVO.java
+14
-5
BannerConvertImpl.java
...mall/promotion/application/convert/BannerConvertImpl.java
+122
-0
CouponTemplateBO.java
...va/cn/iocoder/mall/promotion/api/bo/CouponTemplateBO.java
+6
-6
CouponTemplatePageBO.java
...n/iocoder/mall/promotion/api/bo/CouponTemplatePageBO.java
+28
-0
CouponTemplateStatusEnum.java
...mall/promotion/api/constant/CouponTemplateStatusEnum.java
+1
-1
CouponTemplatePageDTO.java
...iocoder/mall/promotion/api/dto/CouponTemplatePageDTO.java
+64
-0
CouponTemplateConvert.java
...der/mall/promotion/biz/convert/CouponTemplateConvert.java
+4
-2
CouponTemplateMapper.java
.../iocoder/mall/promotion/biz/dao/CouponTemplateMapper.java
+4
-2
CouponTemplateDO.java
...coder/mall/promotion/biz/dataobject/CouponTemplateDO.java
+21
-12
CouponServiceImpl.java
...iocoder/mall/promotion/biz/service/CouponServiceImpl.java
+12
-1
CouponTemplateMapper.xml
...e-impl/src/main/resources/mapper/CouponTemplateMapper.xml
+16
-7
没有找到文件。
admin-web/src/models/promotion/couponCardTemplateList.js
浏览文件 @
7f024bec
import
{
message
}
from
'antd'
;
import
{
addProductRecommend
,
deleteProductRecommend
,
queryProductRecommend
,
updateProductRecommend
,
updateProductRecommendStatus
,
addCouponCardTemplate
,
getCouponCardTemplatePage
,
}
from
'../../services/promotion'
;
import
PaginationHelper
from
'../../../helpers/PaginationHelper'
;
const
SEARCH_PARAMS_DEFAULT
=
{
type
:
1
,
//
type: 1,
};
export
default
{
...
...
@@ -40,7 +39,10 @@ export default {
});
// 请求
const
response
=
yield
call
(
queryProductRecommend
,
payload
);
const
response
=
yield
call
(
getCouponCardTemplatePage
,
{
...
payload
,
type
:
1
});
// 响应
yield
put
({
type
:
'setAll'
,
...
...
@@ -48,7 +50,7 @@ export default {
list
:
response
.
data
.
list
,
pagination
:
PaginationHelper
.
formatPagination
(
response
.
data
,
payload
),
searchParams
:
{
type
:
payload
.
type
//
type: payload.type
}
},
});
...
...
admin-web/src/pages/Promotion/CouponCardTemplateList.js
浏览文件 @
7f024bec
...
...
@@ -32,7 +32,14 @@ const SelectOption = Select.Option;
const
{
TreeNode
}
=
Tree
;
const
RangePicker
=
DatePicker
.
RangePicker
;
const
status
=
[
'未知'
,
'正常'
,
'禁用'
];
const
types
=
[
'未知'
,
'新品推荐'
,
'热卖推荐'
];
const
rangeType
=
{
10
:
'所有可用'
,
20
:
'部分商品可用'
,
21
:
'部分商品不可用'
,
30
:
'部分分类可用'
,
31
:
'部分分类不可用'
};
const
preferentialType
=
[
'未知'
,
'代金卷'
,
'折扣卷'
];
const
dateType
=
[
'未知'
,
'固定日期'
,
'领取日期'
];
// 列表
function
List
({
dataSource
,
loading
,
pagination
,
searchParams
,
dispatch
,
...
...
@@ -44,7 +51,7 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
content
:
`
${
record
.
productSpuId
}
`
,
onOk
()
{
dispatch
({
type
:
'
productRecommend
List/updateStatus'
,
type
:
'
couponCardTemplate
List/updateStatus'
,
payload
:
{
id
:
record
.
id
,
status
:
record
.
status
===
1
?
2
:
1
,
...
...
@@ -55,48 +62,91 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
});
}
function
handleDelete
(
record
)
{
Modal
.
confirm
({
title
:
`确认删除?`
,
content
:
`
${
record
.
productSpuId
}
`
,
onOk
()
{
dispatch
({
type
:
'productRecommend
List/delete'
,
payload
:
{
id
:
record
.
id
,
},
});
},
onCancel
()
{},
});
}
//
function handleDelete(record) {
//
Modal.confirm({
//
title: `确认删除?`,
//
content: `${record.productSpuId}`,
//
onOk() {
//
dispatch({
// type: 'couponCardTemplate
List/delete',
//
payload: {
//
id: record.id,
//
},
//
});
//
},
//
onCancel() {},
//
});
//
}
const
columns
=
[
{
title
:
'推荐类型'
,
dataIndex
:
'type'
,
title
:
'名称'
,
dataIndex
:
'title'
,
},
{
title
:
'类型'
,
dataIndex
:
'preferentialType'
,
render
(
val
)
{
return
<
span
>
{
types
[
val
]}
<
/span>; /
/
TODO
芋艿,此处要改
return
<
span
>
{
preferentialType
[
val
]}
<
/span>
;
},
},
{
title
:
'商品'
,
dataIndex
:
'productSpuId'
,
title
:
'优惠内容'
,
render
(
val
,
record
)
{
let
content
;
// priceAvailable;
if
(
record
.
priceAvailable
===
0
)
{
content
=
'无门槛,'
;
}
else
{
content
=
'满 '
+
record
.
priceAvailable
/
100
+
' 元,'
;
}
if
(
record
.
preferentialType
===
1
)
{
content
+=
'减 '
+
record
.
priceOff
/
100
+
' 元'
;
}
else
{
content
+=
'打'
+
record
.
percentOff
/
100.0
+
'折'
;
if
(
record
.
discountPriceLimit
)
{
content
+=
', 最多减 '
+
record
.
discountPriceLimit
/
100
+
' 元'
;
}
}
return
content
;
}
},
{
title
:
'可使用商品'
,
dataIndex
:
'rangeType'
,
render
:
val
=>
<
span
>
{
rangeType
[
val
]}
<
/span>
,
},
{
title
:
'排序值'
,
dataIndex
:
'sort'
,
title
:
'有效期'
,
render
(
val
,
record
)
{
let
content
=
dateType
[
record
.
dateType
]
+
' '
;
// priceAvailable;
if
(
record
.
dateType
===
1
)
{
content
+=
moment
(
new
Date
(
record
.
validStartTime
)).
format
(
'YYYY-MM-DD'
)
+
'~'
+
moment
(
new
Date
(
record
.
validEndTime
)).
format
(
'YYYY-MM-DD'
);
}
else
if
(
record
.
dateType
===
2
)
{
content
+=
record
.
fixedStartTerm
+
'-'
+
record
.
fixedEndTerm
+
' 天'
;
}
return
content
;
}
},
{
title
:
'已领取/剩余'
,
// 已使用 TODO 芋艿
// 支付金额(元) TODO 芋艿
// 客单价(元) TODO 芋艿
render
(
val
,
record
)
{
return
`
${
record
.
statFetchNum
}
/ `
+
(
record
.
total
-
record
.
statFetchNum
);
}
},
{
title
:
'状态'
,
dataIndex
:
'status'
,
render
(
val
)
{
return
<
span
>
{
status
[
val
]}
<
/span>; /
/
TODO
芋艿,此处要改
},
render
:
val
=>
<
span
>
{
status
[
val
]}
<
/span>
,
},
{
title
:
'
备注
'
,
dataIndex
:
'
memo
'
,
title
:
'
使用说明
'
,
dataIndex
:
'
description
'
,
},
{
title
:
'创建时间'
,
...
...
@@ -105,7 +155,7 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
},
{
title
:
'操作'
,
width
:
36
0
,
width
:
12
0
,
render
:
(
text
,
record
)
=>
{
const
statusText
=
record
.
status
===
1
?
'禁用'
:
'开启'
;
// TODO 芋艿,此处要改
return
(
...
...
@@ -115,15 +165,15 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
<
a
className
=
{
styles
.
tableDelete
}
onClick
=
{()
=>
handleStatus
(
record
)}
>
{
statusText
}
<
/a
>
{
record
.
status
===
2
?
<
span
>
<
Divider
type
=
"vertical"
/>
<
a
className
=
{
styles
.
tableDelete
}
onClick
=
{()
=>
handleDelete
(
record
)}
>
删除
<
/a
>
<
/span> : nul
l
}
{
/*{*/
}
{
/* record.status === 2 ?*/
}
{
/* <span>*/
}
{
/* <Divider type="vertical" />*/
}
{
/* <a className={styles.tableDelete} onClick={() => handleDelete(record)}>*/
}
{
/* 删除*/
}
{
/* </a>*/
}
{
/* </span> : null*/
}
{
/*}*/
}
<
/Fragment
>
);
},
...
...
@@ -132,7 +182,7 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
function
onPageChange
(
page
)
{
// 翻页
dispatch
({
type
:
'
productRecommend
List/query'
,
type
:
'
couponCardTemplate
List/query'
,
payload
:
{
pageNo
:
page
.
current
,
pageSize
:
page
.
pageSize
,
...
...
@@ -164,7 +214,7 @@ const SearchForm = Form.create()(props => {
function
search
()
{
dispatch
({
type
:
'
productRecommend
List/query'
,
type
:
'
couponCardTemplate
List/query'
,
payload
:
{
...
PaginationHelper
.
defaultPayload
,
...
form
.
getFieldsValue
()
...
...
@@ -369,7 +419,7 @@ const AddOrUpdateForm = Form.create()(props => {
initialValue
:
formVals
.
dateType
,
})(
<
Select
placeholder
=
"请选择"
style
=
{{
maxWidth
:
200
,
width
:
'100%'
}}
onChange
=
{
onDateTypeChange
}
>
<
SelectOption
value
=
"1"
>
固定日期
<
/SelectOption
>
<
SelectOption
value
=
"1"
><
/SelectOption
>
<
SelectOption
value
=
"2"
>
领取日期
<
/SelectOption
>
<
/Select
>
)}
...
...
@@ -452,10 +502,10 @@ const AddOrUpdateForm = Form.create()(props => {
);
});
@
connect
(({
productRecommend
List
})
=>
({
@
connect
(({
couponCardTemplate
List
})
=>
({
// list: productRecommend.list,
// pagination: productRecommend.pagination,
...
productRecommend
List
,
...
couponCardTemplate
List
,
}))
// 主界面
...
...
@@ -465,7 +515,7 @@ class CouponCardTemplateLists extends PureComponent {
componentDidMount
()
{
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
productRecommend
List/query'
,
type
:
'
couponCardTemplate
List/query'
,
payload
:
{
...
PaginationHelper
.
defaultPayload
},
...
...
@@ -475,7 +525,7 @@ class CouponCardTemplateLists extends PureComponent {
handleModalVisible
=
(
modalVisible
,
modalType
,
record
)
=>
{
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
productRecommend
List/setAll'
,
type
:
'
couponCardTemplate
List/setAll'
,
payload
:
{
modalVisible
,
modalType
,
...
...
admin-web/src/services/promotion.js
浏览文件 @
7f024bec
...
...
@@ -67,6 +67,12 @@ export async function deleteProductRecommend(params) {
// coupon
export
async
function
getCouponCardTemplatePage
(
params
)
{
return
request
(
`/promotion-api/admins/coupon/template/page?
${
stringify
(
params
)}
`
,
{
method
:
'GET'
,
});
}
export
async
function
addCouponCardTemplate
(
params
)
{
return
request
(
`/promotion-api/admins/coupon/template/add_card?
${
stringify
(
params
)}
`
,
{
method
:
'POST'
,
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/controller/admins/AdminsCouponTemplateController.java
浏览文件 @
7f024bec
...
...
@@ -4,8 +4,11 @@ import cn.iocoder.common.framework.util.DateUtil;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.promotion.api.CouponService
;
import
cn.iocoder.mall.promotion.api.bo.CouponTemplateBO
;
import
cn.iocoder.mall.promotion.api.bo.CouponTemplatePageBO
;
import
cn.iocoder.mall.promotion.api.dto.CouponCardTemplateAddDTO
;
import
cn.iocoder.mall.promotion.api.dto.CouponTemplatePageDTO
;
import
cn.iocoder.mall.promotion.application.convert.CouponTemplateConvert
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplatePageVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplateVO
;
import
com.alibaba.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
...
...
@@ -13,10 +16,7 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Date
;
...
...
@@ -30,6 +30,25 @@ public class AdminsCouponTemplateController {
// ========== 优惠劵(码)模板 ==========
@GetMapping
(
"/template/page"
)
@ApiOperation
(
value
=
"Banner 分页"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"title"
,
value
=
"标题,模糊匹配"
,
example
=
"活动 A"
),
@ApiImplicitParam
(
name
=
"pageNo"
,
value
=
"页码,从 1 开始"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
example
=
"10"
),
})
public
CommonResult
<
AdminsCouponTemplatePageVO
>
page
(
@RequestParam
(
value
=
"type"
,
required
=
false
)
Integer
type
,
@RequestParam
(
value
=
"title"
,
required
=
false
)
String
title
,
@RequestParam
(
value
=
"status"
,
required
=
false
)
Integer
status
,
@RequestParam
(
value
=
"preferentialType"
,
required
=
false
)
Integer
preferentialType
,
@RequestParam
(
value
=
"pageNo"
,
defaultValue
=
"0"
)
Integer
pageNo
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
CommonResult
<
CouponTemplatePageBO
>
result
=
couponService
.
getCouponTemplatePage
(
new
CouponTemplatePageDTO
()
.
setType
(
type
).
setTitle
(
title
).
setStatus
(
status
).
setPreferentialType
(
preferentialType
)
.
setPageNo
(
pageNo
).
setPageSize
(
pageSize
));
return
CouponTemplateConvert
.
INSTANCE
.
convert
(
result
);
}
@PostMapping
(
"/template/add_card"
)
@ApiOperation
(
value
=
"创建优惠劵模板"
)
@ApiImplicitParams
({
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/convert/CouponTemplateConvert.java
浏览文件 @
7f024bec
...
...
@@ -2,26 +2,34 @@ package cn.iocoder.mall.promotion.application.convert;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.promotion.api.bo.CouponTemplateBO
;
import
cn.iocoder.mall.promotion.api.bo.CouponTemplatePageBO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplatePageVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplateVO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
CouponTemplateConvert
{
CouponTemplateConvert
INSTANCE
=
Mappers
.
getMapper
(
CouponTemplateConvert
.
class
);
@Mappings
({})
AdminsCouponTemplateVO
convert
(
CouponTemplateBO
bannerBO
);
AdminsCouponTemplateVO
convert
(
CouponTemplateBO
template
);
@Mappings
({})
CommonResult
<
AdminsCouponTemplateVO
>
convert2
(
CommonResult
<
CouponTemplateBO
>
result
);
// @Mappings({})
// CommonResult<AdminsCouponTemplatePageVO> convert(CommonResult<CouponTemplatePageBO> result);
@Mappings
({})
CommonResult
<
AdminsCouponTemplatePageVO
>
convert
(
CommonResult
<
CouponTemplatePageBO
>
result
);
@Mappings
({})
List
<
AdminsCouponTemplateVO
>
convertList
(
List
<
CouponTemplateBO
>
templates
);
//
// @Mappings({})
// List<UsersCouponTemplateVO> convertList(List<CouponTemplateBO> banners);
// List<UsersCouponTemplateVO> convertList
2
(List<CouponTemplateBO> banners);
}
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/vo/admins/AdminsCouponTemplatePageVO.java
0 → 100644
浏览文件 @
7f024bec
package
cn
.
iocoder
.
mall
.
promotion
.
application
.
vo
.
admins
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.List
;
@ApiModel
(
"优惠劵(码)分页 VO"
)
public
class
AdminsCouponTemplatePageVO
{
@ApiModelProperty
(
value
=
"优惠劵(码)数组"
)
private
List
<
AdminsCouponTemplateVO
>
list
;
@ApiModelProperty
(
value
=
"优惠劵(码)总数"
)
private
Integer
total
;
public
List
<
AdminsCouponTemplateVO
>
getList
()
{
return
list
;
}
public
AdminsCouponTemplatePageVO
setList
(
List
<
AdminsCouponTemplateVO
>
list
)
{
this
.
list
=
list
;
return
this
;
}
public
Integer
getTotal
()
{
return
total
;
}
public
AdminsCouponTemplatePageVO
setTotal
(
Integer
total
)
{
this
.
total
=
total
;
return
this
;
}
}
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/vo/admins/AdminsCouponTemplateVO.java
浏览文件 @
7f024bec
...
...
@@ -49,7 +49,7 @@ public class AdminsCouponTemplateVO {
@ApiModelProperty
(
value
=
"固定日期-生效结束时间"
)
private
Date
validEndTime
;
@ApiModelProperty
(
value
=
"领取日期-开始天数"
,
example
=
"例如,0-当天;1-次天"
)
private
Integer
fixed
Begin
Term
;
private
Integer
fixed
Start
Term
;
@ApiModelProperty
(
value
=
"领取日期-结束天数"
)
private
Integer
fixedEndTerm
;
// ========== 使用规则 END ==========
...
...
@@ -190,12 +190,12 @@ public class AdminsCouponTemplateVO {
return
this
;
}
public
Integer
getFixed
Begin
Term
()
{
return
fixed
Begin
Term
;
public
Integer
getFixed
Start
Term
()
{
return
fixed
Start
Term
;
}
public
AdminsCouponTemplateVO
setFixed
BeginTerm
(
Integer
fixedBegin
Term
)
{
this
.
fixed
BeginTerm
=
fixedBegin
Term
;
public
AdminsCouponTemplateVO
setFixed
StartTerm
(
Integer
fixedStart
Term
)
{
this
.
fixed
StartTerm
=
fixedStart
Term
;
return
this
;
}
...
...
@@ -261,4 +261,13 @@ public class AdminsCouponTemplateVO {
this
.
createTime
=
createTime
;
return
this
;
}
public
Integer
getTotal
()
{
return
total
;
}
public
AdminsCouponTemplateVO
setTotal
(
Integer
total
)
{
this
.
total
=
total
;
return
this
;
}
}
promotion/promotion-application/target/generated-sources/annotations/cn/iocoder/mall/promotion/application/convert/BannerConvertImpl.java
0 → 100644
浏览文件 @
7f024bec
package
cn
.
iocoder
.
mall
.
promotion
.
application
.
convert
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.promotion.api.bo.BannerBO
;
import
cn.iocoder.mall.promotion.api.bo.BannerPageBO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsBannerPageVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsBannerVO
;
import
cn.iocoder.mall.promotion.application.vo.users.UsersBannerVO
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.annotation.Generated
;
@Generated
(
value
=
"org.mapstruct.ap.MappingProcessor"
,
date
=
"2019-04-05T22:26:04+0800"
,
comments
=
"version: 1.3.0.Final, compiler: javac, environment: Java 11.0.1 (Oracle Corporation)"
)
public
class
BannerConvertImpl
implements
BannerConvert
{
@Override
public
AdminsBannerVO
convert
(
BannerBO
bannerBO
)
{
if
(
bannerBO
==
null
)
{
return
null
;
}
AdminsBannerVO
adminsBannerVO
=
new
AdminsBannerVO
();
adminsBannerVO
.
setId
(
bannerBO
.
getId
()
);
adminsBannerVO
.
setTitle
(
bannerBO
.
getTitle
()
);
adminsBannerVO
.
setUrl
(
bannerBO
.
getUrl
()
);
adminsBannerVO
.
setSort
(
bannerBO
.
getSort
()
);
adminsBannerVO
.
setStatus
(
bannerBO
.
getStatus
()
);
adminsBannerVO
.
setMemo
(
bannerBO
.
getMemo
()
);
adminsBannerVO
.
setCreateTime
(
bannerBO
.
getCreateTime
()
);
adminsBannerVO
.
setPicUrl
(
bannerBO
.
getPicUrl
()
);
return
adminsBannerVO
;
}
@Override
public
CommonResult
<
AdminsBannerVO
>
convert2
(
CommonResult
<
BannerBO
>
result
)
{
if
(
result
==
null
)
{
return
null
;
}
CommonResult
<
AdminsBannerVO
>
commonResult
=
new
CommonResult
<
AdminsBannerVO
>();
commonResult
.
setCode
(
result
.
getCode
()
);
commonResult
.
setMessage
(
result
.
getMessage
()
);
commonResult
.
setData
(
convert
(
result
.
getData
()
)
);
return
commonResult
;
}
@Override
public
CommonResult
<
AdminsBannerPageVO
>
convert
(
CommonResult
<
BannerPageBO
>
result
)
{
if
(
result
==
null
)
{
return
null
;
}
CommonResult
<
AdminsBannerPageVO
>
commonResult
=
new
CommonResult
<
AdminsBannerPageVO
>();
commonResult
.
setCode
(
result
.
getCode
()
);
commonResult
.
setMessage
(
result
.
getMessage
()
);
commonResult
.
setData
(
bannerPageBOToAdminsBannerPageVO
(
result
.
getData
()
)
);
return
commonResult
;
}
@Override
public
List
<
UsersBannerVO
>
convertList
(
List
<
BannerBO
>
banners
)
{
if
(
banners
==
null
)
{
return
null
;
}
List
<
UsersBannerVO
>
list
=
new
ArrayList
<
UsersBannerVO
>(
banners
.
size
()
);
for
(
BannerBO
bannerBO
:
banners
)
{
list
.
add
(
bannerBOToUsersBannerVO
(
bannerBO
)
);
}
return
list
;
}
protected
List
<
AdminsBannerVO
>
bannerBOListToAdminsBannerVOList
(
List
<
BannerBO
>
list
)
{
if
(
list
==
null
)
{
return
null
;
}
List
<
AdminsBannerVO
>
list1
=
new
ArrayList
<
AdminsBannerVO
>(
list
.
size
()
);
for
(
BannerBO
bannerBO
:
list
)
{
list1
.
add
(
convert
(
bannerBO
)
);
}
return
list1
;
}
protected
AdminsBannerPageVO
bannerPageBOToAdminsBannerPageVO
(
BannerPageBO
bannerPageBO
)
{
if
(
bannerPageBO
==
null
)
{
return
null
;
}
AdminsBannerPageVO
adminsBannerPageVO
=
new
AdminsBannerPageVO
();
adminsBannerPageVO
.
setList
(
bannerBOListToAdminsBannerVOList
(
bannerPageBO
.
getList
()
)
);
adminsBannerPageVO
.
setTotal
(
bannerPageBO
.
getTotal
()
);
return
adminsBannerPageVO
;
}
protected
UsersBannerVO
bannerBOToUsersBannerVO
(
BannerBO
bannerBO
)
{
if
(
bannerBO
==
null
)
{
return
null
;
}
UsersBannerVO
usersBannerVO
=
new
UsersBannerVO
();
usersBannerVO
.
setUrl
(
bannerBO
.
getUrl
()
);
usersBannerVO
.
setPicUrl
(
bannerBO
.
getPicUrl
()
);
return
usersBannerVO
;
}
}
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/bo/CouponTemplateBO.java
浏览文件 @
7f024bec
...
...
@@ -81,7 +81,7 @@ public class CouponTemplateBO {
* 生效日期类型
*
* 1-固定日期
* 2-领取日期:领到券 {@link #fixed
Begin
Term} 日开始 N 天内有效
* 2-领取日期:领到券 {@link #fixed
Start
Term} 日开始 N 天内有效
*/
private
Integer
dateType
;
/**
...
...
@@ -97,7 +97,7 @@ public class CouponTemplateBO {
*
* 例如,0-当天;1-次天
*/
private
Integer
fixed
Begin
Term
;
private
Integer
fixed
Start
Term
;
/**
* 领取日期-结束天数
*/
...
...
@@ -323,12 +323,12 @@ public class CouponTemplateBO {
return
this
;
}
public
Integer
getFixed
Begin
Term
()
{
return
fixed
Begin
Term
;
public
Integer
getFixed
Start
Term
()
{
return
fixed
Start
Term
;
}
public
CouponTemplateBO
setFixed
BeginTerm
(
Integer
fixedBegin
Term
)
{
this
.
fixed
BeginTerm
=
fixedBegin
Term
;
public
CouponTemplateBO
setFixed
StartTerm
(
Integer
fixedStart
Term
)
{
this
.
fixed
StartTerm
=
fixedStart
Term
;
return
this
;
}
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/bo/CouponTemplatePageBO.java
浏览文件 @
7f024bec
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
bo
;
import
java.util.List
;
public
class
CouponTemplatePageBO
{
/**
* 优惠劵(码)数组
*/
private
List
<
CouponTemplateBO
>
list
;
/**
* 总量
*/
private
Integer
total
;
public
CouponTemplatePageBO
setList
(
List
<
CouponTemplateBO
>
list
)
{
this
.
list
=
list
;
return
this
;
}
public
CouponTemplatePageBO
setTotal
(
Integer
total
)
{
this
.
total
=
total
;
return
this
;
}
public
List
<
CouponTemplateBO
>
getList
()
{
return
list
;
}
public
Integer
getTotal
()
{
return
total
;
}
}
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/constant/CouponTemplateStatusEnum.java
浏览文件 @
7f024bec
...
...
@@ -6,7 +6,7 @@ public enum CouponTemplateStatusEnum {
ENABLE
(
1
,
"开启中"
),
DISABLE
(
2
,
"禁用中"
),
EXPIRE
(
3
,
"已过期"
),
// EXPIRE(3, "已过期"), TODO 芋艿,暂时不考虑过期的
;
public
static
final
int
[]
ARRAYS
=
Arrays
.
stream
(
values
()).
mapToInt
(
CouponTemplateStatusEnum:
:
getValue
).
toArray
();
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponTemplatePageDTO.java
浏览文件 @
7f024bec
package
cn
.
iocoder
.
mall
.
promotion
.
api
.
dto
;
import
javax.validation.constraints.NotNull
;
/**
* 优惠劵模板分页 DTO
*/
public
class
CouponTemplatePageDTO
{
/**
* 类型
*/
private
Integer
type
;
/**
* 标题
*/
...
...
@@ -18,4 +24,62 @@ public class CouponTemplatePageDTO {
*/
private
Integer
preferentialType
;
@NotNull
(
message
=
"页码不能为空"
)
private
Integer
pageNo
;
@NotNull
(
message
=
"每页条数不能为空"
)
private
Integer
pageSize
;
public
Integer
getType
()
{
return
type
;
}
public
CouponTemplatePageDTO
setType
(
Integer
type
)
{
this
.
type
=
type
;
return
this
;
}
public
String
getTitle
()
{
return
title
;
}
public
CouponTemplatePageDTO
setTitle
(
String
title
)
{
this
.
title
=
title
;
return
this
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
CouponTemplatePageDTO
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
return
this
;
}
public
Integer
getPreferentialType
()
{
return
preferentialType
;
}
public
CouponTemplatePageDTO
setPreferentialType
(
Integer
preferentialType
)
{
this
.
preferentialType
=
preferentialType
;
return
this
;
}
public
Integer
getPageNo
()
{
return
pageNo
;
}
public
CouponTemplatePageDTO
setPageNo
(
Integer
pageNo
)
{
this
.
pageNo
=
pageNo
;
return
this
;
}
public
Integer
getPageSize
()
{
return
pageSize
;
}
public
CouponTemplatePageDTO
setPageSize
(
Integer
pageSize
)
{
this
.
pageSize
=
pageSize
;
return
this
;
}
}
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/convert/CouponTemplateConvert.java
浏览文件 @
7f024bec
...
...
@@ -8,6 +8,8 @@ import org.mapstruct.Mapper;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
CouponTemplateConvert
{
...
...
@@ -16,8 +18,8 @@ public interface CouponTemplateConvert {
// @Mappings({})
// CouponTemplateBO convertToBO(CouponTemplateDO banner);
//
//
@Mappings({})
// List<CouponTemplateBO> convertToBO(List<CouponTemplateDO> banner
List);
@Mappings
({})
List
<
CouponTemplateBO
>
convertToBO
(
List
<
CouponTemplateDO
>
template
List
);
@Mappings
({})
CouponTemplateDO
convert
(
CouponCodeTemplateAddDTO
template
);
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dao/CouponTemplateMapper.java
浏览文件 @
7f024bec
...
...
@@ -11,13 +11,15 @@ public interface CouponTemplateMapper {
CouponTemplateDO
selectById
(
@Param
(
"id"
)
Integer
id
);
List
<
CouponTemplateDO
>
selectListByPage
(
@Param
(
"title"
)
String
title
,
List
<
CouponTemplateDO
>
selectListByPage
(
@Param
(
"type"
)
Integer
type
,
@Param
(
"title"
)
String
title
,
@Param
(
"status"
)
Integer
status
,
@Param
(
"preferentialType"
)
Integer
preferentialType
,
@Param
(
"offset"
)
Integer
offset
,
@Param
(
"limit"
)
Integer
limit
);
Integer
selectCountByPage
(
@Param
(
"title"
)
String
title
,
Integer
selectCountByPage
(
@Param
(
"type"
)
Integer
type
,
@Param
(
"title"
)
String
title
,
@Param
(
"status"
)
Integer
status
,
@Param
(
"preferentialType"
)
Integer
preferentialType
);
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/CouponTemplateDO.java
浏览文件 @
7f024bec
...
...
@@ -120,7 +120,7 @@ public class CouponTemplateDO extends BaseDO {
* 生效日期类型
*
* 1-固定日期
* 2-领取日期:领到券 {@link #fixedTerm} 日开始 N 天内有效
* 2-领取日期:领到券 {@link #fixed
Start
Term} 日开始 N 天内有效
*/
private
Integer
dateType
;
/**
...
...
@@ -131,16 +131,16 @@ public class CouponTemplateDO extends BaseDO {
* 固定日期-生效结束时间
*/
private
Date
validEndTime
;
//
/**
//
* 领取日期-开始天数
//
*
//
* 例如,0-当天;1-次天
//
*/
// private Integer fixedBegin
Term;
/**
* 领取日期-开始天数
*
* 例如,0-当天;1-次天
*/
private
Integer
fixedStart
Term
;
/**
* 领取日期-结束天数
*/
private
Integer
fixedTerm
;
private
Integer
fixed
End
Term
;
// /**
// * 是否到期前4天发送提醒
// *
...
...
@@ -335,12 +335,21 @@ public class CouponTemplateDO extends BaseDO {
return
this
;
}
public
Integer
getFixedTerm
()
{
return
fixedTerm
;
public
Integer
getFixedStartTerm
()
{
return
fixedStartTerm
;
}
public
CouponTemplateDO
setFixedStartTerm
(
Integer
fixedStartTerm
)
{
this
.
fixedStartTerm
=
fixedStartTerm
;
return
this
;
}
public
Integer
getFixedEndTerm
()
{
return
fixedEndTerm
;
}
public
CouponTemplateDO
setFixed
Term
(
Integer
fixe
dTerm
)
{
this
.
fixed
Term
=
fixe
dTerm
;
public
CouponTemplateDO
setFixed
EndTerm
(
Integer
fixedEn
dTerm
)
{
this
.
fixed
EndTerm
=
fixedEn
dTerm
;
return
this
;
}
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/CouponServiceImpl.java
浏览文件 @
7f024bec
...
...
@@ -28,7 +28,18 @@ public class CouponServiceImpl implements CouponService {
@Override
public
CommonResult
<
CouponTemplatePageBO
>
getCouponTemplatePage
(
CouponTemplatePageDTO
couponTemplatePageDTO
)
{
return
null
;
CouponTemplatePageBO
couponTemplatePageBO
=
new
CouponTemplatePageBO
();
// 查询分页数据
int
offset
=
(
couponTemplatePageDTO
.
getPageNo
()
-
1
)
*
couponTemplatePageDTO
.
getPageSize
();
couponTemplatePageBO
.
setList
(
CouponTemplateConvert
.
INSTANCE
.
convertToBO
(
couponTemplateMapper
.
selectListByPage
(
couponTemplatePageDTO
.
getType
(),
couponTemplatePageDTO
.
getTitle
(),
couponTemplatePageDTO
.
getStatus
(),
couponTemplatePageDTO
.
getPreferentialType
(),
offset
,
couponTemplatePageDTO
.
getPageSize
())));
// 查询分页总数
couponTemplatePageBO
.
setTotal
(
couponTemplateMapper
.
selectCountByPage
(
couponTemplatePageDTO
.
getType
(),
couponTemplatePageDTO
.
getTitle
(),
couponTemplatePageDTO
.
getStatus
(),
couponTemplatePageDTO
.
getPreferentialType
()));
return
CommonResult
.
success
(
couponTemplatePageBO
);
}
@Override
...
...
promotion/promotion-service-impl/src/main/resources/mapper/CouponTemplateMapper.xml
浏览文件 @
7f024bec
...
...
@@ -5,7 +5,7 @@
<sql
id=
"FIELDS"
>
id, title, description, type, code_type,
status, quota, total, price_available, range_type,
range_values, date_type, valid_start_time, valid_end_time, fixed_term,
range_values, date_type, valid_start_time, valid_end_time, fixed_
start_term, fixed_end_
term,
preferential_type, percent_off, price_off, discount_price_limit, stat_fetch_num,
create_time
</sql>
...
...
@@ -39,8 +39,11 @@
<include
refid=
"FIELDS"
/>
FROM coupon_template
<where>
<if
test=
"type != null"
>
AND type = #{type}
</if>
<if
test=
"title != null"
>
title LIKE "%"#{title}"%"
AND
title LIKE "%"#{title}"%"
</if>
<if
test=
"status != null"
>
AND status = #{status}
...
...
@@ -57,8 +60,11 @@
COUNT(1)
FROM coupon_template
<where>
<if
test=
"type != null"
>
AND type = #{type}
</if>
<if
test=
"title != null"
>
title LIKE "%"#{title}"%"
AND
title LIKE "%"#{title}"%"
</if>
<if
test=
"status != null"
>
AND status = #{status}
...
...
@@ -73,13 +79,13 @@
INSERT INTO coupon_template (
title, description, type, code_type,
status, quota, total, price_available, range_type,
range_values, date_type, valid_start_time, valid_end_time, fixed_term,
range_values, date_type, valid_start_time, valid_end_time, fixed_
start_term, fixed_end_
term,
preferential_type, percent_off, price_off, discount_price_limit, stat_fetch_num,
create_time
) VALUES (
#{title}, #{description}, #{type}, #{codeType},
#{status}, #{quota}, #{total}, #{priceAvailable}, #{rangeType},
#{rangeValues}, #{dateType}, #{validStartTime}, #{validEndTime}, #{fixed
Term},
#{rangeValues}, #{dateType}, #{validStartTime}, #{validEndTime}, #{fixed
StartTerm}, #{fixedEndTerm}
#{preferentialType}, #{percentOff}, #{priceOff}, #{discountPriceLimit}, #{statFetchNum},
#{createTime}
)
...
...
@@ -121,8 +127,11 @@
<if
test=
"validEndTime != null"
>
valid_end_time = #{validEndTime},
</if>
<if
test=
"fixedTerm != null"
>
fixed_term = #{fixedTerm},
<if
test=
"fixedStartTerm != null"
>
fixed_start_term = #{fixedStartTerm},
</if>
<if
test=
"fixedEndTerm != null"
>
fixed_end_term = #{fixedEndTerm},
</if>
<if
test=
"preferentialType != null"
>
preferential_type = #{preferentialType},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论