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
258cbdab
Commit
258cbdab
authored
Apr 01, 2022
by
wulixian
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'test'
修正促销活动和优惠券兼容盲盒 See merge request
!56
parents
8f52ffe7
d3870aa0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
82 additions
and
50 deletions
+82
-50
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
+55
-39
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 @
258cbdab
...
...
@@ -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 @
258cbdab
...
...
@@ -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
);
}
/**
* 保存促销的商品规格
*
* @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
->
{
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
;
}
/**
* 如果商品销售类型为盲盒,默认勾选盲盒的所有规格(即使前台勾选不完全)
*/
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 @
258cbdab
...
...
@@ -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