From 0a18a8cb0a7a57bf1f82df425251334c57f8c39a Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 23 一月 2021 15:40:37 +0800 Subject: [PATCH] 新增手机号/qq/微信绑定 --- src/main/java/com/yeshi/buwan/service/imp/CategoryRecommendCacheVideoService.java | 436 +++++++++++++++++++++++++----------------------------- 1 files changed, 201 insertions(+), 235 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/CategoryRecommendCacheVideoService.java b/src/main/java/com/yeshi/buwan/service/imp/CategoryRecommendCacheVideoService.java index 887ef88..df7cf89 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/CategoryRecommendCacheVideoService.java +++ b/src/main/java/com/yeshi/buwan/service/imp/CategoryRecommendCacheVideoService.java @@ -6,6 +6,8 @@ import java.util.Comparator; import java.util.List; +import com.yeshi.buwan.service.inter.VideoResourceMapExtraInfoService; +import com.yeshi.buwan.util.JuHe.VideoResourceUtil; import org.hibernate.HibernateException; import org.hibernate.SQLQuery; import org.hibernate.Session; @@ -22,270 +24,234 @@ import com.yeshi.buwan.domain.recommend.CategoryRecommendCacheVideo; import com.yeshi.buwan.service.imp.recommend.CategoryRecommendVideoService; +import javax.annotation.Resource; + @Service public class CategoryRecommendCacheVideoService { - @Autowired - private CategoryRecommendCacheVideoDao dao; + @Autowired + private CategoryRecommendCacheVideoDao dao; - @Autowired - private CategoryRecommendVideoService categoryRecommendVideoService; + @Autowired + private CategoryRecommendVideoService categoryRecommendVideoService; - public List<CategoryRecommendCacheVideo> getList(long videotype, String key, int page, int pageSize) { + @Resource + private VideoResourceMapExtraInfoService videoResourceMapExtraInfoService; - List<CategoryRecommendCacheVideo> list = null; + @Resource + private VideoResourceUtil videoResourceUtil; - int start = (page - 1) * pageSize; + public List<CategoryRecommendCacheVideo> getList(long videotype, String key, int page, int pageSize) { - if (videotype <= 0) { // 鍏ㄩ儴 - String hql = ""; - if (key != null && !"".equals(key.trim())) { - hql = "from CategoryRecommendCacheVideo crcv where crcv.videoInfo.name like ? order by crcv.rank desc , crcv.orderby desc"; - list = dao.list(hql, start, pageSize, new Serializable[] { "%" + key + "%" }); - } else { - hql = "from CategoryRecommendCacheVideo crcv order by crcv.rank desc , crcv.orderby desc"; - list = dao.list(hql, start, pageSize, new Serializable[] {}); - } - } else { - if (key != null && !"".equals(key.trim())) { - // list = dao.sqlList("select * from wk_recommend_category_cache - // cc left join wk_video_video vv on vv.id=cc.videoid where - // cc.videotypeid = ? and vv.name like ? order by cc.rank = - // 0,cc.rank,cc.orderby desc", start, pageSize, params); - list = dao.list( - "from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? and crcv.videoInfo.name like ? order by crcv.rank desc , crcv.orderby desc", - start, pageSize, new Serializable[] { videotype, "%" + key + "%" }); - } else { - list = dao.list( - "from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? order by crcv.rank desc , crcv.orderby desc", - start, pageSize, new Serializable[] { videotype }); - } - } + List<CategoryRecommendCacheVideo> list = null; - // if(list != null && list.size() > 0){ - // Collections.sort(list, new Comparator<CategoryRecommendCacheVideo>() - // { - // @Override - // public int compare(CategoryRecommendCacheVideo o1, - // CategoryRecommendCacheVideo o2) { - // int rank1= o1.getRank(); - // int rank2 = o2.getRank(); - // int b1 =o1.getOrderby(); - // int b2=o2.getOrderby(); - // if(rank2 == 0 && rank1 == 0){ - // return b2-b1; - // }else if(rank2 == 0 && rank1 !=0){ - // return -1; - // }else if(rank2 != 0 && rank1 == 0){ - // return 1; - // }else if(rank2 != 0 && rank1 != 0){ - // int i = rank1 - rank2; - // if(i==0){ - // return b2-b1; - // } - // return i; - // } - // return 0; - // } - // }); - // } - return list; + int start = (page - 1) * pageSize; - } + if (videotype <= 0) { // 鍏ㄩ儴 + String hql = ""; + if (key != null && !"".equals(key.trim())) { + hql = "from CategoryRecommendCacheVideo crcv where crcv.videoInfo.name like ? order by crcv.rank desc , crcv.orderby desc"; + list = dao.list(hql, start, pageSize, new Serializable[]{"%" + key + "%"}); + } else { + hql = "from CategoryRecommendCacheVideo crcv order by crcv.rank desc , crcv.orderby desc"; + list = dao.list(hql, start, pageSize, new Serializable[]{}); + } + } else { + if (key != null && !"".equals(key.trim())) { + // list = dao.sqlList("select * from wk_recommend_category_cache + // cc left join wk_video_video vv on vv.id=cc.videoid where + // cc.videotypeid = ? and vv.name like ? order by cc.rank = + // 0,cc.rank,cc.orderby desc", start, pageSize, params); + list = dao.list( + "from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? and crcv.videoInfo.name like ? order by crcv.rank desc , crcv.orderby desc", + start, pageSize, new Serializable[]{videotype, "%" + key + "%"}); + } else { + list = dao.list( + "from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? order by crcv.rank desc , crcv.orderby desc", + start, pageSize, new Serializable[]{videotype}); + } + } - public int getCount(long videotype, String key) { - if (videotype <= 0) { - if (key != null && !"".equals(key.trim())) { - return (int) dao.getCount( - "select count(*) from CategoryRecommendCacheVideo crcv where crcv.videoInfo.name like ? ", - new Serializable[] { "%" + key + "%" }); - } else { - return (int) dao.getCount("select count(*) from CategoryRecommendCacheVideo crcv", - new Serializable[] {}); - } - } else { - if (key != null && !"".equals(key.trim())) { - return (int) dao.getCount( - "select count(*) from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? and crcv.videoInfo.name like ? ", - new Serializable[] { videotype, "%" + key + "%" }); - } - return (int) dao.getCount( - "select count(*) from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? ", - new Serializable[] { videotype }); - } + // if(list != null && list.size() > 0){ + // Collections.sort(list, new Comparator<CategoryRecommendCacheVideo>() + // { + // @Override + // public int compare(CategoryRecommendCacheVideo o1, + // CategoryRecommendCacheVideo o2) { + // int rank1= o1.getRank(); + // int rank2 = o2.getRank(); + // int b1 =o1.getOrderby(); + // int b2=o2.getOrderby(); + // if(rank2 == 0 && rank1 == 0){ + // return b2-b1; + // }else if(rank2 == 0 && rank1 !=0){ + // return -1; + // }else if(rank2 != 0 && rank1 == 0){ + // return 1; + // }else if(rank2 != 0 && rank1 != 0){ + // int i = rank1 - rank2; + // if(i==0){ + // return b2-b1; + // } + // return i; + // } + // return 0; + // } + // }); + // } + return list; - } + } - public CategoryRecommendCacheVideo getTop(long id) { - return dao.find(CategoryRecommendCacheVideo.class, id + ""); - } + public int getCount(long videotype, String key) { + if (videotype <= 0) { + if (key != null && !"".equals(key.trim())) { + return (int) dao.getCount( + "select count(*) from CategoryRecommendCacheVideo crcv where crcv.videoInfo.name like ? ", + new Serializable[]{"%" + key + "%"}); + } else { + return (int) dao.getCount("select count(*) from CategoryRecommendCacheVideo crcv", + new Serializable[]{}); + } + } else { + if (key != null && !"".equals(key.trim())) { + return (int) dao.getCount( + "select count(*) from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? and crcv.videoInfo.name like ? ", + new Serializable[]{videotype, "%" + key + "%"}); + } + return (int) dao.getCount( + "select count(*) from CategoryRecommendCacheVideo crcv where crcv.videoType.id = ? ", + new Serializable[]{videotype}); + } - @Transactional - @CacheEvict(value = "topCache", allEntries = true) - public void update(CategoryRecommendCacheVideo crcv) { - dao.update(crcv); - } + } - @Transactional - public void save(CategoryRecommendCacheVideo crcv) { - dao.save(crcv); - } + public CategoryRecommendCacheVideo getTop(long id) { + return dao.find(CategoryRecommendCacheVideo.class, id + ""); + } - @Transactional - @CacheEvict(value = "topCache", allEntries = true) - public void delete(long id) { - CategoryRecommendCacheVideo crcv = new CategoryRecommendCacheVideo(); - crcv.setId(id + ""); - dao.delete(crcv); - } + @Transactional + @CacheEvict(value = "topCache", allEntries = true) + public void update(CategoryRecommendCacheVideo crcv) { + dao.update(crcv); + } - public CategoryRecommendCacheVideo getTop(long vid, long tid) { - List<CategoryRecommendCacheVideo> list = dao.list( - "from CategoryRecommendCacheVideo crcv where crcv.videoInfo.id = ? and crcv.videoType.id = ?", - new Serializable[] { vid + "", tid }); - if (list.size() > 0) { - return list.get(0); - } - return null; - } + @Transactional + public void save(CategoryRecommendCacheVideo crcv) { + dao.save(crcv); + } - // public List<CategoryRecommendCacheVideo> getVideoListByRank(final int - // type) { - // - // return (List<CategoryRecommendCacheVideo>) dao.excute(new - // HibernateCallback<List<VideoInfo>>() { - // @Override - // public List<VideoInfo> doInHibernate(Session session) - // throws HibernateException { - // SQLQuery query = session.createSQLQuery("SELECT cc.* FROM - // wk_recommend_category_cache cc LEFT JOIN wk_video_video vv ON cc.videoid - // = vv.id LEFT JOIN wk_resource_video rv ON rv.videoid=vv.id WHERE - // rv.resourceid <> 16 AND vv.id IS NOT NULL AND vv.show = 1 AND - // cc.videotypeid=? AND cc.videoid = vv.id AND cc.rank > 0 GROUP BY cc.id - // ORDER BY cc.orderby desc"); - // query.addEntity(CategoryRecommendCacheVideo.class); - // query.setParameter(0, type); - // return query.list(); - // } - // }); - // } + @Transactional + @CacheEvict(value = "topCache", allEntries = true) + public void delete(long id) { + CategoryRecommendCacheVideo crcv = new CategoryRecommendCacheVideo(); + crcv.setId(id + ""); + dao.delete(crcv); + } - @SuppressWarnings("unchecked") - @Cacheable(value = "topCache", key = "'getVideoListByRank'+'-'+#videotype+'-'+#detailSystem") - public List<VideoInfo> getVideoListByRank(final int videotype, final String detailSystem) { - final int count = categoryRecommendVideoService.getRankVideoNumber(videotype); - return (List<VideoInfo>) dao.excute(new HibernateCallback<List<VideoInfo>>() { - @Override - public List<VideoInfo> doInHibernate(Session session) throws HibernateException { - SQLQuery query = session.createSQLQuery("SELECT cc.rank," - + "vv.id,vv.picture,vv.name,vv.vpicture,vv.hpicture,vv.latest_vpicture,vv.latest_hpicture,vv.watchcount,vv.commentcount,cc.orderby,vv.tag " - + "FROM wk_recommend_category_cache cc LEFT JOIN wk_video_video vv ON cc.videoid = vv.id LEFT JOIN wk_resource_video rv ON rv.videoid=vv.id LEFT JOIN wk_video_banquan_video bv on cc.videoid = bv.videoid WHERE bv.id is null and (bv.detailsystemid=? OR bv.detailsystemid IS null ) and rv.resourceid <> 16 AND vv.id IS NOT NULL AND vv.show = 1 AND cc.videotypeid=? AND cc.videoid = vv.id AND cc.rank <= ? AND cc.rank >= 0 GROUP BY cc.id ORDER BY cc.rank !=0 DESC ,cc.rank desc,cc.orderby desc"); - query.setParameter(0, detailSystem); - query.setParameter(1, videotype); - query.setParameter(2, count); - query.setFirstResult(0); - query.setMaxResults(count); - List<Object[]> qdata = query.list(); - List<VideoInfoRank> rks = new ArrayList<VideoInfoRank>(); - List<VideoInfo> vs = new ArrayList<VideoInfo>(); - VideoInfoRank vr; - for (Object[] objs : qdata) { - vr = new VideoInfoRank(); - vr.setRank(Integer.parseInt(objs[0] + "")); - vr.setId(objs[1] + ""); - vr.setPicture(objs[2] + ""); - vr.setName(objs[3] + ""); - vr.setVpicture(objs[4] + ""); - vr.setHpicture(objs[5] + ""); - vr.setLatestVpicture(objs[6] + ""); - vr.setLatestHpicture(objs[7] + ""); - vr.setWatchCount(objs[8] + ""); - vr.setCommentCount(Integer.parseInt(objs[9] + "")); - vr.setOrderBy(Integer.parseInt(objs[10] + "")); - vr.setTag(objs[11] + ""); - if (vr.getRank() > 0) { - rks.add(vr); - } else - vs.add(vr); - } + public CategoryRecommendCacheVideo getTop(long vid, long tid) { + List<CategoryRecommendCacheVideo> list = dao.list( + "from CategoryRecommendCacheVideo crcv where crcv.videoInfo.id = ? and crcv.videoType.id = ?", + new Serializable[]{vid + "", tid}); + if (list.size() > 0) { + return list.get(0); + } + return null; + } - Comparator<VideoInfoRank> c = new Comparator<VideoInfoRank>() { - @Override - public int compare(VideoInfoRank arg0, VideoInfoRank arg1) { - return arg0.getRank() - arg1.getRank(); - } - }; + @SuppressWarnings("unchecked") + @Cacheable(value = "topCache", key = "'getVideoListByRank'+'-'+#videotype+'-'+#detailSystem+'-'+#platform+'-'+#version") + public List<VideoInfo> getVideoListByRank(final int videotype, final String detailSystem, String platform, Integer version) { - Collections.sort(rks, c); + List<Long> resourceList = videoResourceUtil.getAvailableResourceIds(platform, version); - // 鎵惧嚭rank=0鐨勮棰� + final int count = categoryRecommendVideoService.getRankVideoNumber(videotype); + List<VideoInfo> videoInfoList = (List<VideoInfo>) dao.excute(new HibernateCallback<List<VideoInfo>>() { + @Override + public List<VideoInfo> doInHibernate(Session session) throws HibernateException { + SQLQuery query = session.createSQLQuery("SELECT cc.rank," + + "vv.id,vv.picture,vv.name,vv.vpicture,vv.hpicture,vv.latest_vpicture,vv.latest_hpicture,vv.watchcount,vv.commentcount,cc.orderby,vv.tag " + + "FROM wk_recommend_category_cache cc LEFT JOIN wk_video_video vv ON cc.videoid = vv.id LEFT JOIN wk_resource_video rv ON rv.videoid=vv.id LEFT JOIN wk_video_banquan_video bv on cc.videoid = bv.videoid WHERE bv.id is null and (bv.detailsystemid=? OR bv.detailsystemid IS null ) and rv.resourceid <> 16 AND vv.id IS NOT NULL AND vv.show = 1 AND cc.videotypeid=? AND cc.videoid = vv.id AND cc.rank <= ? AND cc.rank >= 0 GROUP BY cc.id ORDER BY cc.rank !=0 DESC ,cc.rank desc,cc.orderby desc"); + query.setParameter(0, detailSystem); + query.setParameter(1, videotype); + query.setParameter(2, count); + query.setFirstResult(0); + query.setMaxResults(count); + List<Object[]> qdata = query.list(); + List<VideoInfoRank> rks = new ArrayList<>(); + List<VideoInfo> vs = new ArrayList<>(); + VideoInfoRank vr; + for (Object[] objs : qdata) { + vr = new VideoInfoRank(); + vr.setRank(Integer.parseInt(objs[0] + "")); + vr.setId(objs[1] + ""); + vr.setPicture(objs[2] + ""); + vr.setName(objs[3] + ""); + vr.setVpicture(objs[4] + ""); + vr.setHpicture(objs[5] + ""); + vr.setLatestVpicture(objs[6] + ""); + vr.setLatestHpicture(objs[7] + ""); + vr.setWatchCount(objs[8] + ""); + vr.setCommentCount(Integer.parseInt(objs[9] + "")); + vr.setOrderBy(Integer.parseInt(objs[10] + "")); + vr.setTag(objs[11] + ""); + if (vr.getRank() > 0) { + rks.add(vr); + } else + vs.add(vr); + } - for (int i = 1; i <= count; i++) { - boolean exist = false; - for (VideoInfoRank vir : rks) - if (vir.getRank() == i) { - exist = true; - break; - } - // 闇�瑕佸姞鍏ks - if (!exist) { - if (vs.size() > 0) { - VideoInfoRank rr = (VideoInfoRank) vs.get(0); - rr.setRank(i); - rks.add(rr); - vs.remove(0); - } - } - } + Comparator<VideoInfoRank> c = new Comparator<VideoInfoRank>() { - vs.clear(); + @Override + public int compare(VideoInfoRank arg0, VideoInfoRank arg1) { + return arg0.getRank() - arg1.getRank(); + } + }; - Collections.sort(rks, c); + Collections.sort(rks, c); - for (VideoInfoRank videoInfoRank : rks) - vs.add(videoInfoRank); + // 鎵惧嚭rank=0鐨勮棰� - // for (VideoInfoRank videoInfoRank : rks) { - // int rank = videoInfoRank.getRank(); - // if (rank <= vs.size()) { - // vs.remove((VideoInfo) videoInfoRank); - // vs.add(rank - 1, videoInfoRank); - // } - // } + for (int i = 1; i <= count; i++) { + boolean exist = false; + for (VideoInfoRank vir : rks) + if (vir.getRank() == i) { + exist = true; + break; + } + // 闇�瑕佸姞鍏ks + if (!exist) { + if (vs.size() > 0) { + VideoInfoRank rr = (VideoInfoRank) vs.get(0); + rr.setRank(i); + rks.add(rr); + vs.remove(0); + } + } + } - // SQLQuery query2 = session.createSQLQuery("SELECT cc.* FROM - // wk_recommend_category_cache cc LEFT JOIN wk_video_video vv ON - // cc.videoid = vv.id LEFT JOIN wk_resource_video rv ON - // rv.videoid=vv.id WHERE rv.resourceid <> 16 AND vv.id IS NOT - // NULL AND vv.show = 1 AND cc.videotypeid=? AND cc.videoid = - // vv.id AND cc.rank > 0 GROUP BY cc.id ORDER BY cc.orderby - // desc"); - // query2.addEntity(CategoryRecommendCacheVideo.class); - // query2.setParameter(0, videotype); - // query2.setFirstResult(0); - // query2.setMaxResults(count); - // List<CategoryRecommendCacheVideo> cs = query2.list(); - // for (CategoryRecommendCacheVideo crcv : cs) { - // int rank = crcv.getRank(); - // if(vs.size() > 0 && rank > 0 && rank <= vs.size() ){ - // vs.remove(crcv.getVideoInfo()); - // vs.add(rank-1, crcv.getVideoInfo()); - // } - // } - // vs = vs.subList(0, vs.size()>count?count:vs.size()); - return vs; - } - }); - } + vs.clear(); - public CategoryRecommendCacheVideo getByVid(String vid) { - List<CategoryRecommendCacheVideo> list = dao - .list("from CategoryRecommendCacheVideo crcv where crcv.videoInfo.id = ? ", new Serializable[] { vid }); - if (list.size() > 0) { - return list.get(0); - } - return null; - } + Collections.sort(rks, c); + + for (VideoInfoRank videoInfoRank : rks) + vs.add(videoInfoRank); + return vs; + } + }); + + return videoResourceMapExtraInfoService.batchExtraInfo(videoInfoList, resourceList); + } + + public CategoryRecommendCacheVideo getByVid(String vid) { + List<CategoryRecommendCacheVideo> list = dao + .list("from CategoryRecommendCacheVideo crcv where crcv.videoInfo.id = ? ", new Serializable[]{vid}); + if (list.size() > 0) { + return list.get(0); + } + return null; + } } -- Gitblit v1.8.0