Created
March 18, 2020 05:21
-
-
Save cuongld2/0c4f0ea0eb40ec0c1f325cf343fbc7fd to your computer and use it in GitHub Desktop.
main-controller-report
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package vas.dealer.report.controller; | |
import io.swagger.v3.oas.annotations.Operation; | |
import io.swagger.v3.oas.annotations.media.ArraySchema; | |
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.responses.ApiResponses; | |
import io.swagger.v3.oas.annotations.tags.Tag; | |
import lombok.extern.slf4j.Slf4j; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.core.env.Environment; | |
import org.springframework.http.HttpStatus; | |
import org.springframework.web.bind.annotation.RequestBody; | |
import org.springframework.web.bind.annotation.RequestMapping; | |
import org.springframework.web.bind.annotation.RequestMethod; | |
import org.springframework.web.bind.annotation.RestController; | |
import vas.dealer.report.constant.ConfigConstant; | |
import vas.dealer.report.constant.ServiceConstant; | |
import vas.dealer.report.dto.*; | |
import vas.dealer.report.service.*; | |
import vas.dealer.report.util.CommonUtils; | |
import javax.servlet.http.HttpServletRequest; | |
import static org.springframework.http.HttpHeaders.AUTHORIZATION; | |
@RestController | |
@Slf4j | |
@RequestMapping("vas-dealer") | |
@Tag(name = "report", description = "API to show reports for Vinaphone") | |
public class MainController { | |
@Autowired | |
private CommonService commonService; | |
@Autowired | |
private Environment env; | |
@Autowired | |
private HistorySaleService historySaleService; | |
@Autowired | |
private ReportRevenueService reportRevenueService; | |
@Autowired | |
private ReportPostageService reportPostageService; | |
@Autowired | |
private ReportRosesService reportRosesService; | |
@Operation(summary = "Show different kind of reports", description = "reports", tags = { "report" }) | |
@ApiResponses(value = { | |
@ApiResponse(responseCode = "200", description = "successful operation", | |
content = @Content(array = @ArraySchema(schema = @Schema(implementation = ServerResponseDto.class)))) }) | |
@RequestMapping(value = "/report", method = RequestMethod.POST) | |
public ServerResponseDto processCmsGetData(HttpServletRequest request, @RequestBody ApiRequestDto requestDto) { | |
log.info("Request :\n " + requestDto.toString()); | |
ServerResponseDto serverResponseDto; | |
if (commonService.isAuthorization(request.getHeader(AUTHORIZATION), env.getProperty(ConfigConstant.API_USER_NAME), env.getProperty(ConfigConstant.API_PASSWORD))) { | |
serverResponseDto = processService(requestDto.getService(), requestDto.getParam()); | |
} else { | |
log.error("AUTHORIZATION ACCESS DENIED !!!"); | |
serverResponseDto = new ServerResponseDto(HttpStatus.UNAUTHORIZED); | |
} | |
log.info("==> Response :\n " + serverResponseDto.toString()); | |
return serverResponseDto; | |
} | |
/** | |
* Process request | |
* | |
* @author DucTT | |
* @param service : service request | |
* @param params : params object | |
* @return CmsRsDto response | |
*/ | |
private ServerResponseDto processService(String service, Object params) { | |
switch (service) { | |
case ServiceConstant.HISTORY_SALES : // lịch sử bán hàng | |
HistorySalesRqDto historySalesRqDto = CommonUtils.castObjectToObject(params, HistorySalesRqDto.class); | |
return historySaleService.getHistorySales(historySalesRqDto); | |
case ServiceConstant.REPORT_REVENUE : // doanh thu dịch vụ | |
ReportRevenueRqDto reportRevenueRqDto = CommonUtils.castObjectToObject(params, ReportRevenueRqDto.class); | |
return reportRevenueService.getReport(reportRevenueRqDto); | |
case ServiceConstant.REPORT_POSTAGE : // báo cáo đối soát | |
ReportPostageRqDto reportPostageRqDto = CommonUtils.castObjectToObject(params, ReportPostageRqDto.class); | |
return reportPostageService.getReport(reportPostageRqDto); | |
case ServiceConstant.REPORT_ROSES : // Doanh thu hoa hồng | |
ReportRosesRqDto reportRosesRqDto = CommonUtils.castObjectToObject(params, ReportRosesRqDto.class); | |
return reportRosesService.getReport(reportRosesRqDto); | |
case ServiceConstant.REPORT_ROSES_DETAIL : // Doanh thu hoa hồng chi tiết | |
reportRosesRqDto = CommonUtils.castObjectToObject(params, ReportRosesRqDto.class); | |
return reportRosesService.getReportDetail(reportRosesRqDto); | |
default: | |
return new ServerResponseDto(HttpStatus.METHOD_NOT_ALLOWED); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment