Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
c80cd47c
提交
c80cd47c
authored
11月 12, 2023
作者:
huningning
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加司机接单钱包限制
上级
9e4e1b08
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
343 行增加
和
1 行删除
+343
-1
PerformanceResultEnum.java
...java/com/clx/performance/enums/PerformanceResultEnum.java
+3
-0
WalletResidueCardDTO.java
...com/clx/performance/dto/payment/WalletResidueCardDTO.java
+102
-0
WalletResidueDTO.java
...ava/com/clx/performance/dto/payment/WalletResidueDTO.java
+84
-0
FeignPaymentService.java
...n/java/com/clx/performance/feign/FeignPaymentService.java
+24
-0
FeignUserService.java
...main/java/com/clx/performance/feign/FeignUserService.java
+21
-0
FeignConfiguration.java
...a/com/clx/performance/interceptor/FeignConfiguration.java
+39
-0
FeignInterceptor.java
...ava/com/clx/performance/interceptor/FeignInterceptor.java
+22
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+48
-1
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java
浏览文件 @
c80cd47c
...
...
@@ -94,6 +94,9 @@ public enum PerformanceResultEnum implements ResultEnum {
INTEGRAL_RULE_RATIO_ALL_EMPTY
(
1702
,
"层级划分范围不能全为空"
),
INTEGRAL_RULE_NAME_EXIST
(
1703
,
"层级名称已存在"
),
APP_POP_UP_ERROR
(-
1000
,
"app弹窗提示"
),
WALLET_CODE_IS_NULL
(
1704
,
"用户钱包不存在"
),
;
private
final
int
code
;
private
final
String
msg
;
...
...
performance-web/src/main/java/com/clx/performance/dto/payment/WalletResidueCardDTO.java
0 → 100644
浏览文件 @
c80cd47c
package
com
.
clx
.
performance
.
dto
.
payment
;
import
com.fasterxml.jackson.annotation.JsonGetter
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.math.BigDecimal
;
/**
*
* @author 胡宁宁
* @date 2023年11月12日
* @description
*/
public
class
WalletResidueCardDTO
extends
WalletResidueDTO
{
@ApiModelProperty
(
value
=
"消费卡余额"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
Long
cardResidue
;
@ApiModelProperty
(
value
=
"消费卡总数"
,
dataType
=
"int"
,
example
=
"1"
)
private
Integer
cardSum
;
@ApiModelProperty
(
value
=
"昨天收益"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
BigDecimal
yesterdayIncome
;
@ApiModelProperty
(
value
=
"今日收益"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
BigDecimal
todayIncome
;
@ApiModelProperty
(
value
=
"本月收益"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
BigDecimal
monthIncome
;
@ApiModelProperty
(
value
=
"消费卡冻结余额"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
Long
cardFrozen
;
@ApiModelProperty
(
value
=
"绑定的银行卡数量"
,
dataType
=
"int"
,
example
=
"0"
)
private
int
cardCount
;
@ApiModelProperty
(
value
=
"总资产"
,
dataType
=
"double"
,
example
=
"0.00"
)
private
BigDecimal
assetSum
=
BigDecimal
.
ZERO
;
public
BigDecimal
getAssetSum
()
{
return
assetSum
;
}
public
void
setAssetSum
(
BigDecimal
assetSum
)
{
this
.
assetSum
=
assetSum
;
}
public
int
getCardCount
()
{
return
cardCount
;
}
public
void
setCardCount
(
int
cardCount
)
{
this
.
cardCount
=
cardCount
;
}
@JsonGetter
(
value
=
"cardResidue"
)
public
Double
cardResidueFormat
()
{
if
(
cardResidue
==
null
)
return
0
D
;
return
new
Double
(
this
.
cardResidue
)/
100
;
}
@JsonGetter
(
value
=
"cardFrozen"
)
public
Double
cardFrozenFormat
()
{
if
(
cardFrozen
==
null
)
return
0
D
;
return
new
Double
(
this
.
cardFrozen
)/
100
;
}
public
Long
getCardResidue
()
{
return
cardResidue
;
}
public
void
setCardResidue
(
Long
cardResidue
)
{
this
.
cardResidue
=
cardResidue
;
}
public
Integer
getCardSum
()
{
return
cardSum
;
}
public
void
setCardSum
(
Integer
cardSum
)
{
this
.
cardSum
=
cardSum
;
}
public
BigDecimal
getYesterdayIncome
()
{
return
yesterdayIncome
;
}
public
void
setYesterdayIncome
(
BigDecimal
yesterdayIncome
)
{
this
.
yesterdayIncome
=
yesterdayIncome
;
}
public
BigDecimal
getMonthIncome
()
{
return
monthIncome
;
}
public
void
setMonthIncome
(
BigDecimal
monthIncome
)
{
this
.
monthIncome
=
monthIncome
;
}
public
BigDecimal
getTodayIncome
()
{
return
todayIncome
;
}
public
void
setTodayIncome
(
BigDecimal
todayIncome
)
{
this
.
todayIncome
=
todayIncome
;
}
public
Long
getCardFrozen
()
{
return
cardFrozen
;
}
public
void
setCardFrozen
(
Long
cardFrozen
)
{
this
.
cardFrozen
=
cardFrozen
;
}
}
performance-web/src/main/java/com/clx/performance/dto/payment/WalletResidueDTO.java
0 → 100644
浏览文件 @
c80cd47c
package
com
.
clx
.
performance
.
dto
.
payment
;
import
com.fasterxml.jackson.annotation.JsonGetter
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.math.BigDecimal
;
/**
*
* @author 胡宁宁
* @date 2023年11月12日
* @description
*/
public
class
WalletResidueDTO
{
//余额
@ApiModelProperty
(
value
=
"余额"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
Long
residue
;
//冻结的资金
@ApiModelProperty
(
value
=
"冻结的资金"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
Long
frozen
;
//保证金
@ApiModelProperty
(
value
=
"保证金"
,
dataType
=
"double"
,
example
=
"11.10"
)
private
Double
deposit
;
//状态0锁定1正常2异常
@ApiModelProperty
(
value
=
"状态0锁定1正常2异常"
,
dataType
=
"int"
,
example
=
"1"
)
private
Integer
status
;
//是否设置交易密码0没有1有
@ApiModelProperty
(
value
=
"是否设置交易密码0没有1有"
,
dataType
=
"String"
,
example
=
"1"
)
private
String
pwd
;
public
Long
getResidue
()
{
return
residue
;
}
public
void
setResidue
(
Long
residue
)
{
this
.
residue
=
residue
;
}
public
Long
getFrozen
()
{
return
frozen
;
}
public
void
setFrozen
(
Long
frozen
)
{
this
.
frozen
=
frozen
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
public
String
getPwd
()
{
return
pwd
;
}
public
void
setPwd
(
String
pwd
)
{
this
.
pwd
=
pwd
;
}
@JsonGetter
(
value
=
"frozen"
)
public
BigDecimal
frozenFormat
()
{
return
new
BigDecimal
(
new
Double
(
this
.
frozen
)/
100
);
}
@JsonGetter
(
value
=
"residue"
)
public
Double
residueFormat
()
{
return
new
Double
(
this
.
residue
)/
100
;
}
@JsonGetter
(
value
=
"deposit"
)
public
Double
depositFormat
()
{
return
new
Double
(
this
.
deposit
)/
100
;
}
public
Double
getDeposit
()
{
return
deposit
;
}
public
void
setDeposit
(
Double
deposit
)
{
this
.
deposit
=
deposit
;
}
@Override
public
String
toString
()
{
return
"WalletDTO [residue="
+
residue
+
", frozen="
+
frozen
+
", status="
+
status
+
"]"
;
}
}
performance-web/src/main/java/com/clx/performance/feign/FeignPaymentService.java
0 → 100644
浏览文件 @
c80cd47c
package
com
.
clx
.
performance
.
feign
;
import
com.clx.performance.dto.payment.WalletResidueCardDTO
;
import
com.clx.user.param.thirdparty.payment.CarrierWalletSaveDTO
;
import
com.msl.common.result.Result
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"payment-service"
)
@RequestMapping
(
value
=
"/payment-service"
)
public
interface
FeignPaymentService
{
/**
* 获取钱包信息
* @param wallet
* @return
*/
@GetMapping
(
value
=
"/walletCard/getWallet"
)
Result
<
WalletResidueCardDTO
>
getWallet
(
Integer
userCode
);
}
performance-web/src/main/java/com/clx/performance/feign/FeignUserService.java
0 → 100644
浏览文件 @
c80cd47c
package
com
.
clx
.
performance
.
feign
;
import
com.clx.performance.interceptor.FeignInterceptor
;
import
com.msl.common.result.Result
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"user-service"
,
configuration
=
{
FeignInterceptor
.
class
})
@RequestMapping
(
value
=
"/user-service/feign/carrier/driver/user"
)
public
interface
FeignUserService
{
/**
* 调用支付FeignAuth
* @return
*/
@GetMapping
(
value
=
"/getPaymentServiceAuth"
)
Result
<
String
>
getPaymentServiceAuth
();
}
performance-web/src/main/java/com/clx/performance/interceptor/FeignConfiguration.java
0 → 100644
浏览文件 @
c80cd47c
package
com
.
clx
.
performance
.
interceptor
;
import
com.clx.performance.feign.FeignUserService
;
import
com.msl.common.result.Result
;
import
feign.RequestInterceptor
;
import
feign.RequestTemplate
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.Objects
;
/**
* @describe: 重写 feign调用的鉴权码
*/
@Configuration
@Slf4j
public
class
FeignConfiguration
implements
RequestInterceptor
{
@Autowired
private
FeignUserService
feignUserService
;
@Override
public
void
apply
(
RequestTemplate
requestTemplate
)
{
String
url
=
requestTemplate
.
url
();
if
(
StringUtils
.
isBlank
(
url
)){
return
;
}
if
(
url
.
startsWith
(
"payment-service"
)
||
url
.
startsWith
(
"/payment-service"
))
{
Result
<
String
>
paymentServiceAuth
=
feignUserService
.
getPaymentServiceAuth
();
log
.
info
(
"====feign服务调用,请求头信息重写=====feignAuth={}"
,
paymentServiceAuth
);
if
(
paymentServiceAuth
!=
null
&&
Objects
.
equals
(
paymentServiceAuth
.
getCode
(),
0
)
&&
paymentServiceAuth
.
getData
()
!=
null
){
requestTemplate
.
header
(
"feignAuth"
,
paymentServiceAuth
.
getData
());
}
}
}
}
performance-web/src/main/java/com/clx/performance/interceptor/FeignInterceptor.java
0 → 100644
浏览文件 @
c80cd47c
package
com
.
clx
.
performance
.
interceptor
;
import
feign.RequestInterceptor
;
import
feign.RequestTemplate
;
import
org.springframework.beans.factory.annotation.Value
;
public
class
FeignInterceptor
implements
RequestInterceptor
{
@Value
(
"${spring.application.name}"
)
private
String
serviceName
;
@Override
public
void
apply
(
RequestTemplate
requestTemplate
)
{
requestTemplate
.
header
(
"feignAuth"
,
"6265696a696e676368656e676c69616e"
);
requestTemplate
.
header
(
"feignService"
,
serviceName
);
}
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
c80cd47c
...
...
@@ -14,12 +14,14 @@ import com.clx.performance.dao.*;
import
com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao
;
import
com.clx.performance.dto.OrderChildExpectDTO
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.dto.payment.WalletResidueCardDTO
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.extranal.user.AddressService
;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.extranal.user.OrderService
;
import
com.clx.performance.extranal.user.OwnerInfoService
;
import
com.clx.performance.feign.FeignPaymentService
;
import
com.clx.performance.model.*
;
import
com.clx.performance.model.breakcontract.BreakContractDriverRecord
;
import
com.clx.performance.param.app.*
;
...
...
@@ -44,6 +46,7 @@ import com.clx.user.vo.feign.OwnerInfoFeignVO;
import
com.msl.common.base.Optional
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.common.utils.LocalDateTimeUtils
;
import
com.msl.common.utils.gps.GpsUtil
;
...
...
@@ -148,6 +151,9 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired
private
OrderChildPostService
orderChildPostService
;
@Autowired
private
FeignPaymentService
feignPaymentService
;
@Override
public
SaveOrderChildVO
saveOrderChild
(
OrderChildSaveParam
param
)
{
...
...
@@ -227,6 +233,9 @@ public class OrderChildServiceImpl implements OrderChildService {
// 司机接单限制
driverTakeOrderLimit
(
driverTruckInfo
.
getUserNo
());
//接单钱包限制
driverTakeOrderPaymentLimit
(
driverTruckInfo
.
getWalletCode
(),
driverTruckInfo
.
getTruckOwnWalletCode
());
LocalDateTime
now
=
LocalDateTime
.
now
();
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
param
.
getOrderGoodsNo
()).
orElseThrow
(
PerformanceResultEnum
.
ORDER_INVALID
);
...
...
@@ -1489,11 +1498,49 @@ public class OrderChildServiceImpl implements OrderChildService {
private
void
driverTakeOrderLimit
(
Long
driverUserNo
){
Optional
<
BreakContractDriverRecord
>
limitOptional
=
breakContractDriverRecordDao
.
selectLastLimitTimeByDriverUserNo
(
driverUserNo
,
LocalDateTime
.
now
());
if
(
limitOptional
.
isPresent
()){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_DRIVER_TAKE_ORDER_TIME_LIMIT
,
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
APP_POP_UP_ERROR
,
PerformanceResultEnum
.
ORDER_CHILD_DRIVER_TAKE_ORDER_TIME_LIMIT
.
getMsg
()+
LocalDateTimeUtils
.
convertLocalDateTimeToString
(
limitOptional
.
get
().
getLimitTime
(),
"yyyy-MM-dd HH:mm"
));
}
}
/**
* 司机接单支付校验
*/
private
void
driverTakeOrderPaymentLimit
(
Integer
driverWallCode
,
Integer
truckWalletCode
)
{
//判断是司机还是车主 接单校验 必须两个都有钱包
if
(
Objects
.
isNull
(
driverWallCode
)
||
Objects
.
isNull
(
truckWalletCode
))
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
WALLET_CODE_IS_NULL
);
}
boolean
truckOwnerFlag
=
Objects
.
equals
(
driverWallCode
,
truckWalletCode
);
Integer
checkWalletCode
=
truckOwnerFlag
?
driverWallCode
:
truckWalletCode
;
Result
<
WalletResidueCardDTO
>
result
=
feignPaymentService
.
getWallet
(
checkWalletCode
);
if
(
result
!=
null
&&
Objects
.
equals
(
result
.
getCode
(),
0
)
&&
result
.
getData
()
!=
null
)
{
WalletResidueCardDTO
data
=
result
.
getData
();
//钱包不能为负
if
(
Objects
.
isNull
(
data
.
getResidue
())
||
data
.
getResidue
()
<
0L
)
{
String
remark
=
truckOwnerFlag
?
"钱包余额不足"
:
"车主钱包余额不足"
;
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
APP_POP_UP_ERROR
,
remark
);
}
//有效银行卡数量 不能为空
if
(
Objects
.
isNull
(
data
.
getCardCount
())
||
data
.
getCardCount
()
<=
0
)
{
String
remark
=
truckOwnerFlag
?
"还没有绑定银行卡,请先绑定银行卡"
:
"车主还没有绑定银行卡,请先绑定银行卡"
;
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
APP_POP_UP_ERROR
,
remark
);
}
//必须设置交易密码 是否设置交易密码0没有1有
if
(
Objects
.
isNull
(
data
.
getPwd
())
||
Objects
.
equals
(
data
.
getPwd
(),
"0"
))
{
String
remark
=
truckOwnerFlag
?
"还没有设置交易密码,请先设置交易密码"
:
"车主还没有设置交易密码,请先设置交易密码"
;
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
APP_POP_UP_ERROR
,
remark
);
}
}
else
{
//用户钱包不存在
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
WALLET_CODE_IS_NULL
);
}
}
/**
* 拉运吨数检测
*/
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论