提交 89cc8afa authored 作者: wejack639's avatar wejack639

feature(接单校验):校验接口调整

上级 5644fb5f
......@@ -109,6 +109,10 @@ public enum PerformanceResultEnum implements ResultEnum {
APP_POP_UP_DRIVER_WALLET_NULL_NOT_EXIST_ERROR(-498, "司机钱包不存在"),
/**车主钱包不存在提示语 **/
APP_POP_UP_OWNER_WALLET_NULL_NOT_EXIST_ERROR(-497, "车主钱包不存在"),
/**司机未实名 **/
APP_POP_UP_DRIVER_NOT_AUTH(-496, "司机钱包不存在"),
/**车主未实名 **/
APP_POP_UP_OWNER_NOT_AUTH(-495, "车主钱包不存在"),
WALLET_CODE_IS_NULL(1704, "用户钱包不存在"),
......
......@@ -332,7 +332,7 @@ public class OrderChildServiceImpl implements OrderChildService {
// 司机实名认证校验
// 这里之所以在check后再次增加较验,是为了避免老版本的应用无法识别新的错误码导致无法正常校验的问题
PerformanceResultEnum checkRealName = checkRealName(driverTruckInfo.getUserNo());
PerformanceResultEnum checkRealName = checkRealName(param.getDriverUserNo(), driverTruckInfo.getWalletCode(), driverTruckInfo.getTruckOwnWalletCode());
if (Objects.nonNull(checkRealName)) {
throw new ServiceSystemException(checkRealName);
}
......@@ -1827,14 +1827,20 @@ public class OrderChildServiceImpl implements OrderChildService {
}
private int check(OrderChildCheckParam param) {
// 查询司机车辆信息
DriverTruckInfoFeignVo driverTruckInfo = driverService.getUserDetailInfo(param.getDriverUserNo(),
param.getTruckId()).orElseThrow(ResultCodeEnum.FAIL);
Integer driverWalletCode = driverTruckInfo.getWalletCode();
Integer truckWalletCode = driverTruckInfo.getTruckOwnWalletCode();
//验证是否实名认证
PerformanceResultEnum checkRealName = checkRealName(param.getDriverUserNo());
PerformanceResultEnum checkRealName = checkRealName(param.getDriverUserNo(), driverWalletCode, truckWalletCode);
if (Objects.nonNull(checkRealName)) {
return checkRealName.getCode();
}
// 验证是否绑卡
PerformanceResultEnum checkBankCard = checkBankCard(param);
PerformanceResultEnum checkBankCard = checkBankCard(param, driverWalletCode, truckWalletCode);
if (Objects.nonNull(checkBankCard)) {
return checkBankCard.getCode();
}
......@@ -1891,13 +1897,14 @@ public class OrderChildServiceImpl implements OrderChildService {
return CheckResult.OK.code;
}
private PerformanceResultEnum checkBankCard(OrderChildCheckParam param) {
// 查询司机车辆信息
DriverTruckInfoFeignVo driverTruckInfo = driverService.getUserDetailInfo(param.getDriverUserNo(),
param.getTruckId()).orElseThrow(ResultCodeEnum.FAIL);
Integer driverWallCode = driverTruckInfo.getWalletCode();
Integer truckWalletCode = driverTruckInfo.getTruckOwnWalletCode();
/**
* 校验实名认证
* @param param
* @param driverWallCode
* @param truckWalletCode
* @return
*/
private PerformanceResultEnum checkBankCard(OrderChildCheckParam param, Integer driverWallCode, Integer truckWalletCode) {
//接单校验 必须两个都有钱包
if (Objects.isNull(driverWallCode)) {
log.info("{}-{}司机没有钱包", param.getDriverUserNo(), param.getTruckId());
......@@ -1935,7 +1942,8 @@ public class OrderChildServiceImpl implements OrderChildService {
public enum CheckResult {
OK(0, "不用弹窗"),
FAIL(1, "需要弹"),
NOT_REAL_NAME(USER_NOT_AUTH.getCode(), "未实名认证"),
DRIVER_NOT_REAL_NAME(APP_POP_UP_DRIVER_NOT_AUTH.getCode(), "未实名认证"),
OWENR_NOT_REAL_NAME(APP_POP_UP_OWNER_NOT_AUTH.getCode(), "未实名认证"),
DRIVER_WALLET_NOT_EXIST(APP_POP_UP_DRIVER_WALLET_NULL_NOT_EXIST_ERROR.getCode(), "司机未绑卡"),
OWNER_WALLET_NOT_EXIST(APP_POP_UP_OWNER_WALLET_NULL_NOT_EXIST_ERROR.getCode(), "车主未绑卡"),
DRIVER_NO_BANKCARD(APP_POP_UP_DRIVER_NO_BANKCARD_ERROR.getCode(), "司机未绑卡"),
......@@ -1944,16 +1952,26 @@ public class OrderChildServiceImpl implements OrderChildService {
private final String msg;
}
private PerformanceResultEnum checkRealName(Long driverUserNo) {
/**
* 校验实名认证
*
* @param
* @return
*/
private PerformanceResultEnum checkRealName(Long driverUserNo, Integer driverWalletCode, Integer truckOwnWalletCode) {
//判断当前账号是否车主
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 PerformanceResultEnum.USER_NOT_AUTH;
return truckOwnerFlag ? 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())){
if (!Objects.equals(authVo.getAuthStatus(), IdCardEnum.AuthStatus.ALREADY_REAL_NAME.getCode())) {
log.info("司机{}实名状态非已实名:{}", driverUserNo, authVo.getAuthStatus());
return PerformanceResultEnum.USER_NOT_AUTH;
return truckOwnerFlag ? PerformanceResultEnum.APP_POP_UP_DRIVER_NOT_AUTH : PerformanceResultEnum.APP_POP_UP_OWNER_NOT_AUTH;
}
}
return null;
......@@ -2194,8 +2212,11 @@ public class OrderChildServiceImpl implements OrderChildService {
*/
private void driverTakeOrderPaymentLimit(Integer driverWallCode, Integer truckWalletCode,BigDecimal deposit) {
//判断是司机还是车主 接单校验 必须两个都有钱包
if (Objects.isNull(driverWallCode) || Objects.isNull(truckWalletCode)) {
throw new ServiceSystemException(PerformanceResultEnum.WALLET_CODE_IS_NULL);
if (Objects.isNull(driverWallCode)) {
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_DRIVER_WALLET_NULL_NOT_EXIST_ERROR);
}
if (Objects.isNull(truckWalletCode)) {
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_OWNER_WALLET_NULL_NOT_EXIST_ERROR);
}
boolean truckOwnerFlag = Objects.equals(driverWallCode, truckWalletCode);
......@@ -2230,7 +2251,7 @@ public class OrderChildServiceImpl implements OrderChildService {
if (truckOwnerFlag) {
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_DRIVER_NO_BANKCARD_ERROR, remark);
} else {
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_OWNER_RESIDUE_ERROR, remark);
throw new ServiceSystemException(PerformanceResultEnum.APP_POP_UP_OWNER_NO_BANKCARD_ERROR, remark);
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论