|
|
@@ -39,6 +39,10 @@ import com.zhongshu.card.server.core.httpRequest.apiConf.APIResponseModel;
|
|
|
import com.zhongshu.card.server.core.service.base.SuperService;
|
|
|
import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
|
|
|
import com.zhongshu.card.server.core.util.*;
|
|
|
+import com.zhongshu.payment.client.model.WalletModel;
|
|
|
+import com.zhongshu.payment.client.model.param.AmountUpdateParam;
|
|
|
+import com.zhongshu.payment.client.service.WalletFeignService;
|
|
|
+import com.zhongshu.payment.client.types.WalletType;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
@@ -87,6 +91,9 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
|
|
|
@Autowired
|
|
|
OrganizationServiceImpl organizationService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ WalletFeignService walletFeignService;
|
|
|
+
|
|
|
/**
|
|
|
* 创建流水
|
|
|
*
|
|
|
@@ -156,42 +163,58 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
|
|
|
return ResultContent.buildSuccess(entity);
|
|
|
}
|
|
|
|
|
|
- // 关联参数
|
|
|
- entity.setPaymentStatus("支付成功");
|
|
|
- entity.setIsPaySuccess(Boolean.TRUE);
|
|
|
- entity.setPayRemark("支付成功");
|
|
|
-
|
|
|
- Wallet wallet = walletDao.findByUserId(entity.getUserId());
|
|
|
- BigDecimal amount = entity.getPayAmount();
|
|
|
- UserAccount userAccount = entity.getUserAccount();
|
|
|
- // 扣款
|
|
|
- // 消费金额
|
|
|
- try {
|
|
|
- WalletRecharge walletRecharge = new WalletRecharge();
|
|
|
- initEntityNoCheckOid(walletRecharge);
|
|
|
- BigDecimal preAmount = wallet.getAmount();
|
|
|
- BigDecimal afterAmount = preAmount.subtract(amount);
|
|
|
- wallet.setAmount(afterAmount);
|
|
|
-
|
|
|
- walletRecharge.setPaymentNo(entity.getPaymentNo());
|
|
|
- walletRecharge.setPreAmount(preAmount);
|
|
|
- walletRecharge.setAmount(amount);
|
|
|
- walletRecharge.setRechargeType(RechargeType.Expend);
|
|
|
- walletRecharge.setAfterAmount(afterAmount);
|
|
|
- walletRecharge.setUserId(userAccount.getUserId());
|
|
|
- walletRecharge.setUserAccount(userAccount);
|
|
|
- walletRecharge.setWallet(wallet);
|
|
|
- walletRecharge.setUserName(userAccount.getName());
|
|
|
- walletRecharge.setPhone(userAccount.getPhone());
|
|
|
- walletRecharge.setYear(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyy));
|
|
|
- walletRecharge.setMonth(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternMM));
|
|
|
- walletRecharge.setTimeStr(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
|
|
|
-
|
|
|
- walletDao.save(wallet);
|
|
|
- walletRechargeDao.save(walletRecharge);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
+ // 钱包支付
|
|
|
+ AmountUpdateParam param = new AmountUpdateParam();
|
|
|
+ param.setOid(entity.getProjectOid());
|
|
|
+ param.setUserId(entity.getUserId());
|
|
|
+ param.setShopId(entity.getShopOid());
|
|
|
+ param.setSchoolId(entity.getSchoolOid());
|
|
|
+ param.setTotal(entity.getPayAmount());
|
|
|
+ param.setOutTradeNo(entity.getPaymentNo());
|
|
|
+ com.zhongshu.payment.client.ret.ResultContent content = walletFeignService.consume(param);
|
|
|
+ if (content.isSuccess()) {
|
|
|
+ // 关联参数
|
|
|
+ entity.setPaymentStatus("支付成功");
|
|
|
+ entity.setIsPaySuccess(Boolean.TRUE);
|
|
|
+ entity.setPayRemark("支付成功");
|
|
|
+ } else {
|
|
|
+ String msg = content.getMsg();
|
|
|
+ entity.setPaymentStatus(msg);
|
|
|
+ entity.setIsPaySuccess(Boolean.FALSE);
|
|
|
+ entity.setPayRemark(content.getMsg());
|
|
|
}
|
|
|
+
|
|
|
+// Wallet wallet = walletDao.findByUserId(entity.getUserId());
|
|
|
+// BigDecimal amount = entity.getPayAmount();
|
|
|
+// UserAccount userAccount = entity.getUserAccount();
|
|
|
+// // 扣款
|
|
|
+// // 消费金额
|
|
|
+// try {
|
|
|
+// WalletRecharge walletRecharge = new WalletRecharge();
|
|
|
+// initEntityNoCheckOid(walletRecharge);
|
|
|
+// BigDecimal preAmount = wallet.getAmount();
|
|
|
+// BigDecimal afterAmount = preAmount.subtract(amount);
|
|
|
+// wallet.setAmount(afterAmount);
|
|
|
+//
|
|
|
+// walletRecharge.setPaymentNo(entity.getPaymentNo());
|
|
|
+// walletRecharge.setPreAmount(preAmount);
|
|
|
+// walletRecharge.setAmount(amount);
|
|
|
+// walletRecharge.setRechargeType(RechargeType.Expend);
|
|
|
+// walletRecharge.setAfterAmount(afterAmount);
|
|
|
+// walletRecharge.setUserId(userAccount.getUserId());
|
|
|
+// walletRecharge.setUserAccount(userAccount);
|
|
|
+// walletRecharge.setWallet(wallet);
|
|
|
+// walletRecharge.setUserName(userAccount.getName());
|
|
|
+// walletRecharge.setPhone(userAccount.getPhone());
|
|
|
+// walletRecharge.setYear(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyy));
|
|
|
+// walletRecharge.setMonth(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternMM));
|
|
|
+// walletRecharge.setTimeStr(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
|
|
|
+//
|
|
|
+// walletDao.save(wallet);
|
|
|
+// walletRechargeDao.save(walletRecharge);
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
expenseFlowDao.save(entity);
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
@@ -352,22 +375,22 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- // 个人钱包
|
|
|
- if (paymentType == PaymentType.UserWallet) {
|
|
|
- // 得到钱包的金额
|
|
|
- BigDecimal amount = entity.getPayAmount();
|
|
|
- // 钱包信息
|
|
|
- Wallet wallet = walletService.getUserWalletByUserId(entity.getUserId());
|
|
|
- if (wallet.getDataState() != DataState.Enable) {
|
|
|
- entity.setVerifyError(String.format("支付失败钱包%s", wallet.getDataState().getRemark()));
|
|
|
- return;
|
|
|
- }
|
|
|
- // 检查
|
|
|
- if (wallet.getAmount().compareTo(amount) < 0) {
|
|
|
- entity.setVerifyError("余额不足");
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
+// // 个人钱包
|
|
|
+// if (paymentType == PaymentType.UserWallet) {
|
|
|
+// // 得到消费的金额
|
|
|
+// BigDecimal amount = entity.getPayAmount();
|
|
|
+// // 钱包信息
|
|
|
+// Wallet wallet = walletService.getUserWalletByUserId(entity.getUserId());
|
|
|
+// if (wallet.getDataState() != DataState.Enable) {
|
|
|
+// entity.setVerifyError(String.format("支付失败钱包%s", wallet.getDataState().getRemark()));
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// // 检查
|
|
|
+// if (wallet.getAmount().compareTo(amount) < 0) {
|
|
|
+// entity.setVerifyError("余额不足");
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
// 消费设备信息
|
|
|
if (deviceInfo.getDeviceType() != null) {
|
|
|
@@ -463,11 +486,15 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
|
|
|
result.setAmount(CommonUtil.turnMoney2Show(expenseFlow.getPayAmount()));
|
|
|
|
|
|
if (expenseFlow.getPaymentType() == PaymentType.UserWallet) {
|
|
|
- // 钱包查询余额
|
|
|
- Wallet wallet = walletDao.findByUserId(expenseFlow.getUserId());
|
|
|
- if (ObjectUtils.isNotEmpty(wallet)) {
|
|
|
- result.setMoney(CommonUtil.turnMoney2Show(wallet.getAmount()));
|
|
|
+ com.zhongshu.payment.client.ret.ResultContent<WalletModel> content = walletFeignService.getWallet(expenseFlow.getProjectOid(), WalletType.User, null, expenseFlow.getUserId());
|
|
|
+ if (content.isSuccess()) {
|
|
|
+ result.setMoney(CommonUtil.turnMoney2Show(content.getContent().getAmount()));
|
|
|
}
|
|
|
+// // 钱包查询余额
|
|
|
+// Wallet wallet = walletDao.findByUserId(expenseFlow.getUserId());
|
|
|
+// if (ObjectUtils.isNotEmpty(wallet)) {
|
|
|
+// result.setMoney(CommonUtil.turnMoney2Show(wallet.getAmount()));
|
|
|
+// }
|
|
|
}
|
|
|
} else {
|
|
|
result.setFailed(expenseFlow.getPayRemark());
|