123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package com.xc.service.impl;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.xc.common.ServerResponse;
- import com.xc.dao.NewsMapper;
- import com.xc.pojo.News;
- import com.xc.service.NewsService;
- import com.xc.utils.DateTimeUtil;
- import com.xc.utils.HttpClientRequest;
- import com.xc.utils.PropertiesUtil;
- import lombok.extern.slf4j.Slf4j;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.io.UnsupportedEncodingException;
- import java.net.URLEncoder;
- import java.util.List;
- @Slf4j
- @Service("newsService")
- public class NewsServiceImpl implements NewsService {
- @Autowired
- NewsMapper newsMapper;
- final static String url= PropertiesUtil.getProperty("news.url");
- @Override
- public ServerResponse<News> getApiNews(Integer num, Integer start) {
- String APPKEY = PropertiesUtil.getProperty("jisuapi.appkey");// 你的appkey
- String minUrl = PropertiesUtil.getProperty("jisuapi.news.url");
- String channel = PropertiesUtil.getProperty("jisuapi.news.channel");// utf8 新闻频道(头条,财经,体育,娱乐,军事,教育,科技,NBA,货币,星座,女性,健康,育儿)
- try {
- minUrl = minUrl + "?channel=" + URLEncoder.encode(channel, "utf-8") + "&num=" + num + "&start=" + start + "&appkey=" + APPKEY;
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- String result = "";
- try {
- result = HttpClientRequest.doGet(minUrl);
- } catch (Exception e) {
- log.error("获取资讯出错,错误信息 = {}", e);
- }
- if (StringUtils.isBlank(result)) {
- log.error("没有查询到资讯数据 = {}", minUrl);
- return ServerResponse.createByErrorMsg("没有查询到资讯数据");
- }
- JSONObject json = JSONObject.fromObject(result);
- if (json.getInt("status") != 0) {
- log.error("查询状态异常 = {}", json.getString("msg"));
- } else {
- JSONObject resultarr = (JSONObject) json.opt("result");
- // String channel = resultarr.getString("channel"); //频道
- // String num = resultarr.getString("num"); //数量
- // System.out.println(channel + " " + num);
- JSONArray list = resultarr.optJSONArray("list");
- for (int i = 0; i < list.size(); i++) {
- JSONObject obj = (JSONObject) list.opt(i);
- String title = obj.getString("title"); //标题
- String time = obj.getString("time"); //时间
- String src = obj.getString("src");//来源
- // String category = obj.getString("category");//分类
- String pic = obj.getString("pic");//图片
- String content = obj.getString("content");//内容
- // String url1 = obj.getString("url");//原文手机网址
- // String weburl = obj.getString("weburl");//原文PC网址
- News news = new News();
- news.setTitle(title);
- news.setSource(src);
- if(pic.indexOf("default") != -1){
- news.setCover(url);
- }else {
- news.setCover(pic);
- }
- news.setContent(content);
- news.setPublishTime(DateTimeUtil.strToDate(time));
- news.setHot(0);
- insert(news);
- }
- }
- // List<SinaStockMinData> list = (List<SinaStockMinData>) JsonUtil.string2Obj(hqstr, new TypeReference<List<SinaStockMinData>>(){});
- // log.info("需要查询的行情size为: {}", Integer.valueOf(size));
- newsMapper.delMonthNews();
- return ServerResponse.createBySuccess();
- }
- @Override
- public Integer insert(News news) {
- return newsMapper.insert(news);
- }
- @Override
- public Integer deleteByPrimaryKey(Integer id) {
- return newsMapper.deleteByPrimaryKey(id);
- }
- @Override
- public Integer updateByPrimaryKeySelective(News news) {
- return newsMapper.updateByPrimaryKeySelective(news);
- }
- @Override
- public News selectByPrimaryKey(Integer id) {
- return newsMapper.selectByPrimaryKey(id);
- }
- @Override
- public PageInfo listByNews(News news, Integer pageNum, Integer pageSize) {
- PageHelper.startPage(pageNum, pageSize);
- List<News> newsList = newsMapper.listByNews(news);
- PageInfo pageInfo = new PageInfo(newsList);
- return pageInfo;
- }
- }
|