From 1e91c4bb2d0be59bd186e9faed35fad9c1befb4b Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Fri, 20 Sep 2024 15:32:25 +0800 Subject: [PATCH] TASK:mixi; --- .../mixi/controller/AppProductController.java | 6 ++ .../java/com/mixi/model/dto/TaskRuleDTO.java | 3 + .../com/mixi/service/TAppProductService.java | 82 +++++++++++++++++++ .../impl/SalesIncentivesServiceImpl.java | 14 ++++ 4 files changed, 105 insertions(+) diff --git a/src/main/java/com/mixi/controller/AppProductController.java b/src/main/java/com/mixi/controller/AppProductController.java index 78cc2fa..5f85944 100644 --- a/src/main/java/com/mixi/controller/AppProductController.java +++ b/src/main/java/com/mixi/controller/AppProductController.java @@ -91,6 +91,12 @@ public class AppProductController { public Response> searchProductPage(@Valid @RequestBody SearchProductPageDTO query) { return Response.success(tAppProductService.searchProductPage(query)); } + + @ApiOperation(value = "检索商品分页列表") + @PostMapping("/searchAIProductPage") + public Response> searchAIProductPage(@Valid @RequestBody OutfitRecommendation outfitRecommendation) { + return Response.success(tAppProductService.searchAIProductPage(outfitRecommendation)); + } @ApiOperation(value = "下拉-查询所有属性值") @GetMapping("/queryAllAttribute") public Response> queryAllAttribute() { diff --git a/src/main/java/com/mixi/model/dto/TaskRuleDTO.java b/src/main/java/com/mixi/model/dto/TaskRuleDTO.java index ee9abe7..f248c30 100644 --- a/src/main/java/com/mixi/model/dto/TaskRuleDTO.java +++ b/src/main/java/com/mixi/model/dto/TaskRuleDTO.java @@ -9,4 +9,7 @@ import java.util.List; @Data public class TaskRuleDTO extends TaskRule { private List taskConditionList; + + private String startTimeString; + private String endTimeString; } diff --git a/src/main/java/com/mixi/service/TAppProductService.java b/src/main/java/com/mixi/service/TAppProductService.java index 0d6c2da..e490756 100644 --- a/src/main/java/com/mixi/service/TAppProductService.java +++ b/src/main/java/com/mixi/service/TAppProductService.java @@ -943,4 +943,86 @@ public class TAppProductService extends ServiceImpl { }); } + + public PageBaseResponse searchAIProductPage(OutfitRecommendation outfitRecommendation) { + List imageUrls = outfitRecommendation.getImageUrls(); + List pictureNames = new ArrayList<>(); + for (String imageUrl : imageUrls) { + String[] split = imageUrl.split("\\.jpg\\?"); + String s = split[0]; + String[] split1 = s.split("/"); + String pictureName = split1[split1.length - 1]; + pictureNames.add(pictureName); + } + + // 分页数据 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("picture_name", pictureNames); + + //上架 + queryWrapper.eq("on_sale_state", 1); + queryWrapper.eq("upload_state", 1); + queryWrapper.orderByDesc("id"); + IPage page = getBaseMapper().selectPage( + new Page<>(1, 20), queryWrapper); + if (CollectionUtils.isEmpty(page.getRecords())) { + return PageBaseResponse.success(new Page<>()); + } + List productIds = page.getRecords().stream().map(TProduct::getId).collect(Collectors.toList()); + Map> productToLabelMap = productLabelService.findByProductIds(productIds); + List labelIds = productToLabelMap.values() + .stream() + .map(list->list.stream().map(TProductLabel::getLabelId).collect(Collectors.toList())) + .flatMap(List::stream).collect(Collectors.toList()); + //标签map + Map labelMap = labelService.queryMapByIds(labelIds); + IPage convert = page.convert((Function) + product -> + { + AppNewProductVO result = CopyUtil.copyObject(product, AppNewProductVO.class); + result.setId(product.getId().toString()); + result.setPictureUrl(minioUtil.getPresignedUrl(result.getPictureUrl(), 24 * 60)); + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(MiTuProduct::getProductId, result.getId()); + List miTuProductList = miTuProductMapper.selectList(qw); + result.setPluCode(miTuProductList.get(0).getPluCode()); + result.setProductLabelInfo(CopyUtil.copyList(productToLabelMap.get(product.getId()),ProductLabelVO.class,(o,d) ->{ + d.setId(o.getLabelId().toString()); + d.setName(labelMap.get(o.getLabelId()).getName()); + d.setType(labelMap.get(o.getLabelId()).getType()); + })); +// if (!StringUtils.isEmpty(query.getStoreId())) { +// QueryWrapper productStockQueryWrapper = new QueryWrapper<>(); +// productStockQueryWrapper.lambda().eq(TProductStock::getStoreId, query.getStoreId()); +// productStockQueryWrapper.lambda().eq(TProductStock::getProductId, result.getId()); +// productStockQueryWrapper.lambda().orderByDesc(TProductStock::getCreateDate); +// List list = tProductStockService.list(productStockQueryWrapper); +// if (CollectionUtils.isEmpty(list)) { +// result.setIsSoldOut(1); +// }else { +// TProductStock tProductStock = list.get(0); +// if (tProductStockService.hasPositiveStock(tProductStock)) { +// result.setIsSoldOut(0); +// }else { +// result.setIsSoldOut(1); +// } +// } +// } + return result; + }); +// List records = convert.getRecords(); +// List newRecords = new ArrayList<>(); +// for (AppNewProductVO record : records) { +// if (record.getIsSoldOut() == 0) { +// newRecords.add(record); +// } +// } +// for (AppNewProductVO record : records) { +// if (record.getIsSoldOut() == 1) { +// newRecords.add(record); +// } +// } +// convert.setRecords(newRecords); + return PageBaseResponse.success(convert); + } } diff --git a/src/main/java/com/mixi/service/impl/SalesIncentivesServiceImpl.java b/src/main/java/com/mixi/service/impl/SalesIncentivesServiceImpl.java index 142f51b..b89e028 100644 --- a/src/main/java/com/mixi/service/impl/SalesIncentivesServiceImpl.java +++ b/src/main/java/com/mixi/service/impl/SalesIncentivesServiceImpl.java @@ -64,6 +64,20 @@ public class SalesIncentivesServiceImpl extends ServiceImpl