From 58d41775cf795d0a17c41bd04e7e94d29e1f8ea7 Mon Sep 17 00:00:00 2001 From: Chopper Date: Thu, 22 Jul 2021 17:26:10 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=BA=97=E9=93=BA=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E4=B8=8D=E8=AE=B0=E5=BD=95PV=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/lili/controller/store/StoreBuyerController.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java index a472a92a..c3d824d4 100644 --- a/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java +++ b/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java @@ -4,8 +4,6 @@ import cn.lili.common.enums.ResultUtil; import cn.lili.common.security.context.UserContext; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.statistics.aop.PageViewPoint; -import cn.lili.modules.statistics.aop.enums.PageViewEnum; import cn.lili.modules.store.entity.dto.StoreBankDTO; import cn.lili.modules.store.entity.dto.StoreCompanyDTO; import cn.lili.modules.store.entity.dto.StoreOtherInfoDTO; @@ -61,7 +59,6 @@ public class StoreBuyerController { @ApiOperation(value = "通过id获取店铺信息") @ApiImplicitParam(name = "id", value = "店铺ID", required = true, paramType = "path") @GetMapping(value = "/get/detail/{id}") - @PageViewPoint(type = PageViewEnum.STORE, id = "#id") public ResultMessage detail(@NotNull @PathVariable String id) { return ResultUtil.data(storeDetailService.getStoreBasicInfoDTO(id)); } From 280c5dec390b2498fc2f57e1a27d3ffcf21d80bc Mon Sep 17 00:00:00 2001 From: Chopper Date: Thu, 22 Jul 2021 17:33:57 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B3=A8=E8=A7=A3=E5=8C=85=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/lili/controller/member/MemberManagerController.java | 2 +- .../cn/lili/controller/other/PageDataManagerController.java | 2 +- .../cn/lili/controller/passport/AdminUserManagerController.java | 2 +- .../cn/lili/controller/permission/MenuManagerController.java | 2 +- .../cn/lili/controller/setting/RegionManagerController.java | 2 +- .../cn/lili/controller/setting/SettingManagerController.java | 2 +- .../java/cn/lili/controller/store/StoreManagerController.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/manager-api/src/main/java/cn/lili/controller/member/MemberManagerController.java b/manager-api/src/main/java/cn/lili/controller/member/MemberManagerController.java index a2805fb9..9ec1473b 100644 --- a/manager-api/src/main/java/cn/lili/controller/member/MemberManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/member/MemberManagerController.java @@ -3,7 +3,7 @@ package cn.lili.controller.member; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.system.aspect.DemoSite; +import cn.lili.modules.system.aspect.annotation.DemoSite; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dto.ManagerMemberEditDTO; import cn.lili.modules.member.entity.dto.MemberAddDTO; diff --git a/manager-api/src/main/java/cn/lili/controller/other/PageDataManagerController.java b/manager-api/src/main/java/cn/lili/controller/other/PageDataManagerController.java index b5f1a897..035ac038 100644 --- a/manager-api/src/main/java/cn/lili/controller/other/PageDataManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/other/PageDataManagerController.java @@ -3,7 +3,7 @@ package cn.lili.controller.other; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.system.aspect.DemoSite; +import cn.lili.modules.system.aspect.annotation.DemoSite; import cn.lili.modules.page.entity.dos.PageData; import cn.lili.modules.page.entity.dto.PageDataDTO; import cn.lili.modules.page.entity.vos.PageDataListVO; diff --git a/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java b/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java index e06a2d5e..27388dd2 100644 --- a/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java @@ -13,7 +13,7 @@ import cn.lili.modules.verification.service.VerificationService; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.SearchVO; -import cn.lili.modules.system.aspect.DemoSite; +import cn.lili.modules.system.aspect.annotation.DemoSite; import cn.lili.modules.permission.entity.dos.AdminUser; import cn.lili.modules.permission.entity.dto.AdminUserDTO; import cn.lili.modules.permission.entity.vo.AdminUserVO; diff --git a/manager-api/src/main/java/cn/lili/controller/permission/MenuManagerController.java b/manager-api/src/main/java/cn/lili/controller/permission/MenuManagerController.java index ae116231..b6d8c11c 100644 --- a/manager-api/src/main/java/cn/lili/controller/permission/MenuManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/permission/MenuManagerController.java @@ -2,7 +2,7 @@ package cn.lili.controller.permission; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.system.aspect.DemoSite; +import cn.lili.modules.system.aspect.annotation.DemoSite; import cn.lili.modules.permission.entity.dos.Menu; import cn.lili.modules.permission.entity.dto.MenuSearchParams; import cn.lili.modules.permission.entity.vo.MenuVO; diff --git a/manager-api/src/main/java/cn/lili/controller/setting/RegionManagerController.java b/manager-api/src/main/java/cn/lili/controller/setting/RegionManagerController.java index 4bac14ba..558b6e2c 100644 --- a/manager-api/src/main/java/cn/lili/controller/setting/RegionManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/setting/RegionManagerController.java @@ -2,7 +2,7 @@ package cn.lili.controller.setting; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.system.aspect.DemoSite; +import cn.lili.modules.system.aspect.annotation.DemoSite; import cn.lili.modules.system.service.RegionService; import cn.lili.modules.system.entity.dos.Region; import io.swagger.annotations.Api; diff --git a/manager-api/src/main/java/cn/lili/controller/setting/SettingManagerController.java b/manager-api/src/main/java/cn/lili/controller/setting/SettingManagerController.java index a1679096..6a50e678 100644 --- a/manager-api/src/main/java/cn/lili/controller/setting/SettingManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/setting/SettingManagerController.java @@ -5,7 +5,7 @@ import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.system.aspect.DemoSite; +import cn.lili.modules.system.aspect.annotation.DemoSite; import cn.lili.modules.system.entity.dos.Setting; import cn.lili.modules.system.entity.dto.*; import cn.lili.modules.system.entity.dto.connect.QQConnectSetting; diff --git a/manager-api/src/main/java/cn/lili/controller/store/StoreManagerController.java b/manager-api/src/main/java/cn/lili/controller/store/StoreManagerController.java index 23fe97ee..dffa4b5a 100644 --- a/manager-api/src/main/java/cn/lili/controller/store/StoreManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/store/StoreManagerController.java @@ -3,7 +3,7 @@ package cn.lili.controller.store; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.system.aspect.DemoSite; +import cn.lili.modules.system.aspect.annotation.DemoSite; import cn.lili.modules.goods.entity.vos.CategoryVO; import cn.lili.modules.store.entity.dos.Store; import cn.lili.modules.store.entity.dto.AdminStoreApplyDTO; From e99aeeede5018acf69c5494d1f2e22725b4233a9 Mon Sep 17 00:00:00 2001 From: Chopper Date: Sun, 25 Jul 2021 17:45:46 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=83=AD=E8=AF=8D=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E6=8F=90=E4=BE=9Bredis=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=A2=9E=E5=8A=A0=E6=9D=83=E9=87=8D=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hotwords/HotWordsEveryDayTaskExecute.java | 30 ++++++++++++ .../src/main/java/cn/lili/cache/Cache.java | 27 +++++++---- .../java/cn/lili/cache/impl/RedisCache.java | 10 ++-- .../entity/enums/HotWordsRedisKeyEnum.java | 24 ---------- .../search/service/EsGoodsSearchService.java | 8 ++++ .../serviceimpl/EsGoodsSearchServiceImpl.java | 16 +++++-- .../system/token/ManagerTokenGenerate.java | 16 +++++-- .../setting/HotWordsManagerController.java | 47 +++++++++++++++++++ .../InstantDeliveryManagerController.java | 1 - 9 files changed, 134 insertions(+), 45 deletions(-) create mode 100644 consumer/src/main/java/cn/lili/timetask/handler/impl/hotwords/HotWordsEveryDayTaskExecute.java delete mode 100644 framework/src/main/java/cn/lili/modules/search/entity/enums/HotWordsRedisKeyEnum.java create mode 100755 manager-api/src/main/java/cn/lili/controller/setting/HotWordsManagerController.java diff --git a/consumer/src/main/java/cn/lili/timetask/handler/impl/hotwords/HotWordsEveryDayTaskExecute.java b/consumer/src/main/java/cn/lili/timetask/handler/impl/hotwords/HotWordsEveryDayTaskExecute.java new file mode 100644 index 00000000..a6e99c32 --- /dev/null +++ b/consumer/src/main/java/cn/lili/timetask/handler/impl/hotwords/HotWordsEveryDayTaskExecute.java @@ -0,0 +1,30 @@ +package cn.lili.timetask.handler.impl.hotwords; + +import cn.lili.cache.Cache; +import cn.lili.cache.CachePrefix; +import cn.lili.timetask.handler.EveryDayExecute; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author paulG + * @since 2021/3/11 + **/ +@Slf4j +@Component +public class HotWordsEveryDayTaskExecute implements EveryDayExecute { + + @Autowired + private Cache cache; + + /** + * 执行每日任务 + */ + @Override + public void execute() { + //移除昨日的热搜词 + cache.remove(CachePrefix.HOT_WORD.getPrefix()); + } + +} diff --git a/framework/src/main/java/cn/lili/cache/Cache.java b/framework/src/main/java/cn/lili/cache/Cache.java index c8c69080..cd475d4d 100644 --- a/framework/src/main/java/cn/lili/cache/Cache.java +++ b/framework/src/main/java/cn/lili/cache/Cache.java @@ -60,7 +60,7 @@ public interface Cache { * Add an item to the cache, nontransactionally, with * failfast semantics * - * @param key 缓存key + * @param key 缓存key * @param value 缓存value */ void put(Object key, T value); @@ -68,7 +68,7 @@ public interface Cache { /** * 往缓存中写入内容 * - * @param key 缓存key + * @param key 缓存key * @param value 缓存value * @param exp 超时时间,单位为秒 */ @@ -77,9 +77,9 @@ public interface Cache { /** * 往缓存中写入内容 * - * @param key 缓存key - * @param value 缓存value - * @param exp 过期时间 + * @param key 缓存key + * @param value 缓存value + * @param exp 过期时间 * @param timeUnit 过期单位 */ void put(Object key, T value, Long exp, TimeUnit timeUnit); @@ -124,7 +124,7 @@ public interface Cache { /** * 读取缓存值 * - * @param key 缓存key + * @param key 缓存key * @param hashKey map value * @return 返回缓存中的数据 */ @@ -142,8 +142,7 @@ public interface Cache { * 是否包含 * * @param key 缓存key - * @return 缓存中的数据 - * + * @return 缓存中的数据 */ boolean hasKey(Object key); @@ -164,7 +163,7 @@ public interface Cache { * 效率较高的 计数器 * 如需清零,按照普通key 移除即可 * - * @param key key值 + * @param key key值 * @param value 去重统计值 * @return 计数器结果 */ @@ -223,6 +222,16 @@ public interface Cache { */ void incrementScore(String sortedSetName, String keyword); + /** + * 使用Sorted Set记录keyword + * zincrby命令,对于一个Sorted Set,存在的就把分数加x(x可自行设定),不存在就创建一个分数为1的成员 + * + * @param sortedSetName sortedSetName的Sorted Set不用预先创建,不存在会自动创建,存在则向里添加数据 + * @param keyword 关键词 + * @param score 分数 + */ + void incrementScore(String sortedSetName, String keyword, Integer score); + /** * zrevrange命令, 查询Sorted Set中指定范围的值 * 返回的有序集合中,score大的在前面 diff --git a/framework/src/main/java/cn/lili/cache/impl/RedisCache.java b/framework/src/main/java/cn/lili/cache/impl/RedisCache.java index ef96f058..f34515e5 100644 --- a/framework/src/main/java/cn/lili/cache/impl/RedisCache.java +++ b/framework/src/main/java/cn/lili/cache/impl/RedisCache.java @@ -223,9 +223,13 @@ public class RedisCache implements Cache { */ @Override public void incrementScore(String sortedSetName, String keyword) { - //x 的含义请见本方法的注释 - double x = 1.0; - this.redisTemplate.opsForZSet().incrementScore(sortedSetName, keyword, x); + //指向key名为KEY的zset元素 + redisTemplate.opsForZSet().incrementScore(sortedSetName,keyword, 1); + } + + @Override + public void incrementScore(String sortedSetName, String keyword, Integer score) { + redisTemplate.opsForZSet().incrementScore(sortedSetName, keyword, score); } /** diff --git a/framework/src/main/java/cn/lili/modules/search/entity/enums/HotWordsRedisKeyEnum.java b/framework/src/main/java/cn/lili/modules/search/entity/enums/HotWordsRedisKeyEnum.java deleted file mode 100644 index 1ccaf7e1..00000000 --- a/framework/src/main/java/cn/lili/modules/search/entity/enums/HotWordsRedisKeyEnum.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.lili.modules.search.entity.enums; - -/** - * @author paulG - * @since 2021/1/20 - **/ -public enum HotWordsRedisKeyEnum { - - /** - * "搜索热词" - */ - SEARCH_HOT_WORD("搜索热词"); - - - private final String description; - - HotWordsRedisKeyEnum(String description) { - this.description = description; - } - - public String description() { - return description; - } -} diff --git a/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java b/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java index 795b7e37..1099c0ba 100644 --- a/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java +++ b/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java @@ -34,6 +34,14 @@ public interface EsGoodsSearchService { */ List getHotWords(Integer start, Integer end); + /** + * 设置热门关键词 + * + * @param words 关键词 + * @param point 赋予分数 + */ + void setHotWords(String words, Integer point); + /** * 获取筛选器 * diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java index ec039e52..7637c196 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java @@ -3,6 +3,7 @@ package cn.lili.modules.search.serviceimpl; import cn.hutool.core.convert.Convert; import cn.hutool.core.text.CharSequenceUtil; import cn.lili.cache.Cache; +import cn.lili.cache.CachePrefix; import cn.lili.common.utils.StringUtils; import cn.lili.common.vo.PageVO; import cn.lili.modules.goods.entity.dos.Brand; @@ -16,7 +17,6 @@ import cn.lili.modules.search.entity.dos.EsGoodsRelatedInfo; import cn.lili.modules.search.entity.dto.EsGoodsSearchDTO; import cn.lili.modules.search.entity.dto.ParamOptions; import cn.lili.modules.search.entity.dto.SelectorOptions; -import cn.lili.modules.search.entity.enums.HotWordsRedisKeyEnum; import cn.lili.modules.search.repository.EsGoodsIndexRepository; import cn.lili.modules.search.service.EsGoodsSearchService; import lombok.extern.slf4j.Slf4j; @@ -51,6 +51,7 @@ import java.util.*; /** * ES商品搜索业务层实现 + * * @author paulG * @since 2020/10/16 **/ @@ -90,7 +91,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { @Override public Page searchGoods(EsGoodsSearchDTO searchDTO, PageVO pageVo) { if (CharSequenceUtil.isNotEmpty(searchDTO.getKeyword())) { - cache.incrementScore(HotWordsRedisKeyEnum.SEARCH_HOT_WORD.name(), searchDTO.getKeyword()); + cache.incrementScore(CachePrefix.HOT_WORD.getPrefix(), searchDTO.getKeyword()); } NativeSearchQueryBuilder searchQueryBuilder = createSearchQueryBuilder(searchDTO, pageVo, true); NativeSearchQuery searchQuery = searchQueryBuilder.build(); @@ -102,13 +103,18 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { @Override public List getHotWords(Integer start, Integer end) { List hotWords = new ArrayList<>(); - Set set = cache.reverseRangeWithScores(HotWordsRedisKeyEnum.SEARCH_HOT_WORD.name(), start, end); + Set set = cache.reverseRangeWithScores(CachePrefix.HOT_WORD.getPrefix(), start, end); for (DefaultTypedTuple defaultTypedTuple : set) { hotWords.add(Objects.requireNonNull(defaultTypedTuple.getValue()).toString()); } return hotWords; } + @Override + public void setHotWords(String words, Integer point) { + cache.incrementScore(CachePrefix.HOT_WORD.getPrefix(), words, point); + } + @Override public EsGoodsRelatedInfo getSelector(EsGoodsSearchDTO goodsSearch, PageVO pageVo) { NativeSearchQueryBuilder builder = createSearchQueryBuilder(goodsSearch, null, true); @@ -318,6 +324,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { /** * 查询属性处理 + * * @param filterBuilder * @param queryBuilder * @param searchDTO @@ -391,7 +398,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { //价格区间判定 if (CharSequenceUtil.isNotEmpty(searchDTO.getPrice())) { String[] prices = searchDTO.getPrice().split("_"); - if(prices.length==0){ + if (prices.length == 0) { return; } double min = Convert.toDouble(prices[0], 0.0); @@ -406,6 +413,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { /** * 关键字查询处理 + * * @param filterBuilder * @param queryBuilder * @param keyword diff --git a/framework/src/main/java/cn/lili/modules/system/token/ManagerTokenGenerate.java b/framework/src/main/java/cn/lili/modules/system/token/ManagerTokenGenerate.java index ee621f04..3948977c 100644 --- a/framework/src/main/java/cn/lili/modules/system/token/ManagerTokenGenerate.java +++ b/framework/src/main/java/cn/lili/modules/system/token/ManagerTokenGenerate.java @@ -3,8 +3,8 @@ package cn.lili.modules.system.token; import cn.lili.cache.Cache; import cn.lili.cache.CachePrefix; import cn.lili.common.security.AuthUser; -import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.PermissionEnum; +import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.token.Token; import cn.lili.common.security.token.TokenUtil; import cn.lili.common.security.token.base.AbstractTokenGenerate; @@ -116,11 +116,19 @@ public class ManagerTokenGenerate extends AbstractTokenGenerate { */ void initPermission(List superPermissions, List queryPermissions) { //用户信息维护 - superPermissions.add("/manager/user/info"); - superPermissions.add("/manager/user/edit"); + superPermissions.add("/manager/user/info*"); + superPermissions.add("/manager/user/edit*"); superPermissions.add("/manager/user/editPassword*"); - //统计查看 + + //统计查看权限 queryPermissions.add("/manager/statistics*"); + //菜单查看权限 + queryPermissions.add("/manager/menu*"); + //商品分类查看权限 + queryPermissions.add("/manager/goods/category*"); + //查看地区接口 + queryPermissions.add("/manager/region*"); + } } diff --git a/manager-api/src/main/java/cn/lili/controller/setting/HotWordsManagerController.java b/manager-api/src/main/java/cn/lili/controller/setting/HotWordsManagerController.java new file mode 100755 index 00000000..91d9a5da --- /dev/null +++ b/manager-api/src/main/java/cn/lili/controller/setting/HotWordsManagerController.java @@ -0,0 +1,47 @@ +package cn.lili.controller.setting; + +import cn.lili.common.enums.ResultUtil; +import cn.lili.common.vo.ResultMessage; +import cn.lili.modules.search.service.EsGoodsSearchService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 管理端,app版本控制器 + * + * @author Chopper + * @since 2018-07-04 21:50:52 + */ +@RestController +@Api(tags = "管理端,系统设置扩展接口") +@RequestMapping("/manager/hotwords") +public class HotWordsManagerController { + + @Autowired + private EsGoodsSearchService esGoodsSearchService; + + @ApiOperation(value = "获取热词") + @GetMapping + public ResultMessage getHotWords() { + return ResultUtil.data(esGoodsSearchService.getHotWords(0, 99)); + } + + @ApiOperation(value = "设置热词") + @ApiImplicitParams({ + @ApiImplicitParam(name = "keywords", value = "关键字"), + @ApiImplicitParam(name = "point", value = "权重值") + }) + @PostMapping + public ResultMessage paymentForm(String keywords, Integer point) { + esGoodsSearchService.setHotWords(keywords, point); + return ResultUtil.success(); + } + +} diff --git a/manager-api/src/main/java/cn/lili/controller/setting/InstantDeliveryManagerController.java b/manager-api/src/main/java/cn/lili/controller/setting/InstantDeliveryManagerController.java index bd6e68ce..bd9e6dc6 100644 --- a/manager-api/src/main/java/cn/lili/controller/setting/InstantDeliveryManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/setting/InstantDeliveryManagerController.java @@ -39,7 +39,6 @@ public class InstantDeliveryManagerController { IPage data = instantDeliveryService.page(PageUtil.initPage(page)); //组织数据结构 IPage newData = instantDeliveryService.getInstantDeliveryPage(data, page); - System.out.println(); //返回数据 return ResultUtil.data(newData); } From 0514bec9948f55a39535fc2e14b766492387d23c Mon Sep 17 00:00:00 2001 From: Chopper Date: Sun, 25 Jul 2021 17:46:24 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=AB=AF=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=A8=A1=E5=9D=97=E6=A0=A1=E9=AA=8C=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/ManagerAuthenticationFilter.java | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/manager-api/src/main/java/cn/lili/security/ManagerAuthenticationFilter.java b/manager-api/src/main/java/cn/lili/security/ManagerAuthenticationFilter.java index d8fa20ed..70706a82 100755 --- a/manager-api/src/main/java/cn/lili/security/ManagerAuthenticationFilter.java +++ b/manager-api/src/main/java/cn/lili/security/ManagerAuthenticationFilter.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import cn.lili.cache.Cache; import cn.lili.cache.CachePrefix; import cn.lili.common.security.AuthUser; +import cn.lili.common.security.enums.PermissionEnum; import cn.lili.common.security.enums.SecurityEnum; import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.token.SecretKeyUtil; @@ -20,6 +21,8 @@ import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; +import org.springframework.util.PatternMatchUtils; +import org.springframework.web.bind.annotation.RequestMethod; import javax.naming.NoPermissionException; import javax.servlet.FilterChain; @@ -71,27 +74,28 @@ public class ManagerAuthenticationFilter extends BasicAuthenticationFilter { */ private void customAuthentication(HttpServletRequest request, HttpServletResponse response, UsernamePasswordAuthenticationToken authentication) throws NoPermissionException { AuthUser authUser = (AuthUser) authentication.getDetails(); + String requestUrl = request.getRequestURI(); Map> permission = (Map>) cache.get(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER) + authUser.getId()); - if (authUser.getIsSuper()) { - return; - } else { - //用户是否拥有权限判定œ + //如果不是超级管理员, 不做鉴权 + if (!authUser.getIsSuper()) { //获取数据权限 -// if (request.getMethod().equals(RequestMethod.GET.name())) { -// if (!PatternMatchUtils.simpleMatch(permission.get(PermissionEnum.SUPER).toArray(new String[0]), request.getRequestURI()) || -// PatternMatchUtils.simpleMatch(permission.get(PermissionEnum.QUERY).toArray(new String[0]), request.getRequestURI())) { -// -// ResponseUtil.output(response, ResponseUtil.resultMap(false, 401, "抱歉,您没有访问权限")); -// throw new NoPermissionException("权限不足"); -// } -// } else { -// if (!PatternMatchUtils.simpleMatch(permission.get(PermissionEnum.SUPER).toArray(new String[0]), request.getRequestURI())) { -// -// ResponseUtil.output(response, ResponseUtil.resultMap(false, 401, "抱歉,您没有访问权限")); -// throw new NoPermissionException("权限不足"); -// } -// } - return; + if (request.getMethod().equals(RequestMethod.GET.name())) { + //如果用户的超级权限和查阅权限都不包含当前请求的api + if (!PatternMatchUtils.simpleMatch(permission.get(PermissionEnum.SUPER.name()).toArray(new String[0]), requestUrl) && + !PatternMatchUtils.simpleMatch(permission.get(PermissionEnum.QUERY.name()).toArray(new String[0]), requestUrl)) { + + ResponseUtil.output(response, ResponseUtil.resultMap(false, 401, "抱歉,您没有访问权限")); + throw new NoPermissionException("权限不足"); + } + } + //非get请求(数据操作) 判定 + else { + if (!PatternMatchUtils.simpleMatch(permission.get(PermissionEnum.SUPER.name()).toArray(new String[0]), request.getRequestURI())) { + + ResponseUtil.output(response, ResponseUtil.resultMap(false, 401, "抱歉,您没有访问权限")); + throw new NoPermissionException("权限不足"); + } + } } }