admin
2025-02-20 f537abe9f3646c739beaf15076246a2f71a347e9
src/test/java/com/hxh/spring/test/PPTVTest.java
@@ -1,24 +1,38 @@
package com.hxh.spring.test;
import com.google.gson.Gson;
import com.yeshi.buwan.dao.juhe.pptv.PPTVProgramDao;
import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesDao;
import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesProgramMapDao;
import com.yeshi.buwan.dao.juhe.pptv.VideoPPTVMapDao;
import com.yeshi.buwan.job.video.PPTVVideoUpdate;
import com.yeshi.buwan.pptv.PPTVApiUtil;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.PPTVApiUtil;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
import com.yeshi.buwan.videos.pptv.entity.PPTVSeriesProgramMap;
import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.util.log.LoggerUtil;
import com.yeshi.buwan.util.StringUtil;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.yeshi.utils.HtmlToolUtil;
import javax.annotation.Resource;
import java.util.List;
import java.io.File;
import java.io.FileInputStream;
import java.util.*;
@RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试
@@ -33,6 +47,17 @@
    @Resource
    private PPTVSeriesDao pptvSeriesDao;
    @Resource
    private PPTVProgramDao pptvProgramDao;
    @Resource
    private PPTVSeriesProgramMapDao pptvSeriesProgramMapDao;
    @Resource
    private VideoPPTVMapDao videoPPTVMapDao;
    @Resource
    private PPTVVideoUpdate pptvVideoUpdate;
@@ -42,27 +67,48 @@
    @Test
    public void saveAll() {
        List<PPTVSeries> list = PPTVApiUtil.getTotalList();
        pptvService.save(list);
//        pptvService.save(list);
    }
    @Test
    public void addToVideoInfo() {
        List<PPTVSeries> list = pptvSeriesDao.list(2000, 1000);
        for (PPTVSeries s : list) {
            if (s.getProgramType().contains("少儿") || s.getProgramType2().contains("少儿")) {
                continue;
//        List<PPTVSeries> list = pptvSeriesDao.list(2000, 1000);
//        for (PPTVSeries s : list) {
//            if (s.getProgramType().contains("少儿") || s.getProgramType2().contains("少儿")) {
//                continue;
//            }
//            System.out.println(s.getName() + ":" + s.getInfoID());
        Query query = new Query();
        query.addCriteria(new Criteria().orOperator(Criteria.where("programType").regex("电影"), Criteria.where("programType2").regex("电影")));
        List<String> list = new ArrayList<>();
        List<PPTVSeries> seriesList = pptvSeriesDao.findList(query);
        for (PPTVSeries series : seriesList) {
            VideoPPTVMap map = pptvService.selectVideoPPTVMapByPPInfo(series.getInfoID(), null);
            if (map != null && map.getProgramCode() == null) {
                series = pptvService.getSeriesDetail(series.getInfoID());
                map.setSeriesCode(series.getSeriesCode());
                map.setProgramCode(series.getSeries().get(0).getProgramCode());
                videoPPTVMapDao.save(map);
            } else {
                if (map == null) {
                    list.add(series.getInfoID());
//                    series = PPTVApiUtil.getDetail(series.getSeriesCode());
                    series = pptvService.getSeriesDetail(series.getInfoID());
                    pptvService.addToVideoInfo(series);
                }
            }
            System.out.println(s.getName() + ":" + s.getInfoID());
            PPTVSeries series = pptvService.getSeriesDetail(s.getInfoID());
            pptvService.addToVideoInfo(series);
        }
        System.out.println(new Gson().toJson(list));
//        }
    }
    @Test
    public void getDetail() {
        PPTVSeries pptvSeries = pptvService.getSeriesDetail("201161");
        System.out.println(pptvSeries);
    }
    @Test
    public void test() {
@@ -71,8 +117,20 @@
    @Test
    public void update() {
//        try {
//            pptvVideoUpdate.updateLatestVideo("");
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
        List<PPTVSeries> list = PPTVApiUtil.getUpdateList();
        System.out.println(list);
    }
    @Test
    public void syncVideo() {
        try {
            pptvVideoUpdate.updateLatestVideo("");
            pptvVideoUpdate.syncVideo("32427297");
        } catch (Exception e) {
            e.printStackTrace();
        }
@@ -86,7 +144,8 @@
    @Test
    public void getApiDetail() {
        PPTVApiUtil.getDetail("32159127,10215224,15326213");
        PPTVSeries series = PPTVApiUtil.getDetail("28544897");
        System.out.println(series);
    }
@@ -115,8 +174,11 @@
    @Test
    public void addVideoInfo() {
        PPTVSeries series = pptvService.getSeriesDetail("26796");
//        List<PPTVSeries> seriesList = pptvSeriesDao.list("少儿", 0, 100);
//        for (PPTVSeries series : seriesList) {
        PPTVSeries series = pptvService.getSeriesDetail("381472");
        pptvService.addToVideoInfo(series);
//        }
    }
    @Test
@@ -142,10 +204,169 @@
        }
    }
    @Test
    public void reAddVideo() {
        reAdd("武林外传");
    }
    private void reAdd(String name) {
        Query query = new Query();
        query.addCriteria(Criteria.where("name").is(name));
        PPTVSeries series = pptvSeriesDao.findOne(query);
        if (series != null) {
            pptvService.offLineSeries(series.getInfoID());
            //添加到详情
            try {
                Thread.sleep(1000 * 3L);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            series = pptvService.getSeriesDetail(series.getInfoID());
            pptvService.addToVideoInfo(series);
        }
    }
    private List<String[]> getPPTVVideos(File f, int sheetNum) {
        List<String[]> videoList = new ArrayList<>();
        try {
            jxl.Workbook rwb = Workbook.getWorkbook(new FileInputStream(f));
            Sheet sheet = rwb.getSheet(sheetNum);
            for (int c = 1; c < sheet.getRows(); c++) {
                String infoId = sheet.getCell(0, c).getContents().trim();
                String name = sheet.getCell(1, c).getContents().trim();
                String del = sheet.getCell(21, c).getContents().trim();
                if (!StringUtil.isNullOrEmpty(infoId) && StringUtil.isNullOrEmpty(del)) {
                    videoList.add(new String[]{infoId, name, del});
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return videoList;
    }
    @Test
    public void checkPPTVVideos() {
        List<String[]> list1 = getPPTVVideos(new File("C:\\Users\\Administrator\\Desktop\\全量.xls"), 0);
        List<String[]> list2 = getPPTVVideos(new File("C:\\Users\\Administrator\\Desktop\\全量.xls"), 1);
        Map<String, String[]> map = new TreeMap<>();
        Set<String> sets = new HashSet<>();
        for (String[] sts : list1) {
            map.put(sts[0], sts);
            sets.add(sts[1]);
        }
        for (String[] sts : list2) {
            map.put(sts[0], sts);
            sets.add(sts[1]);
        }
//        List<PPTVSeries> list = pptvSeriesDao.list(0, 10000);
//        Set<String> infoIds = new HashSet<>();
//        for (PPTVSeries s : list) {
//            infoIds.add(s.getInfoID());
//        }
//
//        for (String infoId : infoIds) {
//            map.remove(infoId);
//        }
        for (String code : sets)
            getDetail(code);
//        try {
//            save(map);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        System.out.println(map);
    }
    private void save(Map<String, String[]> data) throws Exception {
        WritableWorkbook wwb = Workbook.createWorkbook(new File("C:\\Users\\Administrator\\Desktop\\布丸输出片单_缺失.xls"));
        WritableSheet sheet = wwb.createSheet("缺失", 0);
        sheet.addCell((WritableCell) new Label(0, 0, "百科ID"));
        sheet.addCell((WritableCell) new Label(1, 0, "名称"));
        int row = 1;
        for (Iterator<String> its = data.keySet().iterator(); its.hasNext(); ) {
            String key = its.next();
            sheet.addCell((WritableCell) new Label(0, row, key));
            sheet.addCell((WritableCell) new Label(1, row, data.get(key)[1]));
            row++;
        }
        wwb.write();
        wwb.close();
    }
    @Test
    public void logs() {
        LoggerUtil.getVIPLogger().info("123123");
//        LoggerUtil.getVIPLogger().info("123123");
        Map<String, String[]> data = new TreeMap<>();
        data.put("4234234", new String[]{"4234234", "测试"});
        try {
            save(data);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //    @Test
    public void getDetail(String sCode) {
        PPTVSeries series = PPTVApiUtil.getDetail(sCode);
        pptvService.save(series);
    }
    @Test
    public void buy() {
        PPTVApiUtil.buyGoods("257dfd950c20ad25dee9f99ef926c0f8", "danpian-1", "AB5574873120458", new Date());
    }
    @Test
    public void updateGoodsInfo() {
        Query query = new Query();
        query.addCriteria(new Criteria("goodsInfo").is(null).andOperator(Criteria.where("free").is("1")));
        query.limit(400);
        List<PPTVSeries> list = pptvSeriesDao.findList(query);
        for (PPTVSeries series : list) {
            PPTVSeries detail = PPTVApiUtil.getDetail(series.getSeriesCode());
            query = new Query();
            query.addCriteria(Criteria.where("_id").is(detail.getInfoID()));
            Update update = new Update();
            update.set("goodsInfo", detail.getGoodsInfo());
            pptvSeriesDao.update(query, update);
        }
    }
    @Test
    public void repaire() {
        Query query = new Query();
        query.addCriteria(Criteria.where("seriesCode").is(null));
        query.limit(200);
        List<PPTVSeries> list = pptvSeriesDao.findList(query);
        for (PPTVSeries pptvSeries : list) {
            PPTVSeriesProgramMap map = pptvSeriesProgramMapDao.getLatestByInfoId(pptvSeries.getInfoID());
            pptvService.syncSeries(map.getSeriesCode());
        }
    }
    @Test
    public void sync() {
//        PPTVSeries series = pptvService.getSeriesDetailByVideoId("8268375");
//        System.out.println(series);
        getDetail("32501376");
    }