|
|
@@ -12,6 +12,7 @@ import org.dromara.backstage.cardCenter.domain.vo.PtCardVo;
|
|
|
import org.dromara.backstage.cardCenter.service.IPtCardService;
|
|
|
import org.dromara.backstage.payment.domain.bo.PtBagBo;
|
|
|
import org.dromara.backstage.payment.domain.vo.PtBagVo;
|
|
|
+import org.dromara.backstage.payment.service.IPtBagService;
|
|
|
import org.dromara.common.core.constant.Constants;
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
import org.dromara.common.core.enums.CreditTypeEnum;
|
|
|
@@ -47,6 +48,7 @@ public class PtCardController extends BaseController {
|
|
|
|
|
|
private final IPtCardService ptCardService;
|
|
|
private final PaymentsStrategyContent paymentsStrategyContent;
|
|
|
+ private final IPtBagService bagService;
|
|
|
|
|
|
/**
|
|
|
* 查询账户卡片列表
|
|
|
@@ -147,7 +149,7 @@ public class PtCardController extends BaseController {
|
|
|
public R<PtBagVo> recharge(@Validated(EditGroup.class) @RequestBody PtBagBo bo) {
|
|
|
PtBagVo vo;
|
|
|
bo.setUseType(SystemUseTypeEnum.CONSUME);
|
|
|
- if(bo.getTakeCommission().equals(Constants.TAKE_COMMISSION)) {
|
|
|
+ if (bo.getTakeCommission().equals(Constants.TAKE_COMMISSION)) {
|
|
|
//如果要收管理费
|
|
|
BigDecimal commission = ptCardService.computeCommission(bo);
|
|
|
if (commission.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
@@ -155,8 +157,8 @@ public class PtCardController extends BaseController {
|
|
|
BeanUtil.copyProperties(bo, commissionBo);
|
|
|
commissionBo.setReceiptMoney(commission);
|
|
|
commissionBo.setCreditType(CreditTypeEnum.COMMISSION_CHARGE);
|
|
|
- //paymentsStrategyContent.createOrder(commissionBo);
|
|
|
bo.setReceiptMoney(bo.getReceiptMoney().subtract(commission));
|
|
|
+ paymentsStrategyContent.createOrder(commissionBo);
|
|
|
}
|
|
|
}
|
|
|
vo = paymentsStrategyContent.createOrder(bo);
|
|
|
@@ -177,4 +179,73 @@ public class PtCardController extends BaseController {
|
|
|
PtBagVo vo = paymentsStrategyContent.createOrder(bo);
|
|
|
return R.ok(vo);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量充值
|
|
|
+ */
|
|
|
+ @SaCheckPermission("cardOperation:ptCard:edit")
|
|
|
+ @Log(title = "批量账户充值", businessType = BusinessType.UPDATE)
|
|
|
+ @RepeatSubmit()
|
|
|
+ @PostMapping("/recharge/{userIds}")
|
|
|
+ public R<Void> batchRecharge(@Validated(EditGroup.class) @RequestBody PtBagBo bo, @PathVariable Long[] userIds) {
|
|
|
+ PtBagVo vo;
|
|
|
+ PtBagBo commissionBo = new PtBagBo();
|
|
|
+ commissionBo.setReceiptMoney(BigDecimal.ZERO);
|
|
|
+ bo.setUseType(SystemUseTypeEnum.CONSUME);
|
|
|
+ if (bo.getTakeCommission().equals(Constants.TAKE_COMMISSION)) {
|
|
|
+ //如果要收管理费
|
|
|
+ BigDecimal commission = ptCardService.computeCommission(bo);
|
|
|
+ if (commission.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ BeanUtil.copyProperties(bo, commissionBo);
|
|
|
+ commissionBo.setReceiptMoney(commission);
|
|
|
+ commissionBo.setCreditType(CreditTypeEnum.COMMISSION_CHARGE);
|
|
|
+ bo.setReceiptMoney(bo.getReceiptMoney().subtract(commission));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (Long userId : userIds) {
|
|
|
+ bo.setUserId(userId);
|
|
|
+ vo = paymentsStrategyContent.createOrder(bo);
|
|
|
+ }
|
|
|
+ if(commissionBo.getReceiptMoney().compareTo(BigDecimal.ZERO)>0){
|
|
|
+ for (Long userId : userIds) {
|
|
|
+ commissionBo.setUserId(userId);
|
|
|
+ vo = paymentsStrategyContent.createOrder(commissionBo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量退款
|
|
|
+ */
|
|
|
+ @SaCheckPermission("cardOperation:ptCard:edit")
|
|
|
+ @Log(title = "账户批量退款", businessType = BusinessType.UPDATE)
|
|
|
+ @RepeatSubmit()
|
|
|
+ @PostMapping("/refund/{userIds}")
|
|
|
+ public R<Void> batchRefund(@Validated(EditGroup.class) @RequestBody PtBagBo bo, @PathVariable Long[] userIds) {
|
|
|
+ bo.setUseType(SystemUseTypeEnum.CONSUME);
|
|
|
+ //退款是记支出,所以金额设置为负数
|
|
|
+ bo.setReceiptMoney(bo.getReceiptMoney().negate());
|
|
|
+ for (Long userId:userIds) {
|
|
|
+ bo.setUserId(userId);
|
|
|
+ PtBagVo vo = paymentsStrategyContent.createOrder(bo);
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量退款
|
|
|
+ */
|
|
|
+ @SaCheckPermission("cardOperation:ptCard:edit")
|
|
|
+ @Log(title = "账户批量设置余额", businessType = BusinessType.UPDATE)
|
|
|
+ @RepeatSubmit()
|
|
|
+ @PostMapping("/recover/{userIds}")
|
|
|
+ public R<Void> batchRecover(@Validated(EditGroup.class) @RequestBody PtBagBo bo, @PathVariable Long[] userIds) {
|
|
|
+ bo.setUseType(SystemUseTypeEnum.CONSUME);
|
|
|
+ for (Long userId:userIds) {
|
|
|
+ bo.setUserId(userId);
|
|
|
+ PtBagVo vo = bagService.updateBalanceByBo(bo);
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
}
|