1
zj
2024-05-18 e26923972dffde65542e61d09032ee0234f0bb7f
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
@@ -24,9 +24,12 @@
import java.util.Base64;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
 * 新闻资讯
 *
 * @author lr
 * @date 2020/07/24
 */
@@ -53,7 +56,7 @@
    @Override
    public int update(SiteNews model) {
        int ret = siteNewsMapper.update(model);
        return ret>0 ? ret: 0;
        return ret > 0 ? ret : 0;
    }
    /**
@@ -62,12 +65,12 @@
    @Override
    public ServerResponse save(SiteNews model) {
        int ret = 0;
        if(model!=null && model.getId()>0){
        if (model != null && model.getId() > 0) {
            ret = siteNewsMapper.update(model);
        } else{
        } else {
            ret = siteNewsMapper.insert(model);
        }
        if(ret>0){
        if (ret > 0) {
            return ServerResponse.createBySuccessMsg("操作成功");
        }
        return ServerResponse.createByErrorMsg("操作失败");
@@ -98,7 +101,7 @@
    @Override
    public ServerResponse getDetail(int id, HttpServletRequest request) {
        SiteNews model = siteNewsMapper.load(id);
        if(model!=null){
        if (model != null) {
            GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil();
            //取出每一条数据的内容,进行翻译
@@ -122,7 +125,7 @@
    /*新闻资讯-top最新新闻资讯*/
    @Override
    public ServerResponse getTopNewsList(int pageSize){
    public ServerResponse getTopNewsList(int pageSize) {
        List<SiteNews> listData = this.siteNewsMapper.getTopNewsList(pageSize);
        PageInfo pageInfo = new PageInfo();
@@ -130,31 +133,41 @@
        return ServerResponse.createBySuccess(pageInfo);
    }
    /*新闻资讯-抓取*/
    @Override
    public int grabNews() {
            int ret = 0;
         addNews(1, EStockType.IN.getStockUrl() +"stock-markets?key="+ EStockType.IN.getStockKey() +"&type=4");
         return ret;
    public void grabNews() {
        ExecutorService executor = Executors.newFixedThreadPool(2);
        try {
            executor.submit(() -> addNews(1, EStockType.MAS.getStockUrl() + "stock-markets?key=" + EStockType.MAS.getStockKey() + "&type=4"));
            executor.submit(() -> addNews(3, EStockType.MAS.getStockUrl() + "stock-markets?key=" + EStockType.MAS.getStockKey() + "&type=2"));
        } catch (Exception e) {
            e.printStackTrace();
            log.error("添加新闻出现异常:  " + e.getMessage());
        } finally {
            if (executor != null) {
                executor.shutdown();
            }
        }
    }
    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){
                for (int i = 0; i < jsonArray.size(); i++) {
            int size = jsonArray.size();  // 将jsonArray.size()的计算结果存储在变量中
            if (size > 0) {
                for (int i = 0; i < 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 * 1000));
                        siteNews.setImgurl(jsonObject.getString("img"));
                        if(jsonObject.has("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"));
                        siteNews.setStatus(1);
@@ -165,8 +178,8 @@
            }
        } catch (Exception e) {
            e.printStackTrace();
            log.error("添加新闻出现异常:  " + e.getMessage());
        }
        return k;
    }
    public static String  convertBase64ToImage(String base64Str, String path) {
@@ -182,5 +195,4 @@
        }
        return  path;
    }
}