提交 70f5988b authored 作者: jiangwujie's avatar jiangwujie

feature(货单、认证): 调整车主判断逻辑,原来是使用司机钱包和卡车钱包进行比较,现在用当前登录用户userno和车主userno进行比较

上级 9dfaf8b0
......@@ -329,10 +329,12 @@ public class OrderChildServiceImpl implements OrderChildService {
param.getTruckId()).orElseThrow(ResultCodeEnum.FAIL);
BigDecimal truckLoad = driverTruckInfo.getLoad();
String truckNo = driverTruckInfo.getTruckNo();
Long truckOwnerUserNo = driverTruckInfo.getTruckOwnUserNo();
boolean isOwner = Objects.equals(userNo, truckOwnerUserNo);
// 司机实名认证校验
// 这里之所以在check后再次增加较验,是为了避免老版本的应用无法识别新的错误码导致无法正常校验的问题
PerformanceResultEnum checkRealName = checkRealName(param.getDriverUserNo(), driverTruckInfo.getWalletCode(), driverTruckInfo.getTruckOwnWalletCode());
PerformanceResultEnum checkRealName = checkRealName(param.getDriverUserNo(), isOwner);
if (Objects.nonNull(checkRealName)) {
throw new ServiceSystemException(checkRealName);
}
......@@ -359,7 +361,7 @@ public class OrderChildServiceImpl implements OrderChildService {
deposit = orderGoods.getDeposit();//接单保证金
}
//接单钱包限制
driverTakeOrderPaymentLimit(driverTruckInfo.getWalletCode(),driverTruckInfo.getTruckOwnWalletCode(),deposit);
driverTakeOrderPaymentLimit(driverTruckInfo.getWalletCode(),driverTruckInfo.getTruckOwnWalletCode(),deposit, isOwner);
// 状态验证
if (!Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.PAYING.getCode()) &&
......@@ -1827,20 +1829,26 @@ public class OrderChildServiceImpl implements OrderChildService {
}
private int check(OrderChildCheckParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long loginUserNo = loginUserInfo.getUserNo();
// 查询司机车辆信息
DriverTruckInfoFeignVo driverTruckInfo = driverService.getUserDetailInfo(param.getDriverUserNo(),
param.getTruckId()).orElseThrow(ResultCodeEnum.FAIL);
Long truckOwnerUserNo = driverTruckInfo.getTruckOwnUserNo();
Integer driverWalletCode = driverTruckInfo.getWalletCode();
Integer truckWalletCode = driverTruckInfo.getTruckOwnWalletCode();
//是否车主
boolean isOwner = Objects.equals(loginUserNo, truckOwnerUserNo);
//验证是否实名认证
PerformanceResultEnum checkRealName = checkRealName(param.getDriverUserNo(), driverWalletCode, truckWalletCode);
PerformanceResultEnum checkRealName = checkRealName(param.getDriverUserNo(), isOwner);
if (Objects.nonNull(checkRealName)) {
return checkRealName.getCode();
}
// 验证是否绑卡
PerformanceResultEnum checkBankCard = checkBankCard(param, driverWalletCode, truckWalletCode);
PerformanceResultEnum checkBankCard = checkBankCard(param, driverWalletCode, truckWalletCode, isOwner);
if (Objects.nonNull(checkBankCard)) {
return checkBankCard.getCode();
}
......@@ -1904,7 +1912,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* @param truckWalletCode
* @return
*/
private PerformanceResultEnum checkBankCard(OrderChildCheckParam param, Integer driverWallCode, Integer truckWalletCode) {
private PerformanceResultEnum checkBankCard(OrderChildCheckParam param, Integer driverWallCode, Integer truckWalletCode, boolean isOwner) {
//接单校验 必须两个都有钱包
if (Objects.isNull(driverWallCode)) {
log.info("{}-{}司机没有钱包", param.getDriverUserNo(), param.getTruckId());
......@@ -1923,7 +1931,7 @@ public class OrderChildServiceImpl implements OrderChildService {
WalletResidueCardDTO data = result.getData();
//有效银行卡数量 不能为空
if (data.getCardCount() <= 0) {
PerformanceResultEnum returnResult = truckOwnerFlag ? PerformanceResultEnum.APP_POP_UP_DRIVER_NO_BANKCARD_ERROR
PerformanceResultEnum returnResult = isOwner ? PerformanceResultEnum.APP_POP_UP_DRIVER_NO_BANKCARD_ERROR
: PerformanceResultEnum.APP_POP_UP_OWNER_NO_BANKCARD_ERROR;
log.info("{}", returnResult.getMsg());
return returnResult;
......@@ -1931,7 +1939,7 @@ public class OrderChildServiceImpl implements OrderChildService {
} else {
log.info("获取钱包信息失败:{}", checkWalletCode);
//用户钱包不存在
return truckOwnerFlag ? PerformanceResultEnum.APP_POP_UP_DRIVER_WALLET_NULL_NOT_EXIST_ERROR
return isOwner ? PerformanceResultEnum.APP_POP_UP_DRIVER_WALLET_NULL_NOT_EXIST_ERROR
: PerformanceResultEnum.APP_POP_UP_OWNER_WALLET_NULL_NOT_EXIST_ERROR;
}
return null;
......@@ -1958,20 +1966,17 @@ public class OrderChildServiceImpl implements OrderChildService {
* @param
* @return
*/
private PerformanceResultEnum checkRealName(Long driverUserNo, Integer driverWalletCode, Integer truckOwnWalletCode) {
private PerformanceResultEnum checkRealName(Long driverUserNo, boolean isOwner) {
//判断当前账号是否车主
boolean truckOwnerFlag = Objects.nonNull(driverWalletCode)
&& Objects.nonNull(truckOwnWalletCode)
&& Objects.equals(driverWalletCode, truckOwnWalletCode);
Result<AuthVo> authResult = userClxFeign.getAuthInfo(driverUserNo);
if (!authResult.succeed()) {
log.info("获取司机{}实名认证信息失败", driverUserNo);
return truckOwnerFlag ? PerformanceResultEnum.APP_POP_UP_DRIVER_NOT_AUTH : PerformanceResultEnum.APP_POP_UP_OWNER_NOT_AUTH;
return isOwner ? PerformanceResultEnum.APP_POP_UP_DRIVER_NOT_AUTH : PerformanceResultEnum.APP_POP_UP_OWNER_NOT_AUTH;
} else {
AuthVo authVo = authResult.getData();
if (!Objects.equals(authVo.getAuthStatus(), IdCardEnum.AuthStatus.ALREADY_REAL_NAME.getCode())) {
log.info("司机{}实名状态非已实名:{}", driverUserNo, authVo.getAuthStatus());
return truckOwnerFlag ? PerformanceResultEnum.APP_POP_UP_DRIVER_NOT_AUTH : PerformanceResultEnum.APP_POP_UP_OWNER_NOT_AUTH;
return isOwner ? PerformanceResultEnum.APP_POP_UP_DRIVER_NOT_AUTH : PerformanceResultEnum.APP_POP_UP_OWNER_NOT_AUTH;
}
}
return null;
......@@ -2210,7 +2215,7 @@ public class OrderChildServiceImpl implements OrderChildService {
/**
* 司机接单支付校验
*/
private void driverTakeOrderPaymentLimit(Integer driverWallCode, Integer truckWalletCode,BigDecimal deposit) {
private void driverTakeOrderPaymentLimit(Integer driverWallCode, Integer truckWalletCode,BigDecimal deposit, boolean isOwner) {
//判断是司机还是车主 接单校验 必须两个都有钱包
if (Objects.isNull(driverWallCode)) {
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_DRIVER_WALLET_NULL_NOT_EXIST_ERROR);
......@@ -2238,7 +2243,7 @@ public class OrderChildServiceImpl implements OrderChildService {
//判断余额是否能够缴纳保证金
if (data.getResidue() < deposit.longValue()) {
String remark = truckOwnerFlag ? "账户可用余额不足,接单保证金冻结失败,请尽快充值,本次需充值"+deposit.movePointLeft(2) +"元" : "车主钱包余额不足,保证金冻结失败请联系车主充值";
if(truckOwnerFlag){
if(isOwner){
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_OWNER_RESIDUE_ERROR, remark);
}else{
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_DRIVER_RESIDUE_ERROR, remark);
......@@ -2248,7 +2253,7 @@ public class OrderChildServiceImpl implements OrderChildService {
//有效银行卡数量 不能为空
if (data.getCardCount() <= 0) {
String remark = truckOwnerFlag ? "还没有绑定银行卡,请先绑定银行卡" : "车主还没有绑定银行卡,请先绑定银行卡";
if (truckOwnerFlag) {
if (isOwner) {
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_DRIVER_NO_BANKCARD_ERROR, remark);
} else {
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_OWNER_NO_BANKCARD_ERROR, remark);
......@@ -2257,7 +2262,7 @@ public class OrderChildServiceImpl implements OrderChildService {
//必须设置交易密码 是否设置交易密码0没有1有
if (Objects.isNull(data.getPwd()) || Objects.equals(data.getPwd(), "0")) {
String remark = truckOwnerFlag ? "还没有设置交易密码,请先设置交易密码" : "车主还没有设置交易密码,请先设置交易密码";
String remark = isOwner ? "还没有设置交易密码,请先设置交易密码" : "车主还没有设置交易密码,请先设置交易密码";
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_ERROR, remark);
}
} else {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论