wangqifan 3 tahun lalu
induk
melakukan
b2529501d3

+ 6 - 3
src/main/java/com/izouma/nineth/repo/DomainOrderRepo.java

@@ -25,13 +25,13 @@ public interface DomainOrderRepo extends JpaRepository<DomainOrder, Long>, JpaSp
     void softDelete(Long id);
 
     //@Query(value="SELECT * FROM domain_order WHERE current_owner_id = :currentOwnerId AND open_hyper_link = true", nativeQuery = true)
-    @Query(value="SELECT a.id as assetId,do.domain_name as domainName,do.address ,do.hyper_link_type as hyperLinkType,do.open_hyper_link as openHyperLink,do.current_owner_id as currentOwnerId,do.pic from domain_order  do LEFT JOIN asset a ON DO\n" +
+    @Query(value = "SELECT a.id as assetId,do.domain_name as domainName,do.address ,do.hyper_link_type as hyperLinkType,do.open_hyper_link as openHyperLink,do.current_owner_id as currentOwnerId,do.pic from domain_order  do LEFT JOIN asset a ON DO\n" +
             "\t.domain_name =SUBSTRING_INDEX(a.name, ' ', -1) COLLATE utf8mb4_general_ci WHERE a.`status`='NORMAL' and do.open_hyper_link = 1 and do.current_owner_id = :currentOwnerId", nativeQuery = true)
     List<Map<String, Object>> findAllByCurrentOwnerIdAndOpenHyperLinkIsTrue(Long currentOwnerId);
 
-    DomainOrder findByDomainNameAndOrderStatus(String domainName,OrderStatus orderStatus);
+    DomainOrder findByDomainNameAndOrderStatus(String domainName, OrderStatus orderStatus);
 
-    @Query(value="SELECT * FROM domain_order WHERE id = :id ", nativeQuery = true)
+    @Query(value = "SELECT * FROM domain_order WHERE id = :id ", nativeQuery = true)
     DomainOrder findByAssetCollectionId(Long id);
 
     List<DomainOrder> findAllByUserIdAndOrderStatus(Long userId, OrderStatus status);
@@ -57,6 +57,9 @@ public interface DomainOrderRepo extends JpaRepository<DomainOrder, Long>, JpaSp
     @Query("select sum(price) from DomainOrder where createdAt <= ?2 and createdAt >= ?1 and orderStatus = 'FINISH'")
     BigDecimal sumToday(LocalDateTime start, LocalDateTime end);
 
+    @Query("select count (id) from DomainOrder where createdAt <= ?2 and createdAt >= ?1 and orderStatus = 'FINISH'")
+    Long countToday(LocalDateTime start, LocalDateTime end);
+
     @Query(nativeQuery = true, value = "SELECT pic_name from domain_order where order_status ='FINISH' GROUP BY pic_name  having count(pic_name) > 1")
     List<String> getDomainOrder();
 

+ 16 - 6
src/main/java/com/izouma/nineth/service/StatisticService.java

@@ -11,10 +11,7 @@ import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.dto.excel.GlobalSearchDTO;
 import com.izouma.nineth.dto.nftdomain.CollectionDTO;
-import com.izouma.nineth.enums.BalanceType;
-import com.izouma.nineth.enums.CollectionSource;
-import com.izouma.nineth.enums.OrderStatus;
-import com.izouma.nineth.enums.OrderType;
+import com.izouma.nineth.enums.*;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.*;
 import com.izouma.nineth.utils.netease.CheckSumBuilder;
@@ -452,7 +449,11 @@ public class StatisticService {
         ///手续费
         List<BigDecimal> ros = new ArrayList<>();
         List<BigDecimal> scs = new ArrayList<>();
+        List<Order> domainOrder = new ArrayList<>();
         for (Order order : orders) {
+            if (order.getType().equals(CollectionType.DOMAIN)) {
+                domainOrder.add(order);
+            }
             BigDecimal amount = order.getTotalPrice();
             BigDecimal ro = BigDecimal.valueOf(order.getRoyalties());
             BigDecimal sc = BigDecimal.valueOf(order.getServiceCharge());
@@ -469,8 +470,17 @@ public class StatisticService {
         BigDecimal todaySc = scs.stream().reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
         today.put("serviceCharge", todaySc);
         //域名
-        BigDecimal domainOrder = domainOrderRepo.sumToday(todayStart, todayEnd);
-        today.put("domainOrder", Optional.ofNullable(domainOrder).orElse(BigDecimal.ZERO));
+        BigDecimal domainOrder1 = domainOrderRepo.sumToday(todayStart, todayEnd);
+        BigDecimal domainTotal = domainOrder.stream().map(Order::getTotalPrice).reduce(BigDecimal::add)
+                                            .orElse(BigDecimal.ZERO);
+        Long count = domainOrderRepo.countToday(todayStart, todayEnd);
+        today.put("domainCount", Optional.ofNullable(count).orElse(0L));
+        //域名
+        BigDecimal domainOrderMonth = domainOrderRepo.sumToday(todayStart.minusDays(30), todayEnd);
+        Long countMonth = domainOrderRepo.countToday(todayStart.minusDays(30), todayEnd);
+        today.put("domainOrder", Optional.of(domainOrder1.add(domainTotal)).orElse(BigDecimal.ZERO));
+        today.put("domainOrderMonth", Optional.ofNullable(domainOrderMonth).orElse(BigDecimal.ZERO));
+        today.put("countMonth", Optional.ofNullable(countMonth).orElse(0L));
         //saas
         BigDecimal saas = orderRepo.sumSaas(todayStart, todayEnd);
         today.put("saas", Optional.ofNullable(saas).orElse(BigDecimal.ZERO));