xiongzhu 3 年之前
父节点
当前提交
ed7dc1bffc

+ 15 - 0
src/main/java/com/izouma/yags/config/Constants.java

@@ -26,4 +26,19 @@ public interface Constants {
 
     String DEFAULT_AVATAR = "https://cdn.raex.vip/image/2021-12-17-14-17-42JnpdrwtQ.png";
 
+    interface BalanceDesc {
+        String WITHDRAW       = "提现";
+        String SELL           = "藏品出售";
+        String AUCTION        = "藏品拍卖";
+        String AUCTION_RETURN = "保证金退款";
+        String REWARD         = "拍卖奖励";
+        String RETURN         = "失败退回";
+        String PAY            = "支付";
+        String RECHARGE       = "充值";
+        String DENY           = "拒绝";
+        String BONUS          = "奖励";
+        String REFUND         = "退款";
+        String OTHER          = "其他";
+    }
+
 }

+ 1 - 0
src/main/java/com/izouma/yags/domain/BalanceRecord.java

@@ -50,4 +50,5 @@ public class BalanceRecord extends BaseEntity {
     @Column(length = 20)
     private PayMethod payMethod;
 
+    private String balanceDesc;
 }

+ 5 - 0
src/main/java/com/izouma/yags/domain/UserTicket.java

@@ -7,7 +7,9 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.hibernate.annotations.Formula;
 
+import javax.persistence.Column;
 import javax.persistence.Entity;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 @Data
@@ -33,4 +35,7 @@ public class UserTicket extends BaseEntity {
     private boolean expired;
 
     private Long roomId;
+
+    @Column(precision = 10, scale = 2)
+    private BigDecimal price;
 }

+ 3 - 5
src/main/java/com/izouma/yags/service/ExchangeOrderService.java

@@ -4,11 +4,11 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.github.kevinsawicki.http.HttpRequest;
+import com.izouma.yags.config.Constants;
 import com.izouma.yags.domain.ExchangeItem;
 import com.izouma.yags.domain.ExchangeOrder;
 import com.izouma.yags.domain.UserBalance;
 import com.izouma.yags.dto.PageQuery;
-import com.izouma.yags.enums.BalanceType;
 import com.izouma.yags.enums.ExcOrderStatus;
 import com.izouma.yags.exception.BusinessException;
 import com.izouma.yags.repo.ExchangeItemRepo;
@@ -22,8 +22,6 @@ import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
 import java.math.BigDecimal;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.util.concurrent.atomic.AtomicInteger;
 
 @Service
@@ -64,7 +62,7 @@ public class ExchangeOrderService {
                 .status(ExcOrderStatus.PENDING)
                 .build();
         exchangeOrderRepo.save(order);
-        userBalanceService.modifyBalance(userId, totalPrice.negate(), BalanceType.PAY);
+        userBalanceService.modifyBalance(userId, totalPrice.negate(), Constants.BalanceDesc.PAY);
         return order;
     }
 
@@ -135,6 +133,6 @@ public class ExchangeOrderService {
         }
         order.setStatus(ExcOrderStatus.CANCELLED);
         exchangeOrderRepo.save(order);
-        userBalanceService.modifyBalance(order.getUserId(), order.getTotalPrice(), BalanceType.REFUND);
+        userBalanceService.modifyBalance(order.getUserId(), order.getTotalPrice(), Constants.BalanceDesc.REFUND);
     }
 }

+ 1 - 2
src/main/java/com/izouma/yags/service/OrderPayService.java

@@ -5,7 +5,6 @@ import com.izouma.yags.config.GeneralProperties;
 import com.izouma.yags.domain.JumpForm;
 import com.izouma.yags.domain.TicketOrder;
 import com.izouma.yags.domain.UserBalance;
-import com.izouma.yags.enums.BalanceType;
 import com.izouma.yags.enums.OrderStatus;
 import com.izouma.yags.enums.PayMethod;
 import com.izouma.yags.exception.BusinessException;
@@ -78,7 +77,7 @@ public class OrderPayService {
                 if (balance.compareTo(ticketOrder.getTotalPrice()) < 0) {
                     throw new BusinessException("余额不足");
                 }
-                userBalanceService.modifyBalance(userId, ticketOrder.getTotalPrice().negate(), BalanceType.PAY);
+                userBalanceService.modifyBalance(userId, ticketOrder.getTotalPrice().negate(), Constants.BalanceDesc.PAY);
                 ticketOrderService.notify(ticketOrder.getId(), payMethod, null);
                 return null;
             }

+ 3 - 3
src/main/java/com/izouma/yags/service/RoomService.java

@@ -2,10 +2,10 @@ package com.izouma.yags.service;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.izouma.yags.config.Constants;
 import com.izouma.yags.domain.*;
 import com.izouma.yags.dto.PageQuery;
 import com.izouma.yags.dto.RoomDetail;
-import com.izouma.yags.enums.BalanceType;
 import com.izouma.yags.enums.JoinRoomStatus;
 import com.izouma.yags.enums.RoomStatus;
 import com.izouma.yags.enums.RoomType;
@@ -327,7 +327,7 @@ public class RoomService {
                 joinRoomRepo.save(j);
 
                 if (j.getTeam().equals(joinRoom.getTeam())) {
-                    userBalanceService.modifyBalance(j.getUserId(), room.getBonus(), BalanceType.BONUS);
+                    userBalanceService.modifyBalance(j.getUserId(), room.getBonus(), Constants.BalanceDesc.BONUS);
                 }
             });
 
@@ -443,7 +443,7 @@ public class RoomService {
             j.setFinishAt(LocalDateTime.now());
             if (j.getTeam().equals(team)) {
                 j.setStatus(JoinRoomStatus.WIN);
-                userBalanceService.modifyBalance(j.getUserId(), room.getBonus(), BalanceType.BONUS);
+                userBalanceService.modifyBalance(j.getUserId(), room.getBonus(), Constants.BalanceDesc.BONUS);
             } else {
                 j.setStatus(JoinRoomStatus.LOSE);
             }

+ 52 - 6
src/main/java/com/izouma/yags/service/UserBalanceService.java

@@ -1,18 +1,18 @@
 package com.izouma.yags.service;
 
+import com.izouma.yags.config.Constants;
 import com.izouma.yags.domain.BalanceRecord;
 import com.izouma.yags.domain.UserBalance;
-import com.izouma.yags.enums.BalanceType;
 import com.izouma.yags.exception.BusinessException;
 import com.izouma.yags.repo.BalanceRecordRepo;
 import com.izouma.yags.repo.UserBalanceRepo;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.core.env.Environment;
-import org.springframework.data.jpa.repository.Lock;
 import org.springframework.stereotype.Service;
 
-import javax.persistence.LockModeType;
+import javax.annotation.PostConstruct;
 import javax.transaction.Transactional;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
@@ -26,6 +26,52 @@ public class UserBalanceService {
     private final SysConfigService  sysConfigService;
     private final Environment       env;
 
+    @PostConstruct
+    public void init() {
+        balanceRecordRepo.findAll().stream().parallel().forEach(b -> {
+            if (StringUtils.isEmpty(b.getBalanceDesc())) {
+                switch (b.getType()) {
+                    case WITHDRAW:
+                        b.setBalanceDesc(Constants.BalanceDesc.WITHDRAW);
+                        break;
+                    case SELL:
+                        b.setBalanceDesc(Constants.BalanceDesc.SELL);
+                        break;
+                    case AUCTION:
+                        b.setBalanceDesc(Constants.BalanceDesc.AUCTION);
+                        break;
+                    case AUCTION_RETURN:
+                        b.setBalanceDesc(Constants.BalanceDesc.AUCTION_RETURN);
+                        break;
+                    case REWARD:
+                        b.setBalanceDesc(Constants.BalanceDesc.REWARD);
+                        break;
+                    case RETURN:
+                        b.setBalanceDesc(Constants.BalanceDesc.RETURN);
+                        break;
+                    case PAY:
+                        b.setBalanceDesc(Constants.BalanceDesc.PAY);
+                        break;
+                    case RECHARGE:
+                        b.setBalanceDesc(Constants.BalanceDesc.RECHARGE);
+                        break;
+                    case DENY:
+                        b.setBalanceDesc(Constants.BalanceDesc.DENY);
+                        break;
+                    case BONUS:
+                        b.setBalanceDesc(Constants.BalanceDesc.BONUS);
+                        break;
+                    case REFUND:
+                        b.setBalanceDesc(Constants.BalanceDesc.REFUND);
+                        break;
+                    default:
+                        b.setBalanceDesc(Constants.BalanceDesc.OTHER);
+                        break;
+                }
+            }
+        });
+    }
+
     public BalanceRecord balancePay(Long userId, BigDecimal amount, Long orderId, String remark) {
         UserBalance userBalance = userBalanceRepo.findById(userId).orElseThrow(new BusinessException("余额不足"));
         if (userBalance.getBalance().compareTo(amount) < 0) {
@@ -39,7 +85,7 @@ public class UserBalanceService {
                 .userId(userId)
                 .balance(userBalance.getBalance())
                 .lastBalance(userBalance.getLastBalance())
-                .type(BalanceType.PAY)
+                .balanceDesc(Constants.BalanceDesc.PAY)
                 .amount(amount.negate())
                 .time(LocalDateTime.now())
                 .orderId(orderId)
@@ -48,7 +94,7 @@ public class UserBalanceService {
     }
 
     @Transactional
-    public void modifyBalance(Long userId, BigDecimal amount, BalanceType type) {
+    public void modifyBalance(Long userId, BigDecimal amount, String balanceDesc) {
         UserBalance userBalance = userBalanceRepo.findByUserId(userId).orElse(new UserBalance(userId));
         userBalance.setLastBalance(userBalance.getBalance());
         userBalance.setBalance(userBalance.getBalance().add(amount));
@@ -57,7 +103,7 @@ public class UserBalanceService {
                 .userId(userId)
                 .balance(userBalance.getBalance())
                 .lastBalance(userBalance.getLastBalance())
-                .type(type)
+                .balanceDesc(balanceDesc)
                 .amount(amount)
                 .time(LocalDateTime.now())
                 .build());

+ 1 - 2
src/main/java/com/izouma/yags/service/UserService.java

@@ -13,7 +13,6 @@ import com.izouma.yags.dto.PageQuery;
 import com.izouma.yags.dto.RaexUser;
 import com.izouma.yags.dto.UserRegister;
 import com.izouma.yags.enums.AuthorityName;
-import com.izouma.yags.enums.BalanceType;
 import com.izouma.yags.exception.BusinessException;
 import com.izouma.yags.repo.BindGameRepo;
 import com.izouma.yags.repo.UserBalanceRepo;
@@ -73,7 +72,7 @@ public class UserService {
             user.setPassword(passwordEncoder.encode(userRegister.getPassword()));
         }
         userRepo.save(user);
-        userBalanceService.modifyBalance(user.getId(), new BigDecimal(10), BalanceType.RECHARGE);
+        userBalanceService.modifyBalance(user.getId(), new BigDecimal(10), Constants.BalanceDesc.RECHARGE);
         return user;
     }