Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mall-server
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yimu
mall-server
Commits
c9f53b14
Commit
c9f53b14
authored
Apr 01, 2022
by
wlx@33.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优惠券和促销活动兼容盲盒
parent
52bc6456
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
80 additions
and
48 deletions
+80
-48
Coupon.java
...ava/com/fzm/mall/server/admin/marketing/model/Coupon.java
+1
-1
Promotion.java
.../com/fzm/mall/server/admin/marketing/model/Promotion.java
+53
-37
PromotionServiceImpl.java
...er/admin/marketing/service/impl/PromotionServiceImpl.java
+26
-10
No files found.
mall-server-admin/src/main/java/com/fzm/mall/server/admin/marketing/model/Coupon.java
View file @
c9f53b14
...
...
@@ -164,7 +164,7 @@ public class Coupon implements Serializable {
List
<
String
>
paramSkuIdList
=
paramList
.
stream
().
map
(
CouponSku:
:
getSkuId
).
collect
(
Collectors
.
toList
());
QueryWrapper
<
Sku
>
skuQueryWrapper
=
new
QueryWrapper
<>();
skuQueryWrapper
.
in
(
"goods_id"
,
goods
IdList
);
skuQueryWrapper
.
in
(
"goods_id"
,
blindBoxSpu
IdList
);
List
<
Sku
>
dataSkuList
=
skuMapper
.
selectList
(
skuQueryWrapper
);
List
<
Sku
>
skuToAddList
=
dataSkuList
.
stream
().
filter
(
sku
->
!
paramSkuIdList
.
contains
(
sku
.
getSkuId
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
skuToAddList
))
{
...
...
mall-server-admin/src/main/java/com/fzm/mall/server/admin/marketing/model/Promotion.java
View file @
c9f53b14
...
...
@@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.annotation.*;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.SystemClock
;
import
com.fzm.mall.server.admin.goods_center.mapper.SkuMapper
;
import
com.fzm.mall.server.admin.goods_center.mapper.SpuMapper
;
import
com.fzm.mall.server.admin.goods_center.model.Category
;
import
com.fzm.mall.server.admin.goods_center.model.Sku
;
import
com.fzm.mall.server.admin.goods_center.model.Spu
;
import
com.fzm.mall.server.admin.goods_center.service.ICategoryService
;
import
com.fzm.mall.server.admin.marketing.service.IPromotionCategoryService
;
import
com.fzm.mall.server.admin.marketing.service.IPromotionRuleService
;
...
...
@@ -114,35 +118,54 @@ public class Promotion implements Serializable {
* 保存商品促销规则
*
* @param promotionRuleService
* @param promotion
*/
public
void
savePromotionRule
(
IPromotionRuleService
promotionRuleService
,
Promotion
promotion
)
{
PromotionRule
promotionRule
=
promotion
.
getPromotionRule
();
promotionRule
.
setPromotionRuleId
(
UUIDUtil
.
getUUID
());
promotionRule
.
setPromotionId
(
promotion
.
getPromotionId
());
promotionRule
.
setStatus
(
PromotionRule
.
PROMOTION_RULE_STATUS_EFFECTIVE
);
promotionRule
.
setMerchantId
(
promotion
.
getMerchantId
());
public
void
savePromotionRule
(
IPromotionRuleService
promotionRuleService
)
{
this
.
promotionRule
.
setPromotionRuleId
(
UUIDUtil
.
getUUID
());
this
.
promotionRule
.
setPromotionId
(
this
.
promotionId
);
this
.
promotionRule
.
setStatus
(
PromotionRule
.
PROMOTION_RULE_STATUS_EFFECTIVE
);
this
.
promotionRule
.
setMerchantId
(
this
.
merchantId
);
promotionRuleService
.
save
(
promotionRule
);
}
public
void
savePromotionSku
(
IPromotionSkuService
promotionSkuService
,
SpuMapper
spuMapper
,
SkuMapper
skuMapper
)
{
batchSaveCouponSku
(
this
.
promotionSkuList
,
promotionSkuService
,
spuMapper
,
skuMapper
);
}
private
void
batchSaveCouponSku
(
List
<
PromotionSku
>
paramList
,
IPromotionSkuService
promotionSkuService
,
SpuMapper
spuMapper
,
SkuMapper
skuMapper
)
{
if
(
CollectionUtils
.
isEmpty
(
paramList
))
{
return
;
}
/**
* 保存促销的商品规格
*
* @param promotionSkuService
* @param promotion
* 如果商品销售类型为盲盒,默认勾选盲盒的所有规格(即使前台勾选不完全)
*/
public
void
savePromotionSku
(
IPromotionSkuService
promotionSkuService
,
Promotion
promotion
)
{
String
pId
=
promotion
.
getPromotionId
();
String
mId
=
promotion
.
getMerchantId
();
List
<
PromotionSku
>
promotionSkuList
=
promotion
.
getPromotionSkuList
();
promotionSkuList
.
forEach
(
promotionSku
->
{
List
<
String
>
goodsIdList
=
paramList
.
stream
().
map
(
PromotionSku:
:
getGoodsId
).
collect
(
Collectors
.
toList
());
QueryWrapper
<
Spu
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
in
(
"goods_id"
,
goodsIdList
);
List
<
Spu
>
spuList
=
spuMapper
.
selectList
(
queryWrapper
);
List
<
String
>
blindBoxSpuIdList
=
spuList
.
stream
().
filter
(
spu
->
spu
.
getSalesType
().
equals
(
Spu
.
BLIND_BOX_SALES
)).
map
(
Spu:
:
getGoodsId
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
blindBoxSpuIdList
))
{
List
<
String
>
paramSkuIdList
=
paramList
.
stream
().
map
(
PromotionSku:
:
getSkuId
).
collect
(
Collectors
.
toList
());
QueryWrapper
<
Sku
>
skuQueryWrapper
=
new
QueryWrapper
<>();
skuQueryWrapper
.
in
(
"goods_id"
,
blindBoxSpuIdList
);
List
<
Sku
>
dataSkuList
=
skuMapper
.
selectList
(
skuQueryWrapper
);
List
<
Sku
>
skuToAddList
=
dataSkuList
.
stream
().
filter
(
sku
->
!
paramSkuIdList
.
contains
(
sku
.
getSkuId
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
skuToAddList
))
{
skuToAddList
.
forEach
(
sku
->
{
PromotionSku
promotionSku
=
new
PromotionSku
();
promotionSku
.
setSkuId
(
sku
.
getSkuId
());
promotionSku
.
setGoodsId
(
sku
.
getGoodsId
());
paramList
.
add
(
promotionSku
);
});
}
}
paramList
.
forEach
(
promotionSku
->
{
promotionSku
.
setPromotionSkuId
(
UUIDUtil
.
getUUID
());
promotionSku
.
setPromotionId
(
p
Id
);
promotionSku
.
setPromotionId
(
this
.
promotion
Id
);
promotionSku
.
setStatus
(
PromotionSku
.
PROMOTION_SKU_STATUS_EFFECTIVE
);
promotionSku
.
setMerchantId
(
m
Id
);
promotionSku
.
setMerchantId
(
this
.
merchant
Id
);
});
promotionSkuService
.
saveBatch
(
promotionSkuList
);
promotionSkuService
.
saveBatch
(
paramList
);
}
/**
...
...
@@ -205,21 +228,20 @@ public class Promotion implements Serializable {
setPromotionSkuList
(
promotionSkuList
);
}
public
void
updatePromotionRule
(
IPromotionRuleService
promotionRuleService
,
Promotion
promotion
)
{
PromotionRule
promotionRule
=
promotion
.
getPromotionRule
();
public
void
updatePromotionRule
(
IPromotionRuleService
promotionRuleService
)
{
UpdateWrapper
<
PromotionRule
>
wrapper
=
new
UpdateWrapper
<>();
wrapper
.
eq
(
"promotion_rule_id"
,
promotionRule
.
getPromotionRuleId
())
.
eq
(
"promotion_id"
,
promotion
.
getPromotionId
()
)
.
eq
(
"merchant_id"
,
promotion
.
getMerchantId
()
)
.
eq
(
"update_time"
,
promotionRule
.
getUpdateTime
());
wrapper
.
eq
(
"promotion_rule_id"
,
this
.
promotionRule
.
getPromotionRuleId
())
.
eq
(
"promotion_id"
,
this
.
promotionId
)
.
eq
(
"merchant_id"
,
this
.
merchantId
)
.
eq
(
"update_time"
,
this
.
promotionRule
.
getUpdateTime
());
promotionRuleService
.
update
(
promotionRule
,
wrapper
);
}
public
void
updatePromotionSku
(
IPromotionSkuService
promotionSkuService
,
Promotion
promotion
)
{
String
pId
=
promotion
.
getPromotionId
()
;
String
mId
=
promotion
.
getMerchantId
()
;
public
void
updatePromotionSku
(
IPromotionSkuService
promotionSkuService
,
SpuMapper
spuMapper
,
SkuMapper
skuMapper
)
{
String
pId
=
this
.
promotionId
;
String
mId
=
this
.
merchantId
;
List
<
PromotionSku
>
paramList
=
promotion
.
getPromotionSkuList
()
;
List
<
PromotionSku
>
paramList
=
this
.
promotionSkuList
;
List
<
PromotionSku
>
toAddList
=
paramList
.
stream
().
filter
(
item
->
StringUtils
.
isBlank
(
item
.
getPromotionSkuId
())).
collect
(
Collectors
.
toList
());
QueryWrapper
<
PromotionSku
>
queryWrapper
=
new
QueryWrapper
<>();
...
...
@@ -228,13 +250,7 @@ public class Promotion implements Serializable {
.
eq
(
"status"
,
PromotionSku
.
PROMOTION_SKU_STATUS_EFFECTIVE
);
List
<
PromotionSku
>
dataList
=
promotionSkuService
.
list
(
queryWrapper
);
toAddList
.
forEach
(
item
->
{
item
.
setPromotionSkuId
(
UUIDUtil
.
getUUID
());
item
.
setPromotionId
(
pId
);
item
.
setMerchantId
(
mId
);
item
.
setStatus
(
PromotionSku
.
PROMOTION_SKU_STATUS_EFFECTIVE
);
});
promotionSkuService
.
saveBatch
(
toAddList
);
batchSaveCouponSku
(
toAddList
,
promotionSkuService
,
spuMapper
,
skuMapper
);
List
<
PromotionSku
>
reaminList
=
paramList
;
reaminList
.
removeAll
(
toAddList
);
...
...
mall-server-admin/src/main/java/com/fzm/mall/server/admin/marketing/service/impl/PromotionServiceImpl.java
View file @
c9f53b14
...
...
@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fzm.mall.server.admin.constant.MallResponseError
;
import
com.fzm.mall.server.admin.exception.MyException
;
import
com.fzm.mall.server.admin.goods_center.mapper.SkuMapper
;
import
com.fzm.mall.server.admin.goods_center.mapper.SpuMapper
;
import
com.fzm.mall.server.admin.goods_center.service.ICategoryService
;
import
com.fzm.mall.server.admin.marketing.entity.dto.PromotionDTO
;
import
com.fzm.mall.server.admin.marketing.entity.dto.PromotionSaveDTO
;
...
...
@@ -40,14 +42,28 @@ import java.util.stream.Collectors;
*/
@Service
@Transactional
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
PromotionServiceImpl
extends
ServiceImpl
<
PromotionMapper
,
Promotion
>
implements
IPromotionService
{
private
final
PromotionMapper
promotionMapper
;
private
final
IPromotionRuleService
promotionRuleService
;
private
final
IPromotionSkuService
promotionSkuService
;
private
final
IPromotionCategoryService
promotionCategoryService
;
private
final
ICategoryService
categoryService
;
@Autowired
private
PromotionMapper
promotionMapper
;
@Autowired
private
IPromotionRuleService
promotionRuleService
;
@Autowired
private
IPromotionSkuService
promotionSkuService
;
@Autowired
private
IPromotionCategoryService
promotionCategoryService
;
@Autowired
private
ICategoryService
categoryService
;
@Autowired
private
SpuMapper
spuMapper
;
@Autowired
private
SkuMapper
skuMapper
;
@Override
public
void
save
(
PromotionSaveDTO
promotionSaveDTO
)
{
...
...
@@ -58,9 +74,9 @@ public class PromotionServiceImpl extends ServiceImpl<PromotionMapper, Promotion
promotionMapper
.
insert
(
promotion
);
promotion
.
savePromotionRule
(
promotionRuleService
,
promotion
);
promotion
.
savePromotionRule
(
promotionRuleService
);
promotion
.
savePromotionSku
(
promotionSkuService
,
promotion
);
promotion
.
savePromotionSku
(
promotionSkuService
,
spuMapper
,
skuMapper
);
promotion
.
saveCategory
(
promotionCategoryService
);
}
...
...
@@ -80,9 +96,9 @@ public class PromotionServiceImpl extends ServiceImpl<PromotionMapper, Promotion
throw
new
MyException
(
MallResponseError
.
UPDATE_FAIL
);
}
promotion
.
updatePromotionRule
(
promotionRuleService
,
promotion
);
promotion
.
updatePromotionRule
(
promotionRuleService
);
promotion
.
updatePromotionSku
(
promotionSkuService
,
promotion
);
promotion
.
updatePromotionSku
(
promotionSkuService
,
spuMapper
,
skuMapper
);
promotion
.
updateCatrgory
(
promotionCategoryService
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment