Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
cms-ci-test
Commits
fd7e19f6
提交
fd7e19f6
authored
9月 12, 2023
作者:
zhenjie
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
2017756f
eef96540
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
429 行增加
和
77 行删除
+429
-77
ContractVO.java
.../main/java/com/mmc/iuav/user/model/fdd/vo/ContractVO.java
+8
-7
PayUavWalletVO.java
...ava/com/mmc/iuav/user/model/vo/wallet/PayUavWalletVO.java
+1
-1
FddConstant.java
...main/java/com/mmc/iuav/user/constant/fdd/FddConstant.java
+1
-1
ContractController.java
.../com/mmc/iuav/user/controller/fdd/ContractController.java
+3
-1
UserFddAuthController.java
...m/mmc/iuav/user/controller/fdd/UserFddAuthController.java
+2
-1
PayWalletController.java
.../mmc/iuav/user/controller/wallet/PayWalletController.java
+10
-1
UserServiceDao.java
...r/src/main/java/com/mmc/iuav/user/dao/UserServiceDao.java
+2
-0
MqProducer.java
...e-user/src/main/java/com/mmc/iuav/user/mq/MqProducer.java
+9
-4
RabbitmqConstant.java
.../java/com/mmc/iuav/user/mq/constant/RabbitmqConstant.java
+7
-0
MqProducerImpl.java
...c/main/java/com/mmc/iuav/user/mq/impl/MqProducerImpl.java
+7
-0
UserFddAuthService.java
...ava/com/mmc/iuav/user/service/fdd/UserFddAuthService.java
+2
-1
ContractServiceImpl.java
...m/mmc/iuav/user/service/fdd/impl/ContractServiceImpl.java
+17
-1
SealManageServiceImpl.java
...mmc/iuav/user/service/fdd/impl/SealManageServiceImpl.java
+30
-1
UserFddAuthServiceImpl.java
...mc/iuav/user/service/fdd/impl/UserFddAuthServiceImpl.java
+42
-5
PayWalletService.java
...va/com/mmc/iuav/user/service/wallet/PayWalletService.java
+2
-1
PayWalletServiceImpl.java
...c/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
+268
-51
UserServiceDao.xml
...service-user/src/main/resources/mapper/UserServiceDao.xml
+17
-0
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
没有找到文件。
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/fdd/vo/ContractVO.java
浏览文件 @
fd7e19f6
package
com
.
mmc
.
iuav
.
user
.
model
.
fdd
.
vo
;
import
com.mmc.iuav.group.Insert
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
@@ -18,19 +19,19 @@ import java.io.Serializable;
@AllArgsConstructor
public
class
ContractVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
570570471824495498L
;
@ApiModelProperty
(
value
=
"合同地址"
)
@NotNull
(
message
=
"合同地址不能为空"
)
@ApiModelProperty
(
value
=
"合同地址"
,
required
=
true
)
@NotNull
(
message
=
"合同地址不能为空"
,
groups
=
{
Insert
.
class
}
)
private
String
docUrl
;
@ApiModelProperty
(
value
=
"订单编号"
)
@NotNull
(
message
=
"订单编号不能为空"
)
@ApiModelProperty
(
value
=
"订单编号"
,
required
=
true
)
@NotNull
(
message
=
"订单编号不能为空"
,
groups
=
{
Insert
.
class
}
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"合同标题"
)
@NotNull
(
message
=
"合同标题不能为空"
)
@ApiModelProperty
(
value
=
"合同标题"
,
required
=
true
)
@NotNull
(
message
=
"合同标题不能为空"
,
groups
=
{
Insert
.
class
}
)
private
String
title
;
@ApiModelProperty
(
value
=
"端口:0小程序 1后台"
)
@ApiModelProperty
(
value
=
"端口:0小程序 1后台"
,
required
=
true
)
private
Integer
port
;
@ApiModelProperty
(
value
=
"unionId"
,
hidden
=
true
)
...
...
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/vo/wallet/PayUavWalletVO.java
浏览文件 @
fd7e19f6
...
...
@@ -29,7 +29,7 @@ public class PayUavWalletVO implements Serializable {
@ApiModelProperty
(
value
=
"佣金"
)
private
BigDecimal
salaryAmount
;
@ApiModelProperty
(
value
=
"订单状态 100:订单支付 1400:商城订单退款 1500:订单提成"
,
required
=
true
)
@ApiModelProperty
(
value
=
"订单状态 100:订单支付 1400:商城订单退款 1500:订单提成
999:确认收货
"
,
required
=
true
)
private
Integer
orderStatus
;
@ApiModelProperty
(
value
=
"订单备注"
)
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/constant/fdd/FddConstant.java
浏览文件 @
fd7e19f6
...
...
@@ -28,7 +28,7 @@ public class FddConstant {
//小程序企业实名认证异步回调
public
static
final
String
NOTIFY_E_CERT_RES
=
"fdd/auth/notifyECertRes"
;
//签署合同异步回调
public
static
final
String
NOTIFY_STAMP
=
"
/
fdd/contract/notifyStamp"
;
public
static
final
String
NOTIFY_STAMP
=
"fdd/contract/notifyStamp"
;
public
static
final
String
APP_ID
=
"appId"
;
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/fdd/ContractController.java
浏览文件 @
fd7e19f6
package
com
.
mmc
.
iuav
.
user
.
controller
.
fdd
;
import
com.mmc.iuav.group.Insert
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.controller.BaseController
;
import
com.mmc.iuav.user.model.fdd.dto.ContractInfoDTO
;
...
...
@@ -7,6 +8,7 @@ import com.mmc.iuav.user.model.fdd.vo.ContractVO;
import
com.mmc.iuav.user.service.fdd.ContractService
;
import
io.swagger.annotations.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
...
...
@@ -29,7 +31,7 @@ public class ContractController extends BaseController {
@ApiOperation
(
value
=
"上传合同"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/uploadContract"
)
public
ResultBody
uploadContract
(
@RequestBody
ContractVO
param
,
HttpServletRequest
request
)
{
public
ResultBody
uploadContract
(
@
Validated
(
value
=
{
Insert
.
class
})
@
RequestBody
ContractVO
param
,
HttpServletRequest
request
)
{
return
contractService
.
uploadContract
(
param
,
this
.
getUserLoginInfoFromRedis
(
request
));
}
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/fdd/UserFddAuthController.java
浏览文件 @
fd7e19f6
...
...
@@ -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
浏览文件 @
fd7e19f6
...
...
@@ -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"
)
...
...
@@ -79,7 +88,7 @@ public class PayWalletController extends BaseController {
return
payWalletService
.
billingDetails
(
id
,
detailType
);
}
@ApiOperation
(
value
=
"商城订单钱包流水加扣记录"
,
hidden
=
true
)
@ApiOperation
(
value
=
"商城订单钱包流水加扣记录"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"feignPayUavWallet"
)
public
ResultBody
payUavWallet
(
@RequestBody
PayUavWalletVO
payUavWalletVO
)
{
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/UserServiceDao.java
浏览文件 @
fd7e19f6
...
...
@@ -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/mq/MqProducer.java
浏览文件 @
fd7e19f6
package
com
.
mmc
.
iuav
.
user
.
mq
;
import
com.mmc.iuav.user.model.fdd.dto.ContractInfoDTO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @author: zj
...
...
@@ -13,7 +10,15 @@ import org.springframework.stereotype.Component;
public
interface
MqProducer
{
/**
* 用户信息变更
*
* @param userAccountVO
*/
public
void
sentUserInfoChangedMsg
(
UserAccountVO
userAccountVO
);
/**
* 合同签署完成
*
* @param contractInfoDTO
*/
public
void
sentFinishOrderSign
(
ContractInfoDTO
contractInfoDTO
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/mq/constant/RabbitmqConstant.java
浏览文件 @
fd7e19f6
...
...
@@ -24,4 +24,11 @@ public class RabbitmqConstant {
*/
public
final
static
String
USER_TOP_UP_SUCCESS_QUEUE
=
"USER_TOP_UP_SUCCESS_QUEUE"
;
public
final
static
String
USER_TOP_UP_SUCCESS_ROUTING_KEY
=
"USER_TOP_UP_SUCCESS_ROUTING_KEY"
;
/**
* 合同签署成功队列、routing_key
*/
public
final
static
String
ORDER_SIGN_EXCHANGE
=
"ORDER_SIGN_EXCHANGE"
;
public
final
static
String
ORDER_SIGN_FINISH_QUEUE
=
"ORDER_SIGN_FINISH_QUEUE"
;
public
final
static
String
ORDER_SIGN_SUCCESS_ROUTING_KEY
=
"ORDER_SIGN_SUCCESS_ROUTING_KEY"
;
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/mq/impl/MqProducerImpl.java
浏览文件 @
fd7e19f6
package
com
.
mmc
.
iuav
.
user
.
mq
.
impl
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.mmc.iuav.user.model.fdd.dto.ContractInfoDTO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
com.mmc.iuav.user.mq.MqProducer
;
import
com.mmc.iuav.user.mq.constant.RabbitmqConstant
;
...
...
@@ -24,4 +25,10 @@ public class MqProducerImpl implements MqProducer {
log
.
info
(
"sentUserInfoChangedMsg:{}"
,
JSONObject
.
toJSONString
(
userAccountVO
));
rabbitTemplate
.
convertAndSend
(
RabbitmqConstant
.
USER_INFO_UPDATE_FANOUT_EXCHANGE
,
""
,
JSONObject
.
toJSONString
(
userAccountVO
));
}
@Override
public
void
sentFinishOrderSign
(
ContractInfoDTO
contractInfoDTO
)
{
log
.
info
(
"sentUserInfoChangedMsg:{}"
,
JSONObject
.
toJSONString
(
contractInfoDTO
));
rabbitTemplate
.
convertAndSend
(
RabbitmqConstant
.
ORDER_SIGN_EXCHANGE
,
RabbitmqConstant
.
ORDER_SIGN_SUCCESS_ROUTING_KEY
,
JSONObject
.
toJSONString
(
contractInfoDTO
));
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/fdd/UserFddAuthService.java
浏览文件 @
fd7e19f6
...
...
@@ -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/ContractServiceImpl.java
浏览文件 @
fd7e19f6
...
...
@@ -15,6 +15,7 @@ import com.mmc.iuav.user.entity.fdd.UserFddDO;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.fdd.dto.ContractInfoDTO
;
import
com.mmc.iuav.user.model.fdd.vo.ContractVO
;
import
com.mmc.iuav.user.mq.MqProducer
;
import
com.mmc.iuav.user.service.fdd.ContractService
;
import
com.mmc.iuav.user.service.fdd.SealManageService
;
import
com.mmc.iuav.user.util.TDateUtil
;
...
...
@@ -40,6 +41,8 @@ public class ContractServiceImpl implements ContractService {
ContractDao
contractDao
;
@Resource
SealManageService
sealManageService
;
@Resource
private
MqProducer
mqProducer
;
/**
* 上传合同
...
...
@@ -50,6 +53,9 @@ public class ContractServiceImpl implements ContractService {
@Override
public
ResultBody
uploadContract
(
ContractVO
param
,
LoginSuccessDTO
loginSuccessDTO
)
{
ResultBody
resultBody
=
sealManageService
.
checkAuthStatus
(
param
.
getPort
(),
loginSuccessDTO
);
if
(!
resultBody
.
getCode
().
equals
(
"200"
))
{
return
resultBody
;
}
UserFddDO
userFddDO
=
(
UserFddDO
)
resultBody
.
getResult
();
FddBaseClient
baseClient
=
new
FddBaseClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
// 查询这个订单号之前有没有上传过合同有的话就删除
...
...
@@ -116,6 +122,9 @@ public class ContractServiceImpl implements ContractService {
@Override
public
ResultBody
stamp
(
String
contractId
,
LoginSuccessDTO
loginSuccessDTO
,
String
pages
,
Integer
port
)
{
ResultBody
resultBody
=
sealManageService
.
checkAuthStatus
(
port
,
loginSuccessDTO
);
if
(!
resultBody
.
getCode
().
equals
(
"200"
))
{
return
resultBody
;
}
UserFddDO
userFddDO
=
(
UserFddDO
)
resultBody
.
getResult
();
// 获取合同信息
ContractInfoDO
contractInfo
=
contractDao
.
contractInfoByOrderNo
(
null
,
contractId
);
...
...
@@ -189,6 +198,10 @@ public class ContractServiceImpl implements ContractService {
updateSignStatus
.
setSignStatus
(
4
);
updateSignStatus
.
setBRemark
(
resultDesc
);
updateSignStatus
.
setSingerTime
(
new
Date
());
// 同步订单状态
ContractInfoDTO
contractInfoDTO
=
contractInfoDO
.
buildContractInfoDTO
();
contractInfoDTO
.
setSignStatus
(
4
);
mqProducer
.
sentFinishOrderSign
(
contractInfoDTO
);
}
else
if
(
contractInfoDO
.
getSignStatus
()
==
2
&&
FddConstant
.
SIGN_FAIL
.
equals
(
resultCode
)
&&
contractInfoDO
.
getBTransactionId
().
equals
(
transactionId
))
{
// 乙方公司签章失败
updateSignStatus
.
setSignStatus
(
3
);
...
...
@@ -200,7 +213,10 @@ public class ContractServiceImpl implements ContractService {
@Override
public
ResultBody
file
(
String
contractId
,
LoginSuccessDTO
loginSuccessDTO
,
Integer
port
)
{
sealManageService
.
checkAuthStatus
(
port
,
loginSuccessDTO
);
ResultBody
resultBody
=
sealManageService
.
checkAuthStatus
(
port
,
loginSuccessDTO
);
if
(!
resultBody
.
getCode
().
equals
(
"200"
))
{
return
resultBody
;
}
// 判断该合同状态是否可以归档
ContractInfoDO
contractInfoDO
=
contractDao
.
contractInfoByOrderNo
(
null
,
contractId
);
if
(!
contractInfoDO
.
getSignStatus
().
equals
(
4
))
{
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/fdd/impl/SealManageServiceImpl.java
浏览文件 @
fd7e19f6
...
...
@@ -53,6 +53,9 @@ public class SealManageServiceImpl implements SealManageService {
@Override
public
ResultBody
uploadSeal
(
SealVO
sealVO
,
LoginSuccessDTO
loginSuccessDTO
)
{
ResultBody
resultBody
=
this
.
checkAuthStatus
(
sealVO
.
getPort
(),
loginSuccessDTO
);
if
(!
resultBody
.
getCode
().
equals
(
"200"
))
{
return
resultBody
;
}
UserFddDO
userFddInfo
=
(
UserFddDO
)
resultBody
.
getResult
();
sealVO
.
setUnionId
(
userFddInfo
.
getUnionId
());
FddBaseClient
baseClient
=
new
FddBaseClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
...
...
@@ -119,6 +122,9 @@ public class SealManageServiceImpl implements SealManageService {
@Override
public
ResultBody
removeSeal
(
String
signatureId
,
Integer
port
,
LoginSuccessDTO
loginSuccessDTO
)
{
ResultBody
resultBody
=
checkAuthStatus
(
port
,
loginSuccessDTO
);
if
(!
resultBody
.
getCode
().
equals
(
"200"
))
{
return
resultBody
;
}
UserFddDO
userFddInfo
=
(
UserFddDO
)
resultBody
.
getResult
();
// 调用法大大删除印章接口
FddExtraClient
client
=
new
FddExtraClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
...
...
@@ -140,7 +146,24 @@ public class SealManageServiceImpl implements SealManageService {
String
uid
;
if
(
port
.
equals
(
0
))
{
UserAccountDO
userInfo
=
userServiceDao
.
getUserAccountById
(
loginSuccessDTO
.
getUserAccountId
());
uid
=
userFddAuthService
.
replaceUnableString
(
userInfo
.
getUnionId
());
String
unionId
=
userInfo
.
getUnionId
();
uid
=
userFddAuthService
.
replaceUnableString
(
unionId
);
UserFddDO
userFddInfo
=
userFddAuthDao
.
getAppUserFddInfo
(
uid
);
if
(
userFddInfo
==
null
)
{
uid
=
userFddAuthService
.
replaceUnableString
(
userInfo
.
getOpenId
());
}
else
{
Integer
accountType
=
userFddInfo
.
getAccountType
();
Integer
personVerifyStatus
=
userFddInfo
.
getPersonVerifyStatus
();
Integer
entVerifyStatus
=
userFddInfo
.
getEntVerifyStatus
();
boolean
isPersonVerified
=
!
accountType
.
equals
(
1
)
&&
personVerifyStatus
.
equals
(
2
);
boolean
isEntVerified
=
!
accountType
.
equals
(
2
)
&&
entVerifyStatus
.
equals
(
4
);
if
(
isPersonVerified
||
isEntVerified
)
{
uid
=
userFddAuthService
.
replaceUnableString
(
userInfo
.
getOpenId
());
}
}
}
else
{
uid
=
loginSuccessDTO
.
getUserAccountId
().
toString
();
}
...
...
@@ -161,6 +184,9 @@ public class SealManageServiceImpl implements SealManageService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
defaultSeal
(
String
signatureId
,
Integer
port
,
LoginSuccessDTO
loginSuccessDTO
)
{
ResultBody
resultBody
=
checkAuthStatus
(
port
,
loginSuccessDTO
);
if
(!
resultBody
.
getCode
().
equals
(
"200"
))
{
return
resultBody
;
}
UserFddDO
userFddInfo
=
(
UserFddDO
)
resultBody
.
getResult
();
FddExtraClient
client
=
new
FddExtraClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
DefaultSignatureParams
params
=
new
DefaultSignatureParams
();
...
...
@@ -181,6 +207,9 @@ public class SealManageServiceImpl implements SealManageService {
@Override
public
ResultBody
getSealInfo
(
String
signatureId
,
Integer
port
,
LoginSuccessDTO
loginSuccessDTO
)
{
ResultBody
resultBody
=
checkAuthStatus
(
port
,
loginSuccessDTO
);
if
(!
resultBody
.
getCode
().
equals
(
"200"
))
{
return
resultBody
;
}
UserFddDO
userFddInfo
=
(
UserFddDO
)
resultBody
.
getResult
();
FddExtraClient
client
=
new
FddExtraClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
QuerySignatureParams
params
=
new
QuerySignatureParams
();
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/fdd/impl/UserFddAuthServiceImpl.java
浏览文件 @
fd7e19f6
...
...
@@ -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
...
...
@@ -42,6 +45,9 @@ public class UserFddAuthServiceImpl implements UserFddAuthService {
@Autowired
private
UserFddAuthDao
userFddAuthDao
;
@Autowired
private
UserFddAuthService
userFddAuthService
;
@Override
public
String
register
(
String
uid
,
String
accountType
)
{
return
fddService
.
register
(
uid
,
accountType
);
...
...
@@ -49,8 +55,14 @@ public class UserFddAuthServiceImpl implements UserFddAuthService {
@Override
public
ResultBody
getPersonVerifyUrl
(
Integer
userAccountId
)
{
String
unionId
;
UserAccountDO
userInfo
=
userServiceDao
.
getUserAccountById
(
userAccountId
);
String
unionId
=
this
.
replaceUnableString
(
userInfo
.
getUnionId
());
unionId
=
this
.
replaceUnableString
(
userInfo
.
getUnionId
());
// 判断是否使用unionId注册过企业认证,如果注册过那就用openid注册
String
companyCustomerId
=
this
.
checkRegisterFdd
(
unionId
,
2
);
if
(
companyCustomerId
!=
null
)
{
unionId
=
this
.
replaceUnableString
(
userInfo
.
getOpenId
());
}
//验证是否注册个人
String
customerId
=
this
.
checkRegisterFdd
(
unionId
,
1
);
if
(
customerId
==
null
)
{
...
...
@@ -119,7 +131,14 @@ public class UserFddAuthServiceImpl implements UserFddAuthService {
if
(
port
.
equals
(
0
))
{
// 获取小程序用户信息拿到unionId
UserAccountDO
userInfo
=
userServiceDao
.
getUserAccountById
(
loginSuccessDTO
.
getUserAccountId
());
uId
=
this
.
replaceUnableString
(
userInfo
.
getUnionId
());
String
unionId
=
this
.
replaceUnableString
(
userInfo
.
getUnionId
());
// 判断是否用uid注册个人认证,如果用了那么就用openid进行企业认证
String
customerId
=
this
.
checkRegisterFdd
(
unionId
,
1
);
if
(
customerId
==
null
)
{
uId
=
unionId
;
}
else
{
uId
=
this
.
replaceUnableString
(
userInfo
.
getOpenId
());
}
}
else
{
uId
=
loginSuccessDTO
.
getUserAccountId
().
toString
();
}
...
...
@@ -197,6 +216,21 @@ public class UserFddAuthServiceImpl implements UserFddAuthService {
if
(
port
.
equals
(
0
))
{
UserAccountDO
userInfo
=
userServiceDao
.
getUserAccountById
(
loginSuccessDTO
.
getUserAccountId
());
uId
=
this
.
replaceUnableString
(
userInfo
.
getUnionId
());
UserFddDO
userFddInfo
=
userFddAuthDao
.
getAppUserFddInfo
(
uId
);
if
(
userFddInfo
==
null
)
{
uId
=
userFddAuthService
.
replaceUnableString
(
userInfo
.
getOpenId
());
}
else
{
Integer
accountType
=
userFddInfo
.
getAccountType
();
Integer
personVerifyStatus
=
userFddInfo
.
getPersonVerifyStatus
();
Integer
entVerifyStatus
=
userFddInfo
.
getEntVerifyStatus
();
boolean
isPersonVerified
=
accountType
.
equals
(
1
)
&&
!
personVerifyStatus
.
equals
(
2
);
boolean
isEntVerified
=
accountType
.
equals
(
2
)
&&
!
entVerifyStatus
.
equals
(
4
);
if
(
isPersonVerified
||
isEntVerified
)
{
uId
=
userFddAuthService
.
replaceUnableString
(
userInfo
.
getOpenId
());
}
}
}
else
{
uId
=
loginSuccessDTO
.
getUserAccountId
().
toString
();
}
...
...
@@ -229,16 +263,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
浏览文件 @
fd7e19f6
...
...
@@ -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
浏览文件 @
fd7e19f6
package
com
.
mmc
.
iuav
.
user
.
service
.
wallet
.
impl
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.mmc.iuav.general.CodeUtil
;
import
com.mmc.iuav.page.PageResult
;
import
com.mmc.iuav.response.ResultBody
;
...
...
@@ -198,10 +199,11 @@ public class PayWalletServiceImpl implements PayWalletService {
publishUpdatePayWallet
.
setUserAccountId
(
publisherWalletFlowVO
.
getUserAccountId
());
publishUpdatePayWallet
.
setPid
(
publishWallet
.
getPid
());
publishUpdatePayWallet
.
setCashAmt
(
publishWallet
.
getCashAmt
().
add
(
publisherWalletFlowVO
.
getCashAmount
())
.
add
(
publisherWalletFlowVO
.
getTopYxjAmount
()).
add
(
publisherWalletFlowVO
.
getTopYxjAmount
()));
publishUpdatePayWallet
.
setSalaryAmt
(
publishWallet
.
getSalaryAmt
().
add
(
publisherWalletFlowVO
.
getSalaryAmount
())
.
subtract
(
flyerWalletFlowVO
.
getPercentagePenaltyOfOrder
()));
.
add
(
publisherWalletFlowVO
.
getTopYxjAmount
()).
add
(
publisherWalletFlowVO
.
getTopYxjAmount
())
.
add
(
publisherWalletFlowVO
.
getUrgentYxjAmount
()));
publishUpdatePayWallet
.
setSalaryAmt
(
publishWallet
.
getSalaryAmt
().
add
(
publisherWalletFlowVO
.
getSalaryAmount
()
.
add
(
publisherWalletFlowVO
.
getUrgentSalaryAmount
()).
add
(
publisherWalletFlowVO
.
getTopSalaryAmount
()))
.
add
(
flyerWalletFlowVO
.
getPercentagePenaltyOfOrder
().
abs
()));
publishUpdatePayWallet
.
setCashFreeze
(
publishWallet
.
getCashFreeze
().
subtract
(
publisherWalletFlowVO
.
getCashAmount
())
.
subtract
(
publisherWalletFlowVO
.
getUrgentYxjAmount
()).
subtract
(
publisherWalletFlowVO
.
getTopYxjAmount
()));
...
...
@@ -333,19 +335,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 +351,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 +593,13 @@ public class PayWalletServiceImpl implements PayWalletService {
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
payUavWallet
(
PayUavWalletVO
payUavWalletVO
)
{
log
.
info
(
"==================> 商城下单金额信息:{} <==============="
,
JSONObject
.
toJSONString
(
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,49 +610,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
.
getCashFreeze
().
add
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryFreeze
().
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
.
getCashFreeze
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryFreeze
().
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
()));
}
}
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
{
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
payLogDO
.
setCashAmtPaid
(
BigDecimal
.
ZERO
);
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
());
// 订单收益
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
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
浏览文件 @
fd7e19f6
...
...
@@ -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>
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
fd7e19f6
...
...
@@ -18,4 +18,4 @@ patches:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newTag
:
ca052edd5a7e95f4d20df7935fad9c5b9ba2feee
newTag
:
a9be43318a9913f15ec9657f2d026666e62514e0
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论