xiongzhu %!s(int64=3) %!d(string=hai) anos
pai
achega
313fa0dbbb

+ 2 - 0
src/main/java/com/izouma/nineth/repo/UserRepo.java

@@ -172,6 +172,8 @@ public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExe
 
     List<User> findAllByCreatedAtIsAfterAndAdminFalse(LocalDateTime createdAt);
 
+    List<User> findAllByCreatedAtIsAfterAndAdminFalse(LocalDateTime createdAt);
+
     List<User> findBySettleAccountIdIsNotNull();
 
     @Transactional

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

@@ -118,6 +118,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/testClass/**").permitAll()
                 .antMatchers("/appVersion/**").permitAll()
                 .antMatchers("/sandpay/**").permitAll()
+                .antMatchers("/order/calcSettle").permitAll()
                 // all other requests need to be authenticated
                 .anyRequest().authenticated().and()
                 // make sure we use stateless session; session won't be used to

+ 3 - 2
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -59,6 +59,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.ui.Model;
 
 import java.io.File;
+import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.Duration;
@@ -920,7 +921,7 @@ public class OrderService {
         redisTemplate.delete(RedisKeys.ORDER_LOCK + orderId);
     }
 
-    public void calcSettle(LocalDateTime start, LocalDateTime end) {
+    public void calcSettle(LocalDateTime start, LocalDateTime end, OutputStream outputStream) {
         List<Order> orders = orderRepo.findByCreatedAtBetweenAndSourceAndStatusIn(start, end, CollectionSource.TRANSFER, Arrays.asList(OrderStatus.PROCESSING, OrderStatus.FINISH));
         List<Asset> assets = assetRepo.findAllById(orders.stream().map(Order::getAssetId).collect(Collectors.toSet()));
         List<UserBankCard> bankCards = userBankCardRepo.findByUserIdIn(assets.stream().map(Asset::getUserId).collect(Collectors.toSet()));
@@ -949,6 +950,6 @@ public class OrderService {
                 }
             }
         }
-        EasyExcel.write(new File("/Users/drew/Downloads/结算.xlsx"), MarketSettlement.class).sheet("sheet").doWrite(settlements);
+        EasyExcel.write(outputStream, MarketSettlement.class).sheet("sheet").doWrite(settlements);
     }
 }

+ 19 - 0
src/main/java/com/izouma/nineth/web/OrderController.java

@@ -11,6 +11,7 @@ import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.OrderRepo;
 import com.izouma.nineth.repo.UserRepo;
 import com.izouma.nineth.service.OrderService;
+import com.izouma.nineth.utils.DateTimeUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.SnowflakeIdWorker;
 import com.izouma.nineth.utils.excel.ExcelUtils;
@@ -22,6 +23,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -164,5 +167,21 @@ public class OrderController extends BaseController {
     public void cancel(@RequestParam Long id) {
         orderService.cancel(id);
     }
+
+    @GetMapping(value = "/calcSettle")
+    public void calcSettle(LocalDateTime start, LocalDateTime end, HttpServletResponse response) {
+        if (start == null && end == null) {
+            start = LocalDate.now().minusDays(1).atStartOfDay();
+            end = LocalDate.now().minusDays(1).atTime(23, 59, 59, 99999);
+        }
+        try {
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + DateTimeUtils.format(LocalDateTime.now(), "MMdd") + ".xlsx");
+            orderService.calcSettle(start, end, response.getOutputStream());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
 }
 

+ 0 - 2
src/test/java/com/izouma/nineth/service/OrderServiceTest.java

@@ -260,7 +260,5 @@ public class OrderServiceTest extends ApplicationTests {
 
     @Test
     public void calcSettle() {
-        orderService.calcSettle(LocalDateTime.of(2022, 4, 4, 0, 0, 0),
-                LocalDateTime.of(2022, 4, 5, 23, 59, 59, 99999));
     }
 }