GeneraterMybatis所生成model查询的serviceimpl应用
来源:互联网 发布:矩阵潜袭 规则 编辑:程序博客网 时间:2024/06/08 12:52
@Service("nRService")public class NRServiceImpl implements NRWuhanService { @Autowired private SelfAddMapper selfAddMapper; @Autowired private DiyNewsresultWuhanMapper newsresultWuhanMapper; @Autowired private DiyNewsresultWuhanHotMapper diyNewsresultWuhanHotMapper; @Autowired private DiyUserKeywordMapper diyUserKeywordMapper; /** * 查询关系图谱 */ @Override public Map<String,Integer> countWordByAreaId(Map<String, Object> paramMap) { int keywordId = Integer.parseInt(paramMap.get("keywordId").toString()); Map<String,Integer> countMap = new HashMap<String,Integer>(); DiyNewsresultWuhanExample example = new DiyNewsresultWuhanExample(); example.createCriteria().andKeywordidEqualTo(keywordId); // 查询需要统计的数据 List<DiyNewsresultWuhan> dataList = newsresultWuhanMapper.selectByExample(example); Map<String,Integer> areaMap = Constants.WUHAN_AREAS; for(DiyNewsresultWuhan bean : dataList){ // 相同的文章数 int sameNum = bean.getSamenum(); // 分割关键词 String[] wordAry = bean.getRelatedwords().split(","); // 遍历关键词,并统计 for(String word : wordAry){ // 如果关键词包含则不统计 if(areaMap.containsKey(word))break; if(countMap.containsKey(word)){ int newCount = countMap.get(word)+sameNum+1; countMap.put(word, newCount); } else { countMap.put(word, sameNum==0?1:sameNum); } } } countMap = sortMap(countMap,20); return countMap; } /** * 查询指定关键词的关系图谱 */ @Override public Map<String,Integer> countWordByKeywordId(Map<String,Object> paramMap){ int keywordId = Integer.parseInt(paramMap.get("keywordId").toString()); Map<String,Integer> countMap = new HashMap<String,Integer>(); DiyNewsresultWuhanHotExample example = new DiyNewsresultWuhanHotExample(); example.createCriteria().andKeywordidEqualTo(keywordId); // 查询需要统计的数据 List<DiyNewsresultWuhanHot> dataList = diyNewsresultWuhanHotMapper.selectByExample(example); Map<String,Integer> hotMap = Constants.HOT_CI; for(DiyNewsresultWuhanHot bean : dataList){ // 相同的文章数 int sameNum = bean.getSamenum(); // 分割关键词 String[] wordAry = bean.getRelatedwords().split(","); // 遍历关键词,并统计 for(String word : wordAry){ // 如果关键词包含在则不统计 if(hotMap.containsKey(word))break; if(countMap.containsKey(word)){ int newCount = countMap.get(word)+sameNum+1; countMap.put(word, newCount); } else { countMap.put(word, sameNum==0?1:sameNum); } } } countMap = sortMap(countMap,20); return countMap; } private static Set<String> fmtStr(String str){ Set<String> wordSet = new HashSet<String>(); String[] strAry = str.split(","); for(String s : strAry){ wordSet.add(s); } return wordSet; } /** * 根据map排序,并倒叙取前几个 * @param oldMap 需要排序的map * @param many 取的个数 * @return */ public static Map<String,Integer> sortMap(Map<String,Integer> oldMap,int many) { ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(oldMap.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Entry<java.lang.String, Integer> arg0, Entry<java.lang.String, Integer> arg1) { return arg0.getValue() - arg1.getValue(); } }); Map<String,Integer> newMap = new LinkedHashMap<String,Integer>(); int count = list.size()>many?many:list.size(); for (int i = count; i > 0; i--) { newMap.put(list.get(list.size()-i).getKey(), list.get(list.size()-i).getValue()); } return newMap; } /** * 查询13区折线图 */ @Override public List<Map<String,Object>> countWordByAreaIdLine(Map<String, Object> paramMap) { List<Map<String,Object>> dataMap = selfAddMapper.get13ByAreaIdLine(paramMap); return dataMap; } /** * 查询指定关键字的折线图 */ @Override public List<Map<String,Object>> countWordByKeywordIdLine(Map<String, Object> paramMap) { List<Map<String,Object>> dataMap = selfAddMapper.getKeywordIdLine(paramMap); return dataMap; } /** * 保存用户输入的关键词 */ @Override public void addUserKeyword(DiyUserKeyword diyUserKeyword) { diyUserKeywordMapper.insertSelective(diyUserKeyword); } /** * 根据地区id获取文章 */ @Override public Page getArticleByAreaId(Map<String, Object> paramMap, Page p) { Date beginDate = DateUtil.parse(paramMap.get("beginDate").toString(), "yyyy-MM-dd"); Date endDate = DateUtil.parse(paramMap.get("endDate").toString(), "yyyy-MM-dd"); int keywordId = Integer.parseInt(paramMap.get("keywordId").toString()); int offset = (p.getCurrentPage()-1)*p.getPageSize(); DiyNewsresultWuhanExample example = new DiyNewsresultWuhanExample(); example.createCriteria().andKeywordidEqualTo(keywordId).andPubtimeBetween(beginDate, endDate); int count = newsresultWuhanMapper.countByExample(example); example.setOrderByClause(" samenum desc, pubtime desc limit " + offset + "," + p.getPageSize()); List<DiyNewsresultWuhan> dataList = newsresultWuhanMapper.selectByExample(example); p = PageUtil.getPage(p.getCurrentPage(), p.getPageSize(), count, dataList); return p; } @Override public Page getArticleByKeywordId(Map<String, Object> paramMap, Page p) { int keywordId = Integer.parseInt(paramMap.get("keywordId").toString()); Date beginDate = DateUtil.parse(paramMap.get("beginDate").toString(), "yyyy-MM-dd"); Date endDate = DateUtil.parse(paramMap.get("endDate").toString(), "yyyy-MM-dd"); int offset = (p.getCurrentPage()-1)*p.getPageSize(); DiyNewsresultWuhanHotExample example = new DiyNewsresultWuhanHotExample(); example.createCriteria().andKeywordidEqualTo(keywordId).andPubtimeBetween(beginDate, endDate); int count = diyNewsresultWuhanHotMapper.countByExample(example); example.setOrderByClause(" samenum desc, pubtime desc limit " + offset + "," + p.getPageSize()); List<DiyNewsresultWuhanHot> dataList = diyNewsresultWuhanHotMapper.selectByExample(example); p = PageUtil.getPage(p.getCurrentPage(), p.getPageSize(), count, dataList); return p; }
0 0
- GeneraterMybatis所生成model查询的serviceimpl应用
- serviceimpl
- SQL应用之根据数据库表生成Extjs的model
- SSH项目根据实体类Bean自动生成Action、ServiceInter、ServiceImpl类的方法
- Oracle的 MODEL 查询
- table的model生成
- Model数据模型的检索查询
- MVC结合GROVE的应用 第二节 使用GROVE生成的Model
- 代码生成器:Java自动生成service,serviceImpl及action
- android查看应用查询所占内存
- 【django】model的常见应用
- STM8 的MEMORY MODEL应用
- sql自动生成model的模块
- iOS model类的快速生成
- cifar实例编译之model的生成
- 监视服务提供者中ServiceImpl中方法的调用
- Topic model的变种及其应用
- 查询用户所持有的锁
- Python基础入门(二)- Python环境的搭建与安装
- all-in-one的openshift 创建管理员
- Sublime Text 3 快捷键大全
- 集群/分布式环境下5种session处理策略
- c++实验4-输出星号图
- GeneraterMybatis所生成model查询的serviceimpl应用
- Java常用的八种排序算法与代码实现精解
- 【IMWeb训练营作业】基于vue的todolist练习
- Ubuntu14.04 下apt-get安装Code::Blocks
- BZOJ4166: 月宫的符卡序列 manacher
- Mysql MHA搭建以及故障切换测试
- 185矩阵的之字形遍历
- 前端HTML学习笔记2017-04-16
- ZigBee读取IEEE地址