|
@@ -23,6 +23,7 @@ import com.fdkankan.redis.constant.RedisKey;
|
|
|
import com.fdkankan.redis.constant.RedisLockKey;
|
|
|
import com.fdkankan.redis.util.RedisLockUtil;
|
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
|
+import com.fdkankan.scene.bean.IconBean;
|
|
|
import com.fdkankan.scene.entity.*;
|
|
|
import com.fdkankan.scene.mapper.ISceneProMapper;
|
|
|
import com.fdkankan.scene.service.*;
|
|
@@ -2338,11 +2339,37 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
if(icons == null){
|
|
|
icons = Sets.newHashSet();
|
|
|
}
|
|
|
- result.put("icons", icons);
|
|
|
+ List<String> iconList = this.sortIcons(tags, icons);
|
|
|
+ result.put("icons", iconList);
|
|
|
|
|
|
return ResultData.ok(result);
|
|
|
}
|
|
|
|
|
|
+ private List<String> sortIcons(List<JSONObject> tags, Set<String> icons){
|
|
|
+
|
|
|
+ //统计使用频次
|
|
|
+ List<IconBean> iconBeans = Lists.newArrayList();
|
|
|
+ for (String icon : icons) {
|
|
|
+ int count = 0;
|
|
|
+ for (JSONObject tag : tags) {
|
|
|
+ String sid = tag.getString("icon");
|
|
|
+ if(StrUtil.isEmpty(sid) || !icon.equals(sid)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ ++count;
|
|
|
+ }
|
|
|
+ iconBeans.add(IconBean.builder().icon(icon).count(count).build());
|
|
|
+ }
|
|
|
+
|
|
|
+ //排序
|
|
|
+ List<String> iconList = iconBeans.stream().sorted(Comparator.comparing(IconBean::getCount).reversed())
|
|
|
+ .map(item -> {
|
|
|
+ return item.getIcon();
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ return iconList;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
保证热点数据安全性,当redis宕机导致热点数据丢失时,可以从文件中读取,恢复到redis
|