项目的名称:客户关系管理系统
项目的环境:idea2017.3.3+windows10+maven3.3.9多模块+tomcat8.0.52+mysql+jdk8+svn
使用技术:spring+springMvc+mybatis+maven+velocity+svn+百度地图+lucene+cxf+微信登录
+shiro+jquery+easyui+layui
项目模块:租户模块,套餐模块,用户模块,登录模块,管理员模块,产品模块,权限模块,报表
负责模块:租户模块,套餐模块,前端页面,地图和新技术等
业务逻辑:1.登陆之后查询数据库 查询所拥有的权限 ,动态生成该员工所能使用的功能树
2 注册租户登录租户,拥有注册时的权限和套餐价格时间。
3 套餐管理的crud
4员工的crud
5 售后和报表等等
6给不同的数据图片化报表
业务实现:
- 租户业务管理:
1.1查询
1.1.1普通查询:使用mybatis的sql语句去查,然后查询后面可以检测是否传入keyword,就可以实现查询操作。
1.1.2 lucene的全文搜索:
1.导maven包,步骤:
2.把文本内容转换为Document对象
文本是作为Document对象的一个字段而存在
3.准备IndexWriter(索引写入器)
4.通过IndexWriter,把Document添加到缓冲区并提交
addDocument, commit, close
- 分页的话继承分页的类,覆写分页方法就可以
1.2添加
1.2.1 前台注册:
1.使用了百度地图的js代码,可以找到文档直接拷贝。
2.地址的经纬度可以用代码中的point直接取到。
3.头像加了一个回显头像,使用点击事件回显路径就可以(注意头像的name必须为file)
4.保存的时候,写了一个图片保存的方法,在文档中也是可以直接拷贝修改路径等等就可以
5.laiui和easyui的图片保存方法有所不同,layui需要用到upload方法,注意区分语法
1.2.2 后台添加:
直接添加就可以,时间和有些状态和注册的时候一样,是后台自动注入的,前台时间和后台时间格式需要在domain 的字段上加格式化时间的注解。如果要单独展示数据库中的时间,直接后台处理格式传入字符串即可。
1.3修改
回显数据时调用easyui的方法,url的地址去找对应的对象,然后前台展示value,存入的是id。
1.4删除
Url上直接将id传入拼接在后面。
- 套餐业务管理:
Crud,增加时间是新建了一个增加天数的方法。购买时传入天数,到期通过时间格式化相加,存入数据库。
- WebSocket:(实时聊天框和实时显示)
3.1新建一个handler工具类,继承TextWeb...类,覆写里面的方法。
3.2新建一个配置类,new对象和传入路径
3.3前台直接new WebSocket对象,具体可以看文档或者百度拷贝修改路径。
3.4 前台send方法发送信息到后台,onmessage接收后台传入的信息输出,用child等等方法。
- 前台展示值
shiro自带的session没有取到对象,通过shiro登录的username,调用service的Byname方法,去找到employee登录对象,然后再找到id,用static方法把id传到indexController。通过HttpSertletRequest对象拿到session,将各种值setAttribute。前台通过${}取值
开发问题:
- js注意方法和对象的顺序。
- 前后台时间格式。
- Layui和easyui的语法。
技术总结:
- Velocity :
1.1导maven包,一个方法类,放入各个模板存放的路径,将数据库对应的类名和包名放入。
1.2 在resources中放入模板,注意区别内容的大小写。
- 百度地图 :
- 核心主要在js代码
百度或者查看对应文档
调用时直接点击事件即可。
- 全文搜索lucene :
3.1 导maven包
3.2 把文本内容转换为Document对象,文本是作为Document对象的一个字段而存在,new一个分词器,推荐ik或者smart的分词器,准备IndexWriter(索引写入器),通过IndexWriter,把Document添加到缓冲区并提交,addDocument, commit,close,刷新字典库的时候时要先调用deleteAll方法。
3.3 封装查询提交为查询对象,准备IndexSearcher,使用IndexSearcher传入查询对象做查询-----查询出来只是文档编号DocID,通过IndexSearcher传入DocID获取文档,把文档转换为前台需要的对象 Docment----> 通过get属性提取值封装,也可以找出id,然后调用sql去找对象。
- 异构系统cxf :
4.1按照cxf,然后配置环境变量导入maven包和spring结合的包。
4.2 输出端:配置2个xml,一个配方法的路径,一个允许使用协议来调用这个方法。
4.3 接收端:cmd命令:改成接收的协议路径,生成很多类。
wsdl2java -encoding utf-8 -p cn.itsource.service.client http://localhost:8082/service/HelloWorld?wsdl
新建一个xml,配置用xml生成的bean的配置,和远程协议地址。用.class来调用方法。
- 微信开发 :
5.1导maven包
5.2 点击连接到第三方进行认证-->回调你的回调地址,传code和state给你--->通过code获取access_token,通过token去访问微信的资料以及资源。
5.3 有1个openId是微信用户的唯一id,可以放入数据库中,用于与这个用户绑定。
5.4 具体可以看文档代码。