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

📄 clientserviceimpl.java

📁 一个基于j2ee的电子相册系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package angus.service.impl;

import angus.service.root.ClientService;
import angus.dao.PhotoDao;
import angus.dao.ClientDao;
import angus.dao.PhotoWordDao;
import angus.dao.AlbumDao;
import angus.dao.KindDao;
import angus.dao.AlbumWordDao;
import angus.model.Photo;
import angus.model.Client;
import angus.model.Kind;
import angus.model.Album;
import angus.model.Photo;
import angus.model.PhotoWord;
import angus.vo.PhotoVO;
import angus.vo.ClientVO;
import angus.vo.PhotoWordVO;
import angus.vo.AlbumVO;
import angus.vo.KindVO;
import angus.vo.PhotoVO;
import angus.exception.MyException;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

public class ClientServiceImpl implements ClientService
{
	//业务逻辑组件持久化访问依赖的PhotoDao组件
	private PhotoDao pd;
	//业务逻辑组件持久化访问依赖的ClientDao组件
	private ClientDao cd;
	//业务逻辑组件持久化访问依赖的PhotoWordDao组件
	private PhotoWordDao pwd;
	//业务逻辑组件持久化访问依赖的AlbumDao组件
	private AlbumDao ad;
	//业务逻辑组件持久化访问依赖的KindDao组件
	private KindDao hd;
	//业务逻辑组件持久化访问依赖的AlbumWordDao组件
	private AlbumWordDao awd;

	//依赖注入各种DAO组件所必须的setter方法
	public void setAd(AlbumDao ad)
	{
		this.ad = ad;
	}
	public void setPd(PhotoDao pd)
	{
		this.pd = pd;
	}
	public void setKd(KindDao hd)
	{
		this.hd = hd;
	}
	public void setCd(ClientDao cd)
	{
		this.cd = cd;
	}
	public void setPwd(PhotoWordDao pwd)
	{
		this.pwd = pwd;
	}
	public void setAwd(AlbumWordDao awd)
	{
		this.awd = awd;
	}

	/**
	 * 新增相片评论
	 * @param title 新增相片评论的标题
	 * @param content 新增相片评论的内容
	 * @param addDate 相片评论的添加时间
	 * @param photoId 相片评论对应的相片 
	 * @paam clientId 相片评论的添加人ID
	 */
	public void addPhotoWord(String title, String content, String addDate, Integer photoId, Integer clientId)
		throws MyException
	{
		try
		{
			Photo photo = pd.get(photoId);
			Client client = cd.get(clientId);
			pwd.save(new PhotoWord(title, content, addDate, photo, client));
		}
		catch (Exception e)
		{
			e.printStackTrace(); 
			throw new MyException("发表评论异常");
		}
	}

	/**
	 * 新增相册
	 * @param name 相册名字
	 * @param desc 相册描述
	 * @param createDate 相册的创建时间。
	 * @param times 相册的访问次数。
	 * @param cId 相册的创建人ID
	 * @param kindId 相册所属的相册分类ID
	 */
	public void addAlbum(String name, String desc, String createDate, long times, Integer cId, Integer kindId)
		throws MyException
	{
		try
		{
			Client client = cd.get(cId);
			Kind kind = hd.get(kindId);
			Album album = new Album(name, desc, createDate, times, client, kind);
			ad.save(album);
		}
		catch (Exception e)
		{
			e.printStackTrace(); 			
			throw new MyException("添加相册异常,请重试");
		}
	}

	/**
	 * 更新相册
	 * @param name 相册名字
	 * @param desc 相册描述
	 * @param kindId 需要将相册修改为的相册分类。
	 * @param albumId 相册ID
	 */
	public void updateAlbum(String name, String desc, Integer kindId, Integer albumId)throws MyException
	{
		try
		{
			Album album = ad.get(albumId);
			Kind kind = hd.get(kindId);
			album.setKind(kind);
			album.setName(name);
			album.setDesc(desc);
			ad.update(album);			
		}
		catch (Exception e)
		{
			e.printStackTrace(); 			
			throw new MyException("修改相册信息异常");
		}

	}

	/**
	 * 删除相册
	 * @param albumId 需要删除的相册ID
	 */
	public void deleteAlbum(int albumId)throws MyException
	{
		try
		{
			ad.delete(albumId);
		}
		catch (Exception e)
		{
			e.printStackTrace(); 			
			throw new MyException("删除相册异常");
		}
	}

	/**
	 * 检查指定ID的相册是否存在
	 * @param id 需要检查的相册ID
	 * @return 存在返回true,不存在返回false。
	 */
	public boolean checkAlbum(Integer id)throws MyException
	{
		try
		{
			Album album = ad.get(id);
			if (album == null)
			{
				return false;
			}
			return true;
		}
		catch (Exception e)
		{
			e.printStackTrace(); 			
			throw new MyException("检验相册出现异常,请重试");
		}

	}

	/**
	 * 根据ID来获取相册资料。
	 * @param id 需要获取相册资料的ID。
	 * @return 指定ID对应的相册值对象。
	 */
	public AlbumVO getAlbum(Integer id)throws MyException
	{
		try
		{
			Album album = ad.get(id);
			return fillAlbumVO(album);
		}
		catch (Exception e)
		{
			e.printStackTrace(); 			
			throw new MyException("获取相册资料异常");
		}
	}

	/**
	 * 设置相册封面
	 * @param albumId 指定相册ID
	 * @param photoId 需要设置为相册封面的相片ID
	 */
	public void setCover(Integer albumId, Integer photoId)throws MyException
	{
		try
		{
			Album album = ad.get(albumId);
			Photo photo = pd.get(photoId);
			Photo coverPhoto = pd.getCoverPhoto(album, true);
			if (coverPhoto == null)
			{
				photo.setCover(true);
				pd.update(photo);
			}
			else
			{
				coverPhoto.setCover(false);
				photo.setCover(true);
				pd.update(photo);
				pd.update(coverPhoto);
			}
		}
		catch (Exception e)
		{
			e.printStackTrace(); 		
			throw new MyException("设置相册封面异常");
		}
	}

	/**
	 * 根据用户名和密码校验用户登录
	 * @param name 需要校验的用户名
	 * @param pass 需要校验的密码
	 * @return 查询用户的主键值,如果查询不到用户返回-1
	 */	  
	public int checkClient(String name, String pass)throws MyException
	{
		try
		{
			int id = cd.findByNameAndPass(name, pass);
			if (id <= 0)
			{
				return -1;
			}
			return id;
		}
		catch (Exception e)
		{
			e.printStackTrace(); 		
			throw new MyException("检查用户异常,请重试");
		}
	}

	/**
	 * 获取指定用户的相册列表
	 * @param clientId 指定用户的ID
	 * @param first 需要显示的第一相册ID
	 * @param pageSize 每页显示的相册数量。
	 * @return 该用户对应的相册列表。
	 */
	public List<AlbumVO> getClientAlbums(int clientId , int first, int pageSize)throws MyException
	{
		try
		{
			Client client = cd.get(clientId);
			List result = ad.getAllByClient(client, first, pageSize);
			List<AlbumVO> vos = new ArrayList<AlbumVO>();
			for (Iterator it = result.iterator() ; it.hasNext() ; )
			{
				AlbumVO vo = null;
				Album al = (Album)it.next();
				if (pd.getCover(al, true) == null)
				{
					vo = fillAlbumVO(al);
				}
				else
				{
					Photo ph = pd.get(pd.getCover(al, true));
					vo = fillAlbumVO(al, ph);
				}
				vos.add(vo);
			}
			return vos;		
		}
		catch (Exception e)
		{
			e.printStackTrace(); 		
			throw new MyException("获取用户相册异常");
		}
	}

	/**
	 * 获取指定用户的相册数量。
	 * @param clientId 需要获得相册数量的用户ID
	 * @return 该用户的相册数量
	 */
	public int getAlbumCount(int clientId)throws MyException
	{
		try
		{
			Client client = cd.get(clientId);
			return ad.getAmount(client);			
		}
		catch (Exception e)
		{
			e.printStackTrace(); 
			throw new MyException("获取相册数量异常");
		}

	}
	
	/**
	 * 根据ID获取指定相册的信息
	 * @param id 指定的相册ID
	 * @return 该相册的信息
	 */
	public AlbumVO getClientAlbum(Integer id)throws MyException
	{
		try
		{
			Album album = ad.get(id);
			if (album == null)
			{
				return null;
			}
			return fillAlbumVO(album);
		}
		catch (Exception e)
		{
			e.printStackTrace(); 
			throw new MyException("获取单个相册信息异常");
		}
	}

	/* 获取指定ID的用户信息
	 * @param clientId 指定用户的用户ID。
	 * @return 指定用户的详细信息
	 */
	public ClientVO getClientInfo(int clientId)throws MyException
	{
		try
		{
			Client client = cd.get(clientId);
			if (client == null)
			{
				return null;
			}
			return fillClientInfoVO(client);
		}
		catch (Exception e)
		{
			e.printStackTrace(); 
			throw new MyException("获取用户资料异常,请重试");
		}
	}

	/**
	 * 判断指定用户名的用户是否存在
	 * @param name 需要判断的用户名
	 * @return 如果该用户名对应的用户存在,则返回true,否则返回false
	 */
	public boolean checkName(String name)throws MyException
	{
		try
		{
			if (cd.findByName(name) == null)
			{
				return false;
			}
			return true;
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new MyException("检验用户名时出现异常");
		}
	}

	/**
	 * 添加用户
	 * @param name 添加用户的用户名
	 * @param pass 添加用户的密码
	 * @param sex 添加用户的密码
	 * @param mail 添加用户的电子邮件。
	 * @return 新增用户的主键值
	 */
	public int addClient(String name, String pass, boolean sex, String mail, String qq)throws MyException
	{
		try
		{
			Client client = new Client(name, pass, sex, mail, qq); 
			cd.save(client);
			return client.getId();
		}
		catch(Exception e)
		{

⌨️ 快捷键说明

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