Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
f25fd26f
Commit
f25fd26f
authored
Mar 05, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
分销商购买样品
parent
f66382b5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
108 additions
and
0 deletions
+108
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
...ch/wx/impl/distribution/DistributionOrderServiceImpl.java
+85
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/DistributionOrderService.java
.../ch/wx/service/distribution/DistributionOrderService.java
+8
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/DistributionOrderController.java
...z/ch/wx/web/distribution/DistributionOrderController.java
+15
-0
No files found.
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
View file @
f25fd26f
...
@@ -166,6 +166,91 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -166,6 +166,91 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
return
Result
.
failed
(
"分销订单下单失败"
);
return
Result
.
failed
(
"分销订单下单失败"
);
}
}
@Override
public
Result
buySample
(
DistributionOrderRequestDto
dto
)
{
try
{
String
shareRecordId
=
dto
.
getShareRecordId
();
DistributorShareRecord
distributorShareRecord
=
null
;
long
itemId
=
0
;
if
(
com
.
xxdxxs
.
utils
.
StringUtils
.
isEmpty
(
shareRecordId
)
&&
dto
.
getItemId
()
==
null
)
{
return
Result
.
failed
(
"商品信息为空"
);
}
else
if
(
com
.
xxdxxs
.
utils
.
StringUtils
.
hasLength
(
shareRecordId
))
{
distributorShareRecord
=
distributorShareRecordDao
.
findById
(
shareRecordId
);
if
(
distributorShareRecord
==
null
||
!
distributorShareRecord
.
getEnabled
())
{
return
Result
.
failed
(
"该商品已下架"
);
}
else
{
itemId
=
distributorShareRecord
.
getItemId
();
}
}
else
{
itemId
=
dto
.
getItemId
();
}
//查询商品信息,检查商品库存
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
distributorShareRecord
.
getItemId
());
int
stock
=
supplierItem
.
getStock
();
if
(
stock
<=
0
)
{
return
Result
.
failed
(
"商品库存不足"
);
}
String
distributionOrderId
=
IdUtils
.
getOrderNumber
(
DISTRIBUTION_ORDER_PREFIX
);
DistributionOrderRequestDto
prePayDto
=
new
DistributionOrderRequestDto
();
prePayDto
.
setDistributionOrderId
(
distributionOrderId
);
prePayDto
.
setAmount
(
String
.
valueOf
(
distributorShareRecord
.
getPrice
()
*
dto
.
getItemNum
()));
prePayDto
.
setBuyerOpenid
(
dto
.
getBuyerOpenid
());
prePayDto
.
setItemName
(
supplierItem
.
getName
());
Result
prePayResult
=
wxPayServiceApi
.
createPrepareOrder
(
prePayDto
);
if
(!
prePayResult
.
getSuccess
())
{
return
Result
.
failed
(
"预下单失败"
);
}
String
prepayId
=
(
String
)
prePayResult
.
getData
();
DistributionOrder
distributionOrder
=
new
DistributionOrder
();
distributionOrder
.
setItemId
(
itemId
);
distributionOrder
.
setItemNum
(
1
);
distributionOrder
.
setShareRecordId
(
StringUtils
.
isEmpty
(
distributorShareRecord
.
getShareId
())?
(
"DA"
+
SYSTEM_ACCOUNT
)
:
distributorShareRecord
.
getShareId
());
distributionOrder
.
setDistributionOrderId
(
distributionOrderId
);
distributionOrder
.
setPrepayId
(
prepayId
);
distributionOrder
.
setBuyerId
(
dto
.
getBuyerId
());
distributionOrder
.
setBuyerOpenid
(
dto
.
getBuyerOpenid
());
distributionOrder
.
setShopId
(
SYSTEM_ACCOUNT
);
distributionOrder
.
setSellerId
(
SYSTEM_ACCOUNT
);
distributionOrder
.
setAmount
(
supplierItem
.
getDistributionPrice
());
distributionOrder
.
setAddressId
(
dto
.
getAddressId
());
distributionOrder
.
setReceiverAddress
(
dto
.
getReceiverAddress
());
distributionOrder
.
setReceiverName
(
dto
.
getReceiverName
());
distributionOrder
.
setReceiverPhone
(
dto
.
getReceiverPhone
());
distributionOrder
.
setCreateTime
(
new
Date
());
distributionOrder
.
setUpdateTime
(
new
Date
());
distributionOrder
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_PAY
.
getCode
());
distributionOrderDao
.
insert
(
distributionOrder
);
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"distributionOrderId"
,
distributionOrderId
);
map
.
put
(
"prepayId"
,
prepayId
);
//计算系统账号的利润,分销商购买的价格 减去 进货成本价
DistributorProfit
distributorProfit
=
new
DistributorProfit
();
//供货成本价
Long
distributionTotalPrice
=
supplierItem
.
getDistributionPrice
()
*
distributionOrder
.
getItemNum
();
Double
profit
=
distributionOrder
.
getAmount
().
doubleValue
()
-
supplierItem
.
getSupplyPrice
().
doubleValue
();
distributorProfit
.
setDistributionOrderId
(
distributionOrderId
);
distributorProfit
.
setDistributorId
(
distributionOrder
.
getSellerId
());
distributorProfit
.
setItemId
(
distributionOrder
.
getItemId
());
distributorProfit
.
setItemNum
(
distributionOrder
.
getItemNum
());
distributorProfit
.
setAmount
(
distributionOrder
.
getAmount
());
distributorProfit
.
setItemCost
(
distributionTotalPrice
);
distributorProfit
.
setProfit
((
long
)
Math
.
floor
(
profit
));
distributorProfit
.
setCreateTime
(
new
Date
());
distributorProfit
.
setIsValid
(
false
);
distributorProfitDao
.
insert
(
distributorProfit
);
return
Result
.
success
(
map
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"分销商购买失败 error : {}"
,
e
);
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
}
return
Result
.
failed
(
"分销商购买失败"
);
}
@Override
@Override
public
Result
checkPayState
(
DistributionOrderRequestDto
dto
)
{
public
Result
checkPayState
(
DistributionOrderRequestDto
dto
)
{
try
{
try
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/DistributionOrderService.java
View file @
f25fd26f
...
@@ -13,6 +13,14 @@ public interface DistributionOrderService {
...
@@ -13,6 +13,14 @@ public interface DistributionOrderService {
Result
createDistributionOrder
(
DistributionOrderRequestDto
dto
);
Result
createDistributionOrder
(
DistributionOrderRequestDto
dto
);
/**
* 分销商购买样品
* @param dto
* @return
*/
Result
buySample
(
DistributionOrderRequestDto
dto
);
/**
/**
* 检查订单是否支付成功
* 检查订单是否支付成功
* @param dto
* @param dto
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/DistributionOrderController.java
View file @
f25fd26f
...
@@ -47,6 +47,21 @@ public class DistributionOrderController {
...
@@ -47,6 +47,21 @@ public class DistributionOrderController {
}
}
@ApiOperation
(
value
=
"分销商购买样品,尚未付款"
)
@PostMapping
(
"/buySample"
)
public
Result
buySample
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
logger
.
info
(
"分销商购买样品,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"buyerId"
,
"买方id"
).
must
().
number
()
.
set
(
"buyerOpenid"
,
"买方微信openid"
).
must
().
string
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
validator
.
getErrorInfo
());
}
return
distributionOrderService
.
buySample
(
dto
);
}
@ApiOperation
(
value
=
"前端获取支付所需参数"
)
@ApiOperation
(
value
=
"前端获取支付所需参数"
)
@PostMapping
(
"/getPayParam"
)
@PostMapping
(
"/getPayParam"
)
public
Result
getPayParam
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
public
Result
getPayParam
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
...
...
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