项目名称:crm前后端客户关系管理系统;
项目概述:本次项目我主要负责员工管理以及部门管理模块,在完成了基础的增删改查功能的基础上,完成了前端页面的展示,做到了与其他项目组成员负责模块的衔接继承。
项目功能总结:
0. 项目结构
1.员工管理模块
(1)在基础模块已经搭建完成的基础上,首先使用mybatis框架创建员工domain,service,controller层
随后用代码生成器生成其他结构
[if !supportLists](2)[endif]在确定需要写的功能模块后,从mapper.xml开始入手,一层一层的往外写,确定功能实现需要传递的参数。在公共功能上使用公共方法的实现及接口。个性化的业务需求,写到自己对应的service层及mapper中,最后在mapper.xml中写SQL语句,实现功能。(别忘了打标签)
[if !supportLists](3)[endif]添加方法具体实现步骤:
①xml层在确定表关系的基础上对生成的SQL语句进行修改,对于字段中的关联对象,如果是多对一的关系,添加方法需要在存入表中的时候,SQL语句取出id存入表中
如果是一对多关系,建议外键存入多方,不要存入一方。如果是多对多关系,建议使用中间表,不要在原表基础上管理,使用中间表进行管理。
②mapper层,需要继承basemapper类,利用basemapper 中方法的泛型传递参数完成添加
③service层,首先是接口,需要继承baseservice接口。
实现层中应该先继承基础实现,再实现自家接口
除去公共实现中的方法,自己定义的方法需要注入自家mapper,使用自家mapper中的方法
④controller层,对接前端页面,为页面上的业务提供接口支持,所以需要注入service,从service层中拿出方法根据前端页面的需求,接收传入数据,处理后传出相应数据。
保存方法需要需保存的对象,在传入的时候,已经将前端传入的数据封装到对象中了,在保存成功或失败后需要给前台传递相应的信息,因此需要传回ajaxresult对象,里面封装了成功消息,以及错误提醒。
4)删除方法,基本同上,需要传入被删除id,返回ajaxresult对象,注意要打responsebody标签,因为放回的是josn格式。
(5)修改方法,基本同上,需要注意的是,在controller层是与增加方法写在一起的。通过是否有id判断需要使用何种方法。在xml中,需要保存关联对象的id。
(6)查询方法,默认是高级查询,在controller层中,应该传入query条件,里面有分页信息,封装关键字,以及查询相关的内容。
通过一层一层的传递,在xml中传入的关键字通过模糊查询的方式,被查询出来
这里用了额外SQL语句
需要注意的是,这里用的是嵌套结果查询方法,不仅需要查出本表中的内容,还需要查出关联对象。需要查询的字段用as设置别名,在中映射查询结果在本表中对应的字段,以及对应的类型。多对一使用<association>标签。一对多使用<collection>标签。
查询出来的结果需要使用PageHelper.startPage方法分页,还要封装到pageresult对象中,因为那样页面才能读出来。
2.前端页面技术
①js代码中部门,状态的前台展示
②新增修改弹出框,里面涉及到隐藏字段,重复密码等
③页面上方法的实现,a标签的data-method方法,在js页面绑定事件。
④弹出框input下拉列表数据的显示,用到了两个组件,首先是easyui-combobox他是平级显示,通过异步方法拿到数据并展示。
然后是easyui-combotree这是树形下拉列表,可以分层,具体实现步骤
controller层
xml中核心的查询方法,需要进行自关联
在domain层中为了满足前端需要的结构因此需要提供getset方法,封装childen
⑤时间的传递
前台获取时间后,后台进行接收的时候,打标签
⑥新增角色前端传递数组,后端使用集合接收,使用onsubmit发送额外参数
[if !supportLists]3. [endif]部门模块
增删改查与员工模块一致
网友评论