package me.zhengjie.modules.thirdparty.v1; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.AnonymousAccess; import me.zhengjie.annotation.Log; import me.zhengjie.annotation.rest.AnonymousPostMapping; import me.zhengjie.base.BaseResponse; import me.zhengjie.base.QueryPageParams; import me.zhengjie.domain.LocalStorage; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.dm.daypc.domain.DmDayPc; import me.zhengjie.modules.dm.daypc.service.DmDayPcService; import me.zhengjie.modules.dm.daypc.service.dto.DmDayPcQueryCriteria; import me.zhengjie.modules.dm.foodPj.domain.DmFoodPj; import me.zhengjie.modules.dm.foodPj.service.DmFoodPjService; import me.zhengjie.modules.dm.order.domain.DmOrderItem; import me.zhengjie.modules.dm.order.domain.DmOrderRecord; import me.zhengjie.modules.dm.order.repository.DmOrderItemRepository; import me.zhengjie.modules.dm.order.repository.DmOrderRecordRepository; import me.zhengjie.modules.dm.service.domain.DmServicePj; import me.zhengjie.modules.dm.service.service.DmServicePjService; import me.zhengjie.modules.dmApp.domain.AppFoodPj; import me.zhengjie.modules.dmApp.service.AppFoodPjService; import me.zhengjie.service.LocalStorageService; import me.zhengjie.utils.FileUtil; import me.zhengjie.utils.SecurityUtils; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; @RestController @RequiredArgsConstructor @Api(tags = "用户接口") @RequestMapping("/api/thirdparty/v1/open") public class OpenApiController { private final DmDayPcService dmDayPcService; private final DmServicePjService dmServicePjService; private final AppFoodPjService appFoodPjService; private final DmFoodPjService dmFoodPjService; private final LocalStorageService localStorageService; private final DmOrderRecordRepository dmOrderRecordRepository; private final DmOrderItemRepository orderItemRepository; @Log("获取今日菜品-App") @ApiOperation("获取今日菜品-App") @AnonymousPostMapping(value = "/foodRepository") public BaseResponse foodRepository(@RequestBody QueryPageParams criteria, Pageable pageable){ SecurityUtils.CheckApiAuth(criteria); return new BaseResponse<>(dmDayPcService.foodRepository()); } @AnonymousPostMapping(value = "/createApp") @Log("新增服务评价") @ApiOperation("新增服务评价") public BaseResponse createApp(@RequestBody QueryPageParams resources){ SecurityUtils.CheckApiAuth(resources); return new BaseResponse<>(dmServicePjService.createApp(resources.getQuery())); } @AnonymousPostMapping(value = "/appFoodPj") @Log("App菜品评价") @ApiOperation("App菜品评价") public BaseResponse appFoodPj(@RequestBody QueryPageParams userCode) { SecurityUtils.CheckApiAuth(userCode); List list = appFoodPjService.selectAppFoodPj(userCode.getQuery()); return new BaseResponse<>(list); } @AnonymousPostMapping(value = "/createFoodPj") @Log("新增菜品评价") @ApiOperation("新增菜品评价") public BaseResponse createFoodPj(@RequestBody QueryPageParams resources){ SecurityUtils.CheckApiAuth(resources); return new BaseResponse<>(dmFoodPjService.createApp(resources.getQuery())); } @AnonymousPostMapping(value = "/pictures") @Log("上传图片") @ApiOperation("上传图片") public BaseResponse upload(@RequestParam String timestamp, @RequestParam String nonce, @RequestParam String name, @RequestParam("file") MultipartFile file){ QueryPageParams params = new QueryPageParams(); params.setNonce(nonce); params.setTimestamp(timestamp); SecurityUtils.CheckApiAuth(params); // 判断文件是否为图片 String suffix = FileUtil.getExtensionName(file.getOriginalFilename()); if(!FileUtil.IMAGE.equals(FileUtil.getFileType(suffix))){ throw new BadRequestException("只能上传图片"); } LocalStorage localStorage = localStorageService.create(name, file); return new BaseResponse<>(localStorage); } @AnonymousAccess @GetMapping(value = "/countOrderAmt") @Log("pc端运营食堂营业额") @ApiOperation("pc端运营食堂营业额") public ResponseEntity countOrderAmt(){ return new ResponseEntity<>(dmOrderRecordRepository.countOrderAmt(),HttpStatus.OK); } @AnonymousAccess @GetMapping(value = "/hyFood") @Log("pc端运营最受欢迎菜品") @ApiOperation("pc端运营最受欢迎菜品") public ResponseEntity hyFood(){ return new ResponseEntity<>(orderItemRepository.hyFood(),HttpStatus.OK); } @AnonymousPostMapping(value = "/countOrderAmtApp") @Log("App端运营食堂营业额") @ApiOperation("App端运营食堂营业额") public BaseResponse countOrderAmtApp(@RequestBody QueryPageParams criteria){ SecurityUtils.CheckApiAuth(criteria); return new BaseResponse<>(dmOrderRecordRepository.countOrderAmt()); } @AnonymousPostMapping(value = "/hyFoodApp") @Log("App端运营最受欢迎菜品") @ApiOperation("App端运营最受欢迎菜品") public BaseResponse hyFoodApp(@RequestBody QueryPageParams criteria){ SecurityUtils.CheckApiAuth(criteria); return new BaseResponse<>(orderItemRepository.hyFood()); } }