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 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 list = (List) JsonUtil.string2Obj(hqstr, new TypeReference>(){}); // 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 newsList = newsMapper.listByNews(news); PageInfo pageInfo = new PageInfo(newsList); return pageInfo; } }