客户关系管理项目——业务层接口设计

一 点睛

首先要设计上层的接口,即先设计业务层接口,然后再设计数据访问层接口。

业务层根据需求分析,把对应不同实体的操作抽象到对应接口中。

二 业务层接口

业务层接口的作用和主要相关功能操作的列表如下:

三 业务接口在项目中的位置

四 业务层接口代码

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 ;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值