admin
2021-04-03 32d6c2ea8039b4771fd6b1ded8b022733e32352f
首页瀑布流
6个文件已修改
80 ■■■■ 已修改文件
src/main/java/com/yeshi/buwan/controller/api/ApiControllerV2.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/ad/DeviceAdStrategyDao.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/HomeTypeService.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/ad/DeviceAdStrategyService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/ApiControllerV2.java
@@ -170,6 +170,10 @@
                break;
            case "getHomeType":
                homeParser.getHomeType(acceptData, request, out);
                break;
            case "getHomeTypeNew":
                homeParser.getHomeTypeNew(acceptData, request, out);
                break;
            case "getHomeVideoList":
                homeParser.getHomeVideoList(acceptData, request, out);
                break;
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java
@@ -289,6 +289,37 @@
    }
    // 首页类型获取
    public void getHomeTypeNew(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
        // 20170914 一级视频分类ID
        String page = request.getParameter("Page");
        String pageSize = request.getParameter("PageSize");
        String dataKey = request.getParameter("DataKey");
        long count = homeTypeService.countHomeType(acceptData.getDetailSystem().getId(), acceptData.getVersion(), dataKey);
        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion());
        List<HomeType> homeTypeList = homeTypeService.getHomeTypeList(acceptData.getDetailSystem().getId(), acceptData.getVersion(), dataKey, Integer.parseInt(page), Integer.parseInt(pageSize));
        if (homeTypeList != null)
            for (HomeType homeType : homeTypeList) {
                String resourceKey = StringUtil.Md5(org.yeshi.utils.StringUtil.concat(resourceList, ","));
                List<HomeVideo> homeVideoList = homeTypeService.getHomeVideoList(homeType.getId(), resourceKey, resourceList, null, 1, homeType.getNumber());
                long videoCount = homeTypeService.getHomeVideoListCount(homeType.getId(), resourceKey, resourceList, null);
                homeType.setCount((int) videoCount);
                homeType.setHomeVideoList(homeVideoList);
            }
        JSONObject object = new JSONObject();
        JSONArray array = new JSONArray();
        for (int i = 0; i < homeTypeList.size(); i++)
            array.add(StringUtil.outPutResultJson(homeTypeList.get(i)));
        object.put("data", array);
        object.put("count", count + "");
        out.print(JsonUtil.loadTrueJson(object.toString()));
    }
    public HomeType convertHomeVideoList(HomeType type) {
        List<VideoInfo> vlist = new ArrayList<VideoInfo>();
        List<HomeVideo> list = type.getHomeVideoList();
@@ -321,15 +352,16 @@
        List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion());
        //查询大图
        List<HomeVideo> bigPictureVideos = homeTypeService.getHomeVideoList(homeTypeId, resourceList, true, 1, homeType.getNumber());
        List<HomeVideo> bigPictureVideos = homeTypeService.getHomeVideoList(homeTypeId, org.yeshi.utils.StringUtil.concat(resourceList, ","), resourceList, true, 1, homeType.getNumber());
        //大图需要每次都返回
        JSONObject object = new JSONObject();
        String resourceKey = StringUtil.Md5(org.yeshi.utils.StringUtil.concat(resourceList, ","));
        Long count = homeTypeService.getHomeVideoListCount(homeTypeId, resourceList, null);
        List<HomeVideo> list1 = homeTypeService.getHomeVideoList(homeTypeId, resourceList, false, page, homeType.getNumber());
        Long count = homeTypeService.getHomeVideoListCount(homeTypeId, resourceKey, resourceList, null);
        List<HomeVideo> list1 = homeTypeService.getHomeVideoList(homeTypeId, resourceKey, resourceList, false, page, homeType.getNumber());
        List<HomeVideo> list = new ArrayList<>();
        list.addAll(bigPictureVideos);
        list.addAll(list1);
@@ -597,7 +629,7 @@
                    //每天展示一次广告
                    long showTime = TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyy-MM-dd"), "yyyy-MM-dd");
                    deviceAdStrategyService.setVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), showTime, showTime);
                    deviceAdStrategyService.setVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), showTime, null);
                }
            });
            return;
src/main/java/com/yeshi/buwan/dao/ad/DeviceAdStrategyDao.java
@@ -31,4 +31,7 @@
        update.set("updateTime", new Date());
        update(query, update);
    }
}
src/main/java/com/yeshi/buwan/service/imp/HomeTypeService.java
@@ -86,7 +86,7 @@
                                ht.setIosControl(obj[6] + "");
                                ht.setNumber(Integer.parseInt(obj[7] + ""));
                                ht.setRefreshPosition(Integer.parseInt(obj[25] + ""));
                                ht.setMoreTag(obj[26]+"");
                                ht.setMoreTag(obj[26] + "");
                                ht.setOrderby(obj[21] + "");
@@ -96,7 +96,7 @@
                                hv.setId(obj[8] + "");
                                hv.setPicture(obj[10] + "");
                                hv.setTag(obj[11] + "");
                                hv.setBigPicture(Integer.parseInt(obj[24] + "")>0);
                                hv.setBigPicture(Integer.parseInt(obj[24] + "") > 0);
                                VideoInfo video = new VideoInfo();
                                video.setId(obj[12] + "");
@@ -203,6 +203,17 @@
        return homeTypeList;
    }
    @Cacheable(value = "homeCache", key = "'getHomeTypeList'+'-'+#detailSystem+'-'+#version+'-'+#dataKey+'-'+#page+'-'+#pageSize")
    public List<HomeType> getHomeTypeList(String detailSystem, int version, String dataKey, int page, int pageSize) {
        return homeTypeDao.list("select sht.homeType from SuperHomeType sht where sht.detailSystem.id=? and sht.homeType.specialDataKey=? order by sht.homeType.orderby DESC,sht.homeType.createtime DESC", (page - 1) * pageSize, pageSize, new Serializable[]{detailSystem, dataKey});
    }
    @Cacheable(value = "homeCache", key = "'countHomeType'+'-'+#detailSystem+'-'+#version+'-'+#dataKey")
    public long countHomeType(String detailSystem, int version, String dataKey) {
        return homeTypeDao.getCount("select count(*) from SuperHomeType sht where sht.detailSystem.id=? and sht.homeType.specialDataKey=?", new Serializable[]{detailSystem, dataKey});
    }
    private void orderByType(List<HomeType> homeTypeList) {
        Collections.sort(homeTypeList, new Comparator<HomeType>() {
            public int compare(HomeType o1, HomeType o2) {
@@ -210,6 +221,7 @@
            }
        });
    }
    private int index(List<HomeType> list, HomeType ht) {
        if (list == null)
@@ -353,7 +365,8 @@
    }
    public List<HomeVideo> getHomeVideoList(String homeId, List<Long> resourceIds, Boolean bigPicture, int page, int pageSize) {
    @Cacheable(value = "homeCache", key = "'getHomeVideoList-'+#homeId+'-'+#resourceKey+'-'+#bigPicture+'-'+#page+'-'+#pageSize")
    public List<HomeVideo> getHomeVideoList(String homeId, String resourceKey, List<Long> resourceIds, Boolean bigPicture, int page, int pageSize) {
        List<HomeVideo> homeVideos = (List<HomeVideo>) homeVideoDao.excute(new HibernateCallback<List<HomeVideo>>() {
            @Override
            public List<HomeVideo> doInHibernate(Session session) throws HibernateException {
@@ -383,8 +396,8 @@
        return homeVideos;
    }
    public long getHomeVideoListCount(String homeId, List<Long> resourceIds, Boolean bigPicture) {
    @Cacheable(value = "homeCache", key = "'getHomeVideoListCount'+'-'+#resourceKey+'-'+#bigPicture")
    public long getHomeVideoListCount(String homeId, String resourceKey, List<Long> resourceIds, Boolean bigPicture) {
        return (Long) homeVideoDao.excute(new HibernateCallback<Long>() {
            @Override
            public Long doInHibernate(Session session) throws HibernateException {
src/main/java/com/yeshi/buwan/service/imp/ad/DeviceAdStrategyServiceImpl.java
@@ -56,7 +56,7 @@
    }
    @Override
    public void setVideoDetailAdStrategy(String deviceId, String detailSystemId, long fsaExpireTime, long pvaExpireTime) {
    public void setVideoDetailAdStrategy(String deviceId, String detailSystemId, Long fsaExpireTime, Long pvaExpireTime) {
        if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) {
            return;
        }
@@ -67,8 +67,10 @@
        }
        DeviceAdStrategy update = new DeviceAdStrategy();
        update.setId(id);
        update.setDetailFSAExpireTime(fsaExpireTime);
        update.setDetailPVAExpireTime(pvaExpireTime);
        if (fsaExpireTime != null)
            update.setDetailFSAExpireTime(fsaExpireTime);
        if (pvaExpireTime != null)
            update.setDetailPVAExpireTime(pvaExpireTime);
        deviceAdStrategyDao.updateSelective(update);
    }
}
src/main/java/com/yeshi/buwan/service/inter/ad/DeviceAdStrategyService.java
@@ -21,6 +21,6 @@
     * @param fsaExpireTime
     * @param pvaExpireTime
     */
    public void setVideoDetailAdStrategy(String deviceId, String detailSystemId,long fsaExpireTime,long pvaExpireTime);
    public void setVideoDetailAdStrategy(String deviceId, String detailSystemId,Long fsaExpireTime,Long pvaExpireTime);
}