| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- package com.goafanti.news.service;
- import java.text.ParseException;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.cache.annotation.CacheEvict;
- import org.springframework.cache.annotation.CachePut;
- import org.springframework.cache.annotation.Cacheable;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.goafanti.common.constant.AFTConstants;
- import com.goafanti.common.dao.NewsMapper;
- import com.goafanti.common.model.News;
- import com.goafanti.common.utils.DateUtils;
- import com.goafanti.common.utils.LoggerUtils;
- import com.goafanti.common.utils.StringUtils;
- import com.goafanti.core.mybatis.BaseMybatisDao;
- import com.goafanti.core.mybatis.page.Pagination;
- import com.goafanti.news.bo.NewsPortalList;
- import com.goafanti.news.bo.NewsSummary;
- @Service
- @Transactional
- public class NewsService extends BaseMybatisDao<NewsMapper> {
- @Autowired
- 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) {
- return newsMapper.selectByPrimaryKey(id);
- }
- @Cacheable(value = "NewsListCache", key = "'NewsList:Page:'+#pageNo+'Type:'+#type+'Size:'+#pageSize")
- public List<NewsSummary> findNewsList(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.findList(params);
- }
- @CacheEvict(value = "NewsListCache", allEntries = true)
- public void cleanList() {
- LoggerUtils.debug(logger, "清除新闻列表缓存");
- }
- @CacheEvict(value = "NewsCache", key = "'News:'+#id")
- public void clean(String id) {
- LoggerUtils.debug(logger, "清除新闻缓存:[%s]", id);
- }
- @CachePut(value = "NewsCache", key = "'News:'+#id")
- public News save(Long id, News news) {
- news.setId(id);
- newsMapper.insert(news);
- return news;
- }
-
- @CachePut(value = "NewsCache", key = "'News:'+#id")
- public News update(long id, News news) {
- newsMapper.updateByPrimaryKeyWithBLOBs(news);
- return news;
- }
- @SuppressWarnings("unchecked")
- public Pagination<News> listNews(Integer type, String title, String author, String startCreateTime,
- String endCreateTime, String source, Integer hot, Integer pNo, Integer pSize) {
- Map<String, Object> params = new HashMap<>();
- if (null != type) {
- params.put("type", type);
- }
- if (StringUtils.isNotBlank(title)) {
- params.put("title", title);
- }
- if (StringUtils.isNotBlank(author)) {
- params.put("author", author);
- }
- if (StringUtils.isNotBlank(startCreateTime)) {
- try {
- params.put("sDate", DateUtils.parseDate(startCreateTime, AFTConstants.YYYYMMDD));
- } catch (ParseException e) {
- }
- }
- if (StringUtils.isNotBlank(endCreateTime)) {
- try {
- params.put("eDate", DateUtils.addDays(DateUtils.parseDate(endCreateTime, AFTConstants.YYYYMMDD), 1));
- } catch (ParseException e) {
- }
- }
- if (StringUtils.isNotBlank(source)) {
- params.put("source", source);
- }
-
- if (null != hot){
- params.put("hot", hot);
- }
- if (pNo == null || pNo < 0) {
- pNo = 1;
- }
- if (pSize == null || pSize < 0 || pSize > 10) {
- pSize = 10;
- }
- return (Pagination<News>) findPage("findNewsListByPage", "findNewsCount", params, pNo, pSize);
- }
- public News findNewsDetail(Long id) {
- return newsMapper.selectByPrimaryKey(id);
- }
- public int batchDeleteByPrimaryKey(List<String> id) {
- return newsMapper.batchDeleteByPrimaryKey(id);
- }
-
- @Cacheable(value = "NewsPortalListCache", key = "'NewsPortalList:Page:'+#pageNo+'Type:'+#type+'Size:'+#pageSize")
- public List<NewsPortalList> findPortalList(Integer pSize, Integer pNo, Integer type) {
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("type", type);
-
- params.put("pageSize", pSize);
- params.put("pageNo", pNo);
- return newsMapper.findPortalList(params);
- }
-
- @CacheEvict(value = "NewsPortalListCache", allEntries = true)
- public void cleanPortalList() {
- LoggerUtils.debug(logger, "清除门户端新闻列表缓存");
-
- }
- public List<NewsSummary> findJmrhNewsList(String type){
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("type", type);
- return newsMapper.findJmrhNewsList(params);
- }
- }
|