|
|
@@ -388,7 +388,11 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
|
|
|
* 1、付款单状态
|
|
|
*/
|
|
|
if (hlwPayment.getStatus() != null) {
|
|
|
- return Result.error("该付款单状态已变更,请刷新后重试!");
|
|
|
+ Result result = new Result();
|
|
|
+ result.setSuccess(false);
|
|
|
+ result.setCode(610);
|
|
|
+ result.setMessage("该付款单状态已变更,请刷新后重试!");
|
|
|
+ return result;
|
|
|
}
|
|
|
// 服务商
|
|
|
HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
|
|
|
@@ -464,6 +468,11 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Result<?> confirmPayment(JSONObject jsonObject) {
|
|
|
Integer paymentId = jsonObject.getInteger("paymentId");
|
|
|
+ // 付款单
|
|
|
+ HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
|
|
|
+ if (hlwPayment.getStatus() != null) {
|
|
|
+ return Result.error("该付款单状态已变更,请刷新后重试!");
|
|
|
+ }
|
|
|
Double totalPayment = jsonObject.getDouble("totalPayment");
|
|
|
//判断付款账户金额是否够支付
|
|
|
Integer applicationId = jsonObject.getInteger("applicationId");
|
|
|
@@ -485,18 +494,44 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
|
|
|
if (hlwCompanyAccount.getBalance().compareTo(totalPayment) == -1) {
|
|
|
return Result.error("当前余额不足,请充值后再试,如果已经充值可刷新余额显示!");
|
|
|
}
|
|
|
-
|
|
|
- // 付款单
|
|
|
- HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
|
|
|
- if (hlwPayment.getStatus() != null) {
|
|
|
- return Result.error("该付款单状态已变更,请刷新后重试!");
|
|
|
- }
|
|
|
- hlwPayment.setStatus(1);
|
|
|
- hlwPaymentService.updateById(hlwPayment);
|
|
|
+ // 服务商
|
|
|
+ HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
|
|
|
+ Double dailyLimit = hlwSubcontractor.getDailyLimit();
|
|
|
+ Double monthlyLimit = hlwSubcontractor.getMonthlyLimit();
|
|
|
+ BigDecimal bigDailyLimit = BigDecimal.valueOf(dailyLimit);
|
|
|
+ BigDecimal bigMonthlyLimit = BigDecimal.valueOf(monthlyLimit);
|
|
|
// 付款明细
|
|
|
QueryWrapper<HlwPaymentDetail> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("payment_id", paymentId);
|
|
|
List<HlwPaymentDetail> list = this.list(queryWrapper);
|
|
|
+ /**
|
|
|
+ * 2、拦截日限额
|
|
|
+ */
|
|
|
+ for (HlwPaymentDetail hlwPaymentDetail : list) {
|
|
|
+ // 查询用户当日付款金额总和
|
|
|
+ Double currentUserDailyAmount = baseMapper.getCurrentUserDailyAmount(hlwPaymentDetail.getIdcardNumber());
|
|
|
+ currentUserDailyAmount = businessAccountUtils.add(currentUserDailyAmount, hlwPaymentDetail.getNetPayment());
|
|
|
+ // 比较double大小
|
|
|
+ BigDecimal data = BigDecimal.valueOf(currentUserDailyAmount);
|
|
|
+ if (bigDailyLimit.compareTo(data) == -1) {
|
|
|
+ return Result.error("超出日限额");
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 3、拦截月限额
|
|
|
+ */
|
|
|
+ // 查询用户当月付款金额总和
|
|
|
+ Double currentUserMonthlyAmount = baseMapper.getCurrentUserMonthlyAmount(hlwPaymentDetail.getIdcardNumber());
|
|
|
+ currentUserMonthlyAmount = businessAccountUtils.add(currentUserMonthlyAmount, hlwPaymentDetail.getNetPayment());
|
|
|
+ // 比较double大小
|
|
|
+ BigDecimal data1 = BigDecimal.valueOf(currentUserMonthlyAmount);
|
|
|
+ if (bigMonthlyLimit.compareTo(data1) == -1) {
|
|
|
+ return Result.error("超出月限额");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ hlwPayment.setStatus(1);
|
|
|
+ hlwPaymentService.updateById(hlwPayment);
|
|
|
+ // 付款明细
|
|
|
for (HlwPaymentDetail hlwPaymentDetail : list) {
|
|
|
hlwPaymentDetail.setStatus(1);
|
|
|
}
|