Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
cms
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论