TemplateService.java 9.4 KB
package com.jflyfox.modules.front.template;

import com.jfinal.plugin.activerecord.Page;
import com.jflyfox.api.entity.BDemand;
import com.jflyfox.jfinal.base.BaseService;
import com.jflyfox.jfinal.base.Paginator;
import com.jflyfox.modules.admin.article.TbArticle;
import com.jflyfox.modules.admin.folder.TbFolder;
import com.jflyfox.modules.admin.foldernotice.TbFolderNotice;
import com.jflyfox.modules.admin.folderrollpicture.TbFolderRollPicture;
import com.jflyfox.modules.admin.tags.TbTags;
import com.jflyfox.modules.front.articlelike.ArticleLikeCache;
import com.jflyfox.modules.front.service.FrontCacheService;
import com.jflyfox.modules.web.entity.IndexArticle;
import com.jflyfox.system.config.ConfigCache;
import com.jflyfox.system.config.SysConfig;

import java.text.SimpleDateFormat;
import java.time.ZonedDateTime;
import java.util.*;

/**
 * 模板方法接口
 * <p>
 * 2016年1月18日 下午6:05:54 flyfox 369191470@qq.com
 */
public class TemplateService extends BaseService {

    private final static FrontCacheService service = new FrontCacheService();

    private final static ArticleLikeCache articleLikeservice = new ArticleLikeCache();

    /**
     * 获取浏览数
     * <p>
     * 2015年6月2日 下午6:30:56 flyfox 369191470@qq.com
     *
     * @param articleId
     * @return
     */
    public static int countView(int articleId) {
        TbArticle article = service.getArticleCount(articleId);
        return article == null ? 0 : article.getCountView();
    }

    /**
     * 获取评论数
     * <p>
     * 2015年6月2日 下午6:30:56 flyfox 369191470@qq.com
     *
     * @param articleId
     * @return
     */
    public static int countComment(int articleId) {
        TbArticle article = service.getArticleCount(articleId);
        return article == null ? 0 : article.getCountComment();
    }

    /**
     * 获取浏览数
     * <p>
     * 2015年6月2日 下午6:30:56 flyfox 369191470@qq.com
     *
     * @param articleId
     * @return
     */
    public static boolean isLike(int userId, int articleId) {
        return articleLikeservice.isLike(userId, articleId);
    }

    /**
     * 获取标签信息
     * <p>
     * 2015年5月25日 下午11:49:58 flyfox 369191470@qq.com
     *
     * @return
     */
    public List<TbTags> tagsListByArticle(int articleId) {
        return service.getTagsByArticle(articleId);
    }

    /**
     * 获取标签信息
     * <p>
     * 2015年5月25日 下午11:49:58 flyfox 369191470@qq.com
     *
     * @param folderId 目录
     * @return
     */
    public Page<TbTags> tagsPageByFolder(int pageNo, int pageSize, int folderId) {
        return service.getTagsByFolder(new Paginator(pageNo, pageSize), folderId);
    }

    /**
     * 获取标签信息
     * <p>
     * 2015年5月25日 下午11:49:03 flyfox 369191470@qq.com
     *
     * @return
     */
    public Page<TbTags> tagsPage(int pageNo, int pageSize, int siteId) {
        return service.getTags(new Paginator(pageNo, pageSize), siteId);
    }

    /**
     * 查询文章,展示的和类型为11,12的推荐文件,前10个
     * <p>
     * 2015年4月29日 下午4:48:24 flyfox 369191470@qq.com
     *
     * @return
     */
    public Page<TbArticle> articlePageRecommend(int pageNo, int pageSize, int siteId) {
        return service.getRecommendArticle(new Paginator(pageNo, pageSize), siteId);
    }

    /**
     * 返回最新文章
     * <p>
     * 2015年5月24日 下午10:52:05 flyfox 369191470@qq.com
     *
     * @return
     */
    public Page<TbArticle> articlePageTop(int pageNo, int pageSize, int siteId) {
        return service.getNewArticle(new Paginator(pageNo, pageSize), siteId);
    }

    /**
     * 返回文章列表
     * <p>
     * 2015年5月24日 下午10:52:05 flyfox 369191470@qq.com
     */
    public Page<TbArticle> articlePageSite(int pageNo, int pageSize, int siteId) {
        return service.getArticleBySiteId(new Paginator(pageNo, pageSize), siteId);
    }

    /**
     * 按照特定排序,返回文章列表
     * <p>
     * 2017年1月17日 下午5:37:16
     * flyfox 330627517@qq.com
     *
     * @param pageNo
     * @param pageSize
     * @param siteId
     * @param orderType
     * @return
     */
    public Page<TbArticle> articleOrder(int pageNo, int pageSize, int siteId, int orderType) {
        return service.getArticleByOrder(new Paginator(pageNo, pageSize), siteId, orderType);
    }

    /**
     * 返回文章列表
     * <p>
     * 2015年5月24日 下午10:52:05 flyfox 369191470@qq.com
     *
     * @param folderId
     * @return
     */
    public Page<TbArticle> articlePage(int pageNo, int pageSize, int folderId) {
        return service.getArticle(new Paginator(pageNo, pageSize), folderId);
    }

    /**
     * 返回文章列表不走缓存
     * <p>
     * 2015年5月24日 下午10:52:05 flyfox 369191470@qq.com
     *
     * @param folderId
     * @return
     */
    public Page<TbArticle> articlePageNoCache(int pageNo, int pageSize, int folderId) {
        return service.getArticleByNoCache(new Paginator(pageNo, pageSize), folderId);
    }

    /**
     * 返回文章列表不走缓存
     * <p>
     * 2015年5月24日 下午10:52:05 flyfox 369191470@qq.com
     *
     * @return
     */
    public Page<TbArticle> articlePageNoCache(int pageNo, int pageSize, String folderKey, Integer siteId) {
        TbFolder folder = TbFolder.dao.findFirstByWhere("where `key` = ?  and site_id = ?", folderKey, siteId);
        return Optional.ofNullable(folder).map(e -> service.getArticleByNoCache(new Paginator(pageNo, pageSize), e.getId())).orElse(null);
    }

    /**
     * 返回对应文章
     * <p>
     * 2015年5月24日 下午10:52:05 flyfox 369191470@qq.com
     *
     * @return
     */
    public TbArticle article(int articleId) {
        return service.getArticle(articleId);
    }

    /**
     * 获取栏目滚动图片
     * <p>
     * 2016年1月28日 下午5:28:25 flyfox 369191470@qq.com
     *
     * @param folderId
     * @return
     */
    public List<TbFolderRollPicture> rollPicture(int folderId) {
        return service.getRollPicture(folderId);
    }

    /**
     * 获取栏目滚动图片
     * <p>
     * 2016年1月28日 下午5:28:25 flyfox 369191470@qq.com
     *
     * @return
     */
    public List<TbFolderRollPicture> rollPicture(String folderKey, Integer siteId) {
        TbFolder folder = TbFolder.dao.findFirstByWhere("where `key` = ?  and site_id = ?", folderKey, siteId);
        if(folder==null){
            return null;
        }else {
            return service.getRollPicture(folder.getId());
        }
    }

    /**
     * 获取公告信息
     * <p>
     * 2016年1月28日 下午5:29:47 flyfox 369191470@qq.com
     *
     * @param folderId
     */
    public List<TbFolderNotice> notice(int folderId) {
        return service.getNotice(folderId);
    }

    /**
     * 官网首页产品与解决方案
     */
    public List<IndexArticle> indexArticles(int folderId) {
        return service.indexArticles(folderId);
    }

    /**
     * 获取同级
     */
    public List<TbFolder> folderBrother(int folderId) {
        return service.folderBrother(folderId);
    }

    /**
     * 获取下级
     */
    public List<TbFolder> folderSon(int folderId) {
        return service.folderSon(folderId);
    }

    /**
     * 获取平级
     *
     * @param folderId 栏目Id
     * @return 栏目对象
     */
    public TbFolder folderParent(int folderId) {
        return service.folderParent(folderId);
    }

    /**
     * 获取下级
     */
    public List<TbFolder> folderSon(String folderKey, Integer siteId) {
        TbFolder folder = TbFolder.dao.findFirstByWhere("where `key` = ?  and site_id = ?", folderKey, siteId);
        return folder == null ? null : service.folderSon(folder.getId());
    }

    /**
     * 获取栏目
     */
    public TbFolder getFolder(String folderKey, Integer siteId) {
        return TbFolder.dao.findFirstByWhere("where `key` = ?  and site_id = ?", folderKey, siteId);
    }

    public String getSysConfig(String key) {
        SysConfig config = ConfigCache.getSysConfig(key);
        return config == null ? "" : config.getValue();
    }

    public Page<BDemand> getOrders(int pageNo, int pageSize) {
        String fromSql = " from b_demand b  where 1=1 ";
        // 推荐文章列表
        Page<BDemand> demands = BDemand.dao.paginate(new Paginator(pageNo, pageSize), "select * ", fromSql);
        List<BDemand> list = demands.getList();
        Map<String,String> map =new HashMap<>();
        map.put("TRUCK","车运");
        map.put("SHIP","船运");

        Map<String,String> stMap =new HashMap<>();
        stMap.put("PUBLISH","已发布");
        stMap.put("RECEIVE","已接受");
        stMap.put("REJECT","拒绝");
        stMap.put("GOING","进行中");
        stMap.put("FINISH","结束");
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (BDemand demand : list){
            String type = (String) demand.getAttrs().get("vehicle_type");
            demand.setTYPE(map.get(type));
            String status = (String)demand.getAttrs().get("status");
            demand.setSTATUS(stMap.get(status));
            Date date = (Date)demand.getAttrs().get("created_date");
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.HOUR,-8);
            date = cal.getTime();
            String strDate = formatter.format(date);
            demand.setCREATED_DATE(strDate);

        }
        return demands;
    }
}