From ad3ac53da1c3a11a96ae62d790aa61a81b9eab91 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 20 三月 2021 18:47:23 +0800 Subject: [PATCH] 完善APP首页顶部标签栏兼容,初步处理推送 --- src/main/java/com/yeshi/buwan/service/imp/HomeAdService.java | 52 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/HomeAdService.java b/src/main/java/com/yeshi/buwan/service/imp/HomeAdService.java index ee2b39b..d9643f9 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/HomeAdService.java +++ b/src/main/java/com/yeshi/buwan/service/imp/HomeAdService.java @@ -22,6 +22,7 @@ import com.yeshi.buwan.domain.web.DetailSystemSelect; import com.yeshi.buwan.domain.web.HomeAdAdmin; import com.yeshi.buwan.util.Constant; +import org.yeshi.utils.StringUtil; @Service public class HomeAdService { @@ -36,10 +37,9 @@ return list; } - @Cacheable(value = "homeCache", key = "'getHomeAdList'+'-'+#detailSystem.id") - public List<HomeAd> getHomeAdList(DetailSystem detailSystem) { - List<HomeAd> list = homeAdDao.list("select h.homeAd from SuperHomeAd h where h.detailSystem.id=" - + detailSystem.getId() + " order by h.homeAd.orderby desc"); + @Cacheable(value = "homeCache", key = "'getHomeAdList'+'-'+#detailSystem.id+'-'+#dataKey") + public List<HomeAd> getHomeAdList(DetailSystem detailSystem,String dataKey) { + List<HomeAd> list = homeAdDao.list("select h.homeAd from SuperHomeAd h where h.detailSystem.id=? and h.homeAd.specialDataKey=? order by h.homeAd.orderby desc",detailSystem.getId(),dataKey); return list; } @@ -136,19 +136,28 @@ // 鍚庡彴鎿嶄綔 @SuppressWarnings("unchecked") - public List<HomeAdAdmin> getHomeAdAdmin(final String key, final String systemId, final int detailSystem, final int page) { + public List<HomeAdAdmin> getHomeAdAdmin(final String key, final String systemId, final int detailSystem, final String dataKey, final int page) { return (List<HomeAdAdmin>) homeAdDao.excute(new HibernateCallback<List<HomeAdAdmin>>() { public List<HomeAdAdmin> doInHibernate(Session session) throws HibernateException { List<HomeAdAdmin> zhiBoClassList = new ArrayList<>(); try { List<DetailSystem> detailSystemList = session.createQuery("from DetailSystem ds where ds.system.id=" + systemId).list(); String sql = ""; - if (detailSystem > 0) - sql = "select sh.homeAd from SuperHomeAd sh where sh.detailSystem.id=" + detailSystem - + " order by sh.homeAd.createtime desc"; - else - sql = "from HomeAd zb where zb.system.id=" + systemId + " order by zb.createtime desc"; + List<String> andList = new ArrayList<>(); + if (detailSystem > 0) { + andList.add("sh.detailSystem.id=" + detailSystem); + if (dataKey != null) { + andList.add("sh.homeAd.specialDataKey='" + dataKey + "'"); + } + sql = "select sh.homeAd from SuperHomeAd sh where " + StringUtil.concat(andList, " and ") + " order by sh.homeAd.createtime desc"; + } else { + andList.add("zb.system.id=" + systemId); + if (dataKey != null) { + andList.add("zb.specialDataKey='" + dataKey + "'"); + } + sql = "from HomeAd zb where " + StringUtil.concat(andList, " and ") + " order by zb.createtime desc"; + } List<HomeAd> list = session.createQuery(sql).setFirstResult((page - 1) * Constant.pageCount) .setMaxResults(Constant.pageCount).list(); for (HomeAd vb : list) { @@ -188,13 +197,24 @@ }); } - public long getHomeAdAdminCount(String key, String systemId, int detailSystem) { + public long getHomeAdAdminCount(String key, String systemId, int detailSystem, String dataKey) { String sql = ""; - if (detailSystem > 0) - sql = "select count(*) from (select count(*) from wk_video_super_homead zb left join wk_video_homead c on c.id=zb.homeadid where zb.detailsystemid=" - + detailSystem + " group by zb.homeadid) s"; - else - sql = "select count(*) from wk_video_homead where system="+systemId; + List<String> andList = new ArrayList<>(); + if (detailSystem > 0) { + andList.add("zb.detailsystemid=" + detailSystem); + if (dataKey != null) { + andList.add("c.special_data_key='" + dataKey + "'"); + } + + sql = "select count(*) from (select count(*) from wk_video_super_homead zb left join wk_video_homead c on c.id=zb.homeadid where " + StringUtil.concat(andList, " and ") + " group by zb.homeadid) s"; + } else { + andList.add("system=" + systemId); + if (dataKey != null) { + andList.add("special_data_key='" + dataKey + "'"); + } + + sql = "select count(*) from wk_video_homead where " + StringUtil.concat(andList, " and "); + } return homeAdDao.getCountSQL(sql); } -- Gitblit v1.8.0