Browse Source

20260305钱包消费

huangqizheng/feature-20260309142559-钱包退款
sunjiabei 1 month ago
parent
commit
ac49b4de37
  1. 2
      src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java
  2. 9
      src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java
  3. 29
      src/main/resources/mapper/ConsumeMapper.xml

2
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.RegionWalletDTO;
import com.example.demo.domain.DTO.WalletDTO; import com.example.demo.domain.DTO.WalletDTO;
import com.example.demo.domain.entity.UserGoldRecord; 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.entity.Wallet;
import com.example.demo.domain.vo.coin.ConsumeUser; import com.example.demo.domain.vo.coin.ConsumeUser;
import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.Gold;
@ -53,4 +54,5 @@ public interface ConsumeMapper {
List<Wallet> selectWallet(); List<Wallet> selectWallet();
void createRegionWallet(Integer jwcode); void createRegionWallet(Integer jwcode);
void updateRegionWallet(WalletDTO wallet); void updateRegionWallet(WalletDTO wallet);
void addRegionWalletRecord(UserWalletRecord userWalletRecord);
} }

9
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.DTO.WalletDTO;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.entity.UserGoldRecord; 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.domain.vo.coin.*;
import com.example.demo.exception.SystemException; import com.example.demo.exception.SystemException;
import com.example.demo.mapper.coin.ConsumeMapper; import com.example.demo.mapper.coin.ConsumeMapper;
@ -258,11 +259,17 @@ public class ConsumeServiceImpl implements ConsumeService {
if(deductAmount.compareTo(BigDecimal.ZERO) > 0) { if(deductAmount.compareTo(BigDecimal.ZERO) > 0) {
WalletDTO updateWallet = new WalletDTO(); WalletDTO updateWallet = new WalletDTO();
updateWallet.setId(wallet.getId()); 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); updateWallet.setPermanentGold(deductAmount);
// 调用Mapper方法更新钱包余额 // 调用Mapper方法更新钱包余额
consumeMapper.updateRegionWallet(updateWallet); consumeMapper.updateRegionWallet(updateWallet);
consumeMapper.addRegionWalletRecord(userWalletRecord);
} }
} }

29
src/main/resources/mapper/ConsumeMapper.xml

@ -370,10 +370,35 @@
<update id="updateRegionWallet" parameterType="com.example.demo.domain.DTO.WalletDTO"> <update id="updateRegionWallet" parameterType="com.example.demo.domain.DTO.WalletDTO">
UPDATE user_region_wallet UPDATE user_region_wallet
<set> <set>
<if test="currentPermanentGold != null and currentPermanentGold.compareTo(BigDecimal.ZERO) != 0">
current_permanent_gold = current_permanent_gold - #{currentPermanentGold},
<if test="permanentGold != null">
current_permanent_gold = current_permanent_gold - #{permanentGold},
</if> </if>
</set> </set>
WHERE id = #{id} WHERE id = #{id}
</update> </update>
<!-- 添加钱包记录 -->
<insert id="addRegionWalletRecord" parameterType="com.example.demo.domain.entity.UserWalletRecord">
INSERT INTO user_wallet_record
<trim prefix="(" suffix=")" suffixOverrides=",">
jwcode,
wallet_id,
type,
amount,
order_code,
description,
status,
create_time
</trim>
VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
#{jwcode},
#{walletId},
1,
#{amount},
#{orderCode},
#{description},
0,
NOW()
</trim>
</insert>
</mapper> </mapper>
Loading…
Cancel
Save