一 点睛
首先要设计上层的接口,即先设计业务层接口,然后再设计数据访问层接口。
业务层根据需求分析,把对应不同实体的操作抽象到对应接口中。
二 业务层接口
业务层接口的作用和主要相关功能操作的列表如下:
三 业务接口在项目中的位置
四 业务层接口代码
1 IActionServiceBack
public interface IActionServiceBack {
/**
* 实现权限的数据列表处理操作
* @return
* @throws Exception
*/
public List<Action> list(String mid) throws Exception ;
}
2 IClientServiceBack
package cn.mldn.crm.service.back;
import java.util.Map;
import java.util.Set;
import cn.mldn.crm.vo.Client;
public interface IClientServiceBack {
/**
* 实现客户信息的增加处理操作,本操作要执行如下功能:
* <li>判断当前处理用户是否具备有指定的权限</li>
* <li>如果权限存在,那么就需要进行数据的保存</li>
* @param vo 包含有客户信息的VO类
* @return 增加成功返回true,否则返回false
* @throws Exception
*/
public boolean add(Client vo) throws Exception;
/**
* 根据用户以及类型实现数据的查询处理操作,本操作将执行如下的调用:
* <li>调用IClientDAO.findAllByMemberAndType()方法查询数据</li>
* <li>调用IClientDAO.getAllCountByMemberAndType()方法统计数据量</li>
* @param mid 用户编号
* @param type 客户的类型
* @param column
* @param keyWord
* @param currentPage
* @param lineSize
* @return 返回的内容包含以下数据:
* <li>key = allClients、value = IClientDAO.findAllByMemberAndType()</li>
* <li>key = clientCount、value = IClientDAO.getAllCountByMemberAndType()</li>
* @throws Exception
*/
public Map<String, Object> listByMemberAndType(String mid, Integer type,
String column, String keyWord, Integer currentPage, Integer lineSize)
throws Exception;
/**
* 查询属于某一个用户的客户信息,在进行查询前一定要针对于当前用户的权限进行验证处理
* @param mid 用户的编号
* @param id 客户编号
* @return 返回该用户的指定的客户信息,如果没有则返回null
* @throws Exception
*/
public Client editPre(String mid,Integer id) throws Exception ;
/**
* 更新某一个用户的客户信息,需要进行权限的验证处理操作
* @param vo 包含有客户信息的内容
* @return 如果更新成功返回true,否则返回false
* @throws Exception
*/
public boolean edit(Client vo) throws Exception ;
/**
* 删除指定用户的客户信息,删除之前需要进行相关权限的判断
* @param mid 用户的编号
* @param cids 要删除的客户的编号集合
* @return
* @throws Exception
*/
public boolean rmByMember(String mid,Set<Integer> cids) throws Exception ;
}
3 IDefaultServiceBack
public interface IDefaultServiceBack {
/**
* 用户工作台的统计信息;
* @param mid
* @return 返回的信息包含有如下内容:
* <li>key = allClients、value = IClientDAO.findAllSplitByMemberAndType(),设置type为-1</li>
* <li>key = allTasks、value = ITaskDAO.findAllSplitByMember()</li>
* <li>key = clientCount、value = IClientDAO.getAllCountByMemberAndType(),设置type为-1</li>
* <li>key = unfinishCount、value = ITaskDAO.getAllCountByBeforeUnFinish()</li>
* <li>key = wfinishCount、value = ITaskDAO.getAllCountByAfterFinish()</li>
* <li></li>
* @throws Exception
*/
public Map<String, Object> stat(String mid) throws Exception;
}
4 IGroupsServiceBack
public interface IGroupsServiceBack {
/**
* 列出全部的权限组信息
* @param mid
* @return
* @throws Exception
*/
public List<Groups> list(String mid) throws Exception ;
/**
* 根据权限组编号查询权限组的详情以及对应的权限信息,包含如下操作:
* <li>调用IGroupsDAO.findById()方法查询权限组的详细信息</li>
* <li>根据权限组编号,调用IActionDAO.findAllByGroups()方法,查询此组中的所有权限信息</li>
* @param mid
* @param gid
* @return
* @throws Exception
*/
public Groups show(String mid,int gid) throws Exception ;
}
5 IManagerClientServiceBack
public interface IManagerClientServiceBack {
/**
* 根据客户类型查询客户的信息,并且进行分页显示
* @param type
* @param column
* @param keyWord
* @param currentPage
* @param lineSize
* @return 返回的数据包含如下内容:
* <li>key = allClients、value = IClientDAO.findAllByType()</li>
* <li>key = clientCount、value = IClientDAO.getAllCountByType()</li>
* @throws Exception
*/
public Map<String, Object> listByType(String mid,int type, String column,
String keyWord, int currentPage, int lineSize) throws Exception;
/**
* 根据客户编号查询出客户的完整信息
* @param mid 需要进行相关的权限检测
* @param cid
* @return
* @throws Exception
*/
public Client show(String mid,int cid) throws Exception ;
}
6 IMemberServiceBack
public interface IMemberServiceBack {
// 实现用户登录操作
public Map<String,Object> login(Member vo) throws Exception ;
// 密码修改操作
public boolean editPassword(String mid,String newPass,String oldPass) throws Exception ;
// 增加数据前的数据查询处理
public Map<String,Object> addPre(String mid) throws Exception ;
// 用户数据添加处理
public boolean add(String mid, Member vo) throws Exception;
// 数据的分页列表显示
public Map<String,Object> list(String mid,String column,String keyWord,int currentPage,int lineSize) throws Exception ;
// 修改前数据查询处理
public Map<String,Object> editPre(String mid,String umid) throws Exception ;
// 数据修改操作
public boolean edit(String mid,Member vo) throws Exception ;
// 删除指定用户信息
public boolean editPasswordByAdmin(String mid,Member vo) throws Exception ;
public boolean rm(String mid,Set<String> ids ) throws Exception ;
}
7 INewsServiceBack
public interface INewsServiceBack {
/**
* 实现新闻数据的追加操作
*
* @param vo
* 包含有新闻数据的VO对象
* @return 增加成功返回true,否则返回false
* @throws Exception
*/
public boolean add(News vo) throws Exception;
/**
* 实现数据的分页查询处理操作
* @param column 模糊查询列
* @param keyWord 模糊查询关键字
* @param currentPage 当前所在页
* @param lineSize 每页显示的数据行
* @return Map集合中包含如下内容:
* <li>key = allNewses、value = INewsDAO.findAllSplit()</li>
* <li>key = newsCount、value = INewsDAO.getAllCount()</li>
* @throws Exception
*/
public Map<String, Object> listSplit(String mid,String column, String keyWord,
int currentPage, int lineSize) throws Exception;
/**
* 查看公告信息详情
* @param mid 权限验证使用
* @param nid 公告信息查询使用
* @return
* @throws Exception
*/
public News show(String mid,int nid) throws Exception ;
/**
* 数据更新前的查询处理
* @param mid
* @param nid
* @return
* @throws Exception
*/
public News editPre(String mid,int nid) throws Exception ;
/**
* 数据更新操作
* @param vo
* @return
* @throws Exception
*/
public boolean edit(News vo) throws Exception ;
/**
* 执行公告的删除处理操作
* @param mid
* @param ids
* @return
* @throws Exception
*/
public boolean rm(String mid,Set<Integer> ids) throws Exception ;
}
8 IRoleServiceBack
public interface IRoleServiceBack {
/**
* 角色增加处理,本操作要执行如下的步骤:
* <li>要使用IRoleDAO.doCreate()保存角色信息</li>
* <li>利用IRoleDAO.findLastId()方法取得当前保存的角色的rid数据,并且将其设置到VO类中</li>
* <li>利用IRoleDAO.doCreateRoleAndGropus()方法进行role_groups关系表的保存处理</li>
* @param vo
* @return
* @throws Exception
*/
public boolean add(String mid,Role vo) throws Exception ;
/**
* 角色创建前的准备操作
* @param mid 权限验证使用
* @return
* @throws Exception
*/
public Map<String,Object> addPre(String mid) throws Exception ;
/**
* 实现所有角色的列表显示
* @param mid
* @return
* @throws Exception
*/
public List<Role> list(String mid) throws Exception ;
/**
* 查看角色详情信息,将调用IRoleDAO.findById()查询角色信息
* 以及调用IGroupsDAO.findAllByRole()方法查看角色对应的所有权限组信息
* @param mid
* @param rid
* @return
* @throws Exception
*/
public Role show(String mid,int rid) throws Exception ;
/**
* 角色更新前的查询处理操作
* @param mid 权限验证使用
* @param rid 角色编号
* @return 包含如下内容:
* <li>key = role、value = IRoleDAO.findById(),保存的类型是Role</li>
* <li>key = allGroupses、value = IGroupsDAO.findByType(),保存的类型是Map<String, List<Groups>></li>
* <li>key = roleGroups、value = IRoleDAO.findGroupsByRole,保存的类型是Map<Integer,Boolean></li>
* @throws Exception
*/
public Map<String,Object> editPre(String mid,int rid) throws Exception ;
/**
* 执行角色的更新处理操作,本功能将执行如下的操作:
* <li>调用IRoleDAO.doUpdate()方法进行更新处理</li>
* <li>role更新完成之后调用IRoleDAO.doRemoveRoleAndGroups()方法删除role_groups表中的角色对应信息</li>
* <li>利用IRoleDAO.doCreateRoleAndGropus()方法进行role_groups关系表的保存处理</li>
* @param mid
* @param vo
* @return
* @throws Exception
*/
public boolean edit(String mid,Role vo) throws Exception ;
/**
* 进行数据的删除处理操作,角色删除之后会自动删除对应的用户以及对应的权限组信息
* @param mid 权限验证使用
* @param rid 要删除的角色
* @return
* @throws Exception
*/
public boolean rm(String mid,Set<Integer> rid) throws Exception ;
}
9 ITaskServiceBack
public interface ITaskServiceBack {
/**
* 进行指定客户的任务创建,需要客户的编号,在此操作里面需要执行如下的功能:
* <li>必须要保证创建任务的用户具备有此类的权限</li> <li>必须判断指定的客户编号是否存在(保证客户的编号就是该用户的客户)</li>
* <li>创建任务</li>
*
* @param vo
* @return
* @throws Exception
*/
public boolean add(Task vo) throws Exception;
/**
* 根据用户名称查询指定客户的所有回访任务信息,本操作要执行如下的功能:
* <li>调用ITaskDAO.findAllByMemberAndClient()方法查询全部的任务信息</li> <li>
* 调用IClientDAO.findByMemberAndId()方法,查询客户的信息</li>
*
* @param mid
* @param cid
* @return 返回的数据包含如下内容:
* <li>key = allTasks、value = ITaskDAO.findAllByMemberAndClient()。</li>
* <li>key = client、value = IClientDAO.findByMemberAndId()。</li>
* @throws Exception
*/
public Map<String, Object> listByMemberAndClient(String mid, int cid)
throws Exception;
/**
* 根据用户名称查询指定客户的所有回访任务信息,本操作要执行如下的功能:
* <li>调用ITaskDAO.findAllByMemberAndClient()方法查询全部的任务信息</li> <li>
* 调用IClientDAO.findByMemberAndId()方法,查询客户的信息</li>
*
* @param mid 权限验证使用
* @param cid
* @return 返回的数据包含如下内容:
* <li>key = allTasks、value = ITaskDAO.findAllByMemberAndClient()。</li>
* <li>key = client、value = IClientDAO.findByMemberAndId()。</li>
* @throws Exception
*/
public Map<String, Object> listByClient(String mid, int cid)
throws Exception;
/**
* 根据用户名称查询指定客户的所有回访任务信息
*
* @param mid
* @param cid
* @param tid
* @return
* @throws Exception
*/
public Task show(String mid, int cid, int tid) throws Exception;
/**
* 查询指定任务编号的任务详情
* @param mid 是进行权限验证使用的
* @param tid
* @return
* @throws Exception
*/
public Task show(String mid,int tid) throws Exception ;
/**
* 查询指定用户的全部数据,分页显示控制
* @param mid
* @param visit
* @param type
* @param column
* @param keyWord
* @param currentPage
* @param lineSize
* @return 返回的结果包含如下数据:
* <li>key = allTasks、value = ITaskDAO.findAllSplitByMember()</li>
* <li>key = taskCount、value = ITaskDAO.getAllCountByMember()</li>
* @throws Exception
*/
public Map<String, Object> listByMember(String mid, int visit, int type,
String column, String keyWord, int currentPage, int lineSize)
throws Exception;
/**
* 查询指定用户的全部数据,分页显示控制
* @param mid 管理员的权限确认使用
* @param visit
* @param type
* @param column
* @param keyWord
* @param currentPage
* @param lineSize
* @return 返回的结果包含如下数据:
* <li>key = allTasks、value = ITaskDAO.findAllSplitByMember()</li>
* <li>key = taskCount、value = ITaskDAO.getAllCountByMember()</li>
* @throws Exception
*/
public Map<String, Object> list(String mid, int visit, int type,
String column, String keyWord, int currentPage, int lineSize)
throws Exception;
/**
* 数据更新前的显示查询,在查询的过程之中一定只能够查询指定用户的任务
* @param mid
* @param tid
* @return
* @throws Exception
*/
public Task editPre(String mid,int tid) throws Exception ;
/**
* 任务的更新处理操作,依然需要考虑到时间问题
* @param vo
* @return
* @throws Exception
*/
public boolean edit(Task vo) throws Exception ;
/**
* 任务关闭操作,调用ITaskDAO.doUpdateByStatus()方法
* @param mid
* @param tid
* @return
* @throws Exception
*/
public boolean editOver(String mid,int tid) throws Exception ;
/**
* 任务完成操作,调用ITaskDAO.doUpdateByStatus()方法
* @param mid
* @param tid
* @return
* @throws Exception
*/
public boolean editFinish(String mid,int tid) throws Exception ;
/**
* 执行任务信息的删除处理操作,调用的ITaskDAO.doRemoveByMember()方法
* @param mid
* @param tids
* @return
* @throws Exception
*/
public boolean rmByMember(String mid,Set<Integer> tids) throws Exception ;
}