Browse Source

不再支付接口

v1.0
15989082884@163.com 2 years ago
parent
commit
69f4b11aec
  1. 16
      src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java
  2. 2
      src/main/java/com/qs/serve/modules/pay/service/PayPaymentService.java
  3. 112
      src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java

16
src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java

@ -223,15 +223,13 @@ public class PayPaymentController {
* @param param * @param param
* @return * @return
*/ */
// @PostMapping("/unPayment") @PostMapping("/unPayment")
// @SysLog(module = SystemModule.Payment, title = "支付", biz = BizType.INSERT) @SysLog(module = SystemModule.Payment, title = "支付", biz = BizType.INSERT)
// @PreAuthorize("hasRole('pay:payment:pay')") @PreAuthorize("hasRole('pay:payment:pay')")
// public R<PayPayment> save(@RequestBody @Valid PayUnPaymentBo param){ public R<PayPayment> unPayment(@RequestBody @Valid PayPaymentBo param){
// PayPaymentBo paymentBo = CopierUtil.copy(param,new PayPaymentBo()); PayPayment payPayment = payPaymentService.unpayment(param);
// paymentBo.setPayType(PaymentType.UN_PAYMENT); return R.ok(payPayment);
// PayPayment payPayment = payPaymentService.payment(paymentBo); }
// return R.ok(payPayment);
// }
/** /**
* 新增支付 * 新增支付

2
src/main/java/com/qs/serve/modules/pay/service/PayPaymentService.java

@ -19,6 +19,8 @@ public interface PayPaymentService extends IService<PayPayment> {
*/ */
PayPayment payment(PayPaymentBo paymentBo); PayPayment payment(PayPaymentBo paymentBo);
PayPayment unpayment(PayPaymentBo paymentBo);
/** /**
* 取消支付 * 取消支付
* @param id * @param id

112
src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java

@ -139,6 +139,118 @@ public class PayPaymentServiceImpl extends ServiceImpl<PayPaymentMapper,PayPayme
} }
PayPaymentItem payPaymentItem = new PayPaymentItem();
payPaymentItem = CopierUtil.copy(payPayment,payPaymentItem);
payPaymentItem.setItemPayAmount(payPayment.getPayAmount());
payPaymentItem.setRemark(payPayment.getRemark());
if(vtbSub!=null) {
String verCode = vtbSub.getVerificationSubCode();
if(verCode.contains("_")){
verCode = verCode.substring(0,verCode.indexOf("_"));
}
payPaymentItem.setVerificationId(vtbSub.getVerificationId());
payPaymentItem.setVerificationMainCode(verCode);
payPaymentItem.setVerificationCode(vtbSub.getVerificationSubCode());
payPaymentItem.setVerificationSubjectId(vtbSub.getId());
payPaymentItem.setActivityId(vtbSub.getActivityId());
payPaymentItem.setSubjectCode(vtbSub.getSubjectCode());
payPaymentItem.setSubjectId(vtbSub.getSubjectId());
payPaymentItem.setSubjectName(vtbSub.getSubjectName());
}else if(verificationList.size()>0){
VtbVerification vtbMain = verificationList.get(0);
payPaymentItem.setVerificationId(vtbMain.getId());
payPaymentItem.setVerificationMainCode(vtbMain.getVerificationMainCode());
payPaymentItem.setVerificationCode(vtbMain.getVerificationCode());
}
this.save(payPayment);
payPaymentItem.setPaymentId(payPayment.getId());
paymentItemService.save(payPaymentItem);
return payPayment;
}
@Override
@Transactional(rollbackFor = Exception.class)
public PayPayment unpayment(PayPaymentBo paymentBo) {
String payType = paymentBo.getPayType();
if(!payType.equals(PaymentType.PAYMENT)&&!payType.equals(PaymentType.UN_PAYMENT)){
Assert.throwEx("支付类型异常");
}
LambdaQueryWrapper<PayPayment> lqw = new LambdaQueryWrapper<>();
lqw.eq(PayPayment::getErpId,paymentBo.getErpId());
if(this.count(lqw)>0){
Assert.throwEx("已存在ERPID");
}
SysUser sysUser = sysUserService.getByAccount(paymentBo.getUserCode());
if(sysUser==null){
Assert.throwEx("人员工号异常");
}
LambdaQueryWrapper<VtbVerification> vtbLqw = new LambdaQueryWrapper<>();
vtbLqw.eq(VtbVerification::getVerificationMainCode,paymentBo.getVerificationSubCode());
List<VtbVerification> verificationList = verificationService.list(vtbLqw);
// if(verificationList.size()==0){
// Assert.throwEx("核销编码异常");
// }
VtbVerificationSubject vtbSub = verificationSubjectService.getByVerificationSubjectCode(paymentBo.getVerificationSubCode());
if(vtbSub==null && verificationList.size()==0){
Assert.throwEx("核销编码异常");
}
LambdaQueryWrapper<PayPaymentItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PayPaymentItem::getVerificationMainCode,paymentBo.getVerificationSubCode());
List<PayPaymentItem> payPaymentItemList = paymentItemService.list(lambdaQueryWrapper);
BigDecimal payedAmount = payPaymentItemList.stream().map(a->a.getItemPayAmount()).reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal verificationAmount = null;
if(vtbSub!=null){
verificationAmount = vtbSub.getUsedAmount();
}else if(verificationList.size()!=0) {
verificationAmount = verificationList.stream().map(a -> a.getAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
}else{
Assert.throwEx("核销金额异常");
}
BigDecimal notPayAmount = verificationAmount.subtract(payedAmount);
if(paymentBo.getPayAmount().compareTo(notPayAmount)>0){
Assert.throwEx("支付金额已超出可支付额");
}
PayPayment payPayment = new PayPayment();
payPayment.setPayType("unPay");
payPayment.setPayCode(paymentBo.getErpId());
payPayment.setPayAmount(paymentBo.getPayAmount());
payPayment.setUserId(sysUser.getId());
payPayment.setUserCode(sysUser.getCode());
payPayment.setUserName(sysUser.getName());
payPayment.setPayTime(paymentBo.getPayTime());
payPayment.setPayDate(paymentBo.getPayDate());
payPayment.setBillNumber(paymentBo.getBillNumber());
payPayment.setRemark(paymentBo.getRemark());
payPayment.setTenantId("001");
payPayment.setErpId(paymentBo.getErpId());
if(vtbSub!=null) {
payPayment.setSupplierId(vtbSub.getSupplierId());
payPayment.setSupplierCode(vtbSub.getSupplierCode());
payPayment.setSupplierName(vtbSub.getSupplierName());
payPayment.setCostApplyId(vtbSub.getCostApplyId());
}else if(verificationList.size()>0) {
VtbVerification vtbMain = verificationList.get(0);
payPayment.setSupplierId(vtbMain.getSupplierId());
payPayment.setSupplierCode(vtbMain.getSupplierCode());
payPayment.setSupplierName(vtbMain.getSupplierName());
payPayment.setCostApplyId(vtbMain.getCostApplyId());
}
PayPaymentItem payPaymentItem = new PayPaymentItem(); PayPaymentItem payPaymentItem = new PayPaymentItem();
payPaymentItem = CopierUtil.copy(payPayment,payPaymentItem); payPaymentItem = CopierUtil.copy(payPayment,payPaymentItem);
payPaymentItem.setItemPayAmount(payPayment.getPayAmount()); payPaymentItem.setItemPayAmount(payPayment.getPayAmount());

Loading…
Cancel
Save