Merge pull request '余额支付和积分支付添加进流水表' (#13) from main-cx into main

Reviewed-on: #13
This commit is contained in:
2025-02-21 10:15:10 +08:00

View File

@@ -153,6 +153,9 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
@Autowired
private MemberPointsSplitProfitService memberPointsSplitProfitService;
@Autowired
private UmsMemberAccountTransactionMapper umsMemberAccountTransactionMapper;
@Value("${kuaidi100.url}")
private String KUAIDI100_URL;
@@ -1343,8 +1346,10 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
if (flag == 0) { // 如果实际支付金额为0表示使用积分支付
// 获取积分兑换价格
BigDecimal totalPointsAmount = order.getIntegrationAmount(); // 使用订单中的积分字段
BigDecimal memberPoints = BigDecimal.valueOf(member.getIntegration()); // 获取当前用户积分
// 使用订单中的积分字段
BigDecimal totalPointsAmount = order.getIntegrationAmount();
// 获取当前用户积分
BigDecimal memberPoints = BigDecimal.valueOf(member.getIntegration());
// 判断用户积分是否足够
if (memberPoints.compareTo(totalPointsAmount) < 0) {
@@ -1352,8 +1357,10 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
}
// 扣除用户积分,并记录积分变动
member.setIntegration(memberPoints.subtract(totalPointsAmount).intValue()); // 扣除积分
member.setFreeze(member.getFreeze().add(totalPointsAmount)); // 冻结积分
// 扣除积分
member.setIntegration(memberPoints.subtract(totalPointsAmount).intValue());
// 冻结积分
member.setFreeze(member.getFreeze().add(totalPointsAmount));
memberMapper.updateByPrimaryKey(member);
// 支付方式0->未支付1->支付宝2->微信3->线下支付4->积分支付支付
@@ -1367,11 +1374,13 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
//写入会员交易记录表
DmsMemberTradeRecord tradeRecord = new DmsMemberTradeRecord();
tradeRecord.setMemberId(member.getId());
tradeRecord.setItemType(ItemType.IntegralShopping); //积分购物
//积分购物
tradeRecord.setItemType(ItemType.IntegralShopping);
tradeRecord.setNote("积分抵扣");
tradeRecord.setTitle("积分抵扣");
tradeRecord.setValue(totalPointsAmount);
tradeRecord.setType(1); //收支类型0->收入1->支出
//收支类型0->收入1->支出
tradeRecord.setType(1);
tradeRecord.setCreateTime(new Date());
memberTradeRecordMapper.insert(tradeRecord);
@@ -1379,7 +1388,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
long time = System.currentTimeMillis() + RedisLock.TIMEOUT;
if (redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) {
member = memberMapper.selectByPrimaryKey(member.getId());
member.setFreeze(member.getFreeze().add(order.getIntegrationAmount())); //修改冻结金额,增加冻结资金
//修改冻结金额,增加冻结资金
member.setFreeze(member.getFreeze().add(order.getIntegrationAmount()));
memberMapper.updateByPrimaryKey(member);
redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time));
break;
@@ -1390,6 +1400,16 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
return CommonResult.validateFailed("无效订单");
}
//插入流水表
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
accountTransaction.setMemberId(member.getId());
accountTransaction.setOrderId(orderId);
accountTransaction.setTransferPaymentTime(order.getPaymentTime());
accountTransaction.setRevenuePoints(totalPointsAmount.intValue());
PmsProduct pmsProduct = orderMapper.selectAll(order.getOrderSn());
accountTransaction.setRemarks( "商品名称" + pmsProduct.getName());
umsMemberAccountTransactionMapper.updateByPrimaryKey(accountTransaction);
Date date = new Date();
//支付方式0->未支付1->支付宝2->微信3->线下支付4->余额支付
@@ -1501,6 +1521,15 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
// 更新用户余额
memberMapper.updateByPrimaryKey(member);
//插入流水表
UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction();
accountTransaction.setMemberId(member.getId());
accountTransaction.setOrderId(orderId);
accountTransaction.setTransferPaymentTime(orderResult.getPaymentTime());
accountTransaction.setRevenueAmount(payAmount.negate());
PmsProduct pmsProduct = orderMapper.selectAll(orderResult.getOrderSn());
accountTransaction.setRemarks( "商品名称" + pmsProduct.getName());
umsMemberAccountTransactionMapper.updateByPrimaryKey(accountTransaction);
// 更新订单状态为已支付
OmsOrder order = orderMapper.selectByPrimaryKey(orderId);