Antiloveg 8 years ago
parent
commit
e28766f0ec

+ 3 - 0
src/main/java/com/goafanti/admin/controller/AdminNewsApiController.java

@@ -168,11 +168,14 @@ public class AdminNewsApiController extends BaseApiController {
 			newsService.cleanList(); // 清除策源地页面新闻列表缓存
 		} else if (NewsCacheKey.NEWS_PORTAL_LIST_CACHE_KEY.getCode().equals(cacheKey)) {
 			newsService.cleanPortalList(); // 清除新闻列表页列表缓存
+		} else if (NewsCacheKey.NEWS_INDEX_LIST_CACHE_KEY.getCode().equals(cacheKey)){
+			newsService.cleanIndexNewsList(); //清除首页新闻缓存
 		} else {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "缓存标记"));
 		}
 		return res;
 	}
+	
 
 	private Result disposeInputNews(Result res, InputNews news, String createTimeFormattedDate) {
 		if (StringUtils.isBlank(news.getTitle())) {

+ 20 - 13
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -16,6 +16,8 @@ import com.goafanti.banners.service.BannersService;
 import com.goafanti.common.model.Banners;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.demand.service.DemandService;
+import com.goafanti.news.enums.NewsType;
+import com.goafanti.news.service.NewsService;
 
 @Controller
 public class WebpageController extends BaseController {
@@ -29,6 +31,24 @@ public class WebpageController extends BaseController {
 	@Resource
 	private BannersService		bannersService;
 
+	@Resource
+	private NewsService			newsService;
+
+	/**
+	 * 首页
+	 */
+	@RequestMapping(value = "/portal/index", method = RequestMethod.GET)
+	public ModelAndView portalIndex(HttpServletRequest request, ModelAndView modelview) {
+		modelview.setViewName("/portal/index");
+		List<Banners> banners = bannersService.findPortalBanners(BannersType.SHOU_YE.getKey());
+		if (!banners.isEmpty()) {
+			modelview.addObject("banner", banners.get(0));
+		}
+		modelview.addObject("zfwl", newsService.findIndexNewsList(0, NewsType.ZFWL.getCode(), 2));
+		modelview.addObject("jtdt", newsService.findIndexNewsList(0, NewsType.JTDT.getCode(), 4));
+		return modelview;
+	}
+
 	@RequestMapping(value = "/user/account/index", method = RequestMethod.GET)
 	public ModelAndView index(HttpServletRequest request, ModelAndView modelview) {
 		modelview.setViewName("/user/account/index");
@@ -299,19 +319,6 @@ public class WebpageController extends BaseController {
 	}
 
 	/**
-	 * 首页
-	 */
-	@RequestMapping(value = "/portal/index", method = RequestMethod.GET)
-	public ModelAndView portalIndex(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/portal/index");
-		List<Banners> banners = bannersService.findPortalBanners(BannersType.SHOU_YE.getKey());
-		if (!banners.isEmpty()) {
-			modelview.addObject("banner", banners.get(0));
-		}
-		return modelview;
-	}
-
-	/**
 	 * 金融圈
 	 */
 	@RequestMapping(value = "/portal/financial/financialIndex", method = RequestMethod.GET)

+ 2 - 0
src/main/java/com/goafanti/common/dao/NewsMapper.java

@@ -28,4 +28,6 @@ public interface NewsMapper {
 
 	List<NewsPortalList> findPortalList(Map<String, Object> params);
 
+	List<NewsSummary> findIndexNewsList(Map<String, Object> params);
+
 }

+ 1 - 0
src/main/java/com/goafanti/common/enums/NewsCacheKey.java

@@ -6,6 +6,7 @@ import java.util.Map;
 public enum NewsCacheKey {
 	NEWS_LIST_CACHE_KEY("news_list_cache_key", "策源地新闻列表缓存"),
 	NEWS_PORTAL_LIST_CACHE_KEY("news_portal_list_cache_key", "新闻列表页面缓存"),
+	NEWS_INDEX_LIST_CACHE_KEY("news_index_list_cache_key", "首页新闻列表缓存"),
 	
 	OTHER("", "未知参数");
 	

+ 14 - 1
src/main/java/com/goafanti/common/mapper/NewsMapperExt.xml

@@ -9,9 +9,10 @@
 		<result column="type" jdbcType="INTEGER" property="type" />
 		<result column="hot" jdbcType="INTEGER" property="hot" />
 		<result column="summary" jdbcType="VARCHAR" property="summary" />
+		<result column="source" jdbcType="VARCHAR" property="source" />
 	</resultMap>
 	<sql id="Summary_Column_List">
-		id, create_time, title, title_img, type, hot, summary
+		id, create_time, title, title_img, type, hot, summary, source
 	</sql>
 	<select id="findList" resultMap="SummaryResultMap">
 		select
@@ -25,6 +26,18 @@
 		limit #{pageNo,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}
 	</select>
 	
+	<select id="findIndexNewsList" resultMap="SummaryResultMap">
+		select
+		<include refid="Summary_Column_List" />
+		from news
+		where hot = 1 
+		<if test=" type != null">
+			and type = #{type,jdbcType=INTEGER}
+		</if>
+		order by create_time desc
+		limit #{pageNo,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}
+	</select>
+	
 	<select id="findNewsListByPage" parameterType="String" resultMap="BaseResultMap">
   	select
   		id,

+ 15 - 2
src/main/java/com/goafanti/news/bo/NewsSummary.java

@@ -44,6 +44,11 @@ public class NewsSummary {
 	 */
 	private String	summary;
 	
+	/**
+	 * 来源
+	 */
+	private String	source;
+
 	@JsonFormat(shape = Shape.STRING)
 	public Long getId() {
 		return id;
@@ -52,7 +57,7 @@ public class NewsSummary {
 	public void setId(Long id) {
 		this.id = id;
 	}
-	
+
 	public Date getCreateTime() {
 		return createTime;
 	}
@@ -100,7 +105,15 @@ public class NewsSummary {
 	public void setSummary(String summary) {
 		this.summary = summary;
 	}
-	
+
+	public String getSource() {
+		return source;
+	}
+
+	public void setSource(String source) {
+		this.source = source;
+	}
+
 	public String getCreateTimeFormattedDate() {
 		if (this.createTime == null) {
 			return null;

+ 14 - 0
src/main/java/com/goafanti/news/service/NewsService.java

@@ -32,6 +32,20 @@ public class NewsService extends BaseMybatisDao<NewsMapper> {
 	NewsMapper					newsMapper;
 
 	private static final Logger	logger	= LoggerFactory.getLogger(NewsService.class);
+	
+	@Cacheable(value = "IndexNewsListCache", key = "'NewsList:Page:'+#pageNo+'Type:'+#type+'Size:'+#pageSize")
+	public List<NewsSummary> findIndexNewsList(Integer pageNo, Integer type, Integer pageSize) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("type", type);
+		params.put("pageSize", pageSize);
+		params.put("pageNo", pageNo);
+		return newsMapper.findIndexNewsList(params);
+	}
+
+	@CacheEvict(value = "IndexNewsListCache", allEntries = true)
+	public void cleanIndexNewsList() {
+		LoggerUtils.debug(logger, "清除首页新闻列表缓存");
+	}
 
 	@Cacheable(value = "NewsCache", key = "'News:'+#id")
 	public News selectById(Long id) {

File diff suppressed because it is too large
+ 11 - 60
src/main/webapp/WEB-INF/views/portal/index.html