Sfoglia il codice sorgente

Merge branch 'dev'

licailing 3 anni fa
parent
commit
7af76d8996

+ 1 - 0
src/main/java/com/izouma/nineth/domain/AppVersion.java

@@ -19,4 +19,5 @@ public class AppVersion extends BaseEntity {
     private boolean review;
     private boolean review;
     private String  downloadUrl;
     private String  downloadUrl;
     private int     versionNum;
     private int     versionNum;
+    private String  channel;
 }
 }

+ 4 - 0
src/main/java/com/izouma/nineth/repo/AppVersionRepo.java

@@ -18,4 +18,8 @@ public interface AppVersionRepo extends JpaRepository<AppVersion, Long>, JpaSpec
     Optional<AppVersion> findByPlatformAndVersionAndDelFalse(String platform, String version);
     Optional<AppVersion> findByPlatformAndVersionAndDelFalse(String platform, String version);
 
 
     Optional<AppVersion> findFirstByPlatformAndReviewFalseAndDelFalseOrderByVersionNumDesc(String platform);
     Optional<AppVersion> findFirstByPlatformAndReviewFalseAndDelFalseOrderByVersionNumDesc(String platform);
+
+    @Query(value = "select * from raex.app_version a where a.platform = ?1 and a.channel = ?2 and a.review = false and a.del = false " +
+            "order by a.version_num desc",nativeQuery = true)
+    Optional<AppVersion> findLatest(String platform, String channel);
 }
 }

+ 6 - 4
src/main/java/com/izouma/nineth/service/AuctionOrderService.java

@@ -199,12 +199,14 @@ public class AuctionOrderService {
         }
         }
 
 
         //竞拍人绿魔卡余额限制
         //竞拍人绿魔卡余额限制
-        UserBalance userBalance = userBalanceRepo.findByUserId(user.getId()).orElse(null);
         BigDecimal minAmount = sysConfigService.getBigDecimal("auction_min_amount");
         BigDecimal minAmount = sysConfigService.getBigDecimal("auction_min_amount");
-        if (userBalance == null) {
+        if (!user.isWalletEnabled()) {
             throw new BusinessException("请开通绿魔卡,并充值" + minAmount + "元");
             throw new BusinessException("请开通绿魔卡,并充值" + minAmount + "元");
-        } else if (minAmount.compareTo(userBalance.getBalance()) > 0) {
-            throw new BusinessException("绿魔卡余额不足" + minAmount + "元,请先充值");
+        } else {
+            UserBalance userBalance = userBalanceRepo.findByUserId(user.getId()).orElse(new UserBalance(user.getId()));
+            if (minAmount.compareTo(userBalance.getBalance()) > 0) {
+                throw new BusinessException("绿魔卡余额不足" + minAmount + "元,请先充值");
+            }
         }
         }
 
 
         //保证金
         //保证金

+ 8 - 6
src/main/java/com/izouma/nineth/service/AuctionRecordService.java

@@ -145,13 +145,17 @@ public class AuctionRecordService {
     }
     }
 
 
     public AuctionRecord create(Long userId, Long auctionId, BigDecimal amount) {
     public AuctionRecord create(Long userId, Long auctionId, BigDecimal amount) {
+        User user = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
+
         //竞拍人绿魔卡余额限制
         //竞拍人绿魔卡余额限制
-        UserBalance userBalance = userBalanceRepo.findByUserId(userId).orElse(null);
         BigDecimal minAmount = sysConfigService.getBigDecimal("auction_min_amount");
         BigDecimal minAmount = sysConfigService.getBigDecimal("auction_min_amount");
-        if (userBalance == null) {
+        if (!user.isWalletEnabled()) {
             throw new BusinessException("请开通绿魔卡,并充值" + minAmount + "元");
             throw new BusinessException("请开通绿魔卡,并充值" + minAmount + "元");
-        } else if (minAmount.compareTo(userBalance.getBalance()) > 0) {
-            throw new BusinessException("绿魔卡余额不足" + minAmount + "元,请先充值");
+        } else {
+            UserBalance userBalance = userBalanceRepo.findByUserId(user.getId()).orElse(new UserBalance(user.getId()));
+            if (minAmount.compareTo(userBalance.getBalance()) > 0) {
+                throw new BusinessException("绿魔卡余额不足" + minAmount + "元,请先充值");
+            }
         }
         }
 
 
         AuctionActivity auction = auctionActivityRepo.findById(auctionId)
         AuctionActivity auction = auctionActivityRepo.findById(auctionId)
@@ -172,8 +176,6 @@ public class AuctionRecordService {
 
 
         AuctionRecord record = auctionRecordRepo.findTopByAuctionIdAndUserIdOrderByIdDesc(auctionId, userId);
         AuctionRecord record = auctionRecordRepo.findTopByAuctionIdAndUserIdOrderByIdDesc(auctionId, userId);
         if (ObjectUtils.isEmpty(record)) {
         if (ObjectUtils.isEmpty(record)) {
-            User user = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
-
             return auctionRecordRepo.save(AuctionRecord.builder()
             return auctionRecordRepo.save(AuctionRecord.builder()
                     .auctionId(auctionId)
                     .auctionId(auctionId)
                     .userId(userId)
                     .userId(userId)

+ 17 - 0
src/main/java/com/izouma/nineth/service/CollectionService.java

@@ -6,6 +6,7 @@ import com.izouma.nineth.annotations.Debounce;
 import com.izouma.nineth.config.GeneralProperties;
 import com.izouma.nineth.config.GeneralProperties;
 import com.izouma.nineth.config.RedisKeys;
 import com.izouma.nineth.config.RedisKeys;
 import com.izouma.nineth.converter.LongArrayConverter;
 import com.izouma.nineth.converter.LongArrayConverter;
+import com.izouma.nineth.converter.StringArrayConverter;
 import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.*;
 import com.izouma.nineth.domain.*;
 import com.izouma.nineth.dto.*;
 import com.izouma.nineth.dto.*;
@@ -104,6 +105,22 @@ public class CollectionService {
                 });
                 });
             }
             }
         }
         }
+
+        // 筛选去除指定名称不展示
+        if (query.containsKey("notLike")) {
+            String notLike = Convert.toStr(query.get("notLike"));
+            query.remove("notLike");
+            StringArrayConverter converter = new StringArrayConverter();
+            List<String> notLikes = converter.convertToEntityAttribute(notLike);
+            specification = specification.and((Specification<Collection>) (root, criteriaQuery, criteriaBuilder) -> {
+                List<Predicate> and = new ArrayList<>();
+                notLikes.forEach( str -> {
+                    and.add(criteriaBuilder.notLike(root.get("name"), "%"+str+"%"));
+                });
+                return criteriaBuilder.and(and.toArray(new Predicate[0]));
+            });
+        }
+
 //        if (pageRequest.getSort().stream().noneMatch(order -> order.getProperty().equals("createdAt"))) {
 //        if (pageRequest.getSort().stream().noneMatch(order -> order.getProperty().equals("createdAt"))) {
 //            pageRequest = PageRequest.of(pageRequest.getPageNumber(), pageQuery.getSize(),
 //            pageRequest = PageRequest.of(pageRequest.getPageNumber(), pageQuery.getSize(),
 //                    pageRequest.getSort().and(Sort.by("createdAt").descending()));
 //                    pageRequest.getSort().and(Sort.by("createdAt").descending()));

+ 0 - 28
src/main/java/com/izouma/nineth/service/WithdrawApplyScheduleService.java

@@ -1,43 +1,15 @@
 package com.izouma.nineth.service;
 package com.izouma.nineth.service;
 
 
-import com.alibaba.fastjson.JSONObject;
 import com.izouma.nineth.annotations.RedisLock;
 import com.izouma.nineth.annotations.RedisLock;
-import com.izouma.nineth.config.Constants;
-import com.izouma.nineth.domain.WithdrawApply;
-import com.izouma.nineth.dto.PageQuery;
-import com.izouma.nineth.dto.UserBankCard;
-import com.izouma.nineth.enums.BalanceType;
-import com.izouma.nineth.enums.WithdrawStatus;
-import com.izouma.nineth.exception.BusinessException;
-import com.izouma.nineth.repo.BalanceRecordRepo;
-import com.izouma.nineth.repo.UserBalanceRepo;
-import com.izouma.nineth.repo.UserBankCardRepo;
-import com.izouma.nineth.repo.WithdrawApplyRepo;
 import com.izouma.nineth.utils.DateTimeUtils;
 import com.izouma.nineth.utils.DateTimeUtils;
-import com.izouma.nineth.utils.JpaUtils;
-import com.izouma.nineth.utils.SnowflakeIdWorker;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.redisson.api.RLock;
-import org.redisson.api.RedissonClient;
-import org.springframework.core.env.Environment;
-import org.springframework.data.domain.Page;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.util.Arrays;
-import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
-import java.util.regex.Pattern;
 
 
 @Service
 @Service
 @AllArgsConstructor
 @AllArgsConstructor

+ 5 - 2
src/main/java/com/izouma/nineth/service/WithdrawApplyService.java

@@ -18,12 +18,10 @@ import com.izouma.nineth.utils.SnowflakeIdWorker;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.redisson.api.RedissonClient;
 import org.springframework.core.env.Environment;
 import org.springframework.core.env.Environment;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
@@ -168,6 +166,11 @@ public class WithdrawApplyService {
     }
     }
 
 
     @Async
     @Async
+    @RedisLock(value = "'approveAll'", expire = 1, unit = TimeUnit.HOURS)
+    public void approveAllAsync() throws ExecutionException, InterruptedException {
+        approveAll();
+    }
+
     @RedisLock(value = "'approveAll'", expire = 1, unit = TimeUnit.HOURS)
     @RedisLock(value = "'approveAll'", expire = 1, unit = TimeUnit.HOURS)
     public void approveAll() throws ExecutionException, InterruptedException {
     public void approveAll() throws ExecutionException, InterruptedException {
         new ForkJoinPool(5).submit(() -> {
         new ForkJoinPool(5).submit(() -> {

+ 5 - 3
src/main/java/com/izouma/nineth/web/AppVersionController.java

@@ -9,6 +9,7 @@ import com.izouma.nineth.service.CacheService;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -93,10 +94,11 @@ public class AppVersionController extends BaseController {
     }
     }
 
 
     @GetMapping("/checkUpdate")
     @GetMapping("/checkUpdate")
-    @Cacheable(value = "checkUpdate", key = "#platform+'@'+#version")
-    public Map<String, Object> checkUpdate(@RequestParam String platform, @RequestParam String version) {
+    @Cacheable(value = "checkUpdate", key = "#platform+'@'+#version+'@'+#channel")
+    public Map<String, Object> checkUpdate(@RequestParam String platform, @RequestParam String version,
+                                           @RequestParam(required = false, defaultValue = "default") String channel) {
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
-        AppVersion appVersion = appVersionRepo.findFirstByPlatformAndReviewFalseAndDelFalseOrderByVersionNumDesc(platform)
+        AppVersion appVersion = appVersionRepo.findLatest(platform, channel)
                 .orElseThrow(new BusinessException("版本不存在"));
                 .orElseThrow(new BusinessException("版本不存在"));
         map.put("version", appVersion);
         map.put("version", appVersion);
 
 

+ 1 - 5
src/main/java/com/izouma/nineth/web/WithdrawApplyController.java

@@ -1,25 +1,21 @@
 package com.izouma.nineth.web;
 package com.izouma.nineth.web;
 
 
 import com.izouma.nineth.domain.WithdrawApply;
 import com.izouma.nineth.domain.WithdrawApply;
-import com.izouma.nineth.repo.UserBalanceRepo;
 import com.izouma.nineth.service.WithdrawApplyService;
 import com.izouma.nineth.service.WithdrawApplyService;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.WithdrawApplyRepo;
 import com.izouma.nineth.repo.WithdrawApplyRepo;
-import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
 import java.util.List;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutionException;
 
 
@@ -64,7 +60,7 @@ public class WithdrawApplyController extends BaseController {
     @PreAuthorize("hasRole('ADMIN')")
     @PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/approveAll")
     @PostMapping("/approveAll")
     public void approveAll() throws ExecutionException, InterruptedException {
     public void approveAll() throws ExecutionException, InterruptedException {
-        withdrawApplyService.approveAll();
+        withdrawApplyService.approveAllAsync();
     }
     }
 
 
     @PreAuthorize("hasRole('ADMIN')")
     @PreAuthorize("hasRole('ADMIN')")

+ 3 - 0
src/main/vue/src/views/AppVersionEdit.vue

@@ -31,6 +31,9 @@
                     <el-form-item prop="review" label="review">
                     <el-form-item prop="review" label="review">
                         <el-switch v-model="formData.review"></el-switch>
                         <el-switch v-model="formData.review"></el-switch>
                     </el-form-item>
                     </el-form-item>
+                    <el-form-item prop="channel" label="channel">
+                        <el-input v-model="formData.channel"></el-input>
+                    </el-form-item>
                     <el-form-item prop="downloadUrl" label="downloadUrl">
                     <el-form-item prop="downloadUrl" label="downloadUrl">
                         <el-input v-model="formData.downloadUrl"></el-input>
                         <el-input v-model="formData.downloadUrl"></el-input>
                     </el-form-item>
                     </el-form-item>

+ 1 - 0
src/main/vue/src/views/AppVersionList.vue

@@ -56,6 +56,7 @@
                     <el-tag :type="row.review ? 'success' : 'info'">{{ row.review ? '是' : '否' }}</el-tag>
                     <el-tag :type="row.review ? 'success' : 'info'">{{ row.review ? '是' : '否' }}</el-tag>
                 </template>
                 </template>
             </el-table-column>
             </el-table-column>
+            <el-table-column prop="channel" label="channel"></el-table-column>
             <el-table-column prop="downloadUrl" label="downloadUrl"> </el-table-column>
             <el-table-column prop="downloadUrl" label="downloadUrl"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" width="150">
             <el-table-column label="操作" align="center" fixed="right" width="150">
                 <template slot-scope="{ row }">
                 <template slot-scope="{ row }">