diff --git a/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java b/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java index 4d2635d..c0e29a5 100644 --- a/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java @@ -3,6 +3,7 @@ package com.example.demo.mapper.coin; import com.example.demo.domain.DTO.RegionWalletDTO; import com.example.demo.domain.DTO.WalletDTO; import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.entity.UserWalletRecord; import com.example.demo.domain.entity.Wallet; import com.example.demo.domain.vo.coin.ConsumeUser; import com.example.demo.domain.vo.coin.Gold; @@ -53,4 +54,5 @@ public interface ConsumeMapper { List selectWallet(); void createRegionWallet(Integer jwcode); void updateRegionWallet(WalletDTO wallet); + void addRegionWalletRecord(UserWalletRecord userWalletRecord); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java index 109cb91..1c111cf 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java @@ -6,6 +6,7 @@ import com.example.demo.domain.DTO.RegionWalletDTO; import com.example.demo.domain.DTO.WalletDTO; import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.entity.UserWalletRecord; import com.example.demo.domain.vo.coin.*; import com.example.demo.exception.SystemException; import com.example.demo.mapper.coin.ConsumeMapper; @@ -258,11 +259,17 @@ public class ConsumeServiceImpl implements ConsumeService { if(deductAmount.compareTo(BigDecimal.ZERO) > 0) { WalletDTO updateWallet = new WalletDTO(); updateWallet.setId(wallet.getId()); + UserWalletRecord userWalletRecord = new UserWalletRecord(); + userWalletRecord.setJwcode(consumeUser.getJwcode()); + userWalletRecord.setWalletId(wallet.getWalletId()); + userWalletRecord.setAmount(deductAmount.intValue()); + userWalletRecord.setOrderCode(userGoldRecord.getOrderCode()); + userWalletRecord.setDescription("购买" + consumeUser.getGoodsName()); // 设置需要扣除的永久金币金额 updateWallet.setPermanentGold(deductAmount); - // 调用Mapper方法更新钱包余额 consumeMapper.updateRegionWallet(updateWallet); + consumeMapper.addRegionWalletRecord(userWalletRecord); } } diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index 2dbf36b..9aaf3d0 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -370,10 +370,35 @@ UPDATE user_region_wallet - - current_permanent_gold = current_permanent_gold - #{currentPermanentGold}, + + current_permanent_gold = current_permanent_gold - #{permanentGold}, WHERE id = #{id} + + + INSERT INTO user_wallet_record + + jwcode, + wallet_id, + type, + amount, + order_code, + description, + status, + create_time + + VALUES + + #{jwcode}, + #{walletId}, + 1, + #{amount}, + #{orderCode}, + #{description}, + 0, + NOW() + + \ No newline at end of file