package com.jeff.tianti.cms.dao;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.jeff.tianti.cms.dto.ArticleQueryDTO;
import com.jeff.tianti.cms.dto.CurrentArticleInfoDTO;
import com.jeff.tianti.cms.entity.Article;
import com.jeff.tianti.common.dao.CustomBaseSqlDaoImpl;
import com.jeff.tianti.common.entity.PageModel;
/**
 * @author xujianfang
 * @desc ArticleDaoImpl类 
 * @date 2017-03-16
 */

public class ArticleDaoImpl extends CustomBaseSqlDaoImpl implements ArticleDaoCustom  {

    public PageModel<Article> queryArticlePage(ArticleQueryDTO articleQueryDTO){
    	 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Map<String,Object> map = new HashMap<String,Object>();
         StringBuilder hql = new StringBuilder();
         hql.append("select t from Article t where 1=1 ");
         if(articleQueryDTO != null){
        	 if(StringUtils.isNotBlank(articleQueryDTO.getRootColumnId())){
        		 hql.append(" and t.rootColumnInfo.id = :rootColumnId ");
        		 map.put("rootColumnId", articleQueryDTO.getRootColumnId());        		 
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getColumnId())){
        		 hql.append(" and t.columnInfo.id = :columnId ");
            	 map.put("columnId", articleQueryDTO.getColumnId());
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getTitle())){
        		 hql.append(" and t.title like  :title ");
        		 map.put("title", "%"+articleQueryDTO.getTitle()+"%");
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getPublisher())){
        		 hql.append(" and t.publisher like  :publisher ");
        		 map.put("publisher", "%"+articleQueryDTO.getPublisher()+"%");
        	 }
		     if(StringUtils.isNotBlank(articleQueryDTO.getDeleteFlag())){
        		 hql.append(" and t.deleteFlag = :deleteFlag ");
            	         map.put("deleteFlag", articleQueryDTO.getDeleteFlag());
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getStartDate())){
        		 hql.append(" and t.createDate  >= :startDate ");
        		 try {
					map.put("startDate",sdf.parse(articleQueryDTO.getStartDate()));
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getEndDate())){
        		 hql.append(" and t.createDate  <= :endDate ");
        		 try {
					map.put("endDate",sdf.parse(articleQueryDTO.getEndDate()));
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
        	 }
        	 if(articleQueryDTO.getIsFront() != null && articleQueryDTO.getIsFront()){
        		 //前端默认查询审核通过的且未删除的记录,且按照置顶和时间降序排序
                 hql.append(" and t.isAudit =1  order by t.isTop desc,t.createDate desc ");
        	 }else{
        		 if(StringUtils.isNotBlank(articleQueryDTO.getType())){
            		 if(articleQueryDTO.getType().equals("laji")){
            			 hql.append(" and t.deleteFlag =1 ");
            		 }else if(articleQueryDTO.getType().equals("zhiding")){
            			 hql.append(" and t.isTop =1 ");
            		 }
                     hql.append(" order by t.createDate desc ");
            	 }
        	 }
         }
         return this.queryForPageWithParams(hql.toString(),map,articleQueryDTO.getCurrentPage(),articleQueryDTO.getPageSize());
    }

    public List<Article> queryArticleList(ArticleQueryDTO articleQueryDTO){
    	 List<Article> articleList = null;
         Map<String,Object> map = new HashMap<String,Object>();
         StringBuilder hql = new StringBuilder();
         hql.append("select t from Article t where 1=1 ");
         if(articleQueryDTO != null){
        	 if(StringUtils.isNotBlank(articleQueryDTO.getColumnId())){
        		 hql.append(" and t.columnInfo.id = :columnId ");
        		 map.put("columnId", articleQueryDTO.getColumnId());
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getTitle())){
        		 hql.append(" and t.title like = :title ");
        		 map.put("title", "%"+articleQueryDTO.getTitle()+"%");
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getPublisher())){
        		 hql.append(" and t.publisher like = :publisher ");
        		 map.put("publisher", "%"+articleQueryDTO.getPublisher()+"%");
        	 }
		     if(StringUtils.isNotBlank(articleQueryDTO.getDeleteFlag())){
        		 hql.append(" and t.deleteFlag = :deleteFlag ");
            	         map.put("deleteFlag", articleQueryDTO.getDeleteFlag());
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getStartDate())){
        		 hql.append(" and t.createDate  >= :startDate ");
        		 map.put("startDate",articleQueryDTO.getStartDate());
        	 }
        	 if(StringUtils.isNotBlank(articleQueryDTO.getEndDate())){
        		 hql.append(" and t.createDate  <= :endDate ");
        		 map.put("endDate",articleQueryDTO.getEndDate());
        	 }
        	 if(articleQueryDTO.getIsFront() != null && articleQueryDTO.getIsFront()){
        		 //前端默认查询审核通过的且未删除的记录,且按照置顶和时间降序排序
                 hql.append(" and t.isAudit =1  order by t.isTop desc,t.createDate desc ");
        	 }else{
        		 if(StringUtils.isNotBlank(articleQueryDTO.getType())){
            		 if(articleQueryDTO.getType().equals("laji")){
            			 hql.append(" and t.deleteFlag =1 ");
            		 }else if(articleQueryDTO.getType().equals("zhiding")){
            			 hql.append(" and t.isTop =1 ");
            		 }
                     hql.append(" order by t.createDate desc ");
            	 }
        	 }
         }
         if(articleQueryDTO.getTop() != null){
        	 PageModel pageModel = this.queryForPageWithParams(hql.toString(),map,0, articleQueryDTO.getTop());
        	 if(pageModel != null){
        		 articleList = pageModel.getList();
        	 }
         }else{
        	 articleList = this.queryByMapParams(hql.toString(),map);
         }
         return articleList;
    }
    
    public List<Map<String, Object>> queryStatisMapList(ArticleQueryDTO articleQueryDTO){
    	String sql = " select count(1) as totalCount,(select count(1) from cms_article where is_top=1 and delete_flag = '0') as zhidingCount,(select count(1) from cms_article where is_audit=1 and delete_flag = '0') as shenheCount,(select count(1) from cms_article where delete_flag='1') as deleteCount from cms_article a  ";
    	return this.querySqlObjects(sql);
    }
    
    public List<Article> queryNextArticleList(CurrentArticleInfoDTO currentArticleInfoDTO){
    	Map<String,Object> map = new HashMap<String,Object>();
    	StringBuilder hql = new StringBuilder();
    	hql.append(" select a from Article a where 1=1  ");
    	if(StringUtils.isNotBlank(currentArticleInfoDTO.getArticleId())){
    		hql.append(" and a.id <> :articleId ");
    		map.put("articleId", currentArticleInfoDTO.getArticleId());
    	}
    	if(StringUtils.isNotBlank(currentArticleInfoDTO.getColumnId())){
    		hql.append(" and a.columnInfo.id = :columnInfoId ");
    		map.put("columnInfoId", currentArticleInfoDTO.getColumnId());
    	}
    	if(currentArticleInfoDTO.getArticleDate() != null){
    		hql.append(" and a.createDate < :date ");
    		map.put("date", currentArticleInfoDTO.getArticleDate());
    		hql.append(" order by a.createDate desc ");
    	}else if(currentArticleInfoDTO.getOrderNo() != null){
    		hql.append(" and a.orderNo < :orderNo ");
    		map.put("orderNo", currentArticleInfoDTO.getOrderNo());
    		hql.append(" order by a.orderNo desc ");
    	}
    	return this.queryByMapParams(hql.toString(), map);
    }
    
    public List<Article> queryPreArticleList(CurrentArticleInfoDTO currentArticleInfoDTO){
    	Map<String,Object> map = new HashMap<String,Object>();
    	StringBuilder hql = new StringBuilder();
    	hql.append(" select a from Article a where 1=1  ");
    	if(StringUtils.isNotBlank(currentArticleInfoDTO.getArticleId())){
    		hql.append(" and a.id <> :articleId ");
    		map.put("articleId", currentArticleInfoDTO.getArticleId());
    	}
    	if(StringUtils.isNotBlank(currentArticleInfoDTO.getColumnId())){
    		hql.append(" and a.columnInfo.id = :columnInfoId ");
    		map.put("columnInfoId", currentArticleInfoDTO.getColumnId());
    	}
    	if(currentArticleInfoDTO.getArticleDate() != null){
    		hql.append(" and a.createDate > :date ");
    		map.put("date", currentArticleInfoDTO.getArticleDate());
    		hql.append(" order by a.createDate asc ");
    	}else if(currentArticleInfoDTO.getOrderNo() != null){
    		hql.append(" and a.orderNo > :orderNo ");
    		map.put("orderNo", currentArticleInfoDTO.getOrderNo());
    		hql.append(" order by a.orderNo asc ");
    	}
    	return this.queryByMapParams(hql.toString(), map);
    }


}
最近下载更多
微信网友_6658091507814400  LV3 2023年10月10日
微信网友_6602457430806528  LV6 2023年9月21日
哇塞塞哈哈哈  LV8 2023年5月4日
我也不知道谁的  LV3 2023年3月28日
GeminiLong  LV6 2022年12月22日
352601466  LV2 2022年9月20日
ma752060990  LV11 2022年9月17日
testuser1234567  LV24 2022年6月15日
wanglinddad  LV54 2022年3月15日
tiansitong  LV14 2022年3月9日
最近浏览更多
玖零定制问题修复  LV34 4月4日
woldxy  LV12 4月1日
yuanrui 3月15日
暂无贡献等级
fellowfun  LV12 3月7日
暂无贡献等级
iiiiiiixiiiiii  LV1 2023年12月29日
locklock  LV2 2023年12月22日
pokerf  LV5 2023年12月19日
WBelong  LV7 2023年12月11日
202105013142  LV1 2023年12月3日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友