Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
oms-ci-test
Commits
fac87e81
提交
fac87e81
authored
10月 16, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
78c1d4be
25e676ff
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
515 行增加
和
111 行删除
+515
-111
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
CodeUtil.java
src/main/java/com/mmc/oms/common/util/CodeUtil.java
+1
-1
LeaseOrderController.java
...va/com/mmc/oms/controller/lease/LeaseOrderController.java
+20
-4
LeaseOrderDao.java
src/main/java/com/mmc/oms/dao/lease/LeaseOrderDao.java
+8
-1
LeaseOrderDO.java
src/main/java/com/mmc/oms/entity/lease/LeaseOrderDO.java
+6
-2
LeaseRefundOrderDO.java
...ain/java/com/mmc/oms/entity/lease/LeaseRefundOrderDO.java
+5
-1
LeaseOrderStatus.java
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
+2
-0
LeaseOrderDTO.java
src/main/java/com/mmc/oms/model/dto/lease/LeaseOrderDTO.java
+25
-1
LeaseRefundOrderDTO.java
...java/com/mmc/oms/model/dto/lease/LeaseRefundOrderDTO.java
+3
-0
LeaseOrderRefundVO.java
...n/java/com/mmc/oms/model/vo/lease/LeaseOrderRefundVO.java
+3
-0
LeaseOrderService.java
...ain/java/com/mmc/oms/service/lease/LeaseOrderService.java
+6
-1
LeaseOrderServiceImpl.java
...com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
+403
-89
LeaseOrderDao.xml
src/main/resources/mapper/lease/LeaseOrderDao.xml
+32
-10
没有找到文件。
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
fac87e81
...
...
@@ -14,4 +14,4 @@ patches:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/oms
newTag
:
b7b6292e8a4fd03a5ea0c9ad7cb8d3079ed995ad
newTag
:
1a194fd7d926274c664924e84d1ca181726cd9b9
src/main/java/com/mmc/oms/common/util/CodeUtil.java
浏览文件 @
fac87e81
...
...
@@ -261,7 +261,7 @@ public class CodeUtil {
Date
now
=
new
Date
();
String
dateString
=
sdf
.
format
(
now
);
int
count
=
counter
.
incrementAndGet
();
return
"
ORD
"
+
dateString
+
String
.
format
(
"%04d"
,
count
);
return
"
L
"
+
dateString
+
String
.
format
(
"%04d"
,
count
);
}
}
src/main/java/com/mmc/oms/controller/lease/LeaseOrderController.java
浏览文件 @
fac87e81
...
...
@@ -8,6 +8,7 @@ import com.mmc.oms.model.qo.uav.UavOrderQO;
import
com.mmc.oms.model.vo.lease.AddLeaseOrderVO
;
import
com.mmc.oms.model.vo.lease.LeaseOrderRefundVO
;
import
com.mmc.oms.model.vo.uav.UavOrderExpressVO
;
import
com.mmc.oms.model.vo.uav.UavOrderRemarkVO
;
import
com.mmc.oms.service.lease.LeaseOrderService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -81,14 +82,14 @@ public class LeaseOrderController extends BaseController {
@ApiOperation
(
value
=
"用户收货"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@
Ge
tMapping
(
"receive"
)
public
ResultBody
receive
(
@Request
Param
Integer
id
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
receive
(
id
,
this
.
getCurrentAccount
(
request
));
@
Pos
tMapping
(
"receive"
)
public
ResultBody
receive
(
@Request
Body
LeaseOrderRefundVO
leaseOrderRefundVO
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
receive
(
leaseOrderRefundVO
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"归还商品"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@
Ge
tMapping
(
"giveBack"
)
@
Pos
tMapping
(
"giveBack"
)
public
ResultBody
giveBack
(
@RequestBody
LeaseOrderRefundVO
leaseOrderRefundVO
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
giveBack
(
leaseOrderRefundVO
,
this
.
getCurrentAccount
(
request
));
}
...
...
@@ -114,4 +115,19 @@ public class LeaseOrderController extends BaseController {
return
leaseOrderService
.
removeLeaseOrder
(
id
);
}
@ApiOperation
(
value
=
"小程序确认结算"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"confirmSettlement"
)
public
ResultBody
confirmSettlement
(
@RequestParam
Integer
id
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
confirmSettlement
(
id
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"评价订单"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"remarkOrder"
)
public
ResultBody
remarkOrder
(
@RequestBody
UavOrderRemarkVO
uavOrderRemarkVO
)
{
return
leaseOrderService
.
remarkOrder
(
uavOrderRemarkVO
);
}
}
src/main/java/com/mmc/oms/dao/lease/LeaseOrderDao.java
浏览文件 @
fac87e81
...
...
@@ -5,6 +5,7 @@ import com.mmc.oms.entity.lease.LeaseOrderExpressDO;
import
com.mmc.oms.entity.lease.LeaseRefundOrderDO
;
import
com.mmc.oms.entity.transtatus.TranStatusDicDO
;
import
com.mmc.oms.entity.uav.UavOrderDO
;
import
com.mmc.oms.entity.uav.UavOrderRemarkDO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -25,7 +26,7 @@ public interface LeaseOrderDao {
LeaseOrderExpressDO
getLeaseOrderExpress
(
Integer
id
);
void
update
Uav
OrderStatus
(
Integer
id
,
Integer
code
);
void
update
Lease
OrderStatus
(
Integer
id
,
Integer
code
);
void
addLeaseRefundOrder
(
LeaseRefundOrderDO
leaseRefundOrderDO
);
...
...
@@ -46,4 +47,10 @@ public interface LeaseOrderDao {
List
<
LeaseOrderExpressDO
>
listLeaseOrderExpress
(
List
<
Integer
>
expressIds
);
void
updateLeaseOrderProportion
(
Integer
id
,
int
proportion
);
LeaseRefundOrderDO
selectGiveBackByOrderId
(
Integer
id
,
Integer
type
);
void
updateLeaseOrderRemarkStatus
(
Integer
id
);
void
addRemarkOrder
(
UavOrderRemarkDO
uavOrderRemarkDO
);
}
src/main/java/com/mmc/oms/entity/lease/LeaseOrderDO.java
浏览文件 @
fac87e81
...
...
@@ -158,12 +158,16 @@ public class LeaseOrderDO implements Serializable {
private
BigDecimal
salaryCashPledge
;
private
BigDecimal
otherPledge
;
public
LeaseOrderDTO
buildLeaseOrderDTO
()
{
return
LeaseOrderDTO
.
builder
().
id
(
id
).
orderNo
(
orderNo
).
statusCode
(
statusCode
).
userAccountId
(
userAccountId
)
return
LeaseOrderDTO
.
builder
().
id
(
id
).
orderNo
(
orderNo
).
orderName
(
orderName
).
statusCode
(
statusCode
).
userAccountId
(
userAccountId
)
.
thirdBackUserAccountId
(
thirdBackUserAccountId
).
companyName
(
companyName
).
orderTotalAmount
(
orderTotalAmount
)
.
salaryAmount
(
salaryAmount
).
shareAmount
(
shareAmount
).
otherAmount
(
otherAmount
).
payType
(
payType
).
payTime
(
payTime
)
.
startDate
(
startDate
).
endDate
(
endDate
).
userRemark
(
userRemark
).
sellerRemark
(
sellerRemark
).
createTime
(
createTime
)
.
confirmReceiptTime
(
confirmReceiptTime
).
remarkStatus
(
remarkStatus
).
modeOfDeliveryInfo
(
modeOfDeliveryInfo
).
sku
(
sku
).
skuImg
(
skuImg
).
build
();
.
confirmReceiptTime
(
confirmReceiptTime
).
remarkStatus
(
remarkStatus
).
modeOfDeliveryInfo
(
modeOfDeliveryInfo
).
depositBackTime
(
confirmReceiptTime
)
.
unitPrice
(
unitPrice
).
deposit
(
deposit
).
wareNum
(
wareNum
).
sku
(
sku
).
skuImg
(
skuImg
).
leaseGoodsId
(
leaseGoodsId
).
otherPledge
(
otherPledge
)
.
salaryCashPledge
(
salaryCashPledge
).
shareCashPledge
(
shareCashPledge
).
modeOfDeliveryInfo
(
modeOfDeliveryInfo
).
build
();
}
}
src/main/java/com/mmc/oms/entity/lease/LeaseRefundOrderDO.java
浏览文件 @
fac87e81
...
...
@@ -7,6 +7,7 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
...
...
@@ -49,17 +50,20 @@ public class LeaseRefundOrderDO implements Serializable {
private
Integer
type
;
private
BigDecimal
modifiedDeposit
;
public
LeaseRefundOrderDO
(
LeaseOrderRefundVO
leaseOrderRefundVO
)
{
this
.
leaseOrderId
=
leaseOrderRefundVO
.
getOrderId
();
this
.
status
=
leaseOrderRefundVO
.
getStatus
();
this
.
file
=
leaseOrderRefundVO
.
getFile
();
this
.
reason
=
leaseOrderRefundVO
.
getReason
();
this
.
modifiedDeposit
=
leaseOrderRefundVO
.
getDeductionAmount
();
}
public
LeaseRefundOrderDTO
buildLeaseRefundOrderDTO
()
{
return
LeaseRefundOrderDTO
.
builder
().
id
(
this
.
id
).
leaseOrderId
(
this
.
leaseOrderId
)
.
status
(
this
.
status
).
file
(
this
.
file
).
reason
(
this
.
reason
)
.
createTime
(
this
.
createTime
).
build
();
.
createTime
(
this
.
createTime
).
modifiedDeposit
(
modifiedDeposit
).
build
();
}
}
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
浏览文件 @
fac87e81
...
...
@@ -13,6 +13,8 @@ public enum LeaseOrderStatus {
REMAIN_TO_BE_EVALUATED
(
600
,
"待评价"
,
"待评价"
),
COMPLETE_TRANSACTION
(
700
,
"交易完成"
,
"交易完成"
),
APPLY_REFUND
(
800
,
"申请退款"
,
"退款中"
),
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
(
900
,
"待确认修改后押金"
,
"待确认修改后押金"
),
MODIFIED_DEPOSIT_REFUND
(
950
,
"待确认修改后押金"
,
"待确认修改后押金"
),
CLOSE
(
999
,
"订单关闭"
,
"订单关闭"
);
public
Integer
getCode
()
{
...
...
src/main/java/com/mmc/oms/model/dto/lease/LeaseOrderDTO.java
浏览文件 @
fac87e81
...
...
@@ -29,6 +29,8 @@ public class LeaseOrderDTO implements Serializable {
private
Integer
id
;
@ApiModelProperty
(
"订单编号"
)
private
String
orderNo
;
@ApiModelProperty
(
"订单名称"
)
private
String
orderName
;
@ApiModelProperty
(
"订单状态"
)
private
Integer
statusCode
;
@ApiModelProperty
(
"买家id"
)
...
...
@@ -51,8 +53,14 @@ public class LeaseOrderDTO implements Serializable {
private
BigDecimal
salaryAmount
;
@ApiModelProperty
(
"抵扣云享金余额"
)
private
BigDecimal
shareAmount
;
@ApiModelProperty
(
"云享金押金抵扣"
)
private
BigDecimal
shareCashPledge
;
@ApiModelProperty
(
"余额押金抵扣"
)
private
BigDecimal
salaryCashPledge
;
@ApiModelProperty
(
"其他方式支付额度"
)
private
BigDecimal
otherAmount
;
@ApiModelProperty
(
"其他方式支付额度"
)
private
BigDecimal
otherPledge
;
@ApiModelProperty
(
"wechatpay微信,alipay支付宝,offline线下"
)
private
String
payType
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
...
...
@@ -83,8 +91,20 @@ public class LeaseOrderDTO implements Serializable {
private
Date
updateTime
;
@ApiModelProperty
(
"用户收货地址信息"
)
private
UavOrderExpressDTO
uavOrderExpressDTO
;
@ApiModelProperty
(
"快递信息"
)
@ApiModelProperty
(
"
发货
快递信息"
)
private
KdnExpDTO
kdnExpDTO
;
@ApiModelProperty
(
"归还快递信息"
)
private
KdnExpDTO
returnKdnExpDTO
;
@ApiModelProperty
(
"确认收货的信息"
)
private
LeaseRefundOrderDTO
confirmReceipt
;
@ApiModelProperty
(
"购买数量"
)
private
Integer
wareNum
;
@ApiModelProperty
(
value
=
"单价"
,
hidden
=
true
)
private
BigDecimal
unitPrice
;
@ApiModelProperty
(
value
=
"押金"
,
hidden
=
true
)
private
BigDecimal
deposit
;
@ApiModelProperty
(
"租赁商品id"
)
private
Integer
leaseGoodsId
;
@ApiModelProperty
(
"订单规格列表"
)
private
String
sku
;
@ApiModelProperty
(
"sku图片"
)
...
...
@@ -93,6 +113,10 @@ public class LeaseOrderDTO implements Serializable {
private
String
modeOfDeliveryInfo
;
@ApiModelProperty
(
"发货后申请退款"
)
private
LeaseRefundOrderDTO
leaseRefundOrder
;
@ApiModelProperty
(
"商户收货后上传的破损信息"
)
private
LeaseRefundOrderDTO
storeDamageOrder
;
@ApiModelProperty
(
"商户确认收货信息"
)
private
LeaseRefundOrderDTO
storeReceiveOrder
;
@ApiModelProperty
(
"押金退回时间"
)
private
Date
depositBackTime
;
}
src/main/java/com/mmc/oms/model/dto/lease/LeaseRefundOrderDTO.java
浏览文件 @
fac87e81
...
...
@@ -7,6 +7,7 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
...
...
@@ -33,6 +34,8 @@ public class LeaseRefundOrderDTO implements Serializable {
private
String
file
;
@ApiModelProperty
(
"退款原因"
)
private
String
reason
;
@ApiModelProperty
(
"修改后的押金"
)
private
BigDecimal
modifiedDeposit
;
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
...
...
src/main/java/com/mmc/oms/model/vo/lease/LeaseOrderRefundVO.java
浏览文件 @
fac87e81
...
...
@@ -6,6 +6,7 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @Author LW
...
...
@@ -32,4 +33,6 @@ public class LeaseOrderRefundVO implements Serializable {
private
String
file
;
@ApiModelProperty
(
"原因"
)
private
String
reason
;
@ApiModelProperty
(
"扣除的押金"
)
private
BigDecimal
deductionAmount
;
}
src/main/java/com/mmc/oms/service/lease/LeaseOrderService.java
浏览文件 @
fac87e81
...
...
@@ -7,6 +7,7 @@ import com.mmc.oms.model.qo.uav.UavOrderQO;
import
com.mmc.oms.model.vo.lease.AddLeaseOrderVO
;
import
com.mmc.oms.model.vo.lease.LeaseOrderRefundVO
;
import
com.mmc.oms.model.vo.uav.UavOrderExpressVO
;
import
com.mmc.oms.model.vo.uav.UavOrderRemarkVO
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -31,7 +32,7 @@ public interface LeaseOrderService {
ResultBody
send
(
UavOrderExpressVO
param
);
ResultBody
receive
(
Integer
id
,
BaseAccountDTO
currentAccount
);
ResultBody
receive
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
BaseAccountDTO
currentAccount
);
ResultBody
statusList
();
...
...
@@ -40,4 +41,8 @@ public interface LeaseOrderService {
ResultBody
giveBack
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
BaseAccountDTO
currentAccount
);
ResultBody
pfConfirmOrderWare
(
BaseAccountDTO
currentAccount
,
LeaseOrderRefundVO
param
);
ResultBody
confirmSettlement
(
Integer
id
,
BaseAccountDTO
currentAccount
);
ResultBody
remarkOrder
(
UavOrderRemarkVO
uavOrderRemarkVO
);
}
src/main/java/com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
浏览文件 @
fac87e81
...
...
@@ -15,6 +15,7 @@ import com.mmc.oms.entity.lease.LeaseOrderExpressDO;
import
com.mmc.oms.entity.lease.LeaseRefundOrderDO
;
import
com.mmc.oms.entity.mall.UserAddressDO
;
import
com.mmc.oms.entity.transtatus.TranStatusDicDO
;
import
com.mmc.oms.entity.uav.UavOrderRemarkDO
;
import
com.mmc.oms.enums.LeaseOrderStatus
;
import
com.mmc.oms.enums.LeaseTermInfo
;
import
com.mmc.oms.enums.OrderType
;
...
...
@@ -40,6 +41,7 @@ import com.mmc.oms.model.vo.lease.LeasePriceStockVO;
import
com.mmc.oms.model.vo.uav.GoodsResourcesVO
;
import
com.mmc.oms.model.vo.uav.PayUavWalletVO
;
import
com.mmc.oms.model.vo.uav.UavOrderExpressVO
;
import
com.mmc.oms.model.vo.uav.UavOrderRemarkVO
;
import
com.mmc.oms.service.demand.DemandReleaseOrderService
;
import
com.mmc.oms.service.lease.LeaseOrderService
;
import
com.mmc.oms.service.uav.UavOrderService
;
...
...
@@ -149,6 +151,8 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 校验云享金、钱包余额是否足够抵扣
BigDecimal
shareAmount
=
BigDecimal
.
ZERO
;
BigDecimal
salaryAmount
=
BigDecimal
.
ZERO
;
// 其他抵扣押金
BigDecimal
otherPledge
=
BigDecimal
.
ZERO
;
Integer
statusCode
=
null
;
// 获取用户钱包信息
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
)
||
param
.
getDeductShareAmount
().
equals
(
1
))
{
...
...
@@ -166,23 +170,24 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 够抵扣押金
shareCashPledge
=
otherCashPledge
;
}
otherCashPledge
=
otherCashPledge
.
subtract
(
shareCashPledge
);
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
otherAmount
=
otherAmount
.
subtract
(
shareCashPledge
);
}
else
{
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
))
{
if
(
otherCashPledge
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>=
0
)
{
salaryCashPledge
=
payWalletDTO
.
getSalaryAmt
();
}
else
{
salaryCashPledge
=
otherCashPledge
;
}
otherCashPledge
=
otherCashPledge
.
subtract
(
salaryCashPledge
);
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
otherAmount
=
otherAmount
.
subtract
(
salaryCashPledge
.
add
(
shareCashPledge
));
}
}
otherCashPledge
=
otherCashPledge
.
subtract
(
shareCashPledge
);
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
otherAmount
=
otherAmount
.
subtract
(
shareCashPledge
);
}
else
{
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
))
{
if
(
otherCashPledge
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>=
0
)
{
salaryCashPledge
=
payWalletDTO
.
getSalaryAmt
();
}
else
{
salaryCashPledge
=
otherCashPledge
;
}
otherCashPledge
=
otherCashPledge
.
subtract
(
salaryCashPledge
);
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
otherAmount
=
otherAmount
.
subtract
(
salaryCashPledge
.
add
(
shareCashPledge
));
}
else
{
otherPledge
=
otherCashPledge
;
}
}
}
// 抵扣完后当押金为0的时候 继续抵扣其余金额
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
...
...
@@ -236,6 +241,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
leaseOrderDO
.
setCompanyName
(
param
.
getCompanyName
());
leaseOrderDO
.
setThirdBackUserAccountId
(
param
.
getThirdBackUserAccountId
());
leaseOrderDO
.
setOrderName
(
leaseGoodsVO
.
getTradeName
());
leaseOrderDO
.
setOtherPledge
(
otherPledge
);
leaseOrderDO
.
setModeOfDeliveryInfo
(
leaseGoodsVO
.
getModeOfDeliveryInfo
());
if
(
priceStock
.
getSkuImage
()
!=
null
)
{
leaseOrderDO
.
setSkuImg
(
priceStock
.
getSkuImage
());
...
...
@@ -319,27 +325,56 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
return
ResultBody
.
error
(
"订单信息不存在!"
);
}
LeaseOrderDTO
leaseOrderDTO
=
leaseOrderDO
.
buildLeaseOrderDTO
();
if
(
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
PLACED_AN_ORDER
.
getCode
()))
{
Integer
statusCode
=
leaseOrderDO
.
getStatusCode
();
if
(
statusCode
.
equals
(
LeaseOrderStatus
.
PLACED_AN_ORDER
.
getCode
()))
{
leaseOrderDTO
.
setNeedPayAmount
(
leaseOrderDO
.
getOtherAmount
());
}
// 收货信息、付款信息、规格信息、快递信息、签署信息
LeaseOrderExpressDO
leaseOrderExpressDO
=
leaseOrderDao
.
getLeaseOrderExpress
(
id
);
if
(
leaseOrderExpressDO
!=
null
)
{
leaseOrderDTO
.
setUavOrderExpressDTO
(
leaseOrderExpressDO
.
buildUavOrderExpressDTO
());
leaseOrderDTO
.
setUavOrderExpressDTO
(
leaseOrderExpressDO
.
buildUavOrderExpressDTO
());
// 快递信息
KdnExpDTO
kdnExpDTO
=
this
.
getOrderExpInfo
(
leaseOrderExpressDO
);
leaseOrderDTO
.
setKdnExpDTO
(
kdnExpDTO
);
// 判断订单状态是否是已归还状态
if
(
statusCode
.
compareTo
(
LeaseOrderStatus
.
WAITING_MERCHANT_CONFIRM
.
getCode
())
>=
0
)
{
// 快递信息
KdnExpDTO
kdnExpDTO
=
this
.
getOrderExpInfo
(
leaseOrderExpressDO
);
leaseOrderDTO
.
setKdnExpDTO
(
kdnExpDTO
);
}
KdnExpDTO
returnKdnExpDTO
=
this
.
getReturnOrderExpInfo
(
leaseOrderDO
,
leaseOrderExpressDO
);
leaseOrderDTO
.
setReturnKdnExpDTO
(
returnKdnExpDTO
);
}
// 设置确认收货信息
setConfirmReceiptInfo
(
id
,
OrderType
.
REC
.
getCode
(),
leaseOrderDTO
);
// 设置退款信息
setConfirmReceiptInfo
(
id
,
OrderType
.
RETREAT
.
getCode
(),
leaseOrderDTO
);
// 设置破损信息
setConfirmReceiptInfo
(
id
,
OrderType
.
PFREC
.
getCode
(),
leaseOrderDTO
);
// 设置个人信息
UserAccountSimpleDTO
userAccountSimpleDTO
=
userAppApi
.
feignGetUserSimpleInfo
(
leaseOrderDO
.
getUserAccountId
(),
currentAccount
.
getToken
());
if
(
userAccountSimpleDTO
!=
null
)
{
leaseOrderDTO
.
setUserName
(
userAccountSimpleDTO
.
getUserName
());
leaseOrderDTO
.
setNickname
(
userAccountSimpleDTO
.
getNickName
());
leaseOrderDTO
.
setPhoneNum
(
userAccountSimpleDTO
.
getPhoneNum
());
leaseOrderDTO
.
setUserName
(
userAccountSimpleDTO
.
getUserName
());
}
return
ResultBody
.
success
(
leaseOrderDTO
);
}
private
void
setConfirmReceiptInfo
(
Integer
id
,
Integer
orderType
,
LeaseOrderDTO
leaseOrderDTO
)
{
LeaseRefundOrderDO
leaseRefundOrderDO
=
leaseOrderDao
.
selectGiveBackByOrderId
(
id
,
orderType
);
switch
(
orderType
)
{
case
1
:
leaseOrderDTO
.
setConfirmReceipt
(
leaseRefundOrderDO
==
null
?
null
:
leaseRefundOrderDO
.
buildLeaseRefundOrderDTO
());
break
;
case
4
:
leaseOrderDTO
.
setLeaseRefundOrder
(
leaseRefundOrderDO
==
null
?
null
:
leaseRefundOrderDO
.
buildLeaseRefundOrderDTO
());
break
;
case
3
:
leaseOrderDTO
.
setStoreDamageOrder
(
leaseRefundOrderDO
==
null
?
null
:
leaseRefundOrderDO
.
buildLeaseRefundOrderDTO
());
break
;
default
:
break
;
}
}
private
KdnExpDTO
getOrderExpInfo
(
LeaseOrderExpressDO
exp
)
throws
Exception
{
String
json
=
""
;
if
(
"SF"
.
equals
(
exp
.
getSendExpCode
()))
{
...
...
@@ -357,6 +392,31 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
return
kdn
;
}
private
KdnExpDTO
getReturnOrderExpInfo
(
LeaseOrderDO
leaseOrderDO
,
LeaseOrderExpressDO
exp
)
throws
Exception
{
Integer
leaseGoodsId
=
leaseOrderDO
.
getLeaseGoodsId
();
ResultBody
<
LeaseGoodsVO
>
leaseGoodsVOResultBody
=
pmsAppApi
.
leaseGoodsDetails
(
leaseGoodsId
);
if
(!
leaseGoodsVOResultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
null
;
}
LeaseGoodsVO
leaseGoodsVO
=
leaseGoodsVOResultBody
.
getResult
();
Integer
returnAddress
=
leaseGoodsVO
.
getReturnAddress
();
UserAddressDO
userAddressDO
=
userAddressDao
.
selectById
(
returnAddress
);
String
json
=
""
;
if
(
"SF"
.
equals
(
exp
.
getReturnExpCode
()))
{
json
=
KdnExpressUtil
.
SF
(
userAddressDO
.
getTakePhone
(),
exp
.
getReturnExpNo
());
}
else
if
(
"JD"
.
equals
(
exp
.
getReturnExpCode
()))
{
json
=
KdnExpressUtil
.
JD
(
""
,
exp
.
getReturnExpNo
());
}
else
{
json
=
KdnExpressUtil
.
others
(
exp
.
getReturnExpCode
(),
exp
.
getReturnExpNo
());
}
KdnExpDTO
kdn
=
JsonUtil
.
parseJsonToObj
(
json
,
KdnExpDTO
.
class
);
kdn
.
setLogisticCode
(
exp
.
getReturnExpNo
());
if
(!
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
kdn
.
getTraces
()))
{
Collections
.
sort
(
kdn
.
getTraces
(),
Comparator
.
comparing
(
ExpStationsDTO:
:
getAcceptTime
).
reversed
());
// 升序
}
return
kdn
;
}
@Override
@Transactional
public
ResultBody
close
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
String
token
)
{
...
...
@@ -374,37 +434,35 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
if
(
leaseOrderRefundVO
.
getExpressCode
()
==
null
||
leaseOrderRefundVO
.
getExpressNum
()
==
null
)
{
return
ResultBody
.
error
(
"请完善物流信息"
);
}
// 插入退货地址信息
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
();
leaseOrderExpressDO
.
setId
(
leaseOrderRefundVO
.
getId
());
leaseOrderExpressDO
.
setLeaseOrderId
(
leaseOrderRefundVO
.
getOrderId
());
leaseOrderExpressDO
.
setReturnExpCode
(
leaseOrderRefundVO
.
getExpressCode
());
leaseOrderExpressDO
.
setReturnExpNo
(
leaseOrderRefundVO
.
getExpressNum
());
leaseOrderExpressDO
.
setReturnTime
(
new
Date
());
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpressDO
);
// 插入退款订单信息
LeaseRefundOrderDO
leaseRefundOrderDO
=
new
LeaseRefundOrderDO
(
leaseOrderRefundVO
);
leaseRefundOrderDO
.
setType
(
OrderType
.
RETREAT
.
getCode
());
leaseOrderDao
.
addLeaseRefundOrder
(
leaseRefundOrderDO
);
// 修改订单状态
leaseOrderDao
.
updateLeaseOrderStatus
(
leaseOrderRefundVO
.
getOrderId
(),
LeaseOrderStatus
.
APPLY_REFUND
.
getCode
());
}
// 插入退货地址信息
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
();
leaseOrderExpressDO
.
setLeaseOrderId
(
leaseOrderRefundVO
.
getOrderId
());
leaseOrderExpressDO
.
setReturnExpCode
(
leaseOrderRefundVO
.
getExpressCode
());
leaseOrderExpressDO
.
setReturnExpNo
(
leaseOrderRefundVO
.
getExpressNum
());
leaseOrderExpressDO
.
setReturnTime
(
new
Date
());
leaseOrderDao
.
addAddress
(
leaseOrderExpressDO
);
// 插入退款订单信息
LeaseRefundOrderDO
leaseRefundOrderDO
=
new
LeaseRefundOrderDO
(
leaseOrderRefundVO
);
leaseRefundOrderDO
.
setLeaseOrderExpressId
(
leaseOrderExpressDO
.
getId
());
leaseRefundOrderDO
.
setType
(
OrderType
.
RETREAT
.
getCode
());
leaseOrderDao
.
addLeaseRefundOrder
(
leaseRefundOrderDO
);
// 修改订单状态
leaseOrderDao
.
updateUavOrderStatus
(
leaseOrderRefundVO
.
getStatus
(),
LeaseOrderStatus
.
APPLY_REFUND
.
getCode
());
return
ResultBody
.
success
();
}
else
{
// 退云享金、佣金
if
(
leaseOrderDO
.
getShareAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setCashAmount
(
leaseOrderDO
.
getShareAmount
());
payUavWalletVO
.
setSalaryAmount
(
leaseOrderDO
.
getSalaryAmount
());
payUavWalletVO
.
setOrderStatus
(
1400
);
payUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
token
);
if
(
leaseOrderDO
.
getShareAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryCashPledge
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getShareCashPledge
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
userPayUavWalletVO
=
amountUnfreezing
(
leaseOrderDO
,
leaseOrderDO
.
getShareAmount
(),
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setOrderStatus
(
1400
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
token
);
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
}
// 微信退款
if
(
"wechatpay"
.
equals
(
leaseOrderDO
.
getPayType
())
)
{
if
(
leaseOrderDO
.
getOtherPledge
()
!=
null
&&
leaseOrderDO
.
getOtherPledge
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setOutTradeNo
(
leaseOrderDO
.
getOrderNo
());
applyRefundVO
.
setReason
(
"关闭租赁订单"
);
...
...
@@ -424,7 +482,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateLeaseOrderStatus
(
Integer
id
,
LeaseOrderStatus
leaseOrderStatus
)
{
leaseOrderDao
.
update
Uav
OrderStatus
(
id
,
leaseOrderStatus
.
getCode
());
leaseOrderDao
.
update
Lease
OrderStatus
(
id
,
leaseOrderStatus
.
getCode
());
}
@Override
...
...
@@ -440,7 +498,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
uavOrderQO
.
buildCurrentPage
();
List
<
LeaseOrderDO
>
leaseOrderDOS
=
leaseOrderDao
.
list
(
uavOrderQO
);
Map
<
Integer
,
LeaseOrderDTO
>
leaseOrderDTOMap
=
new
HashMap
<>();
Map
<
Integer
,
LeaseOrderDTO
>
leaseOrderDTOMap
=
new
Linked
HashMap
<>();
List
<
Integer
>
ids
=
new
ArrayList
<>();
List
<
Integer
>
userIds
=
new
ArrayList
<>();
...
...
@@ -487,7 +545,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
Integer
pageNo
=
uavOrderQO
.
getPageNo
();
uavOrderQO
.
buildCurrentPage
();
List
<
LeaseOrderDO
>
leaseOrderDOS
=
leaseOrderDao
.
list
(
uavOrderQO
);
Map
<
Integer
,
LeaseOrderDTO
>
leaseOrderDTOMap
=
new
HashMap
<>();
Map
<
Integer
,
LeaseOrderDTO
>
leaseOrderDTOMap
=
new
Linked
HashMap
<>();
List
<
Integer
>
ids
=
new
ArrayList
<>();
for
(
LeaseOrderDO
leaseOrderDO
:
leaseOrderDOS
)
{
LeaseOrderDTO
leaseOrderDTO
=
leaseOrderDO
.
buildLeaseOrderDTO
();
...
...
@@ -554,28 +612,35 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 修改订单状态
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
param
.
getUavOrderId
());
if
(!
leaseOrderDO
.
getStatusCode
().
toString
().
equals
(
LeaseOrderStatus
.
PAID
.
getCode
().
toString
()))
{
return
ResultBody
.
error
(
"状态流程有误
,请重试
!"
);
return
ResultBody
.
error
(
"状态流程有误!"
);
}
this
.
updateLeaseOrderStatus
(
param
.
getUavOrderId
(),
LeaseOrderStatus
.
SHIPPED
);
// 修改收货信息
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
(
param
);
leaseOrderExpressDO
.
setSendTime
(
new
Date
());
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpressDO
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
receive
(
Integer
id
,
BaseAccountDTO
currentAccount
)
{
// 修改订单状态
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
id
);
public
ResultBody
receive
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
BaseAccountDTO
currentAccount
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
leaseOrderRefundVO
.
getOrderId
());
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
SHIPPED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误,请重试!"
);
return
ResultBody
.
error
(
"状态流程有误!"
);
}
if
(
StringUtils
.
isNotEmpty
(
leaseOrderRefundVO
.
getFile
())
||
StringUtils
.
isNotEmpty
(
leaseOrderRefundVO
.
getReason
()))
{
// 插入确认信息
LeaseRefundOrderDO
leaseRefundOrderDO
=
new
LeaseRefundOrderDO
(
leaseOrderRefundVO
);
leaseRefundOrderDO
.
setStatus
(
1
);
leaseRefundOrderDO
.
setType
(
OrderType
.
REC
.
getCode
());
leaseOrderDao
.
addLeaseRefundOrder
(
leaseRefundOrderDO
);
}
// 修改收货信息
LeaseOrderExpressDO
leaseOrderExpress
=
leaseOrderDao
.
getLeaseOrderExpress
(
id
);
LeaseOrderExpressDO
leaseOrderExpress
=
leaseOrderDao
.
getLeaseOrderExpress
(
leaseOrderRefundVO
.
getOrderId
()
);
leaseOrderExpress
.
setReceive
(
1
);
leaseOrderExpress
.
setReceiveTime
(
new
Date
());
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpress
);
this
.
updateLeaseOrderStatus
(
id
,
LeaseOrderStatus
.
TO_BE_RETURNED
);
this
.
updateLeaseOrderStatus
(
leaseOrderRefundVO
.
getOrderId
()
,
LeaseOrderStatus
.
TO_BE_RETURNED
);
return
ResultBody
.
success
();
}
...
...
@@ -599,11 +664,12 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
}
@Override
@Transactional
public
ResultBody
giveBack
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
BaseAccountDTO
currentAccount
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
leaseOrderRefundVO
.
getOrderId
());
log
.
info
(
"leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
TO_BE_RETURNED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误
,请重试
!"
);
return
ResultBody
.
error
(
"状态流程有误!"
);
}
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
(
leaseOrderRefundVO
);
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpressDO
);
...
...
@@ -615,50 +681,298 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
@Transactional
public
ResultBody
pfConfirmOrderWare
(
BaseAccountDTO
currentAccount
,
LeaseOrderRefundVO
param
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
param
.
getOrderId
());
log
.
info
(
"leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
WAITING_MERCHANT_CONFIRM
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误,请重试!"
);
}
if
(
param
.
getDamage
().
equals
(
0
))
{
// 解冻用户钱包金额
if
(
leaseOrderDO
.
getShareAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
userPayUavWalletVO
=
new
PayUavWalletVO
();
userPayUavWalletVO
.
setRemark
(
"租赁订单金额解冻"
);
userPayUavWalletVO
.
setCashAmount
(
leaseOrderDO
.
getShareAmount
());
userPayUavWalletVO
.
setSalaryAmount
(
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
log
.
info
(
"平台确认归还操作,leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
.
getCode
()))
{
return
ResultBody
.
error
(
"请勿重复操作"
);
}
boolean
isWaitingMerchantConfirm
=
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
WAITING_MERCHANT_CONFIRM
.
getCode
());
boolean
isApplyRefund
=
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
APPLY_REFUND
.
getCode
());
if
(
isWaitingMerchantConfirm
||
isApplyRefund
)
{
if
(
param
.
getDamage
().
equals
(
0
))
{
// 解冻用户钱包金额
BigDecimal
shareAmount
=
leaseOrderDO
.
getShareAmount
();
BigDecimal
salaryAmount
=
leaseOrderDO
.
getSalaryAmount
();
ApplyRefundVO
applyRefundVO
=
null
;
if
(
isApplyRefund
&&
leaseOrderDO
.
getOtherAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
applyRefundVO
.
setRefund
((
leaseOrderDO
.
getOtherPledge
().
add
(
leaseOrderDO
.
getOtherAmount
())).
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
}
else
if
(
leaseOrderDO
.
getOtherPledge
()
!=
null
&&
leaseOrderDO
.
getOtherPledge
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
}
if
(
applyRefundVO
!=
null
)
{
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
}
}
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
// 金额解冻
PayUavWalletVO
userPayUavWalletVO
=
amountUnfreezing
(
leaseOrderDO
,
shareAmount
,
salaryAmount
);
userPayUavWalletVO
.
setOrderStatus
(
isWaitingMerchantConfirm
?
999
:
1400
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
// 如果是交易完成则退回押金
if
(
isWaitingMerchantConfirm
)
{
BigDecimal
shareCashPledge
=
leaseOrderDO
.
getShareCashPledge
();
BigDecimal
salaryCashPledge
=
leaseOrderDO
.
getSalaryCashPledge
();
if
((
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
))
{
moneyRefund
(
shareCashPledge
,
salaryCashPledge
,
currentAccount
,
leaseOrderDO
);
}
}
}
// 修改退款操作
if
(
isApplyRefund
)
{
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
CLOSE
);
}
if
(
isWaitingMerchantConfirm
)
{
return
businessIncome
(
currentAccount
,
param
.
getOrderId
(),
leaseOrderDO
,
0
);
}
}
else
{
// 有破损等待平台
if
(
StringUtils
.
isEmpty
(
param
.
getFile
())
||
StringUtils
.
isEmpty
(
param
.
getReason
()))
{
return
ResultBody
.
error
(
"请填充破损照片和原因!"
);
}
LeaseRefundOrderDO
leaseRefundOrderDO
=
new
LeaseRefundOrderDO
(
param
);
leaseRefundOrderDO
.
setStatus
(
1
);
leaseRefundOrderDO
.
setType
(
OrderType
.
PFREC
.
getCode
());
leaseOrderDao
.
addLeaseRefundOrder
(
leaseRefundOrderDO
);
// 修改订单状态
if
(
isWaitingMerchantConfirm
)
{
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
);
}
else
{
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
MODIFIED_DEPOSIT_REFUND
);
}
}
}
else
{
return
ResultBody
.
error
(
"状态流程有误"
);
}
return
ResultBody
.
success
();
}
private
ResultBody
businessIncome
(
BaseAccountDTO
currentAccount
,
Integer
orderId
,
LeaseOrderDO
leaseOrderDO
,
Integer
flag
)
{
// 拿到商家管理员的用户id
ResultBody
managerRes
=
userAppApi
.
getManagerIdByBackUserId
(
leaseOrderDO
.
getThirdBackUserAccountId
(),
null
);
if
(!
managerRes
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
managerRes
;
}
// 获取损坏的金额
LeaseRefundOrderDO
leaseRefundOrderDO
=
leaseOrderDao
.
selectGiveBackByOrderId
(
leaseOrderDO
.
getId
(),
OrderType
.
PFREC
.
getCode
());
if
(
leaseRefundOrderDO
!=
null
&&
leaseRefundOrderDO
.
getModifiedDeposit
()
!=
null
)
{
handleModifiedDeposit
(
currentAccount
,
leaseOrderDO
,
managerRes
,
leaseRefundOrderDO
);
}
// 为0时标识订单收益,否则就是修改状态
if
(
flag
==
0
)
{
handleOrderIncome
(
currentAccount
,
leaseOrderDO
,
managerRes
);
this
.
updateLeaseOrderStatus
(
orderId
,
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
);
}
else
{
// 修改退款操状态
this
.
updateLeaseOrderStatus
(
leaseOrderDO
.
getId
(),
LeaseOrderStatus
.
CLOSE
);
}
return
ResultBody
.
success
();
}
private
ResultBody
handleModifiedDeposit
(
BaseAccountDTO
currentAccount
,
LeaseOrderDO
leaseOrderDO
,
ResultBody
managerRes
,
LeaseRefundOrderDO
leaseRefundOrderDO
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setCashAmount
(
BigDecimal
.
ZERO
);
payUavWalletVO
.
setSalaryAmount
(
leaseRefundOrderDO
.
getModifiedDeposit
());
payUavWalletVO
.
setRemark
(
"租赁订单获赔,订单编号"
+
leaseOrderDO
.
getOrderNo
());
payUavWalletVO
.
setOrderStatus
(
1800
);
payUavWalletVO
.
setUserAccountId
((
Integer
)
managerRes
.
getResult
());
ResultBody
resultIncomeBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultIncomeBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultIncomeBody
;
}
return
ResultBody
.
success
();
}
private
ResultBody
handleOrderIncome
(
BaseAccountDTO
currentAccount
,
LeaseOrderDO
leaseOrderDO
,
ResultBody
managerRes
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
BigDecimal
orderTotalAmount
=
leaseOrderDO
.
getOrderTotalAmount
().
subtract
(
leaseOrderDO
.
getDeposit
());
BigDecimal
thirdAmount
=
orderTotalAmount
.
multiply
(
BigDecimal
.
valueOf
(
100
).
subtract
(
UavOrderProportion
.
PROPORTION
).
divide
(
BigDecimal
.
valueOf
(
100
)));
payUavWalletVO
.
setCashAmount
(
BigDecimal
.
ZERO
);
payUavWalletVO
.
setSalaryAmount
(
thirdAmount
);
payUavWalletVO
.
setRemark
(
"租赁订单收入,订单编号"
+
leaseOrderDO
.
getOrderNo
());
payUavWalletVO
.
setOrderStatus
(
1500
);
payUavWalletVO
.
setUserAccountId
((
Integer
)
managerRes
.
getResult
());
ResultBody
resultIncomeBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultIncomeBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultIncomeBody
;
}
leaseOrderDao
.
updateLeaseOrderProportion
(
leaseOrderDO
.
getId
(),
UavOrderProportion
.
PROPORTION
.
intValue
());
return
ResultBody
.
success
();
}
private
ResultBody
moneyRefund
(
BigDecimal
shareCashPledge
,
BigDecimal
salaryCashPledge
,
BaseAccountDTO
currentAccount
,
LeaseOrderDO
leaseOrderDO
)
{
PayUavWalletVO
refundUavWalletVO
=
new
PayUavWalletVO
();
refundUavWalletVO
.
setRemark
(
"租赁押金退回"
);
refundUavWalletVO
.
setCashAmount
(
shareCashPledge
);
refundUavWalletVO
.
setSalaryAmount
(
salaryCashPledge
);
refundUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
refundUavWalletVO
.
setOrderStatus
(
1600
);
ResultBody
giveBackPledge
=
userAppApi
.
feignPayUavWallet
(
refundUavWalletVO
,
currentAccount
.
getToken
());
if
(!
giveBackPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
giveBackPledge
;
}
return
ResultBody
.
success
();
}
private
ApplyRefundVO
wxRefund
(
LeaseOrderDO
leaseOrderDO
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setOutTradeNo
(
leaseOrderDO
.
getOrderNo
());
applyRefundVO
.
setReason
(
"租赁押金退款"
);
applyRefundVO
.
setRefund
(
leaseOrderDO
.
getOtherPledge
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
return
applyRefundVO
;
}
private
PayUavWalletVO
amountUnfreezing
(
LeaseOrderDO
leaseOrderDO
,
BigDecimal
shareAmount
,
BigDecimal
salaryAmount
)
{
PayUavWalletVO
userPayUavWalletVO
=
new
PayUavWalletVO
();
userPayUavWalletVO
.
setRemark
(
"租赁订单金额解冻"
);
userPayUavWalletVO
.
setCashAmount
(
shareAmount
.
add
(
leaseOrderDO
.
getShareCashPledge
()));
userPayUavWalletVO
.
setSalaryAmount
(
salaryAmount
.
add
(
leaseOrderDO
.
getSalaryCashPledge
()));
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
return
userPayUavWalletVO
;
}
@Override
public
ResultBody
confirmSettlement
(
Integer
id
,
BaseAccountDTO
currentAccount
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
id
);
log
.
info
(
"平台确认归还操作,leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
.
getCode
()))
{
return
ResultBody
.
error
(
"请勿重复操作"
);
}
boolean
isModifiedConfirmed
=
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
MODIFIED_DEPOSIT_TO_BE_CONFIRMED
.
getCode
());
boolean
isRefund
=
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
MODIFIED_DEPOSIT_REFUND
.
getCode
());
if
(
isModifiedConfirmed
||
isRefund
)
{
// 根据订单id查询出修改后的押金
LeaseRefundOrderDO
leaseRefundOrderDO
=
leaseOrderDao
.
selectGiveBackByOrderId
(
id
,
OrderType
.
PFREC
.
getCode
());
BigDecimal
operatingDeposit
=
BigDecimal
.
ZERO
;
operatingDeposit
=
operatingDeposit
.
add
(
leaseRefundOrderDO
.
getModifiedDeposit
());
// 判断用户之前的押金,然后进行操作:
// 1、分别获取用户之前抵扣掉的押金
BigDecimal
shareCashPledge
=
leaseOrderDO
.
getShareCashPledge
();
BigDecimal
salaryCashPledge
=
leaseOrderDO
.
getSalaryCashPledge
();
BigDecimal
otherPledge
=
leaseOrderDO
.
getOtherPledge
();
// 一一判断押金是否够扣减的
if
(
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
shareCashPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金足够抵扣
shareCashPledge
=
shareCashPledge
.
subtract
(
operatingDeposit
);
}
else
{
operatingDeposit
=
operatingDeposit
.
subtract
(
shareCashPledge
);
if
(
salaryCashPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金足够抵扣
salaryCashPledge
=
salaryCashPledge
.
subtract
(
operatingDeposit
);
// 进行后续操作
}
else
{
operatingDeposit
=
operatingDeposit
.
subtract
(
salaryCashPledge
);
if
(
otherPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge
=
otherPledge
.
subtract
(
operatingDeposit
);
// 进行后续操作
}
}
}
// 进行金额解冻
PayUavWalletVO
userPayUavWalletVO
=
amountUnfreezing
(
leaseOrderDO
,
leaseOrderDO
.
getShareAmount
(),
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setOrderStatus
(
999
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
resultBody
;
}
// 进行多余的押金退回
if
((
shareCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
))
{
moneyRefund
(
shareCashPledge
,
salaryCashPledge
,
currentAccount
,
leaseOrderDO
);
}
}
else
{
if
(
otherPledge
.
compareTo
(
operatingDeposit
)
>=
0
)
{
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge
=
otherPledge
.
subtract
(
operatingDeposit
);
}
}
BigDecimal
thirdAmount
=
leaseOrderDO
.
getOrderTotalAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
).
subtract
(
UavOrderProportion
.
PROPORTION
).
divide
(
BigDecimal
.
valueOf
(
100
)));
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
(
);
payUavWalletVO
.
setSalaryAmount
(
thirdAmount
);
payUavWalletVO
.
setCashAmount
(
BigDecimal
.
ZERO
);
payUavWalletVO
.
setRemark
(
"租赁订单收入,订单编号"
+
leaseOrderDO
.
getOrderNo
());
payUavWalletVO
.
setOrderStatus
(
1500
)
;
// 拿到商家管理员的用户id
ResultBody
managerRes
=
userAppApi
.
getManagerIdByBackUserId
(
leaseOrderDO
.
getThirdBackUserAccountId
(),
null
);
if
(
!
managerRes
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
managerRes
;
// 退回微信支付的押金部分
if
(
otherPledge
!=
null
&&
otherPledge
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
applyRefundVO
.
setRefund
(
otherPledge
.
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
()
);
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
()
);
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
}
}
if
(
isModifiedConfirmed
)
{
// 进行平台打款
return
businessIncome
(
currentAccount
,
id
,
leaseOrderDO
,
0
)
;
}
payUavWalletVO
.
setUserAccountId
((
Integer
)
managerRes
.
getResult
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
resultBody
;
if
(
isRefund
)
{
// 退回微信的钱
if
(
leaseOrderDO
.
getOtherAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ApplyRefundVO
applyRefundVO
=
wxRefund
(
leaseOrderDO
);
applyRefundVO
.
setRefund
((
leaseOrderDO
.
getOtherPledge
().
add
(
leaseOrderDO
.
getOtherAmount
())).
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
ResultBody
refundOtherPledge
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
currentAccount
.
getToken
());
if
(!
refundOtherPledge
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
refundOtherPledge
;
}
}
if
(
leaseOrderDO
.
getShareAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
// 退回云享金及余额
PayUavWalletVO
userPayUavWalletVO
=
new
PayUavWalletVO
();
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
userPayUavWalletVO
.
setCashAmount
(
leaseOrderDO
.
getShareAmount
());
userPayUavWalletVO
.
setSalaryAmount
(
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setRemark
(
"租赁订单退款"
);
userPayUavWalletVO
.
setOrderStatus
(
1700
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
}
// 进行平台打款
return
businessIncome
(
currentAccount
,
id
,
leaseOrderDO
,
1
);
}
leaseOrderDao
.
updateLeaseOrderProportion
(
leaseOrderDO
.
getId
(),
UavOrderProportion
.
PROPORTION
.
intValue
());
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
);
return
ResultBody
.
success
();
}
else
{
// todo 进行相应赔偿
return
ResultBody
.
success
();
return
ResultBody
.
error
(
"状态流程有误"
);
}
}
@Override
public
ResultBody
remarkOrder
(
UavOrderRemarkVO
uavOrderRemarkVO
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
uavOrderRemarkVO
.
getUavOrderId
());
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误"
);
}
// 修改订单状态
this
.
updateLeaseOrderStatus
(
uavOrderRemarkVO
.
getUavOrderId
(),
LeaseOrderStatus
.
COMPLETE_TRANSACTION
);
leaseOrderDao
.
updateLeaseOrderRemarkStatus
(
leaseOrderDO
.
getId
());
// 填入评价内容
UavOrderRemarkDO
uavOrderRemarkDO
=
new
UavOrderRemarkDO
(
uavOrderRemarkVO
);
uavOrderRemarkDO
.
setRemarkType
(
1
);
uavOrderRemarkDO
.
setMallGoodsId
(
leaseOrderDO
.
getId
());
leaseOrderDao
.
addRemarkOrder
(
uavOrderRemarkDO
);
return
ResultBody
.
success
();
}
}
src/main/resources/mapper/lease/LeaseOrderDao.xml
浏览文件 @
fac87e81
...
...
@@ -24,13 +24,15 @@
start_date,
share_cash_pledge,
salary_cash_pledge,
other_pledge,
mode_of_delivery_Info,
end_date,
sku)
values (#{orderNo}, #{statusCode}, #{userAccountId}, #{leaseGoodsId}, #{companyName}, #{thirdBackUserAccountId},
#{orderName}, #{skuImg}, #{orderTotalAmount}, #{salaryAmount}, #{shareAmount}, #{otherAmount},
#{userAddressId},
#{payTime}, #{userRemark}, #{unitPrice}, #{wareNum}, #{deposit}, #{startDate}, #{shareCashPledge},
#{salaryCashPledge}, #{endDate}, #{sku});
#{salaryCashPledge}, #{
otherPledge}, #{modeOfDeliveryInfo}, #{
endDate}, #{sku});
</insert>
<insert
id=
"addAddress"
keyProperty=
"id"
useGeneratedKeys=
"true"
parameterType=
"com.mmc.oms.entity.lease.LeaseOrderExpressDO"
>
...
...
@@ -41,10 +43,16 @@
</insert>
<insert
id=
"addLeaseRefundOrder"
parameterType=
"com.mmc.oms.entity.lease.LeaseRefundOrderDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into lease_refund_order(lease_order_id, status, file, reason, type, lease_order_express_id)
values (#{leaseOrderId}, #{status}, #{file}, #{reason}, #{type}, #{leaseOrderExpressId})
insert into lease_refund_order(lease_order_id, status, file, reason, type, lease_order_express_id,
modified_deposit)
values (#{leaseOrderId}, #{status}, #{file}, #{reason}, #{type}, #{leaseOrderExpressId}, #{modifiedDeposit})
</insert>
<update
id=
"updateUavOrderStatus"
>
<insert
id=
"addRemarkOrder"
>
insert into uav_order_remark (remark_type, mall_goods_id, uav_order_id, remark_level, uav_images, content,
create_time)
values (#{remarkType}, #{mallGoodsId}, #{uavOrderId}, #{remarkLevel}, #{uavImages}, #{content}, NOW())
</insert>
<update
id=
"updateLeaseOrderStatus"
>
update lease_order
set status_code = #{code}
where id = #{id}
...
...
@@ -105,7 +113,13 @@
</update>
<update
id=
"updateLeaseOrderProportion"
>
update lease_order
set proportion = #{proportion}
set proportion = #{proportion},
confirm_receipt_time = NOW()
where id = #{id}
</update>
<update
id=
"updateLeaseOrderRemarkStatus"
>
update lease_order
set remark_status = 1
where id = #{id}
</update>
...
...
@@ -114,7 +128,8 @@
,order_no,status_code,user_account_id,lease_goods_id,company_name,third_back_user_account_id,
order_name,sku_img,sku,order_total_amount,salary_amount,share_amount,other_amount,pay_type,
user_address_id,user_remark,seller_remark,pay_time,confirm_receipt_time,version,remark_status,mode_of_delivery_Info,
proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,start_date,end_date,shut_reason,send_ware_time
proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,start_date,end_date,shut_reason,
share_cash_pledge,salary_cash_pledge,other_pledge
</sql>
<select
id=
"detail"
resultType=
"com.mmc.oms.entity.lease.LeaseOrderDO"
>
...
...
@@ -138,7 +153,7 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
select count(*) from lease_order lo
where 1 = 1
<if
test=
"keyword != null"
>
and
order_no = #{keyword}
and
(lo.order_no like CONCAT('%',#{keyword},'%') or lo.order_name like CONCAT('%',#{keyword},'%'))
</if>
<if
test=
"userAccountId != null"
>
and user_account_id = #{userAccountId}
...
...
@@ -167,7 +182,7 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
WHERE
1 = 1
<if
test=
"keyword != null"
>
and
lo.order_no = #{keyword}
and
(lo.order_no like CONCAT('%',#{keyword},'%') or lo.order_name like CONCAT('%',#{keyword},'%'))
</if>
<if
test=
"uid != null"
>
and lo.user_account_id = #{uid}
...
...
@@ -190,12 +205,12 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
<if
test=
"showUserPort != null"
>
and show_user_port = #{showUserPort}
</if>
order by lo.
id
desc
order by lo.
create_time
desc
limit #{pageNo}, #{pageSize}
</select>
<sql
id=
"lease_refund_order_column"
>
id
,lease_order_express_id,lease_order_id,status,type,file,reason,create_time
,lease_order_express_id,lease_order_id,status,type,file,reason,create_time
,modified_deposit
</sql>
<select
id=
"getLeaseRefundOrder"
resultType=
"com.mmc.oms.entity.lease.LeaseRefundOrderDO"
>
select
...
...
@@ -229,4 +244,10 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
</foreach>
</where>
</select>
<select
id=
"selectGiveBackByOrderId"
resultType=
"com.mmc.oms.entity.lease.LeaseRefundOrderDO"
>
select
<include
refid=
"lease_refund_order_column"
/>
from lease_refund_order
where lease_order_id = #{id} and type = #{type}
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论