diff --git a/README.md b/README.md index b4ebe4b7..a23e42fd 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,5 @@ ## Lilishop B2B2C商城系统 -##### 开源不易,如有帮助请点Star - - - #### 欢迎交流需求,交流业务,交流技术(基础问题自行解决,进群先看文档后提问) @@ -28,13 +24,13 @@ Lilishop商城系统支持商家入驻,后端基于SpringBoot 研发,前端使用 Vue、uniapp开发, **系统全端全部代码开源** -商城前后端分离,支持分布式部署,支持Docker,各个API独立,并且有独立的消费者。 +前后端分离,支持分布式部署,支持Docker,各个API独立,并且有独立的消费者。 ### 商城 API/消费者 聚合版 api不需要单独部署,只需启动一个jar包就可以正常运转 如有需要,可以点击跳转 https://gitee.com/beijing_hongye_huicheng/lilishop-simplify -### 商城 开发/使用/常见问题 帮助文档 +### 开发/使用/常见问题 帮助文档 https://docs.pickmall.cn @@ -61,7 +57,7 @@ PS:手机验证码为 ‘111111’ ![image-20210511171611793](https://pickmall.cn/assets/imgs/h5-qrcode.png) -### 快速部署本地商城 +### 快速本地部署 [点击跳转](https://docs.pickmall.cn/deploy/%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.html) @@ -138,11 +134,19 @@ PS:手机验证码为 ‘111111’ ### 版本升级 ``` -商城后续会持续版本升级,修复bug,完善功能,覆盖更多业务场景 o2o/b2b/s2b2b2c/跨境电商 - -后续会考虑推出微服务商城系统/商城中台等 +系统后续会提供多场景解决方案。 +更多架构:微服务、Saas、中台等,都会支持。 支持差价升级商业授权 ``` +### 商业授权 +商业版本与开源版本代码一致,没有区分 + +商业使用需要授权,授权方式可选择联系官网客服,或者qq群联系群主。 + +商业授权模式为永久授权,支持永久升级。 + +商业案例由于涉及部分多层二开关系,如需了解可以咨询销售。 + ### 开源须知 1.仅允许用于个人学习研究使用. @@ -151,7 +155,8 @@ PS:手机验证码为 ‘111111’ 3.软件受国家计算机软件著作权保护(登记号:2021SR0805085)。 -4.限制商用,如果需要商业使用请联系我们。QQ3409056806. +4.限制商用,如果需要商业使用请联系我们。QQ3409056806.或者加入qq群联系群主。 + ### 交流群 diff --git a/common-api/src/main/java/cn/lili/controller/common/RegionController.java b/common-api/src/main/java/cn/lili/controller/common/RegionController.java index f951f058..9abcfce3 100644 --- a/common-api/src/main/java/cn/lili/controller/common/RegionController.java +++ b/common-api/src/main/java/cn/lili/controller/common/RegionController.java @@ -2,9 +2,9 @@ package cn.lili.controller.common; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.system.service.RegionService; import cn.lili.modules.system.entity.dos.Region; import cn.lili.modules.system.entity.vo.RegionVO; +import cn.lili.modules.system.service.RegionService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -38,6 +38,11 @@ public class RegionController { return ResultUtil.data(regionService.getRegion(cityCode,townName)); } + @GetMapping(value = "/name") + @ApiOperation(value = "根据名字获取地区地址id") + public ResultMessage getItemByLastName(String lastName) { + return ResultUtil.data(regionService.getItemByLastName(lastName)); + } @GetMapping(value = "/item/{id}") @ApiImplicitParam(name = "id", value = "地区ID", required = true, dataType = "String", paramType = "path") diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java index 11665dcb..07572e9c 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java @@ -184,6 +184,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl buildKeywordSearch(String keyword) { List filterFunctionBuilders = new ArrayList<>(); - MatchQueryBuilder goodsNameQuery = QueryBuilders.matchQuery("goodsName", keyword).operator(Operator.AND); + // operator 为 AND 时 需全部分词匹配。为 OR 时 需配置 minimumShouldMatch(最小分词匹配数)不设置默认为1 + MatchQueryBuilder goodsNameQuery = QueryBuilders.matchQuery("goodsName", keyword).operator(Operator.OR).minimumShouldMatch("2"); //分词匹配 filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(goodsNameQuery, ScoreFunctionBuilders.weightFactorFunction(10))); diff --git a/framework/src/main/java/cn/lili/modules/system/service/RegionService.java b/framework/src/main/java/cn/lili/modules/system/service/RegionService.java index 53261699..3696d7c3 100644 --- a/framework/src/main/java/cn/lili/modules/system/service/RegionService.java +++ b/framework/src/main/java/cn/lili/modules/system/service/RegionService.java @@ -36,6 +36,14 @@ public interface RegionService extends IService { @Cacheable(key = "#id") List getItem(String id); + /** + * 根据最后一级名称获取改所有上级地区id + * + * @param lastName 最后一级名称 + * @return 全部地区id + */ + String getItemByLastName(String lastName); + /** * 获取地址 * diff --git a/framework/src/main/java/cn/lili/modules/system/serviceimpl/RegionServiceImpl.java b/framework/src/main/java/cn/lili/modules/system/serviceimpl/RegionServiceImpl.java index 5b29279d..dfb8863e 100644 --- a/framework/src/main/java/cn/lili/modules/system/serviceimpl/RegionServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/system/serviceimpl/RegionServiceImpl.java @@ -61,6 +61,25 @@ public class RegionServiceImpl extends ServiceImpl impleme } } + /** + * 根据最后一级名称获取改所有上级地区id + * + * @param lastName 最后一级名称 + * @return 全部地区id + */ + @Override + public String getItemByLastName(String lastName) { + StringBuilder sql = new StringBuilder(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Region::getName, lastName); + Region region = this.getOne(lambdaQueryWrapper, false); + if (region != null) { + sql.append(region.getPath()).append(",").append(region.getId()); + return sql.toString().replace(",0,",""); + } + return null; + } + @Override public List getItem(String id) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/framework/src/main/java/cn/lili/modules/wechat/serviceimpl/WechatMessageServiceImpl.java b/framework/src/main/java/cn/lili/modules/wechat/serviceimpl/WechatMessageServiceImpl.java index 86f9b0fa..448ff57a 100644 --- a/framework/src/main/java/cn/lili/modules/wechat/serviceimpl/WechatMessageServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/wechat/serviceimpl/WechatMessageServiceImpl.java @@ -87,14 +87,14 @@ public class WechatMessageServiceImpl extends ServiceImpl { Map params = new HashMap<>(1); params.put("template_id", templateId); String message = WechatMessageUtil.wechatHandler(HttpUtils.doPostWithJson(delMsgTpl + accessToken, params)); log.info("删除模版请求:{},删除模版响应:{}", params, message); }); - } + }*/ //加入数据 List tmpList = initData();