⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adserviceimpl.java

📁 这是一款最新的野蔷薇论坛源码,有需要的朋友可以尽情下载
💻 JAVA
字号:
/* 
 * Created on 2007-8-4
 * Last modified on 2007-8-4
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.service.util.impl;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.yeqiangwei.club.cache.Cache;
import com.yeqiangwei.club.cache.singleton.CacheFactory;
import com.yeqiangwei.club.dao.AdDAO;
import com.yeqiangwei.club.dao.DAOLocator;
import com.yeqiangwei.club.dao.DAOWrapper;
import com.yeqiangwei.club.dao.model.Ad;
import com.yeqiangwei.club.param.AdParameter;
import com.yeqiangwei.club.service.model.AdModel;
import com.yeqiangwei.club.service.user.UserLogin;
import com.yeqiangwei.club.service.util.AdService;
import com.yeqiangwei.club.util.BeanLocator;
import com.yeqiangwei.club.util.BeanUtils;
import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.TypeChange;
import com.yeqiangwei.util.Validator;

public class AdServiceImpl implements AdService{
	
	public Cache cache = CacheFactory.creator("AD");
	
	public String getCacheKey(int forumId, byte area){
		return "AD: forumId."+forumId+",area."+area;
	}
	
	public List<AdModel> findAll(){
		List<AdModel> list = null;
		AdParameter param = new AdParameter();
		param.setPage(1);
		param.setRows(1000);
		List<Ad> adlist = this.getAdDAO().findAll(param);
		if(!Validator.isEmpty(adlist)){
			list = BeanUtils.copyList(adlist,BeanLocator.ADMODEL);
		}
		return list;
	}

	public AdModel findById(int id) {
		if(id>0){
			Ad item = this.getAdDAO().findById(id);
			if(!Validator.isEmpty(item)){
				AdModel model = new AdModel();
				BeanUtils.copyProperties(model,item);
				cache.put(this.getCacheKey(model.getForumId(),model.getArea()),model);
				return model;
			}
		}
		return null;
	}
	
	public AdModel createOrUpdate(AdModel model, String[] forumIds){
		if(!Validator.isEmpty(forumIds)){
			List<Integer> list = new ArrayList<Integer>();
			for(int i=0; i<forumIds.length; i++){
				int forumId = TypeChange.stringToInt(forumIds[i]);
				list.add(forumId);
			}
			model = this.createOrUpdate(model,list);
			if(!Validator.isEmpty(model)){
				cache.put(this.getCacheKey(model.getForumId(),model.getArea()),model);
			}
		}else{
			model = null;
		}
		return model;
	}

	public AdModel createOrUpdate(AdModel model, List<Integer> forumIds) {
		if(!Validator.isEmpty(forumIds)){
			for(int i=0; i<forumIds.size(); i++){
				int forumId = forumIds.get(i);
				Ad item = this.getAdDAO().findByForumIdAndArea(forumId,model.getArea());
				if(Validator.isEmpty(item)){
					item = new Ad();
					BeanUtils.copyProperties(item,model);
					item.setForumId(forumId);
					this.getAdDAO().create(item);
				}else{
					model.setAdId(item.getAdId());
					model.setForumId(item.getForumId());
					BeanUtils.copyProperties(item,model);
					this.getAdDAO().update(item);
				}
				model.setForumId(forumId);
				if(!Validator.isEmpty(model)){
					cache.put(this.getCacheKey(model.getForumId(),model.getArea()),model);
				}
			}
		}else{
			model = null;
		}
		return model;
	}

	public int deleteById(int id) {
		if(id>0){
			Ad item = this.getAdDAO().findById(id);
			if(!Validator.isEmpty(item)){
				cache.remove(this.getCacheKey(item.getForumId(),item.getArea()));
				return this.getAdDAO().delete(item);
			}
		}
		return 0;
	}

	public AdModel findByForumIdAndArea(HttpServletRequest request, byte area){
		int forumId = ParamUtils.getIntParameter(request,"forumId");
		AdModel model = (AdModel) cache.get(this.getCacheKey(forumId,area));
		Boolean isput = (Boolean) cache.get(this.getCacheKey(forumId,area)+"-isput");
		if(Validator.isEmpty(model)&&Validator.isEmpty(isput)){
			Ad item = this.getAdDAO().findByForumIdAndArea(forumId, area);
			if(!Validator.isEmpty(item)){
				model = new AdModel();
				BeanUtils.copyProperties(model,item);
			}
			cache.put(this.getCacheKey(forumId,area),model);
			cache.put(this.getCacheKey(forumId,area)+"-isput",new Boolean(true));
		}
		if(!Validator.isEmpty(model)){
			byte isList = model.getIsList();
			int userId = UserLogin.getUserId(request);
			switch (isList){
				case 0:	//不显示
					model = null;
					break;
				case 1: //仅显示给过客
					if(userId>0){
						model = null;
					}
					break;
				case 2: //仅显示给登录用户
					if(userId==0){
						model = null;
					}
					break;
			}
		}
		return model;
	}
	
	public String getAdContent(HttpServletRequest request, byte area){
		AdModel model = this.findByForumIdAndArea(request,area);
		if(!Validator.isEmpty(model)){
			return model.getContent();
		}else{
			return "";
		}
	}
	
	public void clearCache() {
		cache.clear();
	}


	public AdDAO getAdDAO() {
		return DAOWrapper.<AdDAO>getSingletonInstance(DAOLocator.AD);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -