diff --git a/src/main/java/com/example/demo/mapper/coin/WalletMapper.java b/src/main/java/com/example/demo/mapper/coin/WalletMapper.java new file mode 100644 index 0000000..4243dbc --- /dev/null +++ b/src/main/java/com/example/demo/mapper/coin/WalletMapper.java @@ -0,0 +1,24 @@ +package com.example.demo.mapper.coin; + +import com.example.demo.domain.entity.UserRegionWallet; +import com.example.demo.domain.entity.UserWalletRecord; +import com.example.demo.domain.entity.Wallet; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @program: GOLD + * @ClassName WalletMapper + * @description: + * @author: huangqizhen + * @create: 2026−03-06 13:56 + * @Version 1.0 + **/ +@Mapper +public interface WalletMapper { + void updateWallet(UserRegionWallet userRegionWallet); + UserRegionWallet selectWallet(Integer jwcode, Integer walletId); + List selectWalletRecord(Integer jwcode, String orderCode); + void updateWalletRecord(Integer id); +} diff --git a/src/main/java/com/example/demo/service/Wallet/WalletService.java b/src/main/java/com/example/demo/service/Wallet/WalletService.java new file mode 100644 index 0000000..f89d4cd --- /dev/null +++ b/src/main/java/com/example/demo/service/Wallet/WalletService.java @@ -0,0 +1,23 @@ +package com.example.demo.service.Wallet; + +import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.entity.UserRegionWallet; +import com.example.demo.domain.entity.UserWalletRecord; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @program: GOLD + * @ClassName WalletService + * @description: + * @author: huangqizhen + * @create: 2026−03-05 14:00 + * @Version 1.0 + **/ +public interface WalletService { + void updateUserGoldRecord(UserRegionWallet userRegionWallet); + List selectUserWalletRecord(Integer jwcode, String orderCode); + void updateUserWalletRecord(Integer id); +// void MysqlConnection(); +} diff --git a/src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java new file mode 100644 index 0000000..1bc44d8 --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/Wallet/WalletServiceImpl.java @@ -0,0 +1,60 @@ +package com.example.demo.serviceImpl.Wallet; + +import com.example.demo.Util.BusinessException; +import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.entity.UserRegionWallet; +import com.example.demo.domain.entity.UserWalletRecord; +import com.example.demo.exception.SystemException; +import com.example.demo.mapper.coin.WalletMapper; +import com.example.demo.service.Wallet.WalletService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @program: GOLD + * @ClassName WalletServiceImpl + * @description: + * @author: huangqizhen + * @create: 2026−03-06 13:53 + * @Version 1.0 + **/ +@Service +@RequiredArgsConstructor +public class WalletServiceImpl implements WalletService { + @Autowired + private WalletMapper walletMapper; + + @Override + public void updateUserGoldRecord(UserRegionWallet userRegionWallet) { + BigDecimal currentPermanentGold = userRegionWallet.getCurrentPermanentGold(); + if (currentPermanentGold == null|| currentPermanentGold.compareTo(BigDecimal.ZERO) <= 0) + throw new SystemException("钱包金币传参错误"); + if (userRegionWallet.getJwcode()!= null|| userRegionWallet.getWalletId() != null){ + UserRegionWallet wallet = walletMapper.selectWallet(userRegionWallet.getJwcode(), userRegionWallet.getWalletId()); + if (wallet == null){ + throw new BusinessException("该用户钱包不存在"); + } + else { + userRegionWallet.setCurrentPermanentGold(wallet.getCurrentPermanentGold().add(currentPermanentGold)); + walletMapper.updateWallet(userRegionWallet); + } + } + } + + @Override + public List selectUserWalletRecord(Integer jwcode, String orderCode) { + if (jwcode == null){ + throw new SystemException("精网号传参错误"); + } + return walletMapper.selectWalletRecord(jwcode, orderCode); + } + + @Override + public void updateUserWalletRecord(Integer id) { + walletMapper.updateWalletRecord(id); + } +} diff --git a/src/main/resources/mapper/WalletMapper.xml b/src/main/resources/mapper/WalletMapper.xml new file mode 100644 index 0000000..65a0557 --- /dev/null +++ b/src/main/resources/mapper/WalletMapper.xml @@ -0,0 +1,27 @@ + + + + + update user_region_wallet set current_permanent_gold = {currentPermanentGold} where jwcode = {jwcode} and wallet_id = {walletId}} + + + update user_wallet_record set status = 1 where id = {id} + + + + \ No newline at end of file