NewsServiceImpl.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package com.xc.service.impl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.xc.common.ServerResponse;
  5. import com.xc.dao.NewsMapper;
  6. import com.xc.pojo.News;
  7. import com.xc.service.NewsService;
  8. import com.xc.utils.DateTimeUtil;
  9. import com.xc.utils.HttpClientRequest;
  10. import com.xc.utils.PropertiesUtil;
  11. import lombok.extern.slf4j.Slf4j;
  12. import net.sf.json.JSONArray;
  13. import net.sf.json.JSONObject;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.io.UnsupportedEncodingException;
  18. import java.net.URLEncoder;
  19. import java.util.List;
  20. @Slf4j
  21. @Service("newsService")
  22. public class NewsServiceImpl implements NewsService {
  23. @Autowired
  24. NewsMapper newsMapper;
  25. final static String url= PropertiesUtil.getProperty("news.url");
  26. @Override
  27. public ServerResponse<News> getApiNews(Integer num, Integer start) {
  28. String APPKEY = PropertiesUtil.getProperty("jisuapi.appkey");// 你的appkey
  29. String minUrl = PropertiesUtil.getProperty("jisuapi.news.url");
  30. String channel = PropertiesUtil.getProperty("jisuapi.news.channel");// utf8 新闻频道(头条,财经,体育,娱乐,军事,教育,科技,NBA,货币,星座,女性,健康,育儿)
  31. try {
  32. minUrl = minUrl + "?channel=" + URLEncoder.encode(channel, "utf-8") + "&num=" + num + "&start=" + start + "&appkey=" + APPKEY;
  33. } catch (UnsupportedEncodingException e) {
  34. e.printStackTrace();
  35. }
  36. String result = "";
  37. try {
  38. result = HttpClientRequest.doGet(minUrl);
  39. } catch (Exception e) {
  40. log.error("获取资讯出错,错误信息 = {}", e);
  41. }
  42. if (StringUtils.isBlank(result)) {
  43. log.error("没有查询到资讯数据 = {}", minUrl);
  44. return ServerResponse.createByErrorMsg("没有查询到资讯数据");
  45. }
  46. JSONObject json = JSONObject.fromObject(result);
  47. if (json.getInt("status") != 0) {
  48. log.error("查询状态异常 = {}", json.getString("msg"));
  49. } else {
  50. JSONObject resultarr = (JSONObject) json.opt("result");
  51. // String channel = resultarr.getString("channel"); //频道
  52. // String num = resultarr.getString("num"); //数量
  53. // System.out.println(channel + " " + num);
  54. JSONArray list = resultarr.optJSONArray("list");
  55. for (int i = 0; i < list.size(); i++) {
  56. JSONObject obj = (JSONObject) list.opt(i);
  57. String title = obj.getString("title"); //标题
  58. String time = obj.getString("time"); //时间
  59. String src = obj.getString("src");//来源
  60. // String category = obj.getString("category");//分类
  61. String pic = obj.getString("pic");//图片
  62. String content = obj.getString("content");//内容
  63. // String url1 = obj.getString("url");//原文手机网址
  64. // String weburl = obj.getString("weburl");//原文PC网址
  65. News news = new News();
  66. news.setTitle(title);
  67. news.setSource(src);
  68. if(pic.indexOf("default") != -1){
  69. news.setCover(url);
  70. }else {
  71. news.setCover(pic);
  72. }
  73. news.setContent(content);
  74. news.setPublishTime(DateTimeUtil.strToDate(time));
  75. news.setHot(0);
  76. insert(news);
  77. }
  78. }
  79. // List<SinaStockMinData> list = (List<SinaStockMinData>) JsonUtil.string2Obj(hqstr, new TypeReference<List<SinaStockMinData>>(){});
  80. // log.info("需要查询的行情size为: {}", Integer.valueOf(size));
  81. newsMapper.delMonthNews();
  82. return ServerResponse.createBySuccess();
  83. }
  84. @Override
  85. public Integer insert(News news) {
  86. return newsMapper.insert(news);
  87. }
  88. @Override
  89. public Integer deleteByPrimaryKey(Integer id) {
  90. return newsMapper.deleteByPrimaryKey(id);
  91. }
  92. @Override
  93. public Integer updateByPrimaryKeySelective(News news) {
  94. return newsMapper.updateByPrimaryKeySelective(news);
  95. }
  96. @Override
  97. public News selectByPrimaryKey(Integer id) {
  98. return newsMapper.selectByPrimaryKey(id);
  99. }
  100. @Override
  101. public PageInfo listByNews(News news, Integer pageNum, Integer pageSize) {
  102. PageHelper.startPage(pageNum, pageSize);
  103. List<News> newsList = newsMapper.listByNews(news);
  104. PageInfo pageInfo = new PageInfo(newsList);
  105. return pageInfo;
  106. }
  107. }