content: package com.gitee.pifeng.monitoring.server.business.server.controller;
  
  import cn.hutool.core.date.DateUtil;
  import cn.hutool.core.date.TimeInterval;
  import com.gitee.pifeng.monitoring.common.constant.ResultMsgConstants;
  import com.gitee.pifeng.monitoring.common.domain.Result;
  import com.gitee.pifeng.monitoring.common.dto.BaseResponsePackage;
  import com.gitee.pifeng.monitoring.common.dto.CiphertextPackage;
  import com.gitee.pifeng.monitoring.server.business.server.core.MonitoringConfigPropertiesLoader;
  import com.gitee.pifeng.monitoring.server.business.server.core.ServerPackageConstructor;
  import io.swagger.v3.oas.annotations.Operation;
  import io.swagger.v3.oas.annotations.media.Content;
  import io.swagger.v3.oas.annotations.media.Schema;
  import io.swagger.v3.oas.annotations.responses.ApiResponse;
  import io.swagger.v3.oas.annotations.tags.Tag;
  import lombok.extern.slf4j.Slf4j;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.web.bind.annotation.PostMapping;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RestController;
  
  /**
   * <p>
   * 监控属性配置控制器
   * </p>
   *
   * @author 皮锋
   * @custom.date 2021/4/5 10:39
   */
  @Slf4j
  @RestController
  @RequestMapping("/monitoring-properties-config")
  @Tag(name = "监控属性配置")
  public class MonitoringPropertiesConfigController {
  
      /**
       * 监控配置属性加载器
       */
      @Autowired
      private MonitoringConfigPropertiesLoader monitoringConfigPropertiesLoader;
  
      /**
       * 服务端包构造器
       */
      @Autowired
      private ServerPackageConstructor serverPackageConstructor;
  
      /**
       * <p>
       * 刷新监控配置属性
       * </p>
       *
       * @return {@link BaseResponsePackage}
       * @author 皮锋
       * @custom.date 2021/4/5 10:47
       */
      @Operation(summary = "刷新监控配置属性", description = "刷新监控配置属性",
              requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(schema = @Schema(implementation = CiphertextPackage.class))),
              responses = @ApiResponse(content = {@Content(schema = @Schema(implementation = CiphertextPackage.class))}))
      @PostMapping("/refresh")
      public BaseResponsePackage refresh() {
          // 计时器
          TimeInterval timer = DateUtil.timer();
          this.monitoringConfigPropertiesLoader.wakeUpMonitoringConfigPropertiesLoader();
          BaseResponsePackage baseResponsePackage = this.serverPackageConstructor.structureBaseResponsePackage(Result.builder().isSuccess(true).msg(ResultMsgConstants.SUCCESS).build());
          // 时间差（毫秒）
          String betweenDay = timer.intervalPretty();
          if (timer.intervalSecond() > 1) {
              log.warn("刷新监控配置属性耗时：{}", betweenDay);
          }
          return baseResponsePackage;
      }
  
  }
  