📄 clientserviceimpl.java
字号:
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 + -