diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java index 97b687819..660183834 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.hard.api.dto.order; import com.bsd.pjcloud.admin.api.vo.base.BaseIsIncludeTreeInterface; +import com.bsd.pjcloud.common.core.constant.enums.DateRangeTypeEnum; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; import lombok.Data; @@ -11,6 +12,8 @@ import java.util.List; @Data public class HardOrderDto extends HardOrderEntity implements BaseIsIncludeTreeInterface { + private DateRangeTypeEnum dateRangeType = DateRangeTypeEnum.YESTERDAY; + private List deptIds; private Boolean isInclude = false; diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java index 34fae2692..411ad9fd9 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java @@ -19,6 +19,11 @@ public class PanelCanteenVo { */ private String productName; + /** + * 商家名称 + */ + private String mchName; + /** * 用餐时间段(早中晚) */ @@ -64,6 +69,11 @@ public class PanelCanteenVo { */ private String weekStr; + /** + * 排序 + */ + private int order; + @Data @Builder @AllArgsConstructor diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java index 9807c153a..687657edf 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java @@ -23,7 +23,6 @@ import com.bsd.pjcloud.hard.api.vo.order.HardCreateHardQrCodeScanOrderVo; import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo; import com.bsd.pjcloud.hard.service.*; import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java index 871f3a172..9c8de2742 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java @@ -105,7 +105,7 @@ public class HardAfterSaleController { @PostMapping(value = "/admin-refund") @Operation(summary = "后台退款") - @Idempotent(expireTime = 5, info = "正在退款中,请勿重复操作") + @Idempotent(expireTime = 5, key = "'/hard-after-sale/admin-refund' + #dto.getOrderId() ", info = "正在退款中,请勿重复操作") @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_adminRefund')") public R adminRefund(@RequestBody HardAdminRefundDto dto) { PjcloudUser user = SecurityUtils.getUser(); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java index ddee43840..a69b02d2b 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java @@ -17,9 +17,11 @@ import lombok.RequiredArgsConstructor; import org.springdoc.core.annotations.ParameterObject; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDateTime; import java.util.List; @RestController @@ -34,44 +36,57 @@ public class PanelCanteenController { @PostMapping(value = "/group/by-time-and-hour-type") @Operation(summary = "用餐数据统计(根据时间段和日期分类统计)") - public R groupByTimeAndHourType(PanelCanteenDto dto) { - if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isNotEmpty(dto.getTotalTimeList())) { + public R groupByTimeAndHourType(@RequestBody PanelCanteenDto dto) { + if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isEmpty(dto.getTotalTimeList())) { dto.setTotalTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); } return R.ok(panelCanteenService.groupByTimeAndHourType(dto)); } - @PostMapping(value = "/group/classify/by-time-and-hour-type") - @Operation(summary = "菜品分类统计(根据时间段和日期分类统计)") - public R classifyGroupByTimeAndHourType(PanelCanteenDto dto) { - if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isNotEmpty(dto.getTotalTimeList())) { - dto.setTotalTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); - } - return R.ok(panelCanteenService.classifyGroupByTimeAndHourType(dto)); - } - @PostMapping(value = "/group/by-time-and-custom-hour") @Operation(summary = "用餐数据统计(根据自定义时间段和日期分类统计)") - public R> groupByTimeAndCustomHour(PanelCanteenDto dto) { - if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isNotEmpty(dto.getTotalTimeList())) { + public R> groupByTimeAndCustomHour(@RequestBody PanelCanteenDto dto) { + if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isEmpty(dto.getTotalTimeList())) { dto.setTotalTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); } return R.ok(panelCanteenService.groupByTimeAndCustomHour(dto)); } - @PostMapping(value = "/top") + @PostMapping(value = "/mch-pay-person-count") + @Operation(summary = "各个食堂的用餐人数") + public R> mchPayPersonCount(@RequestBody PanelCanteenDto dto) { + if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isEmpty(dto.getTotalTimeList())) { + dto.setTotalTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); + } + return R.ok(panelCanteenService.mchPayPersonCount(dto)); + } + + @PostMapping(value = "/mch-pay-person-count-trend") + @Operation(summary = "各个食堂的用餐人数(趋势)") + public R> mchPayPersonCountTrend(@RequestBody PanelCanteenDto dto) { + dto.setTotalTimeList(new LocalDateTime[]{ + LocalDateTime.now().minusDays(6).withHour(0).withMinute(0).withSecond(0), + LocalDateTime.now().withHour(23).withMinute(59).withSecond(59) + }); + return R.ok(panelCanteenService.mchPayPersonCount(dto)); + } + + @PostMapping(value = "/mch-pay-count-top") @Operation(summary = "排行榜") - public R> top(PanelCanteenDto dto) { - if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isNotEmpty(dto.getTotalTimeList())) { + public R> mchPayCountTop(@RequestBody PanelCanteenDto dto) { + if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isEmpty(dto.getTotalTimeList())) { dto.setTotalTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); } dto.setLimit(5L); - return R.ok(panelCanteenService.top(dto)); + return R.ok(panelCanteenService.mchPayCountTop(dto)); } @PostMapping(value = "/new-page") @Operation(summary = "最新的吃饭数据") public R> newPage(@ParameterObject Page page, HardOrderDto dto) { + if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isEmpty(dto.getCreateTimeList())) { + dto.setCreateTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); + } return R.ok(hardwareOrderService.scopePageList(page, dto, null)); } } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index b58ff08e1..75135c609 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -142,7 +142,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper { List groupByTimeAndHourType(@Param("dto") PanelCanteenDto dto); /** - * 用餐数据统计(根据时间段和日期分类统计) + * 用餐数据统计(根据商户统计) */ - List top(@Param("dto") PanelCanteenDto dto); + List groupByMch(@Param("dto") PanelCanteenDto dto); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java index 9d394fc15..88b47d3a4 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java @@ -11,6 +11,7 @@ import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; import com.bsd.pjcloud.hard.api.vo.spu.HardSpuJoinVo; import com.bsd.pjcloud.hard.api.vo.spu.HardSpuVo; import com.bsd.pjcloud.thirdparty.dto.ks.KsSkuSubmitCallbackDto; +import com.bsd.pjcloud.thirdparty.vo.ks.KsSkuResultVo; import java.util.ArrayList; import java.util.List; @@ -40,7 +41,7 @@ public interface HardSpuService extends IService { /** * 更新旷世商品审核进度 */ - void progress(Long id); + KsSkuResultVo progress(Long id); /** * 商品审核回调 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelCanteenService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelCanteenService.java index b0a163919..103b704b6 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelCanteenService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelCanteenService.java @@ -13,9 +13,9 @@ public interface PanelCanteenService { PanelCanteenVo.HourTypeVo groupByTimeAndHourType(PanelCanteenDto dto); /** - * 菜品分类统计(根据时间段和日期分类统计) + * 各个食堂的用餐人数 */ - PanelCanteenVo.HourTypeVo classifyGroupByTimeAndHourType(PanelCanteenDto dto); + List mchPayPersonCount(PanelCanteenDto dto); /** * 用餐数据统计(根据自定义时间段和日期分类统计) @@ -25,5 +25,5 @@ public interface PanelCanteenService { /** * 排行榜 */ - List top(PanelCanteenDto dto); + List mchPayCountTop(PanelCanteenDto dto); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java index 3d63734e6..f84b58d82 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java @@ -17,6 +17,8 @@ import org.springframework.web.context.request.RequestContextHolder; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -73,12 +75,11 @@ public class PanelCanteenServiceImpl implements PanelCanteenService { } /** - * 菜品分类统计(根据时间段和日期分类统计) + * 各个食堂的用餐人数 */ @Override - public PanelCanteenVo.HourTypeVo classifyGroupByTimeAndHourType(PanelCanteenDto dto) { - List sqlList = hardOrderMapper.groupByTimeAndHourType(dto); - return null; + public List mchPayPersonCount(PanelCanteenDto dto) { + return hardOrderMapper.groupByMch(dto); } /** @@ -86,15 +87,47 @@ public class PanelCanteenServiceImpl implements PanelCanteenService { */ @Override public List groupByTimeAndCustomHour(PanelCanteenDto dto) { - return null; + List result = new ArrayList<>(); + + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + LocalDateTime now = LocalDateTime.now(); + + List> customHour = List.of( + // 早 + List.of(7, 8), + List.of(8, 9), + // 中 + List.of(11, 12), + List.of(12, 13), + // 晚 + List.of(17, 18), + List.of(18, 19) + ); + customHour.stream().map(customList -> CompletableFuture.runAsync(() -> { + RequestContextHolder.setRequestAttributes(requestAttributes); + + Integer targetHour = customList.get(0); + PanelCanteenDto queryDto = PanelCanteenDto + .builder() + .totalTimeList(new LocalDateTime[]{ + now.withHour(targetHour).withMinute(0).withSecond(0), + now.withHour(targetHour).withMinute(59).withSecond(59) + }) + .build(); + List sqlList = hardOrderMapper.groupByTimeAndHourType(queryDto); + PanelCanteenVo build = PanelCanteenVo.builder().hourType(customList.get(0) + "-" + customList.get(1)).personCount(0L).order(targetHour).build(); + if (ObjectUtil.isNotEmpty(sqlList)) build.setPersonCount(sqlList.get(0).getPersonCount()); + result.add(build); + })).toList().forEach(CompletableFuture::join); + return result.stream().sorted(Comparator.comparingInt(PanelCanteenVo::getOrder)).toList(); } /** * 排行榜 */ @Override - public List top(PanelCanteenDto dto) { - return hardOrderMapper.top(dto); + public List mchPayCountTop(PanelCanteenDto dto) { + return hardOrderMapper.groupByMch(dto); } private List generatePanelCanteenList(LocalDateTime[] totalTimeList) { diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java index 69b04f9fd..94c910258 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java @@ -127,7 +127,7 @@ public class HardSpuServiceImpl extends ServiceImpl - + select o.merchant_id as mchName, + sum(a.product_count) as buyProductCount, + SUM(a.total_price) as totalPrice, + count(distinct o.id) as buyCount, + count(distinct o.user_id) as personCount from hard_car a inner join hard_parent_car p on a.parent_car_id = p.id and p.del_flag = '0' inner join hard_order o on o.parent_car_id = p.id and o.del_flag = '0' and o.hour_type is not null and @@ -593,7 +596,7 @@ and o.hour_type = #{dto.hourType} - group by a.product_id + group by o.merchant_id order by sum(a.product_count) desc limit #{dto.limit} diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/ks/api/KsApi.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/ks/api/KsApi.java index 73febe7b9..7e08077dd 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/ks/api/KsApi.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/ks/api/KsApi.java @@ -33,37 +33,37 @@ public class KsApi { public static final KsApi.Api SKU_SUBMIT = KsApi.Api.builder().url("/openapi/sc/v1/sku").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpPost.METHOD_NAME).contentType("application/json").build(); // 集合SKU提交审核(未公开) - public static final KsApi.Api SKU_SUBMIT_COLLECTION = KsApi.Api.builder().url("/openapi/sc/v1/sku/collection").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpPost.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api SKU_SUBMIT_COLLECTION = KsApi.Api.builder().url("/openapi/sc/v1/sku/collection").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT_COLLECTION).method(HttpPost.METHOD_NAME).contentType("application/json").build(); // SKU审核结果主动获取 - public static final KsApi.Api SKU_RESULT = KsApi.Api.builder().url("/openapi/sc/v1/sku/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpGet.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api SKU_RESULT = KsApi.Api.builder().url("/openapi/sc/v1/sku/%s").bizType(ThirdDoorKsApiTypeEnum.RECOGNITION_RESULT).method(HttpGet.METHOD_NAME).contentType("application/json").build(); // 常规SKU修改 - public static final KsApi.Api SKU_EDIT = KsApi.Api.builder().url("/openapi/sc/v1/sku/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpPatch.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api SKU_EDIT = KsApi.Api.builder().url("/openapi/sc/v1/sku/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_EDIT).method(HttpPatch.METHOD_NAME).contentType("application/json").build(); // SKU审核结果回调通知 public static final KsApi.Api SKU_SUBMIT_CALLBACK = KsApi.Api.builder().url("/callback").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT_CALLBACK).method(HttpPatch.METHOD_NAME).contentType("application/json").build(); // SKU删除 - public static final KsApi.Api SKU_DELETE = KsApi.Api.builder().url("/openapi/sc/v1/sku/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpDelete.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api SKU_DELETE = KsApi.Api.builder().url("/openapi/sc/v1/sku/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_DELETE).method(HttpDelete.METHOD_NAME).contentType("application/json").build(); // 根据69码查询标准库和私有库商品信息 - public static final KsApi.Api BARCODE_SKU = KsApi.Api.builder().url("/openapi/sc/v1/sku/all_sku/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpGet.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api BARCODE_SKU = KsApi.Api.builder().url("/openapi/sc/v1/sku/all_sku/%s").bizType(ThirdDoorKsApiTypeEnum.BARCODE_SKU).method(HttpGet.METHOD_NAME).contentType("application/json").build(); // 根据ks_sku_id查询标准库和私有库商品信息 - public static final KsApi.Api BARCODE_SKU_BY_ID = KsApi.Api.builder().url("/openapi/sc/v1/sku/skus/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpGet.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api BARCODE_SKU_BY_ID = KsApi.Api.builder().url("/openapi/sc/v1/sku/skus/%s").bizType(ThirdDoorKsApiTypeEnum.BARCODE_SKU_BY_ID).method(HttpGet.METHOD_NAME).contentType("application/json").build(); // 模糊查询标准库和私有库商品信息 - public static final KsApi.Api BARCODE_SKU_LIKE = KsApi.Api.builder().url("/openapi/sc/v1/sku/sku_list").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpGet.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api BARCODE_SKU_LIKE = KsApi.Api.builder().url("/openapi/sc/v1/sku/sku_list").bizType(ThirdDoorKsApiTypeEnum.BARCODE_SKU_LIKE).method(HttpGet.METHOD_NAME).contentType("application/json").build(); // SKU提交识别 - public static final KsApi.Api RECOGNITION = KsApi.Api.builder().url("/openapi/sc/v1/recognition").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpPost.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api RECOGNITION = KsApi.Api.builder().url("/openapi/sc/v1/recognition").bizType(ThirdDoorKsApiTypeEnum.RECOGNITION).method(HttpPost.METHOD_NAME).contentType("application/json").build(); // SKU识别结果回调通知 public static final KsApi.Api RECOGNITION_CALLBACK = KsApi.Api.builder().url("/callback").bizType(ThirdDoorKsApiTypeEnum.RECOGNITION_CALLBACK).method(HttpPost.METHOD_NAME).contentType("application/json").build(); // SKU识别结果主动获取 - public static final KsApi.Api RECOGNITION_RESULT = KsApi.Api.builder().url("/openapi/sc/v1/recognition/%s").bizType(ThirdDoorKsApiTypeEnum.SKU_SUBMIT).method(HttpPost.METHOD_NAME).contentType("application/json").build(); + public static final KsApi.Api RECOGNITION_RESULT = KsApi.Api.builder().url("/openapi/sc/v1/recognition/%s").bizType(ThirdDoorKsApiTypeEnum.RECOGNITION_RESULT).method(HttpPost.METHOD_NAME).contentType("application/json").build(); @Data @Builder