Просмотр исходного кода

竞拍人绿魔卡金额限制

licailing 3 лет назад
Родитель
Сommit
0e290180ce

+ 11 - 0
src/main/java/com/izouma/nineth/service/AuctionOrderService.java

@@ -72,6 +72,8 @@ public class AuctionOrderService {
     private CollectionRepo                collectionRepo;
     @Autowired
     private ShowroomRepo                  showroomRepo;
+    @Autowired
+    private UserBalanceRepo               userBalanceRepo;
 
     public Page<AuctionOrder> all(PageQuery pageQuery) {
         return auctionOrderRepo
@@ -186,6 +188,15 @@ public class AuctionOrderService {
             throw new BusinessException("不可自己出价自己的");
         }
 
+        //竞拍人绿魔卡余额限制
+        UserBalance userBalance = userBalanceRepo.findByUserId(user.getId()).orElse(null);
+        BigDecimal minAmount = sysConfigService.getBigDecimal("auction_min_amount");
+        if (userBalance == null) {
+            throw new BusinessException("请开通绿魔卡,并充值" + minAmount + "元");
+        } else if (minAmount.compareTo(userBalance.getBalance()) > 0) {
+            throw new BusinessException("绿魔卡余额不足" + minAmount + "元,请先充值");
+        }
+
         //保证金
 //        BigDecimal deposit = sysConfigService.getBigDecimal("deposit");
         AuctionOrder order = auctionOrderRepo

+ 16 - 5
src/main/java/com/izouma/nineth/service/AuctionRecordService.java

@@ -4,12 +4,12 @@ import com.izouma.nineth.config.RedisKeys;
 import com.izouma.nineth.domain.*;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.dto.auction.AuctionRecordDTO;
-import com.izouma.nineth.enums.*;
+import com.izouma.nineth.enums.AuctionOrderStatus;
+import com.izouma.nineth.enums.AuctionPaymentType;
+import com.izouma.nineth.enums.AuctionRecordType;
+import com.izouma.nineth.enums.AuctionStatus;
 import com.izouma.nineth.exception.BusinessException;
-import com.izouma.nineth.repo.AuctionActivityRepo;
-import com.izouma.nineth.repo.AuctionOrderRepo;
-import com.izouma.nineth.repo.AuctionRecordRepo;
-import com.izouma.nineth.repo.UserRepo;
+import com.izouma.nineth.repo.*;
 import com.izouma.nineth.utils.JpaUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import lombok.AllArgsConstructor;
@@ -35,6 +35,8 @@ public class AuctionRecordService {
     private AuctionOrderRepo              auctionOrderRepo;
     private RedisTemplate<String, Object> redisTemplate;
     private UserRepo                      userRepo;
+    private UserBalanceRepo               userBalanceRepo;
+    private SysConfigService              sysConfigService;
 
     public Page<AuctionRecord> all(PageQuery pageQuery) {
         return auctionRecordRepo
@@ -141,6 +143,15 @@ public class AuctionRecordService {
     }
 
     public AuctionRecord create(Long userId, Long auctionId, BigDecimal amount) {
+        //竞拍人绿魔卡余额限制
+        UserBalance userBalance = userBalanceRepo.findByUserId(userId).orElse(null);
+        BigDecimal minAmount = sysConfigService.getBigDecimal("auction_min_amount");
+        if (userBalance == null) {
+            throw new BusinessException("请开通绿魔卡,并充值" + minAmount + "元");
+        } else if (minAmount.compareTo(userBalance.getBalance()) > 0) {
+            throw new BusinessException("绿魔卡余额不足" + minAmount + "元,请先充值");
+        }
+
         AuctionActivity auction = auctionActivityRepo.findById(auctionId)
                 .orElseThrow(new BusinessException("暂无"));
 

+ 4 - 0
src/main/java/com/izouma/nineth/service/CacheService.java

@@ -117,4 +117,8 @@ public class CacheService {
     public void clearAuction(Long id) {
     }
 
+    @CacheEvict(value = "news", key = "#id")
+    public void clearNews(Long id) {
+    }
+
 }

+ 11 - 4
src/main/java/com/izouma/nineth/web/NewsController.java

@@ -4,11 +4,12 @@ import cn.hutool.core.collection.CollUtil;
 import com.izouma.nineth.domain.News;
 import com.izouma.nineth.domain.NewsLike;
 import com.izouma.nineth.domain.User;
-import com.izouma.nineth.repo.NewsLikeRepo;
-import com.izouma.nineth.service.NewsService;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
+import com.izouma.nineth.repo.NewsLikeRepo;
 import com.izouma.nineth.repo.NewsRepo;
+import com.izouma.nineth.service.CacheService;
+import com.izouma.nineth.service.NewsService;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
@@ -29,6 +30,7 @@ public class NewsController extends BaseController {
     private NewsService  newsService;
     private NewsRepo     newsRepo;
     private NewsLikeRepo newsLikeRepo;
+    private CacheService cacheService;
 
     @PreAuthorize("hasAnyRole('ADMIN','NEWS')")
     @PostMapping("/save")
@@ -36,9 +38,13 @@ public class NewsController extends BaseController {
         if (record.getId() != null) {
             News orig = newsRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, record);
-            return newsRepo.save(orig);
+            orig = newsRepo.save(orig);
+            cacheService.clearNews(record.getId());
+            return orig;
         }
-        return newsRepo.save(record);
+        record = newsRepo.save(record);
+        cacheService.clearNews(record.getId());
+        return record;
     }
 
 
@@ -66,6 +72,7 @@ public class NewsController extends BaseController {
     @PostMapping("/del/{id}")
     public void del(@PathVariable Long id) {
         newsRepo.softDelete(id);
+        cacheService.clearNews(id);
     }
 
     @GetMapping("/excel")