客户关系管理项目——数据层接口

一 点睛

针对目前数据层的需求分析情况,数据层共定义了10个接口,其中一个父接口,定义了DAO的公共操作接口,其中包含可能出现的常用操作方法;9个数据层接口对应相关业务层不同业务的数据层接口,另外它们都继承了IDAO父接口。

二 数据层接口名称和作用

接口名称

接口作用

IDAO

父接口,其中定义了DAO的公共操作接口。

IActionDAO

权限数据操作。

IClientDAO

客户数据操作。

IGroupsDAO

权限组数据操作。

ILogsDAO

日志数据操作。

IMemberDAO

客户管理数据操作。

IMemberNewsDAO

公告管理数据操作。

INewsDAO

暂未实现。

IRoleDAO

角色管理数据操作。

ITaskDAO

任务管理业务操作。

三 数据层接口在项目结构中的位置

四 数据层接口

1 IDAO

/**
* 定义DAO的公共操作接口,其中包含可能出现的常用操作方法
* @author mldn
* @param <K> 主键类型
* @param <V> VO的类型
*/
public interface IDAO<K,V> {
     /**
      * 实现数据的增加操作,要执行INSERT语句
      * @param v 包含要增加数据的VO对象
      * @return 如果增加成功,返回true,否则返回false
      * @throws Exception
      */
     public boolean doCreate(V vo) throws Exception ;
     /**
      * 数据的修改操作,执行UPDATE语句,此数据修改指的是表中的全部字段都要根据ID进行修改
      * @param v 要修改的数据的VO对象
      * @return 如果修改成功,返回true,否则返回false
      * @throws Exception
      */
     public boolean doUpdate(V vo) throws Exception ;
     /**
      * 执行数据的删除操作,主要以批量删除为主,利用IN进行SQL的拼凑删除
      * @param ids 要删除的数据的ID编号,不允许重复
      * @return 删除成功返回true,如果有数据没有被删除掉返回false
      * @throws Exception
      */
     public boolean doRemove(Set<K> ids) throws Exception ;
     /**
      * 数据的全部列表显示
      * @return 所有的数据行都要转换为VO类的形式返回,如果没有数据则集合的长度为0(size()==0)
      * @throws Exception
      */
     public List<V> findAll() throws Exception ;
     /**
      * 根据ID查询一条完整的记录,并且将记录信息转换为VO类对象返回
      * @param id 要查询的数据ID编号
      * @return 如果有指定ID内容,则将内容以VO的形式返回,如果没有数据则返回null
      * @throws Exception
      */
     public V findById(K id) throws Exception ;
     /**
      * 执行数据的分页查询
      * @param column 模糊查询的列
      * @param keyWord 模糊查询关键字
      * @param currentPage 当前所在页
      * @param lineSize 每页显示的数据行数
      * @return 所有的数据行都要转换为VO类的形式返回,如果没有数据则集合的长度为0(size()==0)
      * @throws Exception
      */
     public List<V> findAllSplit(String column,String  keyWord,Integer currentPage,Integer lineSize) throws Exception ;
     /**
      * 统计满足于模糊查询的数据量,使用COUNT()函数统计
      * @param column 模糊查询的列
      * @param keyWord 模糊查询关键字
      * @return 数据行数,如果没有数据行则返回0
      * @throws Exception
      */
     public Integer getAllCount(String column,String keyWord)  throws Exception ;
}

2 IActionDAO

public interface IActionDAO extends IDAO<Integer, Action> {
     /**
      * 根据权限组的编号查询出对应的所有权限信息
      * @param gid 权限组编号
      * @return 所有该权限组对应的权限信息,以List集合返回,如果没有数据则集合长度为0
      * @throws Exception
      */
     public List<Action> findAllByGroups(Integer gid) throws  Exception ;
     /**
      * 根据权限组编号查询出所有的权限信息
      * @param gid 查询一组GID的信息
      * @return 返回的是Map集合,key为权限编号,而value是权限的内容
      * @throws Exception
      */
     public Map<String,Action> findAllByGroups(Set<Integer>  gid) throws Exception ;
     /**
      * 根据指定的角色编号以及权限编号查询该权限内容是否存在
      * @param rid 角色编号
      * @param actid 权限编号
      * @return 如果存在则返回指定的权限对象,如果不存在,则返回null
      * @throws Exception
      */
     public Action findByRoleAndId(Integer rid,Integer actid)  throws Exception ;
}

3 IClientDAO

public interface IClientDAO extends IDAO<Integer, Client> {
     /**
      * 根据指定的用户编号分页显示该用户所有的客户信息
      * @param mid 查看用户的编号
      * @param type 用户的类型
      * @param column
      * @param keyWord
      * @param currentPage
      * @param lineSize
      * @return
      * @throws Exception
      */
     public List<Client> findAllSplitByMemberAndType(String  mid,Integer type,String column,String keyWord,Integer  currentPage,Integer lineSize) throws Exception ;
     /**
      * 统计一个用户的所有客户量
      * @param mid
      * @param column
      * @param keyWord
      * @return
      * @throws Exception
      */
     public Integer getAllCountByMemberAndType(String  mid,Integer type,String column,String keyWord) throws Exception  ;
     /**
      * 将针对于指定用户的信息进行更新处理
      * @param vo 包含有指定的用户信息
      * @return
      * @throws Exception
      */
     public boolean doUpdateByMember(Client vo) throws  Exception ;
     /**
      * 必须保证根据指定的用户名来查询出该用户的客户信息
      * @param mid 用户名
      * @param id 客户id
      * @return
      * @throws Exception
      */
     public Client findByMemberAndId(String mid,Integer id)  throws Exception ;
     /**
      * 删除指定用户的客户信息
      * @param mid 当前的用户
      * @param cids 所有的客户编号
      * @return 删除成功返回true,否则返回false
      * @throws Exception
      */
     public boolean doRemoveByMember(String mid,Set<Integer>  cids) throws Exception ;
     /**
      * 根据用户类型查看所有的用户信息
      * @param type
      * @param column
      * @param keyWord
      * @param currentPage
      * @param lineSize
      * @return
      * @throws Exception
      */
     public List<Client> findAllSplitByType(Integer type,String  column,String keyWord,Integer currentPage,Integer lineSize)  throws Exception ;
     /**
      * 根据客户类型统计出客户的数量
      * @param type
      * @param column
      * @param keyWord
      * @return
      * @throws Exception
      */
     public Integer getAllCountByType(Integer type,String  column,String keyWord) throws Exception ;
     /**
      * 根据指定的用户名以及客户编号,来判断该客户是否属于指定的用户
      * @param mid 用户ID
      * @param cid 客户ID
      * @return 如果该客户属于指定用户,则返回true,否则返回false
      * @throws Exception
      */
     public boolean findExistsByMemberAndCid(String mid,Integer  cid) throws Exception ;
     /**
      * 根据一组的客户ID信息查询所有的客户信息
      * @param id 要查询的客户ID
      * @return key为cid,value为name
      * @throws Exception
      */
     public Map<Integer,String> findByIds(Set<Integer> id)  throws Exception ;
     /**
      * 根据用户名称以及任务的状态统计出数据量
      * @param mid
      * @param status
      * @return
      * @throws Exception
      */
     public Integer getAllCountByMemberAndStatus(String  mid,Integer status) throws Exception ;
     
}

4 IGroupsDAO

public interface IGroupsDAO extends IDAO<Integer, Groups> {
     /**
      * 根据角色编号查询出所有的权限组信息
      * @param rid 角色编号
      * @return 如果该角色存在有权限组内容,则以List集合的方式返回
      * @throws Exception
      */
     public List<Groups> findAllByRole(Integer rid) throws  Exception ;
     /**
      * 查询权限组的全部信息
      * @return key = 类型、value = Groups的VO对象
      * @throws Exception
      */
     public Map<String,List<Groups>> findAllByType() throws  Exception ;
}

5 IMemberDAO

public interface IMemberDAO extends IDAO<String, Member> {
     /**
      * 实现用户的登录检测,登录的时候只允许登录活跃用户(locked =  0),但是随后要求将用户的管理员标记取出
      * 传入的是一个VO类对象,那么可以利用引用传递的概念,通过VO类对象取回flag数据
      * @param vo 包含有用户名和密码的VO类
      * @return 如果登录成功返回true,否则返回false
      * @throws Exception
      */
     public boolean findLogin(Member vo) throws Exception ;
     /**
      * 更新指定ID的最后一次的登录日期时间
      * @param id 用户id
      * @return
      * @throws Exception
      */
     public boolean doUpdateLastdate(String id) throws  Exception ;
     /**
      * 更新用户密码
      * @param mid 要修改的用户id
      * @param password 用户的新密码
      * @return 更新成功返回true,否则返回false
      * @throws Exception
      */
     public boolean doUpdatePassword(String mid,String  password) throws Exception ;
}

6 IMemberNewsDAO

public interface IMemberNewsDAO extends IDAO<MemberNews,  MemberNews> {
     /**
      * 统计出指定用户对于指定公告的阅读记录数
      * @param mid
      * @param nid
      * @return
      * @throws Exception
      */
     public Integer getAllCountByMemberAndNews(String  mid,Integer nid) throws Exception ;
     /**
      * 统计出指定用户未读取的消息数量
      * @param mid 用户ID
      * @return 未读的消息数量
      * @throws Exception
      */
     public Integer getAllCountUnread(String mid) throws  Exception ;
     /**
      * 通过member_news表中查询出所有未读的消息的编号,结果通过Map集合保存
      * @param ids
      * @return
      * @throws Exception
      */
     public Map<Integer,Boolean> findAllNotId(String  mid,Set<Integer> ids) throws Exception ;
}

7 IRoleDAO

public interface IRoleDAO extends IDAO<Integer, Role> {
     /**
      * 取得最后一次增长的rid数据
      * @return
      * @throws Exception
      */
     public Integer findLastId() throws Exception ;
     /**
      * 保存一个Role对象,里面一定要包含有角色编号以及对应的权限组编号
      * @param vo
      * @return
      * @throws Exception
      */
     public boolean doCreateRoleAndGropus(Role vo) throws  Exception ;
     /**
      * 查询role_groups表,而后根据此表中角色编号查询出所有的权限组编号
      * @param rid
      * @return key = gid、value = true
      * @throws Exception
      */
     public Map<Integer,Boolean> findGroupsByRole(Integer rid)  throws Exception ;
     /**
      * 删除role_groups表中指定角色对应的所有权限组的关系
      * @param rid 角色编号
      * @return
      * @throws Exception
      */
     public boolean doRemoveRoleAndGroups(Integer rid) throws  Exception ;
}

8 ITaskDAO

public interface ITaskDAO extends IDAO<Integer, Task> {
     /**
      * 根据用户以及指定的客户编号查询出一个客户的所有的任务信息,但是查询的时候是按照任务的完成时间倒序排列
      * @param mid 用户编号
      * @param cid 客户编号
      * @return 所有当前用户的客户的任务信息以集合的方式返回
      * @throws Exception
      */
     public List<Task> findAllByMemberAndClient(String  mid,Integer cid) throws Exception ;
     /**
      * 根据用户以及指定的客户编号查询出一个客户的所有的任务信息,但是查询的时候是按照任务的完成时间倒序排列
      * @param cid 客户编号
      * @return 所有当前用户的客户的任务信息以集合的方式返回
      * @throws Exception
      */
     public List<Task> findAllByClient(Integer cid) throws  Exception ;
     /**
      * 根据用户的编号、客户编号、任务编号查询详情
      * @param mid 用户编号
      * @param cid 客户编号
      * @param tid 任务编号
      * @return 任务的信息存在则以VO的形式返回,否则返回null
      * @throws Exception
      */
     public Task findById(String mid,Integer cid,Integer tid)  throws Exception ;
     /**
      * 根据指定的用户名以及任务编号查询出任务的具体信息
      * @param mid
      * @param tid
      * @return
      * @throws Exception
      */
     public Task findById(String mid,Integer tid) throws  Exception ;
     /**
      * 进行指定用户的任务列表显示处理操作
      * @param mid 用户编号
      * @param visit 回访模式
      * @param type 用户的状态
      * @param column 列名称
      * @param keyWord 关键字
      * @param currentPage 当前所在页
      * @param lineSize 每页的显示行数
      * @return 以List集合的方式返回部分查询结果
      * @throws Exception
      */
     public List<Task> findAllSplitByMember(String mid, Integer  visit,
                Integer type, String column, String keyWord,  Integer currentPage,
                Integer lineSize) throws Exception;
     /**
      * 指定类型任务的数据量统计
      * @param mid 用户编号
      * @param visit 回访模式
      * @param type 用户的状态
      * @param column 列名称
      * @param keyWord 关键字
      * @return
      * @throws Exception
      */
     public Integer getAllCountByMember(String mid, Integer  visit,
                Integer type, String column, String keyWord)  throws Exception ;
     
     /**
      * 进行指定用户的任务列表显示处理操作
      * @param visit 回访模式
      * @param type 用户的状态
      * @param column 列名称
      * @param keyWord 关键字
      * @param currentPage 当前所在页
      * @param lineSize 每页的显示行数
      * @return 以List集合的方式返回部分查询结果
      * @throws Exception
      */
     public List<Task> findAllSplit(Integer visit,
                Integer type, String column, String keyWord,  Integer currentPage,
                Integer lineSize) throws Exception;
     /**
      * 指定类型任务的数据量统计
      * @param mid 用户编号
      * @param visit 回访模式
      * @param type 用户的状态
      * @param column 列名称
      * @param keyWord 关键字
      * @return
      * @throws Exception
      */
     public Integer getAllCount(Integer visit,
                Integer type, String column, String keyWord)  throws Exception ;
     /**
      * 更新指定用户的任务信息,更新的时候要求同时判断mid与tid
      * @param vo
      * @return
      * @throws Exception
      */
     public boolean doUpdateByMember(Task vo) throws Exception  ;
     /**
      * 根据指定的用户编号更新指定任务的状态值
      * @param mid 用户编号
      * @param tid 任务编号
      * @param status 状态(status = 0 表示关闭、status = 2表示完成)
      * @return
      * @throws Exception
      */
     public boolean doUpdateByStatus(String mid, Integer tid,  Integer status)
                throws Exception;
     /**
      * 删除指定用户的任务信息
      * @param mid
      * @param tids
      * @return
      * @throws Exception
      */
     public boolean doRemoveByMember(String mid,Set<Integer>  tids) throws Exception ;
     /**
      * 统计出该日期之前未完成的任务量
      * @param mid
      * @param date
      * @return
      * @throws Exception
      */
     public Integer getAllCountByBeforeUnFinish(String mid,Date  date) throws Exception ;
     /**
      * 统计出该日期之后待完成的任务量
      * @param mid
      * @param date
      * @return
      * @throws Exception
      */
     public Integer getAllCountByAfterFinish(String mid,Date  date) throws Exception ;
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生信息管理系统是一个用来管理学生的基本信息和选课信息的系统。在数据结构中,我们可以使用一些算法和数据结构来设计这个系统。在这个系统中,我们需要考虑以下几个功能: 1. 添加学生信息:当有新的学生加入时,我们需要输入他们的姓名,班级,性别,学号等基本信息,并将其存储在系统中。 2. 删除学生信息:当学生离开学校或者不再使用该系统时,我们需要删除他们的基本信息以及他们在选课系统中的选课信息。 3. 添加课程信息:当有新的课程开设时,我们需要输入课程的名称,教师姓名,上课时间等信息,并将其存储在系统中。 4. 删除课程信息:当课程不再开设或者不再使用该系统时,我们需要删除该课程的所有信息,使得在系统中无法找到该课程的相关信息。 5. 修改学生信息:如果学生的基本信息发生变化,我们需要提供一个功能来修改他们的信息,例如修改班级或者联系方式。 6. 查询学生信息:我们需要提供一个功能来查询学生的基本信息和选课信息,以便管理员或教师能够查看学生的相关信息。 7. 查询课程信息:我们需要提供一个功能来查询课程的基本信息和选修该课程的学生信息,以便管理员或教师能够查看课程的相关信息。 以上是学生信息管理系统中一些常见的功能和操作,我们可以使用合适的数据结构和算法来设计和实现这个系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值