记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
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
董敬伟
liquidnet-bus-v1
Commits
1be7948e
Commit
1be7948e
authored
Jan 04, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交 下单接口 未完成
parent
4d7ba024
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
172 additions
and
7 deletions
+172
-7
GoblinStoreOrder.java
...com/liquidnet/service/goblin/entity/GoblinStoreOrder.java
+9
-1
pom.xml
...dnet-service-goblin/liquidnet-service-goblin-impl/pom.xml
+6
-0
GoblinInnerZhengzaiController.java
...oblin/controller/Inner/GoblinInnerZhengzaiController.java
+1
-1
GoblinAppOrderServiceImpl.java
...ervice/goblin/service/impl/GoblinAppOrderServiceImpl.java
+90
-3
GoblinOrderUtils.java
...a/com/liquidnet/service/goblin/util/GoblinOrderUtils.java
+66
-2
No files found.
liquidnet-bus-do/liquidnet-service-goblin-do/src/main/java/com/liquidnet/service/goblin/entity/GoblinStoreOrder.java
View file @
1be7948e
...
...
@@ -18,7 +18,7 @@ import lombok.EqualsAndHashCode;
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
GoblinStoreOrder
implements
Serializable
{
public
class
GoblinStoreOrder
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -286,5 +286,13 @@ public class GoblinStoreOrder implements Serializable {
private
String
comment
;
private
static
final
GoblinStoreOrder
obj
=
new
GoblinStoreOrder
();
public
static
GoblinStoreOrder
getNew
()
{
try
{
return
(
GoblinStoreOrder
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
GoblinStoreOrder
();
}
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/pom.xml
View file @
1be7948e
...
...
@@ -42,6 +42,12 @@
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-candy-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/Inner/GoblinZhengzaiController.java
→
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/Inner/Goblin
Inner
ZhengzaiController.java
View file @
1be7948e
...
...
@@ -21,7 +21,7 @@ import java.util.List;
@RestController
@Api
(
tags
=
"活动-内部接口调用"
)
@RequestMapping
(
"inner"
)
public
class
GoblinZhengzaiController
{
public
class
Goblin
Inner
ZhengzaiController
{
@Autowired
IGoblinZhengzaiService
goblinZhengzaiService
;
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinAppOrderServiceImpl.java
View file @
1be7948e
...
...
@@ -16,6 +16,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinOrderSpuParam;
import
com.liquidnet.service.goblin.dto.manage.vo.GoblinPayInnerResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo
;
import
com.liquidnet.service.goblin.entity.GoblinStoreOrder
;
import
com.liquidnet.service.goblin.service.IGoblinAppOrderService
;
import
com.liquidnet.service.goblin.service.IGoblinAppZhengzaiService
;
import
com.liquidnet.service.goblin.util.*
;
...
...
@@ -24,8 +25,9 @@ import org.apache.commons.lang.StringUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.*
;
@Service
@Slf4j
...
...
@@ -115,8 +117,9 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
return
ResponseDto
.
failure
(
res1
);
//乱七八糟异常
}
//下单
ResponseDto
<
GoblinPayInnerResultVo
>
resultData
=
order
(
param
,
skuVo
,
uid
,
isMember
,
addressesVo
,
orderMasterCode
,
orderId
,
orderCode
,
storeId
,
number
,
pre
,
spuParam
.
getPlatVoucherCode
());
isDownGeneral
=
false
;
return
null
;
return
resultData
;
}
}
//GoblinOrderSkuParam
}
//GoblinOrderSpuParam
...
...
@@ -144,4 +147,88 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
}
}
}
private
ResponseDto
<
GoblinPayInnerResultVo
>
order
(
GoblinOrderParam
param
,
GoblinGoodsSkuInfoVo
skuInfoVo
,
String
uid
,
boolean
isMember
,
AdamAddressesVo
addressesVo
,
String
orderMasterCode
,
String
orderId
,
String
orderCode
,
String
storeId
,
int
number
,
String
pre
,
String
platVoucherCode
)
throws
Exception
{
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
Map
token
=
CurrentUtil
.
getTokenClaims
();
String
headerCliSource
=
CurrentUtil
.
getHeaderCliSource
(),
headerCliVersion
=
CurrentUtil
.
getHeaderCliVersion
();
String
source
=
headerCliSource
==
null
?
""
:
headerCliSource
;
String
version
=
headerCliVersion
==
null
?
""
:
headerCliVersion
;
LocalDateTime
now
=
LocalDateTime
.
now
();
//价格判断
BigDecimal
price
=
skuInfoVo
.
getPrice
();
BigDecimal
priceBase
=
skuInfoVo
.
getPrice
();
if
(
pre
!=
null
)
{
priceBase
=
redisUtils
.
getGoodsSkuInfoVo
(
skuInfoVo
.
getSkuId
().
split
(
pre
)[
0
]).
getPrice
();
if
(
isMember
)
{
priceBase
=
skuInfoVo
.
getPriceMember
();
}
}
if
(
isMember
)
{
price
=
skuInfoVo
.
getPriceMember
();
}
BigDecimal
voucherMarket
=
priceBase
.
subtract
(
price
).
multiply
(
BigDecimal
.
valueOf
(
number
));
BigDecimal
voucherPrice
=
BigDecimal
.
ZERO
;
if
(
platVoucherCode
!=
null
&&
platVoucherCode
!=
""
)
{
HashMap
<
String
,
Object
>
hashMap
=
orderUtils
.
useCoupon
(
platVoucherCode
,
"购买商品spu"
,
priceBase
.
multiply
(
BigDecimal
.
valueOf
(
number
)),
""
);
//todo
voucherPrice
=
(
BigDecimal
)
hashMap
.
get
(
"voucher"
);
Integer
typeVoucher
=
(
Integer
)
hashMap
.
get
(
"type"
);
if
(
typeVoucher
.
equals
(-
1
))
{
throw
new
Exception
(
"券不可用"
);
}
}
//生成订单
GoblinStoreOrder
storeOrder
=
GoblinStoreOrder
.
getNew
();
storeOrder
.
setMasterOrderCode
(
orderMasterCode
);
storeOrder
.
setOrderId
(
orderId
);
storeOrder
.
setStoreId
(
storeId
);
storeOrder
.
setOrderCode
(
orderCode
);
storeOrder
.
setUserId
(
uid
);
storeOrder
.
setUserName
(
StringUtils
.
defaultString
(((
String
)
token
.
get
(
"nickname"
)),
""
));
storeOrder
.
setUserMobile
(
StringUtils
.
defaultString
(((
String
)
token
.
get
(
"mobile"
)),
""
));
storeOrder
.
setPriceTotal
(
priceBase
.
multiply
(
BigDecimal
.
valueOf
(
number
)));
storeOrder
.
setPriceActual
(
storeOrder
.
getPriceTotal
().
subtract
(
voucherMarket
).
subtract
(
voucherPrice
));
storeOrder
.
setPriceRefund
(
BigDecimal
.
ZERO
);
storeOrder
.
setPreSalePrice
(
BigDecimal
.
ZERO
);
storeOrder
.
setPriceExpress
(
BigDecimal
.
ZERO
);
//todo 快递费
storeOrder
.
setPriceModify
(
BigDecimal
.
ZERO
);
storeOrder
.
setPricePoint
((
BigDecimal
.
ZERO
));
storeOrder
.
setPriceCoupon
(
voucherPrice
);
storeOrder
.
setPriceRedEnvelope
((
BigDecimal
.
ZERO
));
storeOrder
.
setPriceVoucher
(
voucherMarket
.
add
(
voucherPrice
));
storeOrder
.
setStatus
(
0
);
storeOrder
.
setStatusPreSale
(
0
);
storeOrder
.
setStatusEvaluation
(
0
);
storeOrder
.
setRedEnvelopeCode
(
""
);
storeOrder
.
setUcouponId
(
platVoucherCode
);
storeOrder
.
setUsePoint
((
BigDecimal
.
ZERO
));
storeOrder
.
setPayType
(
param
.
getPayType
());
storeOrder
.
setCancelReason
(
""
);
storeOrder
.
setPreDepositPay
(
0
);
storeOrder
.
setSource
(
source
);
storeOrder
.
setVersion
(
version
);
storeOrder
.
setOrderType
(
0
);
storeOrder
.
setLotteryStatus
(
"0"
);
storeOrder
.
setWriteOffCode
(
""
);
//todo
storeOrder
.
setPayCountdownMinute
(
5
);
storeOrder
.
setIpAddress
(
CurrentUtil
.
getCliIpAddr
());
storeOrder
.
setCreatedAt
(
now
);
// storeOrder.setMailNo();
// storeOrder.setDeliveryTime();
// storeOrder.setLogisticsCompany();
// storeOrder.setLogisticsCode();
// storeOrder.setPayTime();
// storeOrder.setCancelTime();
// storeOrder.setModifyTime();
// storeOrder.setEvaluationTime();
// storeOrder.setPreSaleTime();
// storeOrder.setRecommendedId();
// storeOrder.setSRecommendedId();
// storeOrder.setCrowdfundingId();
// storeOrder.setPayCode();
// storeOrder.setPayStoreId();
return
null
;
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinOrderUtils.java
View file @
1be7948e
...
...
@@ -2,10 +2,12 @@ package com.liquidnet.service.goblin.util;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.vo.CandyUseResultVo
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -13,13 +15,16 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.MultiValueMap
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
@Component
@Slf4j
public
class
GoblinOrderUtils
{
@Value
(
"${liquidnet.adam.url}"
)
@Value
(
"${liquidnet.
service.
adam.url}"
)
private
String
adamUrl
;
@Value
(
"${liquidnet.candy.url}"
)
@Value
(
"${liquidnet.
service.
candy.url}"
)
private
String
candyUrl
;
@Value
(
"${liquidnet.service.stone.url}"
)
private
String
stoneUrl
;
...
...
@@ -58,4 +63,63 @@ public class GoblinOrderUtils {
return
""
;
}
}
/**
* 使用优惠券
*
* @param uCouponId 券id
* @param content 消费内容
* @param totalPrice 订单总价
* @return
*/
public
HashMap
<
String
,
Object
>
useCoupon
(
String
uCouponId
,
String
content
,
BigDecimal
totalPrice
,
String
spuId
)
{
HashMap
<
String
,
Object
>
hashMap
=
CollectionUtil
.
mapStringObject
();
try
{
MultiValueMap
<
String
,
String
>
params
=
CollectionUtil
.
linkedMultiValueMapStringString
();
params
.
add
(
"uCouponId"
,
uCouponId
);
params
.
add
(
"content"
,
content
);
params
.
add
(
"totalPrice"
,
totalPrice
.
toString
());
params
.
add
(
"goodId"
,
spuId
);
params
.
add
(
"performanceId"
,
null
);
params
.
add
(
"timeId"
,
null
);
params
.
add
(
"ticketId"
,
null
);
MultiValueMap
<
String
,
String
>
header
=
CollectionUtil
.
linkedMultiValueMapStringString
();
header
.
add
(
"Authorization"
,
"Bearer "
+
CurrentUtil
.
getToken
());
String
returnData
=
HttpUtil
.
post
(
candyUrl
+
"/candy-coupon/use"
,
params
,
header
);
ResponseDto
<
CandyUseResultVo
>
innerReturnVo
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
CandyUseResultVo
>>()
{
});
CandyUseResultVo
candyUseResultVo
=
innerReturnVo
.
getData
();
Integer
type
=
candyUseResultVo
.
getCouType
();
BigDecimal
value
=
candyUseResultVo
.
getValue
();
BigDecimal
voucher
=
BigDecimal
.
ZERO
;
switch
(
type
)
{
case
-
1
:
voucher
=
BigDecimal
.
valueOf
(-
1
);
break
;
case
1
:
voucher
=
voucher
.
add
(
value
);
break
;
case
2
:
voucher
=
voucher
.
add
(
value
);
break
;
case
3
:
voucher
=
voucher
.
add
(
totalPrice
);
break
;
case
4
:
voucher
=
totalPrice
.
subtract
(
totalPrice
.
multiply
(
value
));
break
;
default
:
voucher
=
BigDecimal
.
ZERO
;
break
;
}
hashMap
.
put
(
"type"
,
type
);
hashMap
.
put
(
"voucher"
,
voucher
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
return
hashMap
;
}
catch
(
Exception
e
)
{
log
.
error
(
"用券ERROR:{}"
,
e
);
hashMap
.
put
(
"type"
,
-
1
);
hashMap
.
put
(
"voucher"
,
-
1
);
return
hashMap
;
}
}
}
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