亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dlog_photo_velocitytool.java

?? 個人Blog java編寫的Blog可以直接使用!
?? JAVA
字號:
/*
 *  DLOG_Photo_VelocityTool.java
 *  
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *  
 *  Author: Winter Lau (javayou@gmail.com)
 *  http://dlog4j.sourceforge.net
 */
package com.liusoft.dlog4j.velocity;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.liusoft.dlog4j.Globals;
import com.liusoft.dlog4j.SessionUserObject;
import com.liusoft.dlog4j.base._PhotoBase;
import com.liusoft.dlog4j.beans.AlbumBean;
import com.liusoft.dlog4j.beans.PhotoBean;
import com.liusoft.dlog4j.beans.PhotoOutlineBean;
import com.liusoft.dlog4j.beans.PhotoReplyBean;
import com.liusoft.dlog4j.beans.SiteBean;
import com.liusoft.dlog4j.dao.AlbumDAO;
import com.liusoft.dlog4j.dao.PhotoDAO;
import com.liusoft.dlog4j.dao.ReplyDAO;
import com.liusoft.dlog4j.util.RequestUtils;

/**
 * 相冊模塊的Toolbox類
 * @author Winter Lau
 */
public class DLOG_Photo_VelocityTool extends VelocityTool {

	private static Log log = LogFactory.getLog(DLOG_Photo_VelocityTool.class);
	
	/**
	 * 訪問相簿的詳細信息
	 * @param album_id
	 * @return
	 */
	public AlbumBean album(int album_id){
		if(album_id <= 0) return null;
		return AlbumDAO.getAlbumByID(album_id);
	}
	
	/**
	 * 返回總的照片數
	 * @return
	 */
	public int photo_count(){
		return PhotoDAO.getPhotoCount(-1);
	}
	
	/**
	 * 訪問某個評論內容
	 * @param site
	 * @param reply_id
	 * @return
	 */
	public PhotoReplyBean reply(int reply_id){
		if(reply_id < 0)
			return null;
		return (PhotoReplyBean)ReplyDAO.getReply(PhotoReplyBean.class, reply_id);
	}
	
	/**
	 * 分頁列出某張照片的評論
	 * @param site
	 * @param user
	 * @param log_id
	 * @param page
	 * @param pageSize
	 * @return
	 */
	public List replies(SiteBean site, SessionUserObject user, _PhotoBase photo, int page, int pageSize){
		if (site == null || photo==null)
			return null;
		if(!canViewThisPhoto(site, user, photo, request))
			return null;

		int fromIdx = (page - 1) * pageSize;
		if(fromIdx < 0)
			fromIdx = 0;
		return PhotoDAO.listPhotoReplies(photo.getId(), fromIdx, pageSize);
	}

	/**
	 * 獲取相冊評論總數(p_replies.vm)
	 * @param site
	 * @param user
	 * @return
	 */
	public int photo_reply_count(SiteBean site, SessionUserObject user){
		if(site==null) return -1;
		return PhotoDAO.getPhotoReplyCount(site, user);
	}

	/**
	 * 列出所有圖片(用于管理)
	 * @param page
	 * @param count
	 * @return
	 */
	public List list_photos(int page, int count){
		int fromIdx = (page-1)*count;
		return PhotoDAO.listPhotos(fromIdx, count);
	}
	
	public int all_photo_count(){
		return PhotoDAO.photoCount();
	}

	/**
	 * 用于在photo_album.vm頁面中列出照片
	 * @param site
	 * @param user
	 * @param album_id
	 * @param month_stamp 月份戳,例如200506表示看2005年6月份的照片
	 * @param page
	 * @param count
	 * @return
	 */
	public List list_photos(SiteBean site, SessionUserObject user, int album_id, int month_stamp, int page, int count){
		if(count < 1)
			count = 10;
		int fromIdx = (page-1)*count;
		if(fromIdx < 0)
			fromIdx = 0;
		int year = RequestUtils.getParam(request, "year", -1);
		int month = RequestUtils.getParam(request, "month", -1);
		if(year>0 && month>0 && month_stamp<0)
			month_stamp = year * 100 + month;
		int date = RequestUtils.getParam(request, "date", -1);

		if(site==null)
			return PhotoDAO.listPhotos(album_id, month_stamp, date, fromIdx, count);
		else{
			if(album_id < 1)
				return PhotoDAO.listPhotos(site, user, album_id, month_stamp, date, fromIdx, count);
			else{
				//判斷用戶有沒有訪問該相簿的權限
				AlbumBean album = AlbumDAO.getAlbumByID(album_id);
				if(can_access_album(site, user, album, request)){
					return PhotoDAO.listPhotos(album, fromIdx, count);
				}
			}
		}
		return null;
	}
	
	/**
	 * 統計某個月歷每天的照片數(_album_calendar.vm)
	 * @param site
	 * @param user
	 * @param year
	 * @param month
	 * @return
	 */
	public List photo_counts_by_month(SiteBean site, SessionUserObject user, int year, int month){
		if(site==null) 
			return null;
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, year);
		cal.set(Calendar.MONTH, month-1);
		int[] logc = PhotoDAO.statCalendarPhotoCount(site, user, cal);
		List logcs = new ArrayList();
		for(int i=0;i<logc.length;i++){
			logcs.add(new Integer(logc[i]));
		}
		return logcs;
	}
	
	/**
	 * 列出某個網站的最新照片評論(_album_top_info.vm, p_replies.vm)
	 * 
	 * @param site
	 * @param user
	 * @param last_reply_id
	 * @param count
	 * @return
	 */
	public List list_photo_replies(SiteBean site, int page, int count, SessionUserObject user) {
		if (site == null)
			return null;
		int fromidx = (page - 1) * count;
		return PhotoDAO.listPhotoReplies(site, fromidx, count, user);
	}
	
	/**
	 * 獲取上一張照片(photo/show.vm)
	 * @param site
	 * @param user
	 * @param album_id
	 * @param photo_id
	 * @return
	 */
	public PhotoOutlineBean prev_photo(SiteBean site, SessionUserObject user, int album_id, int photo_id){
		if (site == null || photo_id < 0)
			return null;
		try{
			return PhotoDAO.getPrevPhoto(site,user,album_id,photo_id);
		}catch(Exception e){
			log.error("prev_photo execute failed.", e);
		}
		return null;
	}

	/**
	 * 獲取下一張照片(photo/show.vm)
	 * @param site
	 * @param user
	 * @param album_id
	 * @param photo_id
	 * @return
	 */
	public PhotoOutlineBean next_photo(SiteBean site, SessionUserObject user, int album_id, int photo_id){
		if (site == null || photo_id < 0)
			return null;
		try{
			return PhotoDAO.getNextPhoto(site, user, album_id, photo_id);
		}catch(Exception e){
			log.error("next_photo execute failed.", e);
		}
		return null;
	}
	/**
	 * 訪問照片,增加照片的閱讀數
	 * @param site
	 * @param user
	 * @param log
	 */
	public void visit_photo(SiteBean site, SessionUserObject user, _PhotoBase photo){
		if(photo!=null && photo.getSite().getId()==site.getId()){			
			try{
				PhotoDAO.incViewCount(photo.getId(), 1);
			}catch(Exception e){
				log.error("visit_diary failed.", e);
			}
		}
	}
	/**
	 * 讀取照片的詳細資料
	 * @param site
	 * @param user
	 * @param photo_id
	 * @return
	 */
	public PhotoBean photo(SiteBean site, SessionUserObject user, int photo_id){
		if(site==null || photo_id < 1)
			return null;
		PhotoBean photo = PhotoDAO.getPhotoByID(photo_id);
		if(canViewThisPhoto(site,user,photo,request))
			return photo;
		return null;
	}
	
	/**
	 * 判斷某用戶是否有查看某張照片的權限
	 * @param site
	 * @param user
	 * @param photo
	 * @return
	 */
	protected boolean canViewThisPhoto(SiteBean site, SessionUserObject user, _PhotoBase photo, HttpServletRequest req){
		if(photo==null || photo.getSite().getId() != site.getId())
			return false;
		//判斷用戶是否有訪問的權限
		//1. 站長可以訪問任何屬于他照片
		if(user!=null && site.isOwner(user))
			return true;
		//2. 非站長
		if(photo.getStatus()!=PhotoBean.STATUS_NORMAL)
			return false;
		//判斷相簿的權限
		//公開分類任何人可以瀏覽
		if(photo.getAlbum().getType()==AlbumBean.TYPE_PUBLIC)
			return true;
		if(photo.getAlbum().getType()==AlbumBean.TYPE_VERIFIED){
			//檢查用戶是否已經通過驗證
			HttpSession ssn = req.getSession(false);
			if(ssn!=null && ssn.getAttribute("ALBUM_" + photo.getAlbum().getId())!=null){				
				return true;
			}
		}
		return false;
	}

	/**
	 * 判斷某用戶是否有查看某張照片的權限
	 * @param site
	 * @param user
	 * @param photo
	 * @return
	 */
	public boolean can_access_album(SiteBean site, SessionUserObject user, AlbumBean album, HttpServletRequest req){
		if(album==null || album.getSite().getId() != site.getId())
			return false;
		//判斷用戶是否有訪問的權限
		//1. 站長可以訪問任何屬于他照片
		if(user!=null && site.isOwner(user))
			return true;
		//判斷相簿的權限
		//公開分類任何人可以瀏覽
		if(album.getType()==AlbumBean.TYPE_PUBLIC)
			return true;
		if(album.getType()==AlbumBean.TYPE_VERIFIED){
			//檢查用戶是否已經通過驗證
			HttpSession ssn = req.getSession(false);
			if(ssn!=null && ssn.getAttribute(Globals.ALBUM_VERIFY_KEY + album.getId())!=null){				
				return true;
			}
		}
		return false;
	}
	
	/**
	 * 獲取相片數
	 * @param site
	 * @param user
	 * @param album_id
	 * @param month
	 * @return
	 */
	public int photo_count(SiteBean site, SessionUserObject user, int album_id, int month_stamp){
		if(site==null)
			return -1;
		int year = RequestUtils.getParam(request, "year", -1);
		int month = RequestUtils.getParam(request, "month", -1);
		if(year>0 && month>0 && month_stamp<0)
			month_stamp = year * 100 + month;
		int date = RequestUtils.getParam(request, "date", -1);
		return PhotoDAO.getPhotoCount(site, user, album_id, month_stamp, date);
	}
	
	/**
	 * 列出相冊中有效的月份
	 * @param site
	 * @return
	 */
	public List list_photo_months(SiteBean site){
		if(site==null)
			return null;
		List months = PhotoDAO.listMonths(site.getId());
		Collections.reverse(months);
		return months;
	}

	/**
	 * 整理相片月份的顯示
	 * @param site
	 * @return
	 */
	public List format_photo_months(List months){
		if(months==null)
			return null;
		List new_months = new ArrayList();
		if(months.size()>0){
			new_months.addAll(months);
			final SimpleDateFormat month_fm = new SimpleDateFormat("MMM yyyy", request.getLocale());
			Calendar time = Calendar.getInstance();
			for(int i=0;i<new_months.size();i++){
				int value = ((Integer)new_months.get(i)).intValue();
				time.set(Calendar.YEAR, value / 100);
				time.set(Calendar.MONTH, ((value % 100) -1));
				new_months.set(i, month_fm.format(time.getTime()));
			}
		}
		return new_months;
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产免费一区二区| 午夜精品久久久久影视| 狠狠色综合播放一区二区| 不卡欧美aaaaa| 日韩国产欧美在线视频| 亚洲免费资源在线播放| 欧美激情综合在线| 欧美大片日本大片免费观看| 在线一区二区三区做爰视频网站| 国产精品美女久久久久久久久| 欧美日本视频在线| 欧美视频精品在线观看| 不卡的av网站| 成人国产精品免费观看视频| 国产精品嫩草99a| 久久久精品免费免费| 韩国精品主播一区二区在线观看| www国产亚洲精品久久麻豆| 国产综合久久久久久鬼色| 美国十次了思思久久精品导航| 日韩欧美一二三四区| 国产精品自产自拍| 国产激情一区二区三区四区| 精品伊人久久久久7777人| 欧美日韩综合在线| 麻豆视频观看网址久久| 丝袜美腿亚洲综合| 午夜精品一区二区三区电影天堂 | 久久综合色婷婷| 日韩一区二区三| 国产高清不卡二三区| 国产成人免费网站| 99国产精品久久久久久久久久久| av欧美精品.com| 日韩激情视频网站| 亚洲国产精品精华液ab| 国产精品免费av| 亚洲一区二区三区在线看| 久久久久久99精品| 精品999久久久| 久久精品亚洲国产奇米99| 综合久久久久综合| 亚洲成人午夜电影| 国产日本欧美一区二区| 国产精品乱子久久久久| 亚洲电影第三页| 国产成人免费xxxxxxxx| 日韩一区二区三区免费看 | 欧美日韩黄视频| 日韩欧美成人一区二区| 国产精品理论片| 亚洲sss视频在线视频| 久久嫩草精品久久久久| 亚洲日本一区二区三区| 亚洲精品国产成人久久av盗摄| 亚洲不卡在线观看| 国产精品99精品久久免费| 亚洲国产你懂的| 国产精品911| 久久99精品久久久久久国产越南 | 欧美一区二区三区日韩视频| 色悠悠久久综合| 国产福利一区二区三区视频在线 | 国产成人亚洲综合a∨婷婷| 一本一道综合狠狠老| 在线播放中文一区| 国产91清纯白嫩初高中在线观看 | 精品一区二区三区免费观看| 亚洲成人tv网| 97久久超碰精品国产| 久久青草欧美一区二区三区| 久久久久久电影| 免费在线一区观看| 欧美日韩精品久久久| 色老头久久综合| 欧美国产成人精品| 一区二区三区波多野结衣在线观看| 国产精品一区二区在线观看网站 | 亚洲福利一二三区| 欧美精品久久99久久在免费线| 亚洲最快最全在线视频| 天天色 色综合| 欧美剧在线免费观看网站| 亚洲狠狠爱一区二区三区| 成人av影视在线观看| 国产精品视频一区二区三区不卡| 亚洲自拍偷拍麻豆| 天堂午夜影视日韩欧美一区二区| 欧美日韩成人综合在线一区二区| 亚洲欧美日韩久久精品| 欧美伊人精品成人久久综合97| 亚洲国产一区二区三区青草影视| 91精品国产品国语在线不卡| 日韩专区一卡二卡| 久久久久久久久久看片| 91一区一区三区| 久久66热re国产| 久久久噜噜噜久久中文字幕色伊伊| 国产成人丝袜美腿| 亚洲欧美区自拍先锋| 91精品国产品国语在线不卡| 国产米奇在线777精品观看| 国产精品视频一二三| 欧美精品一二三区| 国产不卡视频在线观看| 亚洲午夜免费电影| xf在线a精品一区二区视频网站| 波多野结衣在线一区| 亚洲成人av资源| 欧美经典一区二区| 欧美日韩情趣电影| 成人黄色小视频| 免费欧美在线视频| 国产精品电影一区二区三区| 91精品国产手机| 91麻豆免费在线观看| 美脚の诱脚舐め脚责91| 亚洲精品成人在线| 国产免费成人在线视频| 欧美一区二区三区在线视频| 91丨九色丨黑人外教| 极品美女销魂一区二区三区| 一区二区三区四区在线免费观看| 日韩免费观看高清完整版在线观看| eeuss鲁片一区二区三区在线看| 日韩有码一区二区三区| 亚洲乱码国产乱码精品精可以看| 久久免费的精品国产v∧| 欧美精品v日韩精品v韩国精品v| 色综合天天综合狠狠| 国产成人在线视频网址| 青青草伊人久久| 亚洲国产成人tv| 国产精品素人视频| 久久五月婷婷丁香社区| 日韩一区二区在线观看视频| 欧美人伦禁忌dvd放荡欲情| 91丨九色丨蝌蚪富婆spa| av电影一区二区| 成人av电影在线播放| 春色校园综合激情亚洲| 国产大陆精品国产| 国产精品18久久久久久久久久久久| 美女脱光内衣内裤视频久久网站 | 99国产一区二区三精品乱码| 国产精品综合一区二区| 久久99久久99| 国模套图日韩精品一区二区 | 中文字幕一区二区三区在线不卡| 亚洲精品一区二区三区99| 日韩欧美国产不卡| 日韩视频123| 欧美精品一区二区蜜臀亚洲| 日韩欧美黄色影院| 精品国精品自拍自在线| 精品国产凹凸成av人导航| 26uuu国产电影一区二区| 久久精品视频免费| 国产精品色眯眯| 中文字幕一区二区三| 亚洲一区视频在线| 日韩avvvv在线播放| 久草精品在线观看| 国产精品中文有码| www.成人在线| 欧美男同性恋视频网站| 日韩片之四级片| 国产日韩综合av| 综合自拍亚洲综合图不卡区| 亚洲精品久久久久久国产精华液| 中文字幕日韩一区| 亚洲妇熟xx妇色黄| 久久精品国产成人一区二区三区| 久久不见久久见免费视频1| 国产在线国偷精品免费看| 成人网页在线观看| 欧美视频中文一区二区三区在线观看| 在线播放一区二区三区| 久久精品免费在线观看| 亚洲美女偷拍久久| 麻豆91小视频| 99精品桃花视频在线观看| 在线播放欧美女士性生活| 精品国产123| 一区二区三区日韩欧美精品| 蜜桃91丨九色丨蝌蚪91桃色| 不卡一区中文字幕| 欧美夫妻性生活| 中文字幕中文乱码欧美一区二区 | 精品国产免费久久| 亚洲精品网站在线观看| 久久国产精品色| 在线观看欧美精品| 久久久久99精品国产片| 一区二区三区成人在线视频| 国产精品一区二区三区四区| 欧美亚洲动漫制服丝袜| 欧美高清在线一区| 久久国产欧美日韩精品| 欧美日韩一区不卡|