licailing 3 роки тому
батько
коміт
81cdee04eb

+ 1 - 0
src/main/java/com/izouma/nineth/security/WebSecurityConfig.java

@@ -126,6 +126,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/auctionOrder/get/**").permitAll()
                 .antMatchers("/auctionActivity/all").permitAll()
                 .antMatchers("/auctionActivity/get/**").permitAll()
+                .antMatchers("/auctionRecord/all").permitAll()
                 .antMatchers("/ossNotify").permitAll()
                 .antMatchers("/priceList/list").permitAll()
                 .antMatchers("/user/collectionInvitorList").permitAll()

+ 4 - 2
src/main/java/com/izouma/nineth/service/AuctionActivityService.java

@@ -87,7 +87,7 @@ public class AuctionActivityService {
         auctionActivity.setEndTime(LocalDateTime.now().plusDays(auctionCycle));
         auctionActivity.setDeposit(dto.getDeposit());
         if (Arrays.asList(env.getActiveProfiles()).contains("staging")) {
-            auctionActivity.setEndTime(LocalDateTime.now().plusMinutes(15));
+            auctionActivity.setEndTime(LocalDateTime.now().plusMinutes(8));
         }
         auctionActivity.setDetail(asset.getDetail());
         auctionActivity.setFixedPrice(dto.getFixedPrice());
@@ -224,6 +224,7 @@ public class AuctionActivityService {
                 Date date = Date.from(record.getEndTime().atZone(ZoneId.systemDefault()).toInstant());
                 ScheduledFuture<?> future = taskScheduler.schedule(() -> {
                     if (ObjectUtils.isNotEmpty(recordNew1.getPurchasePrice())) {
+                        log.info("拍卖成交{}", recordNew1.getId());
                         auctionActivityRepo.scheduleOffShelf(recordNew1.getId(), AuctionStatus.PURCHASED);
                     } else {
                         //没有成交价,无人出价过
@@ -242,7 +243,8 @@ public class AuctionActivityService {
                 }, date);
                 tasks.put(record.getId(), future);
             } else {
-                if (recordNew1.getPurchasePrice() != null) {
+                if (ObjectUtils.isNotEmpty(recordNew1.getPurchasePrice())) {
+                    log.info("拍卖成交{}", recordNew1.getId());
                     auctionActivityRepo.scheduleOffShelf(recordNew1.getId(), AuctionStatus.PURCHASED);
                 } else {
                     auctionActivityRepo.scheduleOffShelf(recordNew1.getId(), AuctionStatus.PASS);

+ 14 - 3
src/main/java/com/izouma/nineth/service/AuctionOrderService.java

@@ -398,14 +398,25 @@ public class AuctionOrderService {
     public void passOverTimeAuction() {
         List<AuctionActivity> purchased = auctionActivityRepo.findAllByStatus(AuctionStatus.PURCHASED);
         if (purchased != null) {
+            int time = sysConfigService.getInt("auction_cancel_time");
             purchased.forEach(act -> {
-                int time = sysConfigService.getInt("auction_cancel_time");
                 if (LocalDateTime.now().isAfter(act.getEndTime().plusMinutes(time))) {
                     List<AuctionOrder> auctionOrders = auctionOrderRepo.findAllByAuctionIdAndPaymentTypeAndStatus(act
                             .getId(), AuctionPaymentType.PURCHASE_PRICE, AuctionOrderStatus.NOT_PAID);
                     auctionOrders.forEach(this::cancel);
-                    act.setStatus(AuctionStatus.PASS);
-                    auctionActivityRepo.save(act);
+
+                    auctionActivityService.changeStatus(act.getAssetId(), AuctionStatus.PASS);
+                    log.info("拍卖定时任务流拍{}", act.getId());
+
+                    //退其余保证金
+                    List<AuctionOrder> orders = auctionOrderRepo
+                            .findAllByAuctionIdAndPaymentTypeAndStatus(act.getId(),
+                                    AuctionPaymentType.DEPOSIT, AuctionOrderStatus.FINISH);
+                    //退款
+                    orders.stream()
+                            .filter(o -> !act.getPurchaserId().equals(o.getUserId()))
+                            .forEach(this::refund);
+
                     //添加到流拍记录表里
                     auctionPassRecordRepo.save(AuctionPassRecord.builder()
                             .auctionId(act.getId())