From 211f1028f2b45660bb1d6161d5b249ce59549108 Mon Sep 17 00:00:00 2001 From: yovinchen Date: Fri, 29 Sep 2023 00:50:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E6=9F=A5=E8=AF=A2(=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8=E9=94=99=E8=AF=AF)=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 2 + .idea/encodings.xml | 1 + .idea/runConfigurations/nacos_service.xml | 17 ------ .../dist/dev/mp-weixin/common/vendor.js | 20 +++---- guigu-ssyx-parent/service-client/pom.xml | 1 + .../service-activity-client/pom.xml | 20 +++++++ .../client/activity/ActivityFeignClient.java | 22 +++++++ .../ssyx/client/user/UserFeignClient.java | 2 +- .../activity/api/ActivityApiController.java | 37 ++++++++++++ .../activity/mapper/ActivityInfoMapper.java | 16 ++++- .../activity/service/ActivityInfoService.java | 7 +-- .../service/impl/ActivityInfoServiceImpl.java | 45 ++++++++------ .../resources/mapper/ActivityInfoMapper.xml | 16 +++-- .../home/controller/HomeApiController.java | 14 ++++- .../service/service-search/pom.xml | 6 ++ .../ssyx/search/api/SearchApiController.java | 11 ++++ .../search/controller/SkuApiController.java | 17 ++++++ .../ssyx/search/repository/SkuRepository.java | 22 ++++++- .../ssyx/search/service/SkuService.java | 12 ++++ .../search/service/impl/SkuServiceImpl.java | 60 +++++++++++++++++++ .../src/main/resources/application-dev.yml | 2 +- .../user/api/LeaderAddressController.java | 2 +- .../user/controller/WeixinApiController.java | 6 +- 23 files changed, 286 insertions(+), 72 deletions(-) delete mode 100644 .idea/runConfigurations/nacos_service.xml create mode 100644 guigu-ssyx-parent/service-client/service-activity-client/pom.xml create mode 100644 guigu-ssyx-parent/service-client/service-activity-client/src/main/java/com/atguigu/ssyx/client/activity/ActivityFeignClient.java create mode 100644 guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/api/ActivityApiController.java create mode 100644 guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/api/SearchApiController.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 860071c..14f2070 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -16,6 +16,7 @@ + @@ -33,6 +34,7 @@ + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index c7a5815..71fa137 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -7,6 +7,7 @@ + diff --git a/.idea/runConfigurations/nacos_service.xml b/.idea/runConfigurations/nacos_service.xml deleted file mode 100644 index 8bc0a55..0000000 --- a/.idea/runConfigurations/nacos_service.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - \ No newline at end of file diff --git a/atguigu-tuan/unpackage/dist/dev/mp-weixin/common/vendor.js b/atguigu-tuan/unpackage/dist/dev/mp-weixin/common/vendor.js index ba77f95..aa9b9a6 100644 --- a/atguigu-tuan/unpackage/dist/dev/mp-weixin/common/vendor.js +++ b/atguigu-tuan/unpackage/dist/dev/mp-weixin/common/vendor.js @@ -902,7 +902,6 @@ return lang; } } - // export function initI18n() { // const localeKeys = Object.keys(__uniConfig.locales || {}) // if (localeKeys.length) { @@ -9096,7 +9095,6 @@ var OBJECTTYPE = '[object Object]'; var NULLTYPE = '[object Null]'; var UNDEFINEDTYPE = '[object Undefined]'; - // const FUNCTIONTYPE = '[object Function]' function diff(current, pre) { @@ -10886,7 +10884,6 @@ exports.default = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13)); var _deepClone = _interopRequireDefault(__webpack_require__(/*! ./deepClone */ 37)); - // JS对象深度合并 function deepMerge() { var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; @@ -10938,7 +10935,6 @@ }); exports.default = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13)); - // 判断arr是否为一个数组,返回一个bool值 function isArray(arr) { return Object.prototype.toString.call(arr) === '[object Array]'; @@ -11293,7 +11289,7 @@ }; for (var key in data) { var _ret = _loop(key); - if (_ret === "continue") continue; + if (_ret === "continue") ; } return _result.length ? prefix + _result.join('&') : ''; } @@ -22354,9 +22350,9 @@ if (ret) { fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")); } - ; + } - ; + return fmt; } @@ -22511,7 +22507,7 @@ return sColor; } } - ; + // 将rgb表示方式转换为hex表示方式 function rgbToHex(rgb) { @@ -22797,7 +22793,6 @@ value: true }); exports.default = void 0; - // 打乱数组 function randomArray() { var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; @@ -22829,7 +22824,6 @@ }); exports.default = addUnit; var _test = _interopRequireDefault(__webpack_require__(/*! ./test.js */ 38)); - // 添加单位,如果有rpx,%,px等单位结尾或者值为auto,直接返回,否则加上rpx单位结尾 function addUnit() { var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'auto'; @@ -23069,7 +23063,7 @@ function os() { return uni.getSystemInfoSync().platform; } - ; + function sys() { return uni.getSystemInfoSync(); @@ -23178,7 +23172,7 @@ } } } - ; + var _default = throttle; exports.default = _default; @@ -25794,7 +25788,7 @@ if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { - ; + } } catch (err) { _d = !0, _e = err; diff --git a/guigu-ssyx-parent/service-client/pom.xml b/guigu-ssyx-parent/service-client/pom.xml index 8099c0d..f18d027 100644 --- a/guigu-ssyx-parent/service-client/pom.xml +++ b/guigu-ssyx-parent/service-client/pom.xml @@ -15,6 +15,7 @@ service-product-client service-user-client service-search-client + service-activity-client diff --git a/guigu-ssyx-parent/service-client/service-activity-client/pom.xml b/guigu-ssyx-parent/service-client/service-activity-client/pom.xml new file mode 100644 index 0000000..f0daa99 --- /dev/null +++ b/guigu-ssyx-parent/service-client/service-activity-client/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.atguigu + service-client + 1.0-SNAPSHOT + + + service-activity-client + + + 8 + 8 + UTF-8 + + + diff --git a/guigu-ssyx-parent/service-client/service-activity-client/src/main/java/com/atguigu/ssyx/client/activity/ActivityFeignClient.java b/guigu-ssyx-parent/service-client/service-activity-client/src/main/java/com/atguigu/ssyx/client/activity/ActivityFeignClient.java new file mode 100644 index 0000000..1c855f7 --- /dev/null +++ b/guigu-ssyx-parent/service-client/service-activity-client/src/main/java/com/atguigu/ssyx/client/activity/ActivityFeignClient.java @@ -0,0 +1,22 @@ +package com.atguigu.ssyx.client.activity; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; +import java.util.Map; + +/** + * ClassName: ActivityFeignClient + * Package: com.atguigu.ssyx.client.activity + * + * @author yovinchen + * @Create 2023/9/26 14:10 + */ +@FeignClient(value = "service-activity") +public interface ActivityFeignClient { + + @PostMapping("/api/activity/inner/findActivity") + Map> findActivity(@RequestBody List skuIdList); +} diff --git a/guigu-ssyx-parent/service-client/service-user-client/src/main/java/com/atguigu/ssyx/client/user/UserFeignClient.java b/guigu-ssyx-parent/service-client/service-user-client/src/main/java/com/atguigu/ssyx/client/user/UserFeignClient.java index 916c316..1103811 100644 --- a/guigu-ssyx-parent/service-client/service-user-client/src/main/java/com/atguigu/ssyx/client/user/UserFeignClient.java +++ b/guigu-ssyx-parent/service-client/service-user-client/src/main/java/com/atguigu/ssyx/client/user/UserFeignClient.java @@ -22,5 +22,5 @@ public interface UserFeignClient { * @return */ @GetMapping("/api/user/leader/inner/getUserAddressByUserId/{userId}") - LeaderAddressVo getUserAddressByUserId(@PathVariable(value = "userId") Long userId); + LeaderAddressVo getUserAddressByUserId(@PathVariable("userId") Long userId); } diff --git a/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/api/ActivityApiController.java b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/api/ActivityApiController.java new file mode 100644 index 0000000..4738b6b --- /dev/null +++ b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/api/ActivityApiController.java @@ -0,0 +1,37 @@ +package com.atguigu.ssyx.activity.api; + +import com.atguigu.ssyx.activity.service.ActivityInfoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +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 javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * ClassName: ActivityInfoController + * Package: com.atguigu.ssyx.activity.api + * + * @author yovinchen + * @Create 2023/9/26 14:12 + */ +@Api(tags = "促销与优惠券接口") +@RestController +@RequestMapping("/api/activity") +@Slf4j +public class ActivityApiController { + + @Resource + private ActivityInfoService activityInfoService; + + @ApiOperation(value = "根据skuId列表获取促销信息") + @PostMapping("inner/findActivity") + public Map> findActivity(@RequestBody List skuIdList) { + return activityInfoService.findActivity(skuIdList); + } +} diff --git a/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/mapper/ActivityInfoMapper.java b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/mapper/ActivityInfoMapper.java index 213bf2a..f3b630f 100644 --- a/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/mapper/ActivityInfoMapper.java +++ b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/mapper/ActivityInfoMapper.java @@ -19,7 +19,19 @@ import java.util.List; @Repository public interface ActivityInfoMapper extends BaseMapper { - List selectActivityRuleList(Long skuId); - + /** + * 查询两张表判断 activity_info 和 activity_sku,编写SQL语句实现 + * + * @param skuIdList + * @return + */ List selectSkuIdListExist(@Param("skuIdList") List skuIdList); + + /** + * 根据skuId进行查询,查询sku对应活动里面规则列表 + * + * @param skuId + * @return + */ + List findActivityRule(Long skuId); } diff --git a/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/ActivityInfoService.java b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/ActivityInfoService.java index 59456d9..1fe6536 100644 --- a/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/ActivityInfoService.java +++ b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/ActivityInfoService.java @@ -2,7 +2,6 @@ package com.atguigu.ssyx.activity.service; import com.atguigu.ssyx.model.activity.ActivityInfo; -import com.atguigu.ssyx.model.activity.ActivityRule; import com.atguigu.ssyx.model.product.SkuInfo; import com.atguigu.ssyx.vo.activity.ActivityRuleVo; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -55,10 +54,10 @@ public interface ActivityInfoService extends IService { List findSkuInfoByKeyword(String keyword); /** - * 根据skuId获取促销规则信息 + * 根据skuId列表获取促销信息 * - * @param skuId + * @param skuIdList * @return */ - List findActivityRule(Long skuId); + Map> findActivity(List skuIdList); } diff --git a/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/impl/ActivityInfoServiceImpl.java b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/impl/ActivityInfoServiceImpl.java index 381ca5b..b3f020c 100644 --- a/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/impl/ActivityInfoServiceImpl.java +++ b/guigu-ssyx-parent/service/service-activity/src/main/java/com/atguigu/ssyx/activity/service/impl/ActivityInfoServiceImpl.java @@ -172,23 +172,6 @@ public class ActivityInfoServiceImpl extends ServiceImpl findActivityRule(Long skuId) { - List activityRuleList = activityInfoMapper.selectActivityRuleList(skuId); - if (!CollectionUtils.isEmpty(activityRuleList)) { - for (ActivityRule activityRule : activityRuleList) { - activityRule.setRuleDesc(this.getRuleDesc(activityRule)); - } - } - return activityRuleList; - } - private String getRuleDesc(ActivityRule activityRule) { ActivityType activityType = activityRule.getActivityType(); StringBuffer ruleDesc = new StringBuffer(); @@ -207,4 +190,32 @@ public class ActivityInfoServiceImpl extends ServiceImpl> findActivity(List skuIdList) { + Map> result = new HashMap<>(); + //skuIdList遍历,得到每个skuId + skuIdList.forEach(skuId -> { + //根据skuId进行查询,查询sku对应活动里面规则列表 + List activityRuleList = baseMapper.findActivityRule(skuId); + //数据封装,规则名称 + if (!CollectionUtils.isEmpty(activityRuleList)) { + List ruleList = new ArrayList<>(); + //把规则名称处理 + for (ActivityRule activityRule : activityRuleList) { + ruleList.add(this.getRuleDesc(activityRule)); + } + result.put(skuId, ruleList); + } + }); + return result; + } + + } diff --git a/guigu-ssyx-parent/service/service-activity/src/main/resources/mapper/ActivityInfoMapper.xml b/guigu-ssyx-parent/service/service-activity/src/main/resources/mapper/ActivityInfoMapper.xml index a4313f4..4d5b3da 100644 --- a/guigu-ssyx-parent/service/service-activity/src/main/resources/mapper/ActivityInfoMapper.xml +++ b/guigu-ssyx-parent/service/service-activity/src/main/resources/mapper/ActivityInfoMapper.xml @@ -58,13 +58,13 @@ - - diff --git a/guigu-ssyx-parent/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java b/guigu-ssyx-parent/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java index f3bfca1..c50389a 100644 --- a/guigu-ssyx-parent/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java +++ b/guigu-ssyx-parent/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java @@ -1,5 +1,6 @@ package com.atguigu.ssyx.home.controller; +import com.atguigu.ssyx.client.product.ProductFeignClient; import com.atguigu.ssyx.common.auth.AuthContextHolder; import com.atguigu.ssyx.common.result.Result; import com.atguigu.ssyx.home.service.HomeService; @@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Map; @@ -26,7 +28,8 @@ import java.util.Map; @RequestMapping("api/home") public class HomeApiController { - + @Resource + private ProductFeignClient productFeignClient; @Autowired private HomeService homeService; @@ -39,4 +42,13 @@ public class HomeApiController { return Result.ok(map); } + + @ApiOperation(value = "获取分类信息") + @GetMapping("category") + public Result category() { + return Result.ok(productFeignClient.findAllCategoryList()); + } + + + } diff --git a/guigu-ssyx-parent/service/service-search/pom.xml b/guigu-ssyx-parent/service/service-search/pom.xml index 9ee8104..c4ea134 100644 --- a/guigu-ssyx-parent/service/service-search/pom.xml +++ b/guigu-ssyx-parent/service/service-search/pom.xml @@ -28,6 +28,12 @@ 1.0-SNAPSHOT compile + + com.atguigu + service-activity-client + 1.0-SNAPSHOT + compile + 8 diff --git a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/api/SearchApiController.java b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/api/SearchApiController.java new file mode 100644 index 0000000..35bb681 --- /dev/null +++ b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/api/SearchApiController.java @@ -0,0 +1,11 @@ +package com.atguigu.ssyx.search.api; + +/** + * ClassName: SearchApiController + * Package: com.atguigu.ssyx.search.api + * + * @author yovinchen + * @Create 2023/9/26 14:21 + */ +public class SearchApiController { +} diff --git a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java index 89e2254..203abcb 100644 --- a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java +++ b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java @@ -3,8 +3,13 @@ package com.atguigu.ssyx.search.controller; import com.atguigu.ssyx.common.result.Result; import com.atguigu.ssyx.model.search.SkuEs; import com.atguigu.ssyx.search.service.SkuService; +import com.atguigu.ssyx.vo.search.SkuEsQueryVo; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -45,4 +50,16 @@ public class SkuApiController { public List findHotSkuList() { return skuService.findHotSkuList(); } + + @ApiOperation(value = "搜索分类商品") + @GetMapping("{page}/{limit}") + public Result list( + @ApiParam(name = "page", value = "当前页码", required = true) @PathVariable Integer page, + @ApiParam(name = "limit", value = "每页记录数", required = true) @PathVariable Integer limit, + @ApiParam(name = "searchParamVo", value = "查询对象", required = false) SkuEsQueryVo searchParamVo) { + + Pageable pageable = PageRequest.of(page - 1, limit); + Page pageModel = skuService.search(pageable, searchParamVo); + return Result.ok(pageModel); + } } diff --git a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java index 5fc9033..e314b7b 100644 --- a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java +++ b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java @@ -6,9 +6,6 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; -import java.net.ContentHandler; -import java.util.List; - /** * ClassName: SkuRepository * Package: com.atguigu.ssyx.search.repository @@ -20,4 +17,23 @@ public interface SkuRepository extends ElasticsearchRepository { //获取爆款商品 Page findByOrderByHotScoreDesc(Pageable pageable); + /** + * 根据仓库id + 分类id查询 + * + * @param categoryId + * @param wareId + * @param pageable + * @return + */ + Page findByCategoryIdAndWareId(Long categoryId, Long wareId, Pageable pageable); + + /** + * 仓库id + keyword进行查询 + * + * @param keyword + * @param wareId + * @param pageable + * @return + */ + Page findByKeywordAndWareId(String keyword, Long wareId, Pageable pageable); } diff --git a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java index 14ee8f2..60ecf2f 100644 --- a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java +++ b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java @@ -1,6 +1,9 @@ package com.atguigu.ssyx.search.service; import com.atguigu.ssyx.model.search.SkuEs; +import com.atguigu.ssyx.vo.search.SkuEsQueryVo; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.List; @@ -36,4 +39,13 @@ public interface SkuService { * @return */ List findHotSkuList(); + + /** + * 搜索分类商品 + * + * @param pageable + * @param searchParamVo + * @return + */ + Page search(Pageable pageable, SkuEsQueryVo searchParamVo); } diff --git a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java index 57948bf..dd39dd5 100644 --- a/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java +++ b/guigu-ssyx-parent/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java @@ -1,22 +1,29 @@ package com.atguigu.ssyx.search.service.impl; import com.alibaba.fastjson.JSON; +import com.atguigu.ssyx.client.activity.ActivityFeignClient; import com.atguigu.ssyx.client.product.ProductFeignClient; +import com.atguigu.ssyx.common.auth.AuthContextHolder; import com.atguigu.ssyx.enums.SkuType; import com.atguigu.ssyx.model.product.Category; import com.atguigu.ssyx.model.product.SkuInfo; import com.atguigu.ssyx.model.search.SkuEs; import com.atguigu.ssyx.search.repository.SkuRepository; import com.atguigu.ssyx.search.service.SkuService; +import com.atguigu.ssyx.vo.search.SkuEsQueryVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** * ClassName: SkuServiceImpl @@ -31,6 +38,8 @@ public class SkuServiceImpl implements SkuService { @Autowired private ProductFeignClient productFeignClient; + @Autowired + private ActivityFeignClient activityFeignClient; @Autowired private SkuRepository skuRepository; @@ -95,4 +104,55 @@ public class SkuServiceImpl implements SkuService { List skuEsList = page.getContent(); return skuEsList; } + + /** + * 搜索分类商品 + * + * @param pageable + * @param skuEsQueryVo + * @return + */ + @Override + public Page search(Pageable pageable, SkuEsQueryVo skuEsQueryVo) { + //1 向SkuEsQueryVo设置wareId,当前登录用户的仓库id + skuEsQueryVo.setWareId(AuthContextHolder.getWareId()); + + Page pageModel = null; + //2 调用SkuRepository方法,根据springData命名规则定义方法,进行条件查询 + //// 判断keyword是否为空,如果为空 ,根据仓库id + 分类id查询 + String keyword = skuEsQueryVo.getKeyword(); + if (StringUtils.isEmpty(keyword)) { + pageModel = skuRepository.findByCategoryIdAndWareId(skuEsQueryVo.getCategoryId(), skuEsQueryVo.getWareId(), pageable); + } else { + ///如果keyword不为空根据仓库id + keyword进行查询 + pageModel = skuRepository.findByKeywordAndWareId(skuEsQueryVo.getKeyword(), skuEsQueryVo.getWareId(), pageable); + } + + //3 查询商品参加优惠活动 + List skuEsList = pageModel.getContent(); + + if (!CollectionUtils.isEmpty(skuEsList)) { + //遍历skuEsList,得到所有skuId + List skuIdList = skuEsList.stream() + .map(SkuEs::getId) + .collect(Collectors.toList()); + //根据skuId列表远程调用,调用service-activity里面的接口得到数据 + //返回Map> + //// map集合key就是skuId值,Long类型 + //// map集合value是List集合,sku参与活动里面多个规则名称列表 + ///// 一个商品参加一个活动,一个活动里面可以有多个规则 + ////// 比如有活动:中秋节满减活动 + ////// 一个活动可以有多个规则: + ////// 中秋节满减活动有两个规则:满20元减1元,满58元减5元 + Map> skuIdToRuleListMap = activityFeignClient.findActivity(skuIdList);//远程调用 + //封装获取数据到skuEs里面 ruleList属性里面 + if (skuIdToRuleListMap != null) { + skuEsList.forEach(skuEs -> { + skuEs.setRuleList(skuIdToRuleListMap.get(skuEs.getId())); + }); + } + } + return pageModel; + + } } diff --git a/guigu-ssyx-parent/service/service-search/src/main/resources/application-dev.yml b/guigu-ssyx-parent/service/service-search/src/main/resources/application-dev.yml index 632ef57..7811d78 100644 --- a/guigu-ssyx-parent/service/service-search/src/main/resources/application-dev.yml +++ b/guigu-ssyx-parent/service/service-search/src/main/resources/application-dev.yml @@ -28,7 +28,7 @@ spring: acknowledge-mode: manual #消费端手动确认 redis: - host: localhost + host: 82.157.68.223 port: 6379 database: 0 timeout: 1800000 diff --git a/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/api/LeaderAddressController.java b/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/api/LeaderAddressController.java index 96b9a9d..b67b4e1 100644 --- a/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/api/LeaderAddressController.java +++ b/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/api/LeaderAddressController.java @@ -28,7 +28,7 @@ public class LeaderAddressController { @ApiOperation("提货点地址信息") @GetMapping("inner/getUserAddressByUserId/{userId}") - public LeaderAddressVo getUserAddressByUserId(@PathVariable(value = "userId") Long userId) { + public LeaderAddressVo getUserAddressByUserId(@PathVariable("userId") Long userId) { return userService.getLeaderAddressByUserId(userId); } } diff --git a/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeixinApiController.java b/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeixinApiController.java index 22065e6..11180a2 100644 --- a/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeixinApiController.java +++ b/guigu-ssyx-parent/service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeixinApiController.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*; * @Create 2023/9/22 16:23 */ @RestController -@RequestMapping("/api/user/weixin") +@RequestMapping("api/user/weixin") public class WeixinApiController { @Autowired @@ -27,12 +27,12 @@ public class WeixinApiController { //用户微信授权登录 @ApiOperation(value = "微信登录获取openid(小程序)") - @GetMapping("/wxLogin/{code}") + @GetMapping("wxLogin/{code}") public Result loginWx(@PathVariable String code) { return Result.ok(loginWxService.loginWx(code)); } - @PostMapping("/auth/updateUser") + @PostMapping("auth/updateUser") @ApiOperation(value = "更新用户昵称与头像") public Result updateUser(@RequestBody User user) { userService.updateUser(user);