| | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.constant.StockConstant; |
| | | import com.nq.dao.SiteNewsMapper; |
| | | import com.nq.enums.EStockType; |
| | | import com.nq.pojo.SiteNews; |
| | | import com.nq.service.ISiteNewsService; |
| | | import com.nq.utils.*; |
| | | import com.nq.utils.http.HttpRequest; |
| | | import com.nq.utils.translate.GoogleTranslateUtil; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.File; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.util.Base64; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | public ServerResponse<PageInfo> getList(int pageNum, int pageSize, Integer type, String sort, String keyword, HttpServletRequest request) { |
| | | PageHelper.startPage(pageNum, pageSize); |
| | | List<SiteNews> listData = this.siteNewsMapper.pageList(pageNum, pageSize, type, sort, keyword); |
| | | GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil(); |
| | | //取出每一条数据的内容,进行翻译 |
| | | |
| | | // if (request.getHeader("lang") != null && !request.getHeader("lang").equals("zh-CN")&& !request.getHeader("lang").equals("tww")&& !request.getHeader("lang").equals("")) { |
| | | // for (SiteNews siteNews : listData) { |
| | | // try { |
| | | // siteNews.setTitle(googleTranslateUtil.translate(siteNews.getTitle(), request.getHeader("lang"))); |
| | | // siteNews.setSourceName(googleTranslateUtil.translate(siteNews.getSourceName(), request.getHeader("lang"))); |
| | | // } catch (Exception e) { |
| | | // log.error("翻译失败"); |
| | | // } |
| | | // GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil(); |
| | | // //取出每一条数据的内容,进行翻译 |
| | | // for (SiteNews siteNews : listData) { |
| | | // try { |
| | | // siteNews.setTitle(googleTranslateUtil.translate(siteNews.getTitle(), request.getHeader("lang"))); |
| | | // siteNews.setSourceName(googleTranslateUtil.translate(siteNews.getSourceName(), request.getHeader("lang"))); |
| | | // } catch (Exception e) { |
| | | // log.error("翻译失败"); |
| | | // } |
| | | // } |
| | | |
| | | // } |
| | | |
| | | PageInfo pageInfo = new PageInfo(listData); |
| | | pageInfo.setList(listData); |
| | |
| | | @Override |
| | | public ServerResponse getDetail(int id, HttpServletRequest request) { |
| | | SiteNews model = siteNewsMapper.load(id); |
| | | if(model!=null){ |
| | | GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil(); |
| | | //取出每一条数据的内容,进行翻译 |
| | | |
| | | if (request.getHeader("lang") != null && !request.getHeader("lang").equals("zh-CN")&& !request.getHeader("lang").equals("tww")&& !request.getHeader("lang").equals("")) { |
| | | try { |
| | | model.setContent(googleTranslateUtil.translate(model.getContent(), request.getHeader("lang"))); |
| | | model.setTitle(googleTranslateUtil.translate(model.getTitle(), request.getHeader("lang"))); |
| | | model.setDescription(googleTranslateUtil.translate(model.getDescription(), request.getHeader("lang"))); |
| | | } catch (Exception e) { |
| | | log.error("翻译失败"); |
| | | } |
| | | } |
| | | return ServerResponse.createBySuccess(model); |
| | | } |
| | | // if(model!=null){ |
| | | // GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil(); |
| | | // //取出每一条数据的内容,进行翻译 |
| | | // |
| | | // try { |
| | | // model.setContent(googleTranslateUtil.translate(model.getContent(), request.getHeader("lang"))); |
| | | // model.setTitle(googleTranslateUtil.translate(model.getTitle(), request.getHeader("lang"))); |
| | | // model.setDescription(googleTranslateUtil.translate(model.getDescription(), request.getHeader("lang"))); |
| | | // } catch (Exception e) { |
| | | // log.error("翻译失败"); |
| | | // } |
| | | // return ServerResponse.createBySuccess(model); |
| | | // } |
| | | return ServerResponse.createBySuccess(model); |
| | | } |
| | | |
| | |
| | | return ServerResponse.createBySuccess(pageInfo); |
| | | } |
| | | |
| | | /*新闻资讯-抓取*/ |
| | | @Override |
| | | public int grabNews() { |
| | | int ret = 0; |
| | | //新闻类型:1、财经要闻,2、经济数据,3、全球股市,4、7*24全球,5、商品资讯,6、上市公司,7、全球央行 |
| | | addNews(1, StockConstant.HTTP_API +"stock-markets?key="+ StockConstant.KEY +"&type=4"); |
| | | addNews(2, StockConstant.HTTP_API+"stock-markets?key="+ StockConstant.KEY +"&type=5"); |
| | | addNews(4, StockConstant.HTTP_API+"stock-markets?key="+ StockConstant.KEY +"&type=6"); |
| | | return ret; |
| | | public void grabNews() { |
| | | addNews(1, PropertiesUtil.getProperty("JP_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("JP_KEY") + "&type=1&country_id=35"); |
| | | } |
| | | |
| | | /* |
| | | *抓取新闻专用 |
| | | * type:新闻类型:1、财经要闻,2、经济数据,3、全球股市,4、7*24全球,5、商品资讯,6、上市公司,7、全球央行 |
| | | * */ |
| | | private int addNews(Integer type, String url){ |
| | | int k = 0; |
| | | private void addNews(Integer type, String url) { |
| | | try { |
| | | String newlist = HttpRequest.doGrabGet(url); |
| | | JSONArray jsonArray = JSONArray.fromObject(newlist); |
| | | if(jsonArray.size()>0){ |
| | | if (jsonArray.size() > 0) { |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | JSONObject jsonObject = jsonArray.getJSONObject(i); |
| | | String newsId = jsonObject.getString("id"); |
| | | if(siteNewsMapper.getNewsBySourceIdCount(newsId) == 0){ |
| | | if (siteNewsMapper.getNewsBySourceIdCount(newsId) == 0) { |
| | | SiteNews siteNews = new SiteNews(); |
| | | siteNews.setSourceId(newsId); |
| | | siteNews.setSourceName(""); |
| | | siteNews.setTitle(jsonObject.getString("title")); |
| | | Long showTime = jsonObject.getLong("time"); |
| | | siteNews.setShowTime(new Date(showTime)); |
| | | siteNews.setShowTime(new Date(showTime * 1000)); |
| | | if(jsonObject.has("img")){ |
| | | siteNews.setImgurl(jsonObject.getString("img")); |
| | | convertBase64ToImage(jsonObject.getString("img"),PropertiesUtil.getProperty("ftp.address")+newsId+".jpg"); |
| | | siteNews.setImgurl(PropertiesUtil.getProperty("ftp.server.http.prefix")+newsId+".jpg"); |
| | | } |
| | | siteNews.setDescription(jsonObject.getString("content")); |
| | | siteNews.setContent(jsonObject.getString("content")); |
| | |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("添加新闻出现异常: " + e.getMessage()); |
| | | } |
| | | return k; |
| | | } |
| | | |
| | | |
| | | public static String convertBase64ToImage(String base64Str, String path) { |
| | | byte[] imageBytes = Base64.getDecoder().decode(base64Str); |
| | | try { |
| | | File file = new File(path); |
| | | FileOutputStream fos = new FileOutputStream(file); |
| | | fos.write(imageBytes); |
| | | fos.flush(); |
| | | fos.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return path; |
| | | } |
| | | |
| | | } |