| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387 |
- package com.goafanti.news.service;
- import java.text.ParseException;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import org.apache.shiro.web.util.SavedRequest;
- import org.codehaus.groovy.classgen.ReturnAdder;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- 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.app.bo.AppDiscoveryBo;
- import com.goafanti.common.bo.PolicyEntity;
- import com.goafanti.common.constant.AFTConstants;
- import com.goafanti.common.dao.JtCollectSearchMapper;
- import com.goafanti.common.dao.NewsMapper;
- import com.goafanti.common.dao.NewsPublishMapper;
- import com.goafanti.common.enums.collectType;
- import com.goafanti.common.model.JtCollectSearch;
- import com.goafanti.common.model.News;
- import com.goafanti.common.model.NewsPublish;
- import com.goafanti.common.model.NewsPublishExample;
- 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.NewsResult;
- import com.goafanti.news.bo.NewsSummary;
- @Service
- @Transactional
- public class NewsService extends BaseMybatisDao<NewsMapper> {
- @Autowired
- NewsMapper newsMapper;
- @Autowired
- NewsPublishMapper newsPublishMapper;
- @Autowired
- JtCollectSearchMapper jtCollectSearchMapper;
- @Value("${spring.profiles.active}")
- private String env;
- @Value(value="${collect_flag}")
- private Boolean collectFlag ;
-
- 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.findIndexNewsLists(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+'domainName:'+#domainName+'picReq:'+#picRequired")
- public List<NewsSummary> findNewsList(Integer pageNo, Integer type, Integer pageSize, String domainName,
- Boolean picRequired) {
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("type", type);
- params.put("pageSize", pageSize);
- params.put("pageNo", pageNo);
- if (!StringUtils.equals(env, "dev") && !StringUtils.equals(env, "local")) {
- params.put("website", domainName);
- }
- if (picRequired) {
- params.put("picRequired", picRequired);
- }
- 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;
- }
-
- public News save(News news,List<String>webPages,List<String>appPages) {
- newsMapper.insert(news);
- NewsPublish newsPublish=null;
- if(webPages!=null && webPages.size()>0)
- {
- for(String s:webPages)
- {
- newsPublish=new NewsPublish();
- newsPublish.setId(UUID.randomUUID().toString());
- newsPublish.setPublishPage(s);
- newsPublish.setNewsId(news.getId()+"");
- newsPublish.setIfTop(0);
- newsPublish.setPublishClient(0);
- newsPublish.setPublisher("");
- newsPublish.setPublishPlatform("");
- newsPublish.setPublishTime(new Date());
- newsPublishMapper.insert(newsPublish);
- }
- }
- if(appPages!=null && appPages.size()>0)
- {
- for(String s:appPages)
- {
- newsPublish=new NewsPublish();
- newsPublish.setId(UUID.randomUUID().toString());
- newsPublish.setPublishPage(s);
- newsPublish.setNewsId(news.getId()+"");
- newsPublish.setIfTop(0);
- newsPublish.setPublishClient(1);
- newsPublish.setPublisher("");
- newsPublish.setPublishPlatform("");
- newsPublish.setPublishTime(new Date());
- newsPublishMapper.insert(newsPublish);
- }
- }
- return news;
- }
- @CachePut(value = "NewsCache", key = "'News:'+#id")
- public News update(long id, News news) {
- newsMapper.updateByPrimaryKeyWithBLOBs(news);
- return news;
- }
- public int updateSelectivelyWithoutPages(News news)
- {
- return newsMapper.updateByPrimaryKeySelective(news);
- }
- public int updateSelectively(News news,List<String>webPages,List<String>appPages) {
- newsPublishMapper.deleteByNewsId(news.getId());
- NewsPublish newsPublish=null;
- if(webPages!=null && webPages.size()>0)
- {
- for(String s:webPages)
- {
- newsPublish=new NewsPublish();
- newsPublish.setId(UUID.randomUUID().toString());
- newsPublish.setPublishPage(s);
- newsPublish.setNewsId(news.getId()+"");
- newsPublish.setIfTop(0);
- newsPublish.setPublishClient(0);
- newsPublish.setPublisher("");
- newsPublish.setPublishPlatform("");
- newsPublish.setPublishTime(new Date());
- newsPublishMapper.insert(newsPublish);
- }
- }
- if(appPages!=null && appPages.size()>0)
- {
- for(String s:appPages)
- {
- newsPublish=new NewsPublish();
- newsPublish.setId(UUID.randomUUID().toString());
- newsPublish.setPublishPage(s);
- newsPublish.setNewsId(news.getId()+"");
- newsPublish.setIfTop(0);
- newsPublish.setPublishClient(1);
- newsPublish.setPublisher("");
- newsPublish.setPublishPlatform("");
- newsPublish.setPublishTime(new Date());
- newsPublishMapper.insert(newsPublish);
- }
- }
- return newsMapper.updateByPrimaryKeySelective(news);
- }
- /*
- * type(0-普通 99-公众号新闻 98-技淘百科)
- * */
- @SuppressWarnings("unchecked")
- public Pagination<News> listNews(Integer type, String title, String author, String startCreateTime,
- String endCreateTime, String source, Integer hot, Integer pNo, Integer pSize,String auditStatus,String releaseStatus,String publishPage) {
- Map<String, Object> params = new HashMap<>();
- if(null !=publishPage) {
- params.put("publishPage", publishPage);
- }
- if (null != auditStatus) {
- params.put("auditStatus", auditStatus);
- }
-
- if (null != releaseStatus) {
- params.put("releaseStatus", releaseStatus);
- }
-
- 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 NewsResult findNewsDetail(Long id) {
- NewsResult newsResult=newsMapper.selectByPrimaryKey(id);
- List<NewsPublish> newsPublishs=newsPublishMapper.selectByNewsId(id);
- newsResult.setNewsPublishs(newsPublishs);
- return newsResult;
- }
- public int batchDeleteByPrimaryKey(List<String> id) {
-
- return newsMapper.batchDeleteByPrimaryKey(id);
- }
- @SuppressWarnings("unchecked")
- public Pagination<NewsPortalList> portalNewsList(Integer pSize, Integer pNo, Integer type, Integer hot,
- Integer provinceId, String keyword,Integer auditStatus) {
- Map<String, Object> params = new HashMap<String, Object>();
- if (null != hot) {
- params.put("hot", hot);
- }
- if (null != type) {
- params.put("type", type);
- }
- if (null != provinceId) {
- params.put("provinceId", provinceId);
- }
- if (null != keyword) {
- params.put("keyword", keyword);
- }
- if (pNo == null || pNo < 0) {
- pNo = 1;
- }
- if (pSize == null || pSize < 0 || pSize > 10) {
- pSize = 10;
- }
- if(auditStatus!=null) {
- params.put("auditStatus", auditStatus);
- }
- return (Pagination<NewsPortalList>) findPage("portalNewsList", "portalNewsCount", params, pNo, pSize);
- }
- @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);
- }
- public List<NewsPortalList> portalNewsPolicy(){
-
- return newsMapper.portalNewsPolicy();
- }
- public List<NewsPortalList> portalNewsQuestion(){
-
- return newsMapper.portalNewsQuestion();
- }
- @SuppressWarnings("unchecked")
- public Pagination<AppDiscoveryBo> appListinformation( Integer pNo,Integer pSize){
- Map<String, Object> params=new HashMap<>();
- if (pNo == null || pNo < 1)pNo = 1;
- if (pSize == null || pSize < 1 )pSize = 10;
- Pagination<AppDiscoveryBo>p=(Pagination<AppDiscoveryBo>) findPage("appNewsList", "appNewsCount", params, pNo, pSize);
- List<AppDiscoveryBo> l=(List<AppDiscoveryBo>) p.getList();
- for (AppDiscoveryBo a : l) {
- a.setContent(a.getContent().replaceAll("<p>", "").replaceAll("</p>", ""));
- }
- return p;
- }
-
- public int deleteByPrimaryKey(long id) {
- newsPublishMapper.deleteByNewsId(id);
- return newsMapper.deleteByPrimaryKey(id);
- }
-
- public List<News>getNewsList(int size){
- List<News> news=newsMapper.getNewsList(size);
- return news;
- }
-
- public PolicyEntity getPolicyDetail(String id) {
- PolicyEntity res=newsMapper.getPolicyDetail(id);
- return res;
- }
- public NewsPortalList informationDetail(String id) {
- return newsMapper.selectinformationDetail(id);
- }
-
- @SuppressWarnings("unchecked")
- public Pagination<AppDiscoveryBo> listEncyclopedia(Integer pageNo, Integer pageSize) {
- Map<String, Object> params=new HashMap<>();
- if (pageNo == null || pageNo < 1)pageNo = 1;
- if (pageSize == null || pageSize < 1 )pageSize = 10;
- Pagination<AppDiscoveryBo>p= (Pagination<AppDiscoveryBo>) findPage("encyclopediaList", "encyclopediaCount", params, pageNo, pageSize);
- List<AppDiscoveryBo> l=(List<AppDiscoveryBo>) p.getList();
- for (AppDiscoveryBo a : l) {
- a.setContent(a.getContent().replaceAll("<p>", "").replaceAll("</p>", ""));
- }
- return p;
- }
- public News findAppNewsDetail(long id) {
- return newsMapper.selectByPrimaryKey(id);
- }
- public void addJtCollectSearch(News news) {
- if(collectFlag){
- JtCollectSearch r=new JtCollectSearch();
- r.setFromTable(collectType.NEWS.getDesc());
- r.setKeyword(news.getKeyword());
- r.setTitle(news.getTitle());
- r.setRowId(news.getId().toString());
- jtCollectSearchMapper.insertSelective(r);
- }
-
- }
- public void updateJtCollectSearch(News news) {
- if(collectFlag)jtCollectSearchMapper.deleteByrowId(news.getId().toString());
-
- }
-
-
- }
|