记得上下班打卡 | 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
e8c686fc
Commit
e8c686fc
authored
Jan 07, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交 接口文档 出货 绑定订单
parent
fc7f5267
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
141 additions
and
25 deletions
+141
-25
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+1
-0
GoblinOrderParam.java
...liquidnet/service/goblin/dto/manage/GoblinOrderParam.java
+3
-0
IGoblinOrderService.java
...liquidnet/service/goblin/service/IGoblinOrderService.java
+4
-1
GoblinAppZhengzaiController.java
...ervice/goblin/controller/GoblinAppZhengzaiController.java
+44
-4
GoblinOrderController.java
...dnet/service/goblin/controller/GoblinOrderController.java
+17
-4
GoblinOrderServiceImpl.java
...t/service/goblin/service/impl/GoblinOrderServiceImpl.java
+55
-16
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+17
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
e8c686fc
...
...
@@ -55,6 +55,7 @@ public class GoblinRedisConst {
public
static
final
String
REDIS_GOBLIN_ORDER_SKU
=
PREFIX
.
concat
(
"orderSku:"
);
//用户sku购买数量 key:$orderSkuId
public
static
final
String
REDIS_GOBLIN_ORDER_UN_PAY
=
PREFIX
.
concat
(
"order:un:pay:"
);
//未支付订单id列表 key:$randomKey
public
static
final
String
REDIS_GOBLIN_ORDER_LIST
=
PREFIX
.
concat
(
"order:id:list:"
);
//用户订单id列表 key:$uid
public
static
final
String
REDIS_GOBLIN_ORDER_MASTER
=
PREFIX
.
concat
(
"order:masterCode:"
);
//用户订单id列表 key:$masterCode
/* ----------------------------------------------------------------- */
/**
* SKU剩余库存
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/manage/GoblinOrderParam.java
View file @
e8c686fc
...
...
@@ -29,6 +29,9 @@ public class GoblinOrderParam {
private
String
showUrl
;
@ApiModelProperty
(
value
=
"returnUrl"
)
private
String
returnUrl
;
@ApiModelProperty
(
value
=
"用户id"
)
private
String
uid
;
@ApiModelProperty
(
value
=
"商品相关参数集合"
)
private
List
<
GoblinOrderStoreParam
>
goblinOrderStoreParamList
;
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/IGoblinOrderService.java
View file @
e8c686fc
...
...
@@ -8,11 +8,14 @@ import com.liquidnet.service.goblin.param.SyncOrderParam;
public
interface
IGoblinOrderService
{
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
GoblinOrderParam
param
);
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
GoblinOrderParam
param
,
String
uid
);
ResponseDto
<
GoblinPayInnerResultVo
>
payAgain
(
PayAgainParam
param
);
String
syncOrder
(
SyncOrderParam
syncOrderParam
);
ResponseDto
<
Integer
>
checkOrderResult
(
String
orderId
);
ResponseDto
<
Integer
>
checkOrderResultMaterCode
(
String
materCode
);
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinAppZhengzaiController.java
View file @
e8c686fc
package
com
.
liquidnet
.
service
.
goblin
.
controller
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.dto.vo.GoblinFrontSelectGoodVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinSelfMarketingVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinShowStoreInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiGoodVo
;
import
com.liquidnet.service.goblin.dto.manage.GoblinOrderParam
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.service.IGoblinAppZhengzaiService
;
import
com.liquidnet.service.goblin.service.IGoblinOrderService
;
import
io.swagger.annotations.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -22,6 +21,8 @@ public class GoblinAppZhengzaiController {
@Autowired
IGoblinAppZhengzaiService
goblinAppZhengzaiService
;
@Autowired
IGoblinOrderService
goblinOrderService
;
@GetMapping
(
"market/list"
)
@ApiOperation
(
"正在下单-活动列表"
)
...
...
@@ -49,5 +50,44 @@ public class GoblinAppZhengzaiController {
return
ResponseDto
.
success
(
goblinAppZhengzaiService
.
getSpuList
(
marketId
,
storeId
));
}
@PostMapping
(
"fc7bce6d6c2213b866f76493f92224b7"
)
@ApiOperation
(
"正在下单-下单"
)
public
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
@RequestBody
GoblinOrderParam
param
)
{
if
(
param
.
getUid
()
==
null
)
{
param
.
setUid
(
"zhengzai"
);
}
return
goblinOrderService
.
checkOrder
(
param
,
param
.
getUid
());
}
@PostMapping
(
"checkPayment"
)
@ApiOperation
(
"订单状态"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"masterCode"
,
value
=
"masterCode"
,
example
=
"1"
),
})
public
ResponseDto
<
Integer
>
checkOrderResultMasterCode
(
@RequestParam
(
"masterCode"
)
@Valid
String
masterCode
)
{
return
goblinOrderService
.
checkOrderResultMaterCode
(
masterCode
);
}
@PostMapping
(
"checkPayment"
)
@ApiOperation
(
"正在下单-出货"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"masterCode"
,
value
=
"masterCode"
,
example
=
"1"
),
})
public
ResponseDto
<
Integer
>
orderPush
(
@RequestParam
(
"masterCode"
)
@Valid
String
masterCode
)
{
return
goblinOrderService
.
checkOrderResultMaterCode
(
masterCode
);
}
@PostMapping
(
"checkPayment"
)
@ApiOperation
(
"正在下单-绑定订单号"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"masterCode"
,
value
=
"masterCode"
,
example
=
"1"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"uid"
,
value
=
"uid"
,
example
=
"1"
),
})
public
ResponseDto
<
Integer
>
orderBind
(
@RequestParam
(
"masterCode"
)
@Valid
String
masterCode
,
@RequestParam
(
"uid"
)
@Valid
String
uid
)
{
return
goblinOrderService
.
checkOrderResultMaterCode
(
masterCode
);
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinOrderController.java
View file @
e8c686fc
package
com
.
liquidnet
.
service
.
goblin
.
controller
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.codec.vo.EncryptedReq
;
import
com.liquidnet.service.goblin.dto.manage.GoblinOrderParam
;
...
...
@@ -25,15 +26,17 @@ public class GoblinOrderController {
@PostMapping
(
"pre"
)
@ApiOperation
(
"下单"
)
public
ResponseDto
<
GoblinPayInnerResultVo
>
getZhengzaiMarketList
(
@RequestBody
EncryptedReq
<
GoblinOrderParam
>
param
)
{
public
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
@RequestBody
EncryptedReq
<
GoblinOrderParam
>
param
)
{
GoblinOrderParam
payOrderParam
=
param
.
getData
();
return
goblinAppOrderService
.
checkOrder
(
payOrderParam
);
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
goblinAppOrderService
.
checkOrder
(
payOrderParam
,
uid
);
}
@PostMapping
(
"fc7bce6d6c2213b866f76493f92224b7"
)
@ApiOperation
(
"fc7bce6d6c2213b866f76493f92224b7"
)
public
ResponseDto
<
GoblinPayInnerResultVo
>
getZhengzaiMarketList
(
@RequestBody
GoblinOrderParam
param
)
{
return
goblinAppOrderService
.
checkOrder
(
param
);
public
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
@RequestBody
GoblinOrderParam
param
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
goblinAppOrderService
.
checkOrder
(
param
,
uid
);
}
@PostMapping
(
"syncOrder"
)
...
...
@@ -59,4 +62,14 @@ public class GoblinOrderController {
public
ResponseDto
<
Integer
>
checkOrderResult
(
@RequestParam
(
"orderId"
)
@Valid
String
orderId
)
{
return
goblinAppOrderService
.
checkOrderResult
(
orderId
);
}
@PostMapping
(
"checkPaymentMaster"
)
@ApiOperation
(
"订单状态[主订单号]"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"masterCode"
,
value
=
"masterCode"
,
example
=
"1"
),
})
public
ResponseDto
<
Integer
>
checkOrderResultMasterCode
(
@RequestParam
(
"masterCode"
)
@Valid
String
masterCode
)
{
return
goblinAppOrderService
.
checkOrderResultMaterCode
(
masterCode
);
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinOrderServiceImpl.java
View file @
e8c686fc
...
...
@@ -55,8 +55,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
private
String
synUrl
;
@Override
public
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
GoblinOrderParam
param
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
public
ResponseDto
<
GoblinPayInnerResultVo
>
checkOrder
(
GoblinOrderParam
param
,
String
uid
)
{
List
<
String
>
skuAndPreListAndNumber
=
CollectionUtil
.
arrayListString
();
List
<
GoblinOrderSqlParam
>
orderSqlParams
=
ObjectUtil
.
getGoblinOrderSqlParamArrayListList
();
...
...
@@ -83,7 +82,10 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
else
{
addressId
=
StringUtils
.
join
(
param
.
getAddressIds
(),
","
);
}
AdamRscPolymer01Vo
userVo
=
orderUtils
.
adamAddressEnterMember
(
uid
,
null
,
addressId
);
AdamRscPolymer01Vo
userVo
=
null
;
if
(
noZhengzaiOrder
(
uid
))
{
userVo
=
orderUtils
.
adamAddressEnterMember
(
uid
,
null
,
addressId
);
}
AdamAddressesVo
addressesVo
;
boolean
isMember
;
if
(
userVo
==
null
)
{
...
...
@@ -117,9 +119,11 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
int
surplusGeneral
=
redisUtils
.
decrSkuStock
(
pre
,
skuId
,
number
);
skuAndPreListAndNumber
.
add
(
skuId
+
","
+
pre
+
","
+
number
);
//判断限购
String
res1
=
orderUtils
.
judgeOrderLimit
(
uid
,
skuId
,
number
,
limitCount
);
if
(!
res1
.
equals
(
""
))
{
throw
new
Exception
(
"已超出限购数量"
);
if
(
noZhengzaiOrder
(
uid
))
{
String
res1
=
orderUtils
.
judgeOrderLimit
(
uid
,
skuId
,
number
,
limitCount
);
if
(!
res1
.
equals
(
""
))
{
throw
new
Exception
(
"已超出限购数量"
);
}
}
//库存回滚
if
(
surplusGeneral
<
0
)
{
...
...
@@ -152,7 +156,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
String
pre
=
array
[
1
];
int
number
=
Integer
.
parseInt
(
array
[
2
]);
redisUtils
.
incrSkuStock
(
pre
,
skuId
,
number
);
redisUtils
.
decrSkuCountByUid
(
uid
,
skuId
,
number
);
if
(
noZhengzaiOrder
(
uid
))
{
redisUtils
.
decrSkuCountByUid
(
uid
,
skuId
,
number
);
}
}
log
.
error
(
"回滚库存"
);
if
(
e
.
getMessage
()
==
null
)
{
...
...
@@ -276,12 +282,14 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
GoblinOrderAttr
orderAttr
=
GoblinOrderAttr
.
getNew
();
orderAttr
.
setOrderAttrId
(
IDGenerator
.
nextTimeId2
());
orderAttr
.
setOrderId
(
orderId
);
orderAttr
.
setExpressContacts
(
addressesVo
.
getName
());
orderAttr
.
setExpressAddress
(
addressesVo
.
getProvince
()
+
","
+
addressesVo
.
getCounty
()
+
","
+
addressesVo
.
getCity
());
orderAttr
.
setExpressAddressDetail
(
addressesVo
.
getAddress
());
orderAttr
.
setExpressPhone
(
addressesVo
.
getPhone
());
orderAttr
.
setExpressType
(
1
);
orderAttr
.
setCreatedAt
(
now
);
if
(!
writeOffCode
.
equals
(
"EMPTY"
))
{
orderAttr
.
setExpressContacts
(
addressesVo
.
getName
());
orderAttr
.
setExpressAddress
(
addressesVo
.
getProvince
()
+
","
+
addressesVo
.
getCounty
()
+
","
+
addressesVo
.
getCity
());
orderAttr
.
setExpressAddressDetail
(
addressesVo
.
getAddress
());
orderAttr
.
setExpressPhone
(
addressesVo
.
getPhone
());
orderAttr
.
setExpressType
(
1
);
orderAttr
.
setCreatedAt
(
now
);
}
//返回值
GoblinOrderPreParam
preParam
=
GoblinOrderPreParam
.
getNew
();
preParam
.
setPriceActual
(
storeOrder
.
getPriceActual
());
...
...
@@ -392,11 +400,14 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
orderVo
.
setOrderAttrVo
(
orderAttrVo
);
orderVo
.
setOrderSkuVoIds
(
goblinOrderSkuIdList
);
redisUtils
.
setGoblinOrder
(
orderVo
.
getOrderId
(),
orderVo
);
redisUtils
.
setMasterCode
(
preParam
.
getOrderMasterCode
(),
preParam
.
getOrderIdList
().
substring
(
1
));
mongoUtils
.
insertGoblinStoreOrderVo
(
orderVo
);
//redis 添加未支付列表
redisUtils
.
addUnPayOrder
(
orderVo
.
getOrderId
());
//redis 订单列表
redisUtils
.
addOrderList
(
uid
,
orderVo
.
getOrderId
());
if
(
noZhengzaiOrder
(
uid
))
{
redisUtils
.
addOrderList
(
uid
,
orderVo
.
getOrderId
());
}
//mysql 执行sql
String
sqlData
=
SqlMapping
.
gets
(
sqls
,
sqlDataSku
,
sqlDataOrder
,
sqlDataAttr
);
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
GOBLIN_ORDER_CREATE_PAY
.
getKey
(),
sqlData
);
...
...
@@ -585,7 +596,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
logVo
.
setSkuPriceActual
(
orderSkuVo
.
getSkuPriceActual
().
multiply
(
new
BigDecimal
(
100
)).
longValue
());
logVo
.
setStatus
(
GoblinStatusConst
.
Status
.
ORDER_LOG_STATUS_11
.
getValue
());
logVo
.
setRemark
(
GoblinStatusConst
.
Status
.
ORDER_LOG_STATUS_11
.
getDesc
());
logVo
.
setOperationId
(
orderVo
.
getUserId
()
);
logVo
.
setOperationId
(
uid
);
logVo
.
setOperationName
(
orderVo
.
getUserName
());
logVo
.
setOperationType
(
GoblinStatusConst
.
Type
.
OPERATION_TYPE_1
.
getValue
());
logVo
.
setCreatedAt
(
LocalDateTime
.
now
());
...
...
@@ -629,7 +640,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
// );
// }
//加分
orderUtils
.
doTask
(
uid
,
priceActual
);
if
(
noZhengzaiOrder
(
uid
))
{
orderUtils
.
doTask
(
uid
,
priceActual
);
}
}
return
"success"
;
}
...
...
@@ -656,4 +669,30 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
}
}
@Override
public
ResponseDto
<
Integer
>
checkOrderResultMaterCode
(
String
materCode
)
{
String
[]
orderIds
=
redisUtils
.
getMasterCode
(
materCode
);
if
(
orderIds
==
null
)
{
return
ResponseDto
.
failure
(
"订单不存在"
);
}
else
{
for
(
String
orderId
:
orderIds
)
{
GoblinStoreOrderVo
storeOrderVo
=
redisUtils
.
getGoblinOrder
(
orderId
);
String
returnCheckData
=
HttpUtil
.
get
(
checkUrl
+
"?code="
+
storeOrderVo
.
getPayCode
(),
null
);
ResponseDto
<
SyncOrderParam
>
syncOrderDtoParam
=
JsonUtils
.
fromJson
(
returnCheckData
,
new
TypeReference
<
ResponseDto
<
SyncOrderParam
>>()
{
});
if
(
syncOrderDtoParam
.
getData
().
getStatus
()
==
1
)
{
//处理订单
syncOrder
(
syncOrderDtoParam
.
getData
());
}
else
{
return
ResponseDto
.
success
(
0
);
}
}
return
ResponseDto
.
success
(
1
);
}
}
private
boolean
noZhengzaiOrder
(
String
uid
)
{
return
!
uid
.
equals
(
"zhengzai"
);
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
e8c686fc
...
...
@@ -571,4 +571,21 @@ public class GoblinRedisUtils {
redisUtil
.
set
(
redisKey
,
list
);
}
//主订单下包含的子订单
public
void
setMasterCode
(
String
masterCode
,
String
orderIds
){
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_ORDER_MASTER
.
concat
(
masterCode
);
redisUtil
.
set
(
redisKey
,
orderIds
);
}
public
String
[]
getMasterCode
(
String
masterCode
){
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_ORDER_MASTER
.
concat
(
masterCode
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
){
return
null
;
}
else
{
return
((
String
)
obj
).
split
(
","
);
}
}
}
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