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
dbc97216
Commit
dbc97216
authored
Mar 01, 2022
by
wlx@33.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
盲盒提测
parent
5d59b8e3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
10 deletions
+34
-10
IOrderBindBoxServiceImpl.java
...er/front/order/service/impl/IOrderBindBoxServiceImpl.java
+6
-1
OrderServiceImpl.java
...all/server/front/order/service/impl/OrderServiceImpl.java
+28
-9
No files found.
mall-server-front/src/main/java/com/fzm/mall/server/front/order/service/impl/IOrderBindBoxServiceImpl.java
View file @
dbc97216
...
...
@@ -5,6 +5,7 @@ import com.fzm.mall.server.front.goods.mapper.GoodSkuMapper;
import
com.fzm.mall.server.front.goods.model.vo.SkuVo
;
import
com.fzm.mall.server.front.order.service.IOrderBindBoxService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -17,6 +18,7 @@ import java.util.concurrent.ThreadLocalRandom;
* @author wulixian
* @since 2022/2/23
*/
@Slf4j
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
IOrderBindBoxServiceImpl
implements
IOrderBindBoxService
{
...
...
@@ -30,8 +32,9 @@ public class IOrderBindBoxServiceImpl implements IOrderBindBoxService {
* 从数据库获取库存大于0的盲盒sku列表
*/
List
<
SkuVo
>
skuList
=
goodSkuMapper
.
listAvailableSku
(
goodsId
);
int
difficulty
=
skuList
.
stream
().
map
(
SkuVo:
:
getDifficulty
).
findFirst
().
get
();
long
wStart
=
System
.
currentTimeMillis
();
while
(!
CollectionUtils
.
isEmpty
(
skuList
)){
int
difficulty
=
skuList
.
stream
().
map
(
SkuVo:
:
getDifficulty
).
findFirst
().
get
();
result
=
genRandomSku
(
skuList
,
difficulty
);
if
(
result
==
null
)
{
throw
new
RuntimeException
(
"库存不足!!!"
);
...
...
@@ -48,6 +51,8 @@ public class IOrderBindBoxServiceImpl implements IOrderBindBoxService {
break
;
}
}
long
wEnd
=
System
.
currentTimeMillis
();
log
.
info
(
"循环耗时:"
+(
wEnd
-
wStart
));
if
(
result
==
null
)
{
throw
new
RuntimeException
(
"库存不足!!!"
);
}
...
...
mall-server-front/src/main/java/com/fzm/mall/server/front/order/service/impl/OrderServiceImpl.java
View file @
dbc97216
...
...
@@ -47,6 +47,7 @@ import com.fzm.mall.server.front.util.OrderUtil;
import
com.fzm.mall.server.front.util.TimeUtil
;
import
io.netty.util.internal.StringUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -68,6 +69,7 @@ import java.util.concurrent.TimeUnit;
* @author fzm
* @since 2021-03-02
*/
@Slf4j
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
OrderServiceImpl
extends
ServiceImpl
<
OrderMapper
,
Order
>
implements
IOrderService
{
...
...
@@ -1387,27 +1389,37 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
/**
* 1.根据算法,获取本次下单的对应的盲盒sku信息(sku基本信息+快递模板id),生成订单详情order_detail
*/
long
rStart
=
System
.
currentTimeMillis
();
SkuVo
skuVo
=
orderBindBoxService
.
genRandomSku
(
orderVo
.
getGoodsId
());
long
rEnd
=
System
.
currentTimeMillis
();
log
.
info
(
"计算库存耗时:"
+(
rEnd
-
rStart
));
long
odStart
=
System
.
currentTimeMillis
();
String
oid
=
OrderUtil
.
getOid
();
OrderDetail
orderDetail
=
saveOrderDetail
(
skuVo
,
oid
);
long
odEnd
=
System
.
currentTimeMillis
();
log
.
info
(
"保存订单详情耗时:"
+(
odEnd
-
odStart
));
/**
* 2.记录本次下单的sku的数量和规格信息,计算邮费
* 2.记录本次下单的sku的数量和规格信息,计算邮费
(一幕沒有邮费)
*/
long
teStart
=
System
.
currentTimeMillis
();
BigDecimal
postFee
=
BigDecimal
.
ZERO
;
if
(
orderVo
.
getDelivery
().
equals
(
OrderBlindBoxVo
.
DELIVERY_IMMEDIATELY
))
{
postFee
=
sumPostFee
(
skuVo
,
orderVo
,
orderDetail
);
}
//
if (orderVo.getDelivery().equals(OrderBlindBoxVo.DELIVERY_IMMEDIATELY)) {
//
postFee = sumPostFee(skuVo, orderVo, orderDetail);
//
}
/**
* (一幕沒有优惠券和促销活动)
* 3.计算本次下单可享受的促销优惠:优惠券+促销活动(一幕沒有优惠券和促销活动)
*/
List
<
OrderSkuVo
>
orderSkuVoList
=
new
ArrayList
<>();
OrderSkuVo
orderSkuVo
=
new
OrderSkuVo
();
orderSkuVo
.
setSkuId
(
skuVo
.
getSkuId
());
orderSkuVo
.
setNum
(
orderDetail
.
getNumber
());
BigDecimal
promotionDiscountAmount
=
BigDecimal
.
ZERO
;
// List<OrderSkuVo> orderSkuVoList = new ArrayList<>();
// OrderSkuVo orderSkuVo = new OrderSkuVo();
// orderSkuVo.setSkuId(skuVo.getSkuId());
// orderSkuVo.setNum(orderDetail.getNumber());
// orderSkuVoList.add(orderSkuVo);
// BigDecimal promotionDiscountAmount = sumPromotionDiscount(skuVo, orderSkuVoList, type, oid);
/**
...
...
@@ -1429,13 +1441,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
payableAmount
=
payableAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
CommonConst
.
BIEDICIMAL_LEFT_LESS
?
BigDecimal
.
ZERO
:
payableAmount
;
BigDecimal
integralDeductionNum
=
BigDecimal
.
ZERO
;
// BigDecimal integralDeductionNum = saveIntegralRecord(payableAmount, orderVo, uid, payId);
long
teEnd
=
System
.
currentTimeMillis
();
log
.
info
(
"中间计算耗时:"
+(
teEnd
-
teStart
));
/**
* 5.生成支付单order_pay和订单order_info
*/
long
oiStart
=
System
.
currentTimeMillis
();
saveOrderInfo
(
payId
,
oid
,
uid
,
skuVo
.
getMerchantId
(),
skuAmount
,
discountAmount
,
postFee
,
integralDeductionNum
,
orderVo
);
long
oiEnd
=
System
.
currentTimeMillis
();
log
.
info
(
"保存订单耗时:"
+(
oiEnd
-
oiStart
));
long
opStart
=
System
.
currentTimeMillis
();
saveOrderPay
(
payId
,
oid
,
orderVo
.
getCoin
(),
integralDeductionNum
,
uid
,
payableAmount
);
long
opEnd
=
System
.
currentTimeMillis
();
log
.
info
(
"保存支付单耗时:"
+(
opEnd
-
opStart
));
return
payId
;
}
...
...
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