DebugController.java 2.34 KB
package cn.fw.valhalla.controller.debug;

import cn.fw.common.web.annotation.ControllerMethod;
import cn.fw.data.base.domain.common.Message;
import cn.fw.security.auth.client.annotation.Authorization;
import cn.fw.security.auth.client.annotation.IgnoreAuth;
import cn.fw.security.auth.client.enums.AuthType;
import cn.fw.valhalla.common.utils.DateUtil;
import cn.fw.valhalla.service.report.PublicReportBizService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDate;
import java.util.Date;
import java.util.Objects;

import static cn.fw.common.web.util.ResultBuilder.success;

/**
 * @author : kurisu
 * @className : DebugController
 * @description : 调试接口
 * @date: 2020-10-22 11:06
 */
@Slf4j
@RestController
@RequiredArgsConstructor
@IgnoreAuth
@Authorization(AuthType.APP)
@Validated
@RequestMapping("/valhalla/debug")
public class DebugController {
    private final PublicReportBizService publicReportBizService;

    @GetMapping("/run/publicReportData")
    @ControllerMethod("公共池报表数据准备")
    public Message<Void> publicReportData(@RequestParam(required = false) Long groupId,
                                          @RequestParam Date start,@RequestParam Date end) {
        if (end.after(new Date())){
            end = new Date();
        }
        if (start.after(end)){
            throw new RuntimeException("开始时间大于结束时间");
        }
        if (Objects.isNull(groupId)) {
            groupId = 2L;
        }
        LocalDate dateStart = DateUtil.date2LocalDate(start);
        LocalDate dateEnd = DateUtil.date2LocalDate(end);
        log.info("入参dateStart: {}, dateEnd: {}",dateStart,dateEnd);
        if (dateStart.isBefore(dateEnd)){
            while (dateStart.isBefore(dateEnd) || dateStart.isEqual(dateEnd)){
                publicReportBizService.extracting(dateStart,groupId);
                dateStart = dateStart.plusDays(1);
            }
        }else {
            publicReportBizService.extracting(dateStart,groupId);
        }
        return success();
    }
}