Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
cms-ci-test
Commits
efe56615
提交
efe56615
authored
9月 12, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
法大大认证信息、钱包优化
上级
6eb9c8c6
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
304 行增加
和
57 行删除
+304
-57
UserFddAuthController.java
...m/mmc/iuav/user/controller/fdd/UserFddAuthController.java
+2
-1
PayWalletController.java
.../mmc/iuav/user/controller/wallet/PayWalletController.java
+9
-0
UserServiceDao.java
...r/src/main/java/com/mmc/iuav/user/dao/UserServiceDao.java
+2
-0
UserFddAuthService.java
...ava/com/mmc/iuav/user/service/fdd/UserFddAuthService.java
+2
-1
UserFddAuthServiceImpl.java
...mc/iuav/user/service/fdd/impl/UserFddAuthServiceImpl.java
+9
-3
PayWalletService.java
...va/com/mmc/iuav/user/service/wallet/PayWalletService.java
+2
-1
PayWalletServiceImpl.java
...c/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
+261
-51
UserServiceDao.xml
...service-user/src/main/resources/mapper/UserServiceDao.xml
+17
-0
没有找到文件。
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/fdd/UserFddAuthController.java
浏览文件 @
efe56615
...
...
@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -79,7 +80,7 @@ public class UserFddAuthController extends BaseController {
@ApiOperation
(
value
=
"获取认证信息"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserFddDTO
.
class
)})
@GetMapping
(
"getAppUserFddInfo"
)
public
ResultBody
<
UserFddDTO
>
getAppUserFddInfo
(
@ApiParam
(
value
=
"端口:0小程序 1后台"
)
@RequestParam
Integer
port
,
HttpServletRequest
request
)
{
public
ResultBody
<
List
<
UserFddDTO
>
>
getAppUserFddInfo
(
@ApiParam
(
value
=
"端口:0小程序 1后台"
)
@RequestParam
Integer
port
,
HttpServletRequest
request
)
{
return
userFddAuthService
.
getAppUserFddInfo
(
port
,
this
.
getUserLoginInfoFromRedis
(
request
));
}
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/wallet/PayWalletController.java
浏览文件 @
efe56615
...
...
@@ -11,6 +11,7 @@ import com.mmc.iuav.user.model.vo.wallet.WalletFlowVO;
import
com.mmc.iuav.user.service.wallet.PayWalletService
;
import
io.swagger.annotations.*
;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -57,6 +58,14 @@ public class PayWalletController extends BaseController {
return
payWalletService
.
feignWalletFlow
(
walletFlowVO
);
}
@ApiOperation
(
value
=
"feign-钱包流水记录(优化版)"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"optimizeWalletFlow"
)
@ApiIgnore
public
ResultBody
optimizeWalletFlow
(
@RequestBody
WalletFlowVO
walletFlowVO
)
{
return
payWalletService
.
optimizeWalletFlow
(
walletFlowVO
);
}
@ApiOperation
(
value
=
"feign-钱包流水记录不带token"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"feignWalletFlowNO"
)
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/UserServiceDao.java
浏览文件 @
efe56615
...
...
@@ -2,6 +2,7 @@ package com.mmc.iuav.user.dao;
import
com.mmc.iuav.user.entity.UserAccountDO
;
import
com.mmc.iuav.user.entity.UserRcdDO
;
import
com.mmc.iuav.user.entity.fdd.UserFddDO
;
import
com.mmc.iuav.user.model.qo.UserAccountQO
;
import
com.mmc.iuav.user.model.qo.UserRcdQO
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -168,4 +169,5 @@ public interface UserServiceDao {
UserAccountDO
getUserAccountInfoByOpenId
(
String
openid
);
List
<
UserFddDO
>
listUserFddInfo
(
@Param
(
value
=
"unionId"
)
String
unionId
,
@Param
(
value
=
"openid"
)
String
openid
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/fdd/UserFddAuthService.java
浏览文件 @
efe56615
...
...
@@ -5,6 +5,7 @@ import com.mmc.iuav.response.ResultBody;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.fdd.dto.UserFddDTO
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -25,7 +26,7 @@ public interface UserFddAuthService {
String
replaceUnableString
(
String
uid
);
ResultBody
<
UserFddDTO
>
getAppUserFddInfo
(
Integer
port
,
LoginSuccessDTO
loginSuccessDTO
);
ResultBody
<
List
<
UserFddDTO
>
>
getAppUserFddInfo
(
Integer
port
,
LoginSuccessDTO
loginSuccessDTO
);
ResultBody
getFileByUuid
(
String
uuid
,
String
docType
);
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/fdd/impl/UserFddAuthServiceImpl.java
浏览文件 @
efe56615
...
...
@@ -15,6 +15,7 @@ import com.mmc.iuav.user.entity.UserAccountDO;
import
com.mmc.iuav.user.entity.fdd.FddVerifyInfoDO
;
import
com.mmc.iuav.user.entity.fdd.UserFddDO
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.fdd.dto.UserFddDTO
;
import
com.mmc.iuav.user.model.fdd.resp.CompanyVerifyResp
;
import
com.mmc.iuav.user.model.fdd.resp.PersonVerifyResp
;
import
com.mmc.iuav.user.service.fdd.FddService
;
...
...
@@ -23,7 +24,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* author:zhenjie
...
...
@@ -242,16 +245,19 @@ public class UserFddAuthServiceImpl implements UserFddAuthService {
@Override
public
ResultBody
getAppUserFddInfo
(
Integer
port
,
LoginSuccessDTO
loginSuccessDTO
)
{
public
ResultBody
<
List
<
UserFddDTO
>>
getAppUserFddInfo
(
Integer
port
,
LoginSuccessDTO
loginSuccessDTO
)
{
String
uId
;
String
openid
;
if
(
port
==
0
)
{
UserAccountDO
userInfo
=
userServiceDao
.
getUserAccountById
(
loginSuccessDTO
.
getUserAccountId
());
uId
=
this
.
replaceUnableString
(
userInfo
.
getUnionId
());
openid
=
this
.
replaceUnableString
(
userInfo
.
getOpenId
());
}
else
{
uId
=
loginSuccessDTO
.
getUserAccountId
().
toString
();
openid
=
null
;
}
UserFddDO
appUserFddDO
=
userFddAuthDao
.
getAppUserFddInfo
(
uI
d
);
return
ResultBody
.
success
(
appUserFddDO
==
null
?
null
:
appUserFddDO
.
buildUserFddDTO
(
));
List
<
UserFddDO
>
userFddDO
=
userServiceDao
.
listUserFddInfo
(
uId
,
openi
d
);
return
ResultBody
.
success
(
userFddDO
==
null
?
null
:
userFddDO
.
stream
().
map
(
UserFddDO:
:
buildUserFddDTO
).
collect
(
Collectors
.
toList
()
));
}
private
CompanyVerifyResp
reqCompanyVerifyUrl
(
String
customerId
)
{
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/wallet/PayWalletService.java
浏览文件 @
efe56615
...
...
@@ -25,5 +25,6 @@ public interface PayWalletService {
ResultBody
billingDetails
(
Integer
id
,
String
detailType
);
ResultBody
payUavWallet
(
PayUavWalletVO
payUavWalletVO
);
ResultBody
optimizeWalletFlow
(
WalletFlowVO
walletFlowVO
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
浏览文件 @
efe56615
...
...
@@ -333,19 +333,10 @@ public class PayWalletServiceImpl implements PayWalletService {
}
private
ResultBody
publishCancelOrder
(
PublisherWalletFlowVO
publisherWalletFlowVO
,
PayWalletDO
publishWallet
,
Integer
status
)
{
PayWalletDO
publishUpdatePayWallet
=
new
PayWalletDO
();
publishUpdatePayWallet
.
setUserAccountId
(
publisherWalletFlowVO
.
getUserAccountId
());
publishUpdatePayWallet
.
setPid
(
publishWallet
.
getPid
());
publishUpdatePayWallet
.
setCashAmt
(
publishWallet
.
getCashAmt
().
add
(
publisherWalletFlowVO
.
getCashAmount
()));
publishUpdatePayWallet
.
setCashFreeze
(
publishWallet
.
getCashFreeze
().
add
(
publisherWalletFlowVO
.
getTopYxjAmount
())
.
add
(
publisherWalletFlowVO
.
getUrgentYxjAmount
()).
subtract
(
publisherWalletFlowVO
.
getCashAmount
()));
publishUpdatePayWallet
.
setSalaryAmt
(
publishWallet
.
getSalaryAmt
().
add
(
publisherWalletFlowVO
.
getSalaryAmount
()));
publishUpdatePayWallet
.
setSalaryFreeze
(
publishWallet
.
getSalaryFreeze
().
add
(
publisherWalletFlowVO
.
getTopSalaryAmount
())
.
add
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
()).
subtract
(
publisherWalletFlowVO
.
getSalaryAmount
()));
PayWalletDO
publishUpdatePayWallet
=
buildPublishUpdatePayWallet
(
publisherWalletFlowVO
,
publishWallet
);
int
i
=
payWalletDao
.
updatePayWallet
(
publishUpdatePayWallet
);
if
((
i
>
0
)
&&
(
publisherWalletFlowVO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
publisherWalletFlowVO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
))
{
PayLogDO
payLogDO
=
buildPayLogDO
(
publisherWalletFlowVO
,
null
);
// 插入流水记录表
PayLogDO
payLogDO
=
buildPayLog
(
publisherWalletFlowVO
,
null
);
payWalletDao
.
insertPayLogDO
(
payLogDO
);
return
ResultBody
.
success
();
}
else
{
...
...
@@ -358,6 +349,21 @@ public class PayWalletServiceImpl implements PayWalletService {
}
}
private
PayWalletDO
buildPublishUpdatePayWallet
(
PublisherWalletFlowVO
publisherWalletFlowVO
,
PayWalletDO
publishWallet
)
{
PayWalletDO
publishUpdatePayWallet
=
new
PayWalletDO
();
publishUpdatePayWallet
.
setUserAccountId
(
publisherWalletFlowVO
.
getUserAccountId
());
publishUpdatePayWallet
.
setPid
(
publishWallet
.
getPid
());
publishUpdatePayWallet
.
setCashAmt
(
publishWallet
.
getCashAmt
().
add
(
publisherWalletFlowVO
.
getCashAmount
()));
publishUpdatePayWallet
.
setCashFreeze
(
publishWallet
.
getCashFreeze
().
add
(
publisherWalletFlowVO
.
getTopYxjAmount
())
.
add
(
publisherWalletFlowVO
.
getUrgentYxjAmount
()).
subtract
(
publisherWalletFlowVO
.
getCashAmount
()));
publishUpdatePayWallet
.
setSalaryAmt
(
publishWallet
.
getSalaryAmt
().
add
(
publisherWalletFlowVO
.
getSalaryAmount
()));
publishUpdatePayWallet
.
setSalaryFreeze
(
publishWallet
.
getSalaryFreeze
().
add
(
publisherWalletFlowVO
.
getTopSalaryAmount
())
.
add
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
()).
subtract
(
publisherWalletFlowVO
.
getSalaryAmount
()));
return
publishUpdatePayWallet
;
}
/**
* @param publisherWalletFlowVO
* @param flag 0 未违约取消 1 违约取消
...
...
@@ -585,10 +591,12 @@ public class PayWalletServiceImpl implements PayWalletService {
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
payUavWallet
(
PayUavWalletVO
payUavWalletVO
)
{
// 获取用户钱包信息
PayWalletDO
userWalletInfo
=
payWalletDao
.
getPayWalletByUser
(
payUavWalletVO
.
getUserAccountId
());
String
payNo
=
"T"
+
TDateUtil
.
getDateStr
(
new
Date
(),
TDateUtil
.
TYPE
)
+
payUavWalletVO
.
getUserAccountId
()
+
CodeUtil
.
getRandomNum
(
4
);
// 记录流水用户钱包流水记录
PayLogDO
payLogDO
=
new
PayLogDO
();
payLogDO
.
setUserAccountId
(
payUavWalletVO
.
getUserAccountId
());
...
...
@@ -599,53 +607,255 @@ public class PayWalletServiceImpl implements PayWalletService {
PayWalletDO
payWalletDO
=
new
PayWalletDO
();
payWalletDO
.
setPid
(
userWalletInfo
.
getPid
());
payWalletDO
.
setUserAccountId
(
payUavWalletVO
.
getUserAccountId
());
// 判断当前订单状态是什么类型
if
(
payUavWalletVO
.
getOrderStatus
().
equals
(
PayMethodEnums
.
PUBLISH_ORDER
.
getCode
()))
{
// 获取下单金额是否大于该用户钱包金额
if
(
userWalletInfo
.
getCashAmt
().
compareTo
(
payUavWalletVO
.
getCashAmount
())
<
0
)
{
return
ResultBody
.
error
(
"可抵扣的云享金不足"
);
}
if
(
userWalletInfo
.
getSalaryAmt
().
compareTo
(
payUavWalletVO
.
getSalaryAmount
())
<
0
)
{
return
ResultBody
.
error
(
"可抵扣的佣金不足"
);
Integer
orderStatus
=
payUavWalletVO
.
getOrderStatus
();
if
(
orderStatus
.
equals
(
PayMethodEnums
.
PUBLISH_ORDER
.
getCode
()))
{
return
handlePublishOrder
(
payUavWalletVO
,
userWalletInfo
,
payLogDO
,
payWalletDO
);
}
else
if
(
orderStatus
.
equals
(
PayMethodEnums
.
PAY_UAV_ORDER_REFUND
.
getCode
()))
{
return
handleOrderRefund
(
payUavWalletVO
,
userWalletInfo
,
payLogDO
,
payWalletDO
);
}
else
if
(
orderStatus
.
equals
(
PayMethodEnums
.
ORDER_INCOME
.
getCode
()))
{
return
handleOrderIncome
(
payUavWalletVO
,
userWalletInfo
,
payLogDO
,
payWalletDO
);
}
else
{
return
handleConfirmReceipt
(
payUavWalletVO
,
userWalletInfo
,
payLogDO
,
payWalletDO
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
handlePublishOrder
(
PayUavWalletVO
payUavWalletVO
,
PayWalletDO
userWalletInfo
,
PayLogDO
payLogDO
,
PayWalletDO
payWalletDO
)
{
// 获取下单金额是否大于该用户钱包金额
if
(
userWalletInfo
.
getCashAmt
().
compareTo
(
payUavWalletVO
.
getCashAmount
())
<
0
)
{
return
ResultBody
.
error
(
"可抵扣的云享金不足"
);
}
if
(
userWalletInfo
.
getSalaryAmt
().
compareTo
(
payUavWalletVO
.
getSalaryAmount
())
<
0
)
{
return
ResultBody
.
error
(
"可抵扣的佣金不足"
);
}
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
if
(
payUavWalletVO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
payLogDO
.
setCashAmtPaid
(
payUavWalletVO
.
getCashAmount
().
negate
());
}
else
{
payLogDO
.
setCashAmtPaid
(
BigDecimal
.
ZERO
);
}
if
(
payUavWalletVO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
().
negate
());
}
else
{
payLogDO
.
setSalaryAmtPaid
(
BigDecimal
.
ZERO
);
}
// 如果是100 扣减余额冻结金额
payWalletDO
.
setCashAmt
(
userWalletInfo
.
getCashAmt
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashAmt
().
add
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDao
.
insertPayLogDO
(
payLogDO
);
payWalletDao
.
updatePayWallet
(
payWalletDO
);
return
ResultBody
.
success
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
handleOrderRefund
(
PayUavWalletVO
payUavWalletVO
,
PayWalletDO
userWalletInfo
,
PayLogDO
payLogDO
,
PayWalletDO
payWalletDO
)
{
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
payLogDO
.
setCashAmtPaid
(
payUavWalletVO
.
getCashAmount
());
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
());
// 如果是1400 回滚解冻金额
payWalletDO
.
setCashAmt
(
userWalletInfo
.
getCashAmt
().
add
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashAmt
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryAmt
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDao
.
insertPayLogDO
(
payLogDO
);
payWalletDao
.
updatePayWallet
(
payWalletDO
);
return
ResultBody
.
success
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
handleOrderIncome
(
PayUavWalletVO
payUavWalletVO
,
PayWalletDO
userWalletInfo
,
PayLogDO
payLogDO
,
PayWalletDO
payWalletDO
)
{
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
payLogDO
.
setCashAmtPaid
(
BigDecimal
.
ZERO
);
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
());
// 订单收益
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDao
.
insertPayLogDO
(
payLogDO
);
payWalletDao
.
updatePayWallet
(
payWalletDO
);
return
ResultBody
.
success
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
handleConfirmReceipt
(
PayUavWalletVO
payUavWalletVO
,
PayWalletDO
userWalletInfo
,
PayLogDO
payLogDO
,
PayWalletDO
payWalletDO
)
{
// 确认收货,解冻用户钱包信息
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryFreeze
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashFreeze
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDao
.
insertPayLogDO
(
payLogDO
);
payWalletDao
.
updatePayWallet
(
payWalletDO
);
return
ResultBody
.
success
();
}
@Override
// TODO 还未优化完
public
ResultBody
optimizeWalletFlow
(
WalletFlowVO
walletFlowVO
)
{
// 获取发布者和接单者的信息
PublisherWalletFlowVO
publisherWalletFlowVO
=
walletFlowVO
.
getPublisherWalletFlowVO
();
FlyerWalletFlowVO
flyerWalletFlowVO
=
walletFlowVO
.
getFlyerWalletFlowVO
();
// 发布者和接单者的钱包信息
PayWalletDO
publishWallet
=
(
publisherWalletFlowVO
!=
null
)
?
payWalletDao
.
getPayWalletByUser
(
publisherWalletFlowVO
.
getUserAccountId
())
:
new
PayWalletDO
();
PayWalletDO
flyerWallet
=
(
flyerWalletFlowVO
!=
null
)
?
payWalletDao
.
getPayWalletByUser
(
flyerWalletFlowVO
.
getUserAccountId
())
:
new
PayWalletDO
();
// 判断状态进行资金的扣减等于100时 发布订单
if
(
publisherWalletFlowVO
!=
null
)
{
Integer
modeOfPayment
=
publisherWalletFlowVO
.
getModeOfPayment
();
if
(
modeOfPayment
.
equals
(
PayMethodEnums
.
PUBLISH_ORDER
.
getCode
()))
{
return
handleOrderPublish
(
publisherWalletFlowVO
,
publishWallet
);
}
else
if
(
modeOfPayment
.
equals
(
PayMethodEnums
.
CANCEL_ORDER_TAKING
.
getCode
()))
{
// 等于200时 发布方取消订单,无飞手接单
return
publishCancelOrder
(
publisherWalletFlowVO
,
publishWallet
,
200
);
}
else
if
(
modeOfPayment
.
equals
(
PayMethodEnums
.
RECEIVED_ORDER_CANCEL
.
getCode
()))
{
// 等于300时 发布方取消订单,有飞手接单
return
handleReceivedOrderCancel
(
publisherWalletFlowVO
,
publishWallet
,
flyerWalletFlowVO
,
flyerWallet
);
}
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
if
(
payUavWalletVO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
payLogDO
.
setCashAmtPaid
(
payUavWalletVO
.
getCashAmount
().
negate
());
}
return
ResultBody
.
error
(
"无效的支付方式"
);
}
private
ResultBody
handleReceivedOrderCancel
(
PublisherWalletFlowVO
publisherWalletFlowVO
,
PayWalletDO
publishWallet
,
FlyerWalletFlowVO
flyerWalletFlowVO
,
PayWalletDO
flyerWallet
)
{
// 等于300时 发布方取消订单,有飞手接单
PayWalletDO
publishUpdatePayWallet
=
new
PayWalletDO
();
publishUpdatePayWallet
.
setUserAccountId
(
publisherWalletFlowVO
.
getUserAccountId
());
publishUpdatePayWallet
.
setPid
(
publishWallet
.
getPid
());
publishUpdatePayWallet
.
setCashAmt
(
publishWallet
.
getCashAmt
().
add
(
publisherWalletFlowVO
.
getCashAmount
()));
publishUpdatePayWallet
.
setCashFreeze
(
publishWallet
.
getCashFreeze
().
subtract
(
publisherWalletFlowVO
.
getCashAmount
())
.
subtract
(
publisherWalletFlowVO
.
getYxjCashPledge
().
abs
()).
subtract
(
publisherWalletFlowVO
.
getTopYxjAmount
().
abs
())
.
subtract
(
publisherWalletFlowVO
.
getUrgentYxjAmount
().
abs
()));
publishUpdatePayWallet
.
setSalaryAmt
(
publishWallet
.
getSalaryAmt
().
add
(
publisherWalletFlowVO
.
getSalaryAmount
()));
publishUpdatePayWallet
.
setSalaryFreeze
(
publishWallet
.
getSalaryFreeze
().
subtract
(
publisherWalletFlowVO
.
getSalaryCashPledge
().
abs
())
.
subtract
(
publisherWalletFlowVO
.
getSalaryAmount
()).
subtract
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
().
abs
())
.
subtract
(
publisherWalletFlowVO
.
getTopSalaryAmount
().
abs
()));
// 更新发布者钱包数据
int
publishUpdateCount
=
payWalletDao
.
updatePayWallet
(
publishUpdatePayWallet
);
if
(
publishUpdateCount
<=
0
)
{
log
.
error
(
"发布方取消订单,有飞手接单时,发单方用户钱包更新失败,更新参数是:{},发单方用户id是:{},传入参数是:{}"
,
publishUpdatePayWallet
,
publisherWalletFlowVO
.
getUserAccountId
(),
publisherWalletFlowVO
);
return
ResultBody
.
error
(
"钱包操作错误"
);
}
if
(
publisherWalletFlowVO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
publisherWalletFlowVO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
// 插入发布者流水记录表
sendBackPublishPayLog
(
publisherWalletFlowVO
,
1
);
}
// 处理飞手钱包数据
return
handleRenegeOperate
(
publisherWalletFlowVO
,
null
,
flyerWalletFlowVO
,
flyerWallet
,
1
);
}
/**
* @param publisherWalletFlowVO
* @param publishWallet
* @param flyerWalletFlowVO
* @param flyerWallet
* @param renege 1:发布方违约 2:飞手方违约
* @return
*/
private
ResultBody
handleRenegeOperate
(
PublisherWalletFlowVO
publisherWalletFlowVO
,
PayWalletDO
publishWallet
,
FlyerWalletFlowVO
flyerWalletFlowVO
,
PayWalletDO
flyerWallet
,
Integer
renege
)
{
PayWalletDO
updatePayWallet
=
new
PayWalletDO
();
if
(
renege
==
1
)
{
updatePayWallet
.
setUserAccountId
(
flyerWalletFlowVO
.
getUserAccountId
());
updatePayWallet
.
setPid
(
flyerWallet
.
getPid
());
updatePayWallet
.
setCashAmt
(
flyerWallet
.
getCashAmt
().
add
(
flyerWalletFlowVO
.
getCashAmount
()));
updatePayWallet
.
setCashFreeze
(
flyerWallet
.
getCashFreeze
().
subtract
(
flyerWalletFlowVO
.
getCashAmount
()));
updatePayWallet
.
setSalaryAmt
(
flyerWallet
.
getSalaryAmt
().
add
(
flyerWalletFlowVO
.
getSalaryAmount
()).
subtract
(
publisherWalletFlowVO
.
getPercentagePenaltyOfOrder
()));
updatePayWallet
.
setSalaryFreeze
(
flyerWallet
.
getSalaryFreeze
().
subtract
(
flyerWalletFlowVO
.
getSalaryAmount
()));
int
flyerUpdateCount
=
payWalletDao
.
updatePayWallet
(
updatePayWallet
);
if
(
flyerUpdateCount
>
0
)
{
// 记录订单保证金退回记录
if
(
flyerWalletFlowVO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
flyerWalletFlowVO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
sendBackPledge
(
flyerWalletFlowVO
);
}
// 获得违约金流水记录
paymentOfLiquidatedDamage
(
publisherWalletFlowVO
,
flyerWalletFlowVO
,
0
);
return
ResultBody
.
success
();
}
else
{
payLogDO
.
setCashAmtPaid
(
BigDecimal
.
ZERO
);
log
.
error
(
"发布方取消订单,有飞手接单时,飞手用户钱包更新失败,飞手用户id是:{},接单方传入参数是:{},发单方违约金是:{}"
,
flyerWalletFlowVO
.
getUserAccountId
(),
flyerWalletFlowVO
,
publisherWalletFlowVO
.
getPercentagePenaltyOfOrder
());
return
ResultBody
.
error
(
"钱包操作错误"
);
}
if
(
payUavWalletVO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
().
negate
());
}
else
{
updatePayWallet
.
setUserAccountId
(
publisherWalletFlowVO
.
getUserAccountId
());
updatePayWallet
.
setPid
(
publishWallet
.
getPid
());
updatePayWallet
.
setCashAmt
(
publishWallet
.
getCashAmt
().
add
(
publisherWalletFlowVO
.
getCashAmount
())
.
add
(
publisherWalletFlowVO
.
getTopYxjAmount
()).
add
(
publisherWalletFlowVO
.
getTopYxjAmount
()));
updatePayWallet
.
setSalaryAmt
(
publishWallet
.
getSalaryAmt
().
add
(
publisherWalletFlowVO
.
getSalaryAmount
())
.
subtract
(
flyerWalletFlowVO
.
getPercentagePenaltyOfOrder
()));
updatePayWallet
.
setCashFreeze
(
publishWallet
.
getCashFreeze
().
subtract
(
publisherWalletFlowVO
.
getCashAmount
())
.
subtract
(
publisherWalletFlowVO
.
getUrgentYxjAmount
()).
subtract
(
publisherWalletFlowVO
.
getTopYxjAmount
()));
updatePayWallet
.
setSalaryFreeze
(
publishWallet
.
getSalaryFreeze
().
subtract
(
publisherWalletFlowVO
.
getSalaryAmount
())
.
subtract
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
()).
subtract
(
publisherWalletFlowVO
.
getTopSalaryAmount
()));
int
publishUpdateCount
=
payWalletDao
.
updatePayWallet
(
updatePayWallet
);
if
(
publishUpdateCount
>
0
)
{
// 记录飞手违约金流水
paymentOfLiquidatedDamage
(
publisherWalletFlowVO
,
flyerWalletFlowVO
,
1
);
if
(
publisherWalletFlowVO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
publisherWalletFlowVO
.
getUrgentYxjAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
publisherWalletFlowVO
.
getTopYxjAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
publisherWalletFlowVO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
publisherWalletFlowVO
.
getUrgentSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
publisherWalletFlowVO
.
getTopSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
// 记录退回订单金额
sendBackPublishPayLog
(
publisherWalletFlowVO
,
0
);
}
return
ResultBody
.
success
();
}
else
{
payLogDO
.
setSalaryAmtPaid
(
BigDecimal
.
ZERO
);
log
.
error
(
"飞手有责取消订单,发布者用户钱包更新失败,发布者用户id是:{},发布方传入参数是:{},接单方方违约金是:{}"
,
publisherWalletFlowVO
.
getUserAccountId
(),
publisherWalletFlowVO
,
flyerWalletFlowVO
.
getPercentagePenaltyOfOrder
());
return
ResultBody
.
error
(
"钱包操作错误"
);
}
// 如果是100 扣减余额冻结金额
payWalletDO
.
setCashAmt
(
userWalletInfo
.
getCashAmt
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashAmt
().
add
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
}
else
if
(
payUavWalletVO
.
getOrderStatus
().
equals
(
PayMethodEnums
.
PAY_UAV_ORDER_REFUND
.
getCode
()))
{
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
payLogDO
.
setCashAmtPaid
(
payUavWalletVO
.
getCashAmount
());
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
());
// 如果是1400 回滚解冻金额
payWalletDO
.
setCashAmt
(
userWalletInfo
.
getCashAmt
().
add
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashAmt
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryAmt
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
}
else
if
(
payUavWalletVO
.
getOrderStatus
().
equals
(
PayMethodEnums
.
ORDER_INCOME
.
getCode
()))
{
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
payLogDO
.
setCashAmtPaid
(
BigDecimal
.
ZERO
);
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
());
// 订单收益
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
}
}
private
ResultBody
handleOrderPublish
(
PublisherWalletFlowVO
publisherWalletFlowVO
,
PayWalletDO
publishWallet
)
{
PayWalletDO
publishUpdatePayWallet
=
new
PayWalletDO
();
publishUpdatePayWallet
.
setUserAccountId
(
publisherWalletFlowVO
.
getUserAccountId
());
publishUpdatePayWallet
.
setPid
(
publishWallet
.
getPid
());
publishUpdatePayWallet
.
setCashAmt
(
publishWallet
.
getCashAmt
().
subtract
(
publisherWalletFlowVO
.
getCashAmount
().
abs
())
.
subtract
(
publisherWalletFlowVO
.
getTopYxjAmount
().
abs
()).
subtract
(
publisherWalletFlowVO
.
getUrgentYxjAmount
().
abs
()));
publishUpdatePayWallet
.
setCashFreeze
(
publishWallet
.
getCashFreeze
().
add
(
publisherWalletFlowVO
.
getCashAmount
().
abs
())
.
add
(
publisherWalletFlowVO
.
getTopYxjAmount
().
abs
()).
add
(
publisherWalletFlowVO
.
getUrgentYxjAmount
().
abs
()));
publishUpdatePayWallet
.
setSalaryAmt
(
publishWallet
.
getSalaryAmt
().
subtract
(
publisherWalletFlowVO
.
getSalaryAmount
().
abs
())
.
subtract
(
publisherWalletFlowVO
.
getTopSalaryAmount
().
abs
()).
subtract
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
()).
abs
());
publishUpdatePayWallet
.
setSalaryFreeze
(
publishWallet
.
getSalaryFreeze
().
add
(
publisherWalletFlowVO
.
getSalaryAmount
().
abs
())
.
add
(
publisherWalletFlowVO
.
getTopSalaryAmount
().
abs
()).
add
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
().
abs
()));
int
update
=
payWalletDao
.
updatePayWallet
(
publishUpdatePayWallet
);
if
(
update
>
0
)
{
PayLogDO
payLogDO
=
buildPayLog
(
publisherWalletFlowVO
,
null
);
payLogDO
.
setCashAmtPaid
(
publisherWalletFlowVO
.
getCashAmount
().
add
(
publisherWalletFlowVO
.
getTopYxjAmount
()).
add
(
publisherWalletFlowVO
.
getUrgentYxjAmount
()));
payLogDO
.
setSalaryAmtPaid
(
publisherWalletFlowVO
.
getSalaryAmount
().
add
(
publisherWalletFlowVO
.
getTopSalaryAmount
()).
add
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
()));
// 插入流水记录表
payWalletDao
.
insertPayLogDO
(
payLogDO
);
return
ResultBody
.
success
();
}
else
{
// 确认收货,解冻用户钱包信息
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryFreeze
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashFreeze
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
log
.
error
(
"发布订单时,用户钱包更新失败,用户id是:{},传入参数是:{}"
,
publisherWalletFlowVO
.
getUserAccountId
(),
publisherWalletFlowVO
);
return
ResultBody
.
error
(
"钱包操作错误"
);
}
payWalletDao
.
insertPayLogDO
(
payLogDO
);
payWalletDao
.
updatePayWallet
(
payWalletDO
);
return
ResultBody
.
success
();
}
public
PayLogDO
buildPayLog
(
PublisherWalletFlowVO
publisherWalletFlowVO
,
FlyerWalletFlowVO
flyerWalletFlowVO
)
{
if
(
publisherWalletFlowVO
!=
null
)
{
return
createPayLog
(
publisherWalletFlowVO
.
getUserAccountId
(),
publisherWalletFlowVO
.
getModeOfPayment
(),
publisherWalletFlowVO
.
getCashAmount
(),
publisherWalletFlowVO
.
getSalaryAmount
(),
publisherWalletFlowVO
.
getTimeOfPayment
(),
publisherWalletFlowVO
.
getOperateUserAccountId
());
}
if
(
flyerWalletFlowVO
!=
null
)
{
return
createPayLog
(
flyerWalletFlowVO
.
getUserAccountId
(),
flyerWalletFlowVO
.
getModeOfPayment
(),
flyerWalletFlowVO
.
getCashAmount
(),
flyerWalletFlowVO
.
getSalaryAmount
(),
flyerWalletFlowVO
.
getTimeOfPayment
(),
flyerWalletFlowVO
.
getOperateUserAccountId
());
}
return
null
;
}
private
PayLogDO
createPayLog
(
Integer
userAccountId
,
Integer
modeOfPayment
,
BigDecimal
cashAmount
,
BigDecimal
salaryAmount
,
Date
timeOfPayment
,
Integer
operateUserAccountId
)
{
PayLogDO
payLogDO
=
new
PayLogDO
();
String
payNo
=
"T"
+
TDateUtil
.
getDateStr
(
new
Date
(),
TDateUtil
.
TYPE
)
+
userAccountId
+
CodeUtil
.
getRandomNum
(
4
);
payLogDO
.
setPayMethod
(
modeOfPayment
);
payLogDO
.
setPayNo
(
payNo
);
payLogDO
.
setUserAccountId
(
userAccountId
);
payLogDO
.
setCashAmtPaid
(
cashAmount
);
payLogDO
.
setSalaryAmtPaid
(
salaryAmount
);
payLogDO
.
setPayTime
(
timeOfPayment
);
payLogDO
.
setOperateUser
(
operateUserAccountId
);
return
payLogDO
;
}
}
csm-service/cms-service-user/src/main/resources/mapper/UserServiceDao.xml
浏览文件 @
efe56615
...
...
@@ -462,5 +462,22 @@
where open_id = #{openid}
and disable = 0
</select>
<select
id=
"listUserFddInfo"
resultType=
"com.mmc.iuav.user.entity.fdd.UserFddDO"
>
select id,
customer_id,
union_id,
person_verify_status,
ent_verify_status,
account_type,
create_time,
update_time
from user_fdd
<where>
union_id = #{unionId}
<if
test=
"openid != null"
>
or union_id = #{openid}
</if>
</where>
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论