From edbec8d8c17d44cd7f8151926e7286c40afad39f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=9D=9E=E5=87=A1?= Date: Thu, 4 Dec 2025 09:48:19 +0000 Subject: [PATCH] Merge #3 into master from cc_20251114_minor_req MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix:门店日营销数据 * cc_20251114_minor_req: (3 commits squashed) - fix:门店日营销数据 - fix:jackson反序列化配置忽略未定义字段 - fix:菜品市场数据新增字段 Signed-off-by: 王非凡 Reviewed-by: 苏竹红 Merged-by: 苏竹红 CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/3 --- .../cool/store/dto/recipe/LaunchDataDTO.java | 3 +++ .../cool/store/dto/recipe/RevenueDataDTO.java | 3 +++ .../dto/recipe/SalesVolumeDayQueryDTO.java | 25 +++++++++++++++++++ .../request/recipe/SalesVolumeDayRequest.java | 25 +++++++++++++++++++ .../cool/store/vo/recipe/LaunchDataVO.java | 3 +++ .../cool/store/vo/recipe/RevenueDataVO.java | 3 +++ .../cool/store/config/rest/JacksonConfig.java | 2 ++ .../cool/store/service/ThirdFoodService.java | 9 +++++++ .../service/impl/ThirdFoodServiceImpl.java | 13 ++++++++++ .../webc/MiniDataBoardController.java | 7 ++++++ 10 files changed, 93 insertions(+) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/SalesVolumeDayQueryDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/recipe/SalesVolumeDayRequest.java diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/LaunchDataDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/LaunchDataDTO.java index 90eb0e210..586a7b61b 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/LaunchDataDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/LaunchDataDTO.java @@ -18,4 +18,7 @@ public class LaunchDataDTO { @ApiModelProperty("上新时间,yyyy-MM-dd") private String upSaleDate; + + @ApiModelProperty("") + private String upSaleTime; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/RevenueDataDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/RevenueDataDTO.java index 8a92a1c61..f2e16e2f3 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/RevenueDataDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/RevenueDataDTO.java @@ -40,5 +40,8 @@ public class RevenueDataDTO { @ApiModelProperty("菜品列表") private List otherRecipeLaunchDates; + @ApiModelProperty("下架") + private List otherDownDates; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/SalesVolumeDayQueryDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/SalesVolumeDayQueryDTO.java new file mode 100644 index 000000000..e5b34b8f9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/recipe/SalesVolumeDayQueryDTO.java @@ -0,0 +1,25 @@ +package com.cool.store.dto.recipe; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + *

+ * 门店日销量查询DTO + *

+ * + * @author wangff + * @since 2025/12/3 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SalesVolumeDayQueryDTO { + @ApiModelProperty("日期,yyyy-MM-dd") + private String businessDate; + + @ApiModelProperty("门店编码") + private String storeCode; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/recipe/SalesVolumeDayRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/recipe/SalesVolumeDayRequest.java new file mode 100644 index 000000000..655e72e16 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/recipe/SalesVolumeDayRequest.java @@ -0,0 +1,25 @@ +package com.cool.store.request.recipe; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + *

+ * 门店日销量Request + *

+ * + * @author wangff + * @since 2025/12/3 + */ +@Data +public class SalesVolumeDayRequest { + @ApiModelProperty("日期,yyyy-MM-dd") + @NotBlank(message = "日期不能为空") + private String businessDate; + + @ApiModelProperty("门店id") + @NotBlank(message = "门店id不能为空") + private String storeId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/LaunchDataVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/LaunchDataVO.java index 0b9fc81de..be478eff4 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/LaunchDataVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/LaunchDataVO.java @@ -18,4 +18,7 @@ public class LaunchDataVO { @ApiModelProperty("上新时间,yyyy-MM-dd") private String upSaleDate; + + @ApiModelProperty("") + private String upSaleTime; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/RevenueDataVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/RevenueDataVO.java index 3420a29b2..39ad7fbe1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/RevenueDataVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/recipe/RevenueDataVO.java @@ -34,6 +34,9 @@ public class RevenueDataVO { @ApiModelProperty("菜品列表") private List otherRecipeLaunchDates; + @ApiModelProperty("下架") + private List otherDownDates; + @ApiModelProperty("外卖实收") private BigDecimal takeoutReceivedAmt; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/config/rest/JacksonConfig.java b/coolstore-partner-service/src/main/java/com/cool/store/config/rest/JacksonConfig.java index 201084bba..3ed141657 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/config/rest/JacksonConfig.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/config/rest/JacksonConfig.java @@ -1,5 +1,6 @@ package com.cool.store.config.rest; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -15,6 +16,7 @@ public class JacksonConfig { @Bean public ObjectMapper objectMapper() { ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return mapper; } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ThirdFoodService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ThirdFoodService.java index 88045070d..2a4ae9ffa 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ThirdFoodService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ThirdFoodService.java @@ -4,6 +4,7 @@ import com.cool.store.dto.FoodTokenDTO; import com.cool.store.dto.recipe.RecipeSpLaunchDTO; import com.cool.store.dto.store.StoreUserUpdateDTO; import com.cool.store.request.recipe.RevenueDataRequest; +import com.cool.store.request.recipe.SalesVolumeDayRequest; import com.cool.store.response.caipin.StoreUserResponse; import com.cool.store.vo.recipe.RevenueDataVO; @@ -45,4 +46,12 @@ public interface ThirdFoodService { * @return 服务包菜品上新DTO */ RecipeSpLaunchDTO getRecipeServiceLaunch(RevenueDataRequest request); + + + /** + * 门店销量日视图 + * @param request 请求request + * @return 营收数据VO列表 + */ + List storeSalesVolumeDay(SalesVolumeDayRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdFoodServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdFoodServiceImpl.java index 4fddb48d1..7e71fe14c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdFoodServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdFoodServiceImpl.java @@ -7,11 +7,13 @@ import com.cool.store.dto.FoodTokenDTO; import com.cool.store.dto.recipe.RecipeSpLaunchDTO; import com.cool.store.dto.recipe.RevenueDataDTO; import com.cool.store.dto.recipe.RevenueDataQueryDTO; +import com.cool.store.dto.recipe.SalesVolumeDayQueryDTO; import com.cool.store.dto.store.StoreUserUpdateDTO; import com.cool.store.entity.StoreDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.recipe.RevenueDataRequest; +import com.cool.store.request.recipe.SalesVolumeDayRequest; import com.cool.store.response.caipin.StoreUserResponse; import com.cool.store.response.oppty.OpportunityApiResponse; import com.cool.store.service.ThirdFoodService; @@ -91,6 +93,17 @@ public class ThirdFoodServiceImpl implements ThirdFoodService { return executeApiCall(url, queryDTO, RecipeSpLaunchDTO.class); } + @Override + public List storeSalesVolumeDay(SalesVolumeDayRequest request) { + StoreDO storeDO = storeDao.getByStoreId(request.getStoreId()); + if (Objects.isNull(storeDO)) { + throw new ServiceException(ErrorCodeEnum.STORE_NOT_FIND); + } + SalesVolumeDayQueryDTO queryDTO = new SalesVolumeDayQueryDTO(request.getBusinessDate(), storeDO.getStoreNum()); + String url = "/v1/store/business/day"; + List list = executeApiCall(url, queryDTO, List.class); + return BeanUtil.toList(list, RevenueDataVO.class, CopyOptions.create().setFieldMapping(Collections.singletonMap("storeCode", "storeNum"))); + } private T executeApiCall(String url, Object requestBody, Class responseType) { // 1. 打印请求前日志 diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDataBoardController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDataBoardController.java index e471872c4..87cbb966d 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDataBoardController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDataBoardController.java @@ -2,6 +2,7 @@ package com.cool.store.controller.webc; import com.cool.store.dto.recipe.RecipeSpLaunchDTO; import com.cool.store.request.recipe.RevenueDataRequest; +import com.cool.store.request.recipe.SalesVolumeDayRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.ThirdFoodService; import com.cool.store.vo.recipe.RevenueDataVO; @@ -44,4 +45,10 @@ public class MiniDataBoardController { public ResponseResult getRecipeSpLaunchData(@RequestBody @Valid RevenueDataRequest request) { return ResponseResult.success(thirdFoodService.getRecipeServiceLaunch(request)); } + + @ApiOperation("门店日销量") + @PostMapping("/storeSalesVolumeDay") + public ResponseResult> getStoreSalesVolumeDay(@RequestBody @Valid SalesVolumeDayRequest request) { + return ResponseResult.success(thirdFoodService.storeSalesVolumeDay(request)); + } }