Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
cms-ci-test
Commits
ca295aeb
提交
ca295aeb
authored
9月 07, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
商城云享金余额扣减
上级
96860fec
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
572 行增加
和
7 行删除
+572
-7
ContractVO.java
.../main/java/com/mmc/iuav/user/model/fdd/vo/ContractVO.java
+32
-0
PayUavWalletVO.java
...ava/com/mmc/iuav/user/model/vo/wallet/PayUavWalletVO.java
+34
-0
FddConstant.java
...main/java/com/mmc/iuav/user/constant/fdd/FddConstant.java
+4
-2
ContractController.java
.../com/mmc/iuav/user/controller/fdd/ContractController.java
+103
-0
PayWalletController.java
.../mmc/iuav/user/controller/wallet/PayWalletController.java
+8
-0
ContractDao.java
.../src/main/java/com/mmc/iuav/user/dao/fdd/ContractDao.java
+24
-0
ContractInfoDO.java
...ain/java/com/mmc/iuav/user/entity/fdd/ContractInfoDO.java
+72
-0
PayMethodEnums.java
...src/main/java/com/mmc/iuav/user/enums/PayMethodEnums.java
+2
-1
ContractService.java
...n/java/com/mmc/iuav/user/service/fdd/ContractService.java
+92
-0
ContractServiceImpl.java
...m/mmc/iuav/user/service/fdd/impl/ContractServiceImpl.java
+110
-0
PayWalletService.java
...va/com/mmc/iuav/user/service/wallet/PayWalletService.java
+4
-0
PayWalletServiceImpl.java
...c/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
+56
-4
ContractDao.xml
...ervice-user/src/main/resources/mapper/fdd/ContractDao.xml
+31
-0
没有找到文件。
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/fdd/vo/ContractVO.java
0 → 100644
浏览文件 @
ca295aeb
package
com
.
mmc
.
iuav
.
user
.
model
.
fdd
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author LW
* @date 2022/9/5 14:40
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
ContractVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
570570471824495498L
;
@ApiModelProperty
(
value
=
"合同地址"
)
@NotNull
(
message
=
"合同地址不能为空"
)
private
String
docUrl
;
@ApiModelProperty
(
value
=
"订单编号"
)
@NotNull
(
message
=
"订单编号不能为空"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"合同标题"
)
@NotNull
(
message
=
"合同标题不能为空"
)
private
String
title
;
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/vo/wallet/PayUavWalletVO.java
0 → 100644
浏览文件 @
ca295aeb
package
com
.
mmc
.
iuav
.
user
.
model
.
vo
.
wallet
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @Author LW
* @date 2023/9/7 16:07
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
PayUavWalletVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1683979749411588941L
;
@ApiModelProperty
(
value
=
"用户ID"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"云享金"
)
private
BigDecimal
cashAmount
;
@ApiModelProperty
(
value
=
"佣金"
)
private
BigDecimal
salaryAmount
;
@ApiModelProperty
(
value
=
"订单状态 100:订单支付 1400:商城订单退款"
)
private
Integer
orderStatus
;
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/constant/fdd/FddConstant.java
浏览文件 @
ca295aeb
...
...
@@ -3,12 +3,12 @@ package com.mmc.iuav.user.constant.fdd;
import
org.springframework.stereotype.Component
;
/**
* author:zhenjie
* Date:2022/7/22
* @author:lw Date:2022/7/22
* time:11:07
*/
@Component
public
class
FddConstant
{
public
static
final
String
SUCCESS_CODE
=
"1000"
;
public
static
final
String
CODE
=
"code"
;
public
static
final
String
DATA
=
"data"
;
...
...
@@ -43,4 +43,6 @@ public class FddConstant {
public
static
final
String
SIGN
=
"sign"
;
public
static
final
String
UID_REGEX
=
"[-|_]"
;
public
static
final
String
YXF
=
"YXF"
;
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/fdd/ContractController.java
0 → 100644
浏览文件 @
ca295aeb
package
com
.
mmc
.
iuav
.
user
.
controller
.
fdd
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.controller.BaseController
;
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.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @Author LW
* @date 2022/9/5 14:31
* 概要:
*/
@Api
(
tags
=
{
"无人机城--合同管理"
})
@RestController
@RequestMapping
(
"/uav/contract/"
)
public
class
ContractController
extends
BaseController
{
@Autowired
private
ContractService
contractService
;
@ApiOperation
(
value
=
"上传合同"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/uploadContract"
)
public
ResultBody
uploadContract
(
@RequestBody
ContractVO
param
,
HttpServletRequest
request
)
{
return
contractService
.
uploadContract
(
param
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
@ApiOperation
(
value
=
"合同预览"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"/viewContract"
)
public
ResultBody
viewContract
(
@ApiParam
(
value
=
"合同编号"
)
@RequestParam
(
value
=
"contractId"
)
String
contractId
)
{
return
contractService
.
viewContract
(
contractId
);
}
@ApiOperation
(
value
=
"下载合同"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"/downloadContract"
)
public
ResultBody
downloadContract
(
@ApiParam
(
value
=
"合同编号"
)
@RequestParam
(
value
=
"contractId"
)
String
contractId
)
{
return
contractService
.
downloadContract
(
contractId
);
}
@ApiOperation
(
value
=
"手动签署"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"/stamp"
)
public
ResultBody
stamp
(
@ApiParam
(
value
=
"合同编号"
)
@RequestParam
(
value
=
"contractId"
)
String
contractId
,
@ApiParam
(
value
=
"小程序页面跳转地址"
)
@RequestParam
(
value
=
"pages"
,
required
=
false
)
String
pages
,
HttpServletRequest
request
,
@ApiParam
(
value
=
"端口:0小程序 1后台"
)
@RequestParam
(
value
=
"port"
)
Integer
port
)
{
return
contractService
.
stamp
(
contractId
,
this
.
getUserLoginInfoFromRedis
(
request
),
pages
,
port
);
}
//
// @ApiOperation(value = "异步处理手动签署信息")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @PostMapping("notifyStamp")
// @ApiIgnore
// public ResultBody notifyStamp(@RequestParam Map<String, String> map) {
// return uavContractManageService.notifyStamp(map);
// }
//
// @ApiOperation(value = "合同签署信息-条件查询")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @PostMapping("selectList")
// public ResultBody<List<UavContractInfoDTO>> selectList(@RequestBody UavContractInfoQO qo) {
// return uavContractManageService.selectList(qo);
// }*
//
// @ApiOperation(value = "归档")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @GetMapping("/file")
// public ResultBody file(@RequestParam(value = "contractId") String contractId, HttpServletRequest request) {
// return uavContractManageService.file(contractId, this.getCurrentAccount(request).getId());
// }
//
// @ApiOperation(value = "通过无人机城订单id批量查询合同信息")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @ApiIgnore
// @PostMapping("feignListUAVContractByOIds")
// public List<UavContractInfoDTO> feignListUAVContractByOIds(@RequestBody List<Long> orderIds) {
// return uavContractManageService.feignListUAVContractByOIds(orderIds);
// }
//
// @ApiOperation(value = "通过无人机城订单id单个合同信息")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @ApiIgnore
// @GetMapping("feignGetUAVContractByOId")
// public UavContractInfoDTO feignGetUAVContractByOId(@RequestParam Long orderId) {
// return uavContractManageService.feignGetUAVContractByOId(orderId);
// }
//
// @ApiOperation(value = "根据orderId删除合同信息")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @ApiIgnore
// @GetMapping("feignRemoveContractByOrderId")
// public ResultBody feignRemoveContractByOrderId(@RequestParam Long orderId) {
// return uavContractManageService.feignRemoveContractByOrderId(orderId);
// }
//
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/wallet/PayWalletController.java
浏览文件 @
ca295aeb
...
...
@@ -5,6 +5,7 @@ import com.mmc.iuav.user.controller.BaseController;
import
com.mmc.iuav.user.entity.wallet.UserBillingDetailVO
;
import
com.mmc.iuav.user.model.dto.wallet.PayWalletDTO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.wallet.PayUavWalletVO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.iuav.user.model.vo.wallet.WalletFlowVO
;
import
com.mmc.iuav.user.service.wallet.PayWalletService
;
...
...
@@ -77,4 +78,11 @@ public class PayWalletController extends BaseController {
@ApiParam
(
value
=
"详情类型"
,
required
=
true
)
@RequestParam
String
detailType
)
{
return
payWalletService
.
billingDetails
(
id
,
detailType
);
}
@ApiOperation
(
value
=
"商城订单钱包流水加扣记录"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"feignPayUavWallet"
)
public
ResultBody
payUavWallet
(
@RequestBody
PayUavWalletVO
payUavWalletVO
)
{
return
payWalletService
.
payUavWallet
(
payUavWalletVO
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/fdd/ContractDao.java
0 → 100644
浏览文件 @
ca295aeb
package
com
.
mmc
.
iuav
.
user
.
dao
.
fdd
;
import
com.mmc.iuav.user.entity.fdd.ContractInfoDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author LW
* @date 2022/9/5 14:47
* 概要:
*/
@Mapper
public
interface
ContractDao
{
/**
* 新增无人机城合同信息
*
* @param uavContractInfoDO
*/
void
insertUavContractInfo
(
ContractInfoDO
uavContractInfoDO
);
ContractInfoDO
contractInfoByOrderNo
(
String
orderNo
);
void
deleteContractInfo
(
String
orderNo
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/fdd/ContractInfoDO.java
0 → 100644
浏览文件 @
ca295aeb
package
com
.
mmc
.
iuav
.
user
.
entity
.
fdd
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* (ContractInfoDO)实体类
*
* @author makejava
* @since 2023-09-07 10:14:08
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ContractInfoDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
42558889792167148L
;
private
Integer
id
;
/**
* 发起合同方用户id
*/
private
Integer
userAccountId
;
/**
* 订单号
*/
private
String
orderNo
;
/**
* 合同编号
*/
private
String
contractNo
;
/**
* 合同标题
*/
private
String
contractTitle
;
/**
* 状态: 0、等待(买家/供应商)签署 1、(买家/供应商)签署失败 2、等待平台签署((买家/供应商)签署成功) 3、平台签署失败 4、平台签署成功、5、归档
*/
private
Integer
signStatus
;
/**
* 签署完成日期
*/
private
Date
singerTime
;
/**
* (买家/供应商)签署失败备注信息
*/
private
String
aRemark
;
/**
* 平台签署失败备注信息
*/
private
String
bRemark
;
/**
* (买家/供应商)签署交易号
*/
private
String
aTransactionId
;
/**
* 平台签署交易号
*/
private
String
bTransactionId
;
private
Date
createTime
;
private
Date
updateTime
;
/**
* 归档日期
*/
private
Date
archiveDate
;
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/enums/PayMethodEnums.java
浏览文件 @
ca295aeb
...
...
@@ -16,7 +16,8 @@ public enum PayMethodEnums {
MODIFY_THE_ORDER
(
800
,
"修改订单金额状态(大于)"
),
FLYING_HAND_NOT_CONFIRMED_GT
(
900
,
"飞手未确认修改金额大于原订单状态"
),
FLYING_HAND_CONFIRM_LT
(
1000
,
"飞手确认修改金额小于原订单状态"
),
USER_TOP_UP
(
1100
,
"充值"
);
USER_TOP_UP
(
1100
,
"充值"
),
PAY_UAV_ORDER_REFUND
(
1400
,
"商城订单退款"
);
PayMethodEnums
(
Integer
code
,
String
method
)
{
this
.
code
=
code
;
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/fdd/ContractService.java
0 → 100644
浏览文件 @
ca295aeb
package
com
.
mmc
.
iuav
.
user
.
service
.
fdd
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.fdd.vo.ContractVO
;
/**
* @Author LW
* @date 2022/9/5 14:38
* 概要:
*/
public
interface
ContractService
{
/**
* 上传合同
*
* @param param
* @param id
* @return
*/
ResultBody
uploadContract
(
ContractVO
param
,
Integer
id
);
ResultBody
viewContract
(
String
contractId
);
ResultBody
downloadContract
(
String
contractId
);
ResultBody
stamp
(
String
contractId
,
LoginSuccessDTO
loginSuccessDTO
,
String
pages
,
Integer
port
);
// /**
// * 预览合同
// * @param contractId
// * @return
// */
// ResultBody viewContract(String contractId);
//
// /**
// * 下载合同
// * @param contractId
// * @return
// */
// String downloadContract(String contractId);
//
// /**
// * 手动签署
// * @param contractId
// * @param id
// * @param unionId
// * @param pages
// * @return
// */
// ResultBody stamp(String contractId, Integer id,String unionId,String pages);
//
// /**
// * 异步回调
// * @param map
// * @return
// */
// ResultBody notifyStamp(Map<String, String> map);
//
// /**
// * 选择列表
// *
// * @param qo 问:
// * @return {@link ResultBody}<{@link List}<{@link UavContractInfoDTO}>>
// */
// ResultBody<List<UavContractInfoDTO>> selectList(UavContractInfoQO qo);
//
// /**
// * 合同归档
// * @param contractId
// * @param id
// * @return
// */
// ResultBody file(String contractId, Integer id);
//
// /**
// * 列表uavcontract oid
// *
// * @param orderIds 订单id
// * @return {@link List}<{@link UavContractInfoDTO}>
// */
// List<UavContractInfoDTO> feignListUAVContractByOIds(List<Long> orderIds);
//
// /**
// * 假装被oid uavcontract
// *
// * @param orderId 订单id
// * @return {@link UavContractInfoDTO}
// */
// UavContractInfoDTO feignGetUAVContractByOId(Long orderId);
//
// ResultBody feignRemoveContractByOrderId(Long orderId);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/fdd/impl/ContractServiceImpl.java
0 → 100644
浏览文件 @
ca295aeb
package
com
.
mmc
.
iuav
.
user
.
service
.
fdd
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fadada.sdk.base.client.FddBaseClient
;
import
com.fadada.sdk.base.model.req.DownloadPdfParams
;
import
com.fadada.sdk.base.model.req.UploadDocsParams
;
import
com.fadada.sdk.base.model.req.ViewPdfURLParams
;
import
com.fadada.sdk.utils.crypt.FddEncryptTool
;
import
com.mmc.iuav.general.CodeUtil
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.constant.fdd.FddConnectConstant
;
import
com.mmc.iuav.user.constant.fdd.FddConstant
;
import
com.mmc.iuav.user.dao.fdd.ContractDao
;
import
com.mmc.iuav.user.entity.fdd.ContractInfoDO
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.fdd.vo.ContractVO
;
import
com.mmc.iuav.user.service.fdd.ContractService
;
import
com.mmc.iuav.user.util.TDateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
/**
* @Author LW
* @date 2022/9/5 14:38
* 概要:
*/
@Service
@Slf4j
public
class
ContractServiceImpl
implements
ContractService
{
@Resource
ContractDao
contractDao
;
/**
* 上传合同
*
* @param param
* @param id
* @return
*/
@Override
public
ResultBody
uploadContract
(
ContractVO
param
,
Integer
id
)
{
FddBaseClient
baseClient
=
new
FddBaseClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
// 查询这个订单号之前有没有上传过合同有的话就删除
ContractInfoDO
contractInfoDO
=
contractDao
.
contractInfoByOrderNo
(
param
.
getOrderNo
());
if
(
contractInfoDO
!=
null
)
{
// 把合同删除
contractDao
.
deleteContractInfo
(
param
.
getOrderNo
());
}
//自定义合同id 合同编号设置规则:YXF + 年份 + 8位随机数
String
contractId
=
FddConstant
.
YXF
+
TDateUtil
.
getCurrentYear
()
+
CodeUtil
.
getRandomNum
(
8
);
// 调用法大大接口
UploadDocsParams
params
=
new
UploadDocsParams
();
// 合同编号
params
.
setContractId
(
contractId
);
//合同标题
params
.
setDocTitle
(
param
.
getTitle
());
//PDF文档和下载地址二选一
//合同公网下载地址
params
.
setDocUrl
(
param
.
getDocUrl
());
//合同类型 目前仅支持pdf格式
params
.
setDocType
(
".pdf"
);
String
result
=
baseClient
.
invokeUploadDocs
(
params
);
String
code
=
JSONObject
.
parseObject
(
result
).
getString
(
FddConstant
.
CODE
);
String
msg
=
JSONObject
.
parseObject
(
result
).
getString
(
FddConstant
.
MSG
);
if
(
FddConstant
.
SUCCESS_CODE
.
equals
(
code
))
{
// 保存合同信息到数据库
ContractInfoDO
contractInfo
=
new
ContractInfoDO
();
contractInfo
.
setContractTitle
(
param
.
getTitle
());
contractInfo
.
setOrderNo
(
param
.
getOrderNo
());
contractInfo
.
setContractNo
(
contractId
);
contractInfo
.
setUserAccountId
(
id
);
contractDao
.
insertUavContractInfo
(
contractInfo
);
return
ResultBody
.
success
(
contractInfo
);
}
else
{
return
ResultBody
.
error
(
msg
);
}
}
@Override
public
ResultBody
viewContract
(
String
contractId
)
{
FddBaseClient
baseClient
=
new
FddBaseClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
ViewPdfURLParams
params
=
new
ViewPdfURLParams
();
//此处传入调用上传或填充合同接口成功时定义的合同编号
params
.
setContractId
(
contractId
);
String
result
=
baseClient
.
invokeViewPdfURL
(
params
);
String
base64
=
new
String
(
FddEncryptTool
.
Base64Encode
(
result
.
getBytes
())).
trim
();
return
ResultBody
.
success
(
base64
);
}
@Override
public
ResultBody
downloadContract
(
String
contractId
)
{
FddBaseClient
baseClient
=
new
FddBaseClient
(
FddConnectConstant
.
APP_ID
,
FddConnectConstant
.
APP_KEY
,
FddConnectConstant
.
VERSION
,
FddConnectConstant
.
HOST
);
DownloadPdfParams
params
=
new
DownloadPdfParams
();
// 合同编号
params
.
setContractId
(
contractId
);
//如下,传setPath参数可以直接保存文件到本地,不传则返回url
// params.setPath(""); // 指定路径,如:D:\\pdf\\uuidNew.pdf
String
result
=
baseClient
.
invokeDownloadPdf
(
params
);
String
base64
=
new
String
(
FddEncryptTool
.
Base64Encode
(
result
.
getBytes
())).
trim
();
return
ResultBody
.
success
(
base64
);
}
@Override
public
ResultBody
stamp
(
String
contractId
,
LoginSuccessDTO
loginSuccessDTO
,
String
pages
,
Integer
port
)
{
return
null
;
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/wallet/PayWalletService.java
浏览文件 @
ca295aeb
...
...
@@ -2,6 +2,7 @@ package com.mmc.iuav.user.service.wallet;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.wallet.PayUavWalletVO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.iuav.user.model.vo.wallet.WalletFlowVO
;
...
...
@@ -22,4 +23,7 @@ public interface PayWalletService {
ResultBody
customerBillingDetail
(
Integer
userAccountId
,
WalletFlowQO
walletFlowQO
);
ResultBody
billingDetails
(
Integer
id
,
String
detailType
);
ResultBody
payUavWallet
(
PayUavWalletVO
payUavWalletVO
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/wallet/impl/PayWalletServiceImpl.java
浏览文件 @
ca295aeb
...
...
@@ -15,10 +15,7 @@ import com.mmc.iuav.user.enums.PayMethodEnums;
import
com.mmc.iuav.user.model.dto.wallet.PayWalletDTO
;
import
com.mmc.iuav.user.model.qo.wallet.WalletFlowQO
;
import
com.mmc.iuav.user.model.vo.WithdrawalInfoVO
;
import
com.mmc.iuav.user.model.vo.wallet.FlyerWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.PublisherWalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.iuav.user.model.vo.wallet.WalletFlowVO
;
import
com.mmc.iuav.user.model.vo.wallet.*
;
import
com.mmc.iuav.user.service.wallet.PayWalletService
;
import
com.mmc.iuav.user.util.TDateUtil
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -579,4 +576,59 @@ public class PayWalletServiceImpl implements PayWalletService {
return
ResultBody
.
success
(
detail
);
}
}
@Override
public
ResultBody
payUavWallet
(
PayUavWalletVO
payUavWalletVO
)
{
// 获取用户钱包信息
PayWalletDO
userWalletInfo
=
payWalletDao
.
getPayWalletByUser
(
payUavWalletVO
.
getUserAccountId
());
// 获取下单金额是否大于该用户钱包金额
if
(
userWalletInfo
.
getCashAmt
().
compareTo
(
payUavWalletVO
.
getCashAmount
())
<
0
)
{
return
ResultBody
.
error
(
"可抵扣的云享金不足"
);
}
if
(
userWalletInfo
.
getSalaryAmt
().
compareTo
(
payUavWalletVO
.
getSalaryAmount
())
<
0
)
{
return
ResultBody
.
error
(
"可抵扣的佣金不足"
);
}
String
payNo
=
"T"
+
TDateUtil
.
getDateStr
(
new
Date
(),
TDateUtil
.
TYPE
)
+
payUavWalletVO
.
getUserAccountId
()
+
CodeUtil
.
getRandomNum
(
4
);
// 记录流水用户钱包流水记录
PayLogDO
payLogDO
=
new
PayLogDO
();
payLogDO
.
setUserAccountId
(
payUavWalletVO
.
getUserAccountId
());
payLogDO
.
setPayNo
(
payNo
);
payLogDO
.
setOperateUser
(
payUavWalletVO
.
getUserAccountId
());
// 创建用户钱包
PayWalletDO
payWalletDO
=
new
PayWalletDO
();
payWalletDO
.
setPid
(
userWalletInfo
.
getPid
());
payWalletDO
.
setUserAccountId
(
payUavWalletVO
.
getUserAccountId
());
// 判断当前订单状态是什么类型
if
(
payUavWalletVO
.
getOrderStatus
().
equals
(
PayMethodEnums
.
PUBLISH_ORDER
.
getCode
()))
{
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
if
(
payUavWalletVO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
payLogDO
.
setCashAmtPaid
(
payUavWalletVO
.
getCashAmount
().
negate
());
}
else
{
payLogDO
.
setCashAmtPaid
(
BigDecimal
.
ZERO
);
}
if
(
payUavWalletVO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
().
negate
());
}
else
{
payLogDO
.
setSalaryAmtPaid
(
BigDecimal
.
ZERO
);
}
// 如果是100 扣减余额冻结金额
payWalletDO
.
setCashAmt
(
userWalletInfo
.
getCashAmt
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashAmt
().
add
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
}
else
{
payLogDO
.
setPayMethod
(
payUavWalletVO
.
getOrderStatus
());
payLogDO
.
setCashAmtPaid
(
payUavWalletVO
.
getCashAmount
());
payLogDO
.
setSalaryAmtPaid
(
payUavWalletVO
.
getSalaryAmount
());
// 如果是1400 回滚解冻金额
payWalletDO
.
setCashAmt
(
userWalletInfo
.
getCashAmt
().
add
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setCashFreeze
(
userWalletInfo
.
getCashAmt
().
subtract
(
payUavWalletVO
.
getCashAmount
()));
payWalletDO
.
setSalaryAmt
(
userWalletInfo
.
getSalaryAmt
().
add
(
payUavWalletVO
.
getSalaryAmount
()));
payWalletDO
.
setSalaryFreeze
(
userWalletInfo
.
getSalaryAmt
().
subtract
(
payUavWalletVO
.
getSalaryAmount
()));
}
payWalletDao
.
insertPayLogDO
(
payLogDO
);
payWalletDao
.
updatePayWallet
(
payWalletDO
);
return
ResultBody
.
success
();
}
}
csm-service/cms-service-user/src/main/resources/mapper/fdd/ContractDao.xml
0 → 100644
浏览文件 @
ca295aeb
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mmc.iuav.user.dao.fdd.ContractDao"
>
<delete
id=
"deleteContractInfo"
>
delete
from contract_info
where order_no = #{orderNo}
</delete>
<select
id=
"contractInfoByOrderNo"
resultType=
"com.mmc.iuav.user.entity.fdd.ContractInfoDO"
>
select id,
user_account_id,
order_no,
contract_no,
contract_title,
sign_status,
singer_time,
a_remark,
b_remark,
a_transaction_id,
b_transaction_id,
create_time,
update_time,
archive_date
from contract_info
where order_no = #{orderNo}
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论