# crm
**Repository Path**: lz_mazha/crm
## Basic Information
- **Project Name**: crm
- **Description**: 声明:此项目属动力节点所有,本仓库只为学习使用,如有需要请拉取,发现问题见解请留言,欢迎转发评论,共同学习。
crm客户交互系统:jsp-servlet-mybatis
说明:bugfix分支可供共同学习的开发者提交(注入新功能、修复问题、健壮工程)
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-02-13
- **Last Updated**: 2022-03-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
2021-02-19:
### 问题:
遇到sqlSessionUtil这个工具类类找不到异常三天,终于解决了,定位到是工具类中静态代码块读取mybatis-config.xml文件
有问题,但是没搞清楚原因
### 解决方式:
根据原因是读不到mybatis配置文件,而配置文件在resources目录下,说明不能读取resources目录中内容,在pom.xml文件build标签中加入
```xml
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
false
```
2021-02-20:
市场活动删除功能,老师是先查询市场活动备注表后删除备注表,再删除市场活动表,多次与数据库交互降低性能,使用两表关联删除,使用left左连接
直接删除两表的记录
### 问题(已解决):
分页插件显示有问题,并且觉得很丑,待替换一个插件,显示记录也不正确,当前页显示5条记录,第二页应该是后五条数据,现在显示的是已第二条记录
开始的后5条记录,并不是从第6条记录开始的后5条记录
2021-02-21:
### 问题(已解决):
分页插件显示有问题,并且觉得很丑,待替换一个插件,显示记录也不正确,当前页显示5条记录,第二页应该是后五条数据,现在显示的是已第二条记录
开始的后5条记录,并不是从第6条记录开始的后5条记录
### 解决方法:
解决了老师使用的分页插件问题,使用了新的插件,并解决了查库显示记录不正确的问题,通过公式:pageNo = (page * pageSize) + 1 - pageSize;
得出查库时的从第几条记录开始查的值,这样查到当前页正确记录后,再将值转换回当前页码传给分页插件,解决了问题,且插件美观度相对于之前的更好
新插件包在工程下文件:自修改分页插件.zip.xml(删除后缀.xml解压即可)
### 问题(待解决):
添加、修改、删除市场活动记录后,页面展示问题,目前各功能都是写死的活到第一页展示5条记录pageList(1,5),需要操作后停留才当前页
2021-02-24:
提交代码注释信息格式:
【功能新增】 【功能修改】 【BUG修复】
【开发周期】 【开发周期】 【开发周期】
【提交人】 【提交人】 【提交人】
【评审人】 【评审人】 【评审人】
2021-03-18:
线索表:
CREATE TABLE `tbl_clue` (
`id` char(32) NOT NULL,
`fullname` varchar(255) DEFAULT NULL COMMENT '姓名',
`appellation` varchar(255) DEFAULT NULL COMMENT '称呼',
`owner` char(32) DEFAULT NULL COMMENT '所有者',
`company` varchar(255) DEFAULT NULL COMMENT '公司',
`job` varchar(255) DEFAULT NULL COMMENT '职位',
`email` varchar(255) DEFAULT NULL COMMENT '邮箱',
`phone` varchar(255) DEFAULT NULL COMMENT '公司座机',
`website` varchar(255) DEFAULT NULL COMMENT '公司网站',
`mphone` varchar(255) DEFAULT NULL COMMENT '手机',
`state` varchar(255) DEFAULT NULL COMMENT '线索状态',
`source` varchar(255) DEFAULT NULL COMMENT '线索来源',
`createBy` varchar(255) DEFAULT NULL COMMENT '创建人',
`createTime` char(19) DEFAULT NULL COMMENT '创建时间',
`editBy` varchar(255) DEFAULT NULL COMMENT '修改人',
`editTime` char(19) DEFAULT NULL COMMENT '修改时间',
`description` varchar(255) DEFAULT NULL COMMENT '线索描述',
`contactSummary` varchar(255) DEFAULT NULL COMMENT '联系纪要',
`nextContactTime` char(10) DEFAULT NULL COMMENT '下次联系时间',
`address` varchar(255) DEFAULT NULL COMMENT '详细地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2021-03-22:
知识点记录:
通过detail.jsp页面跳转到其他jsp页面过程中可以在跳转地址后加请求参数,如:window.location.href='workbench/clue/convert.jsp?id=${clue.id}&fullname=${...}
jsp本质也是servlet,通过跳转请求加上参数可以在跳转到的页面中取出参数,取出参数的方式有两种:
1.使用jsp原生的表达式取值
2.使用el表达式取值
使用el表达式取值需要使用el表达式的11中隐含对象中的param对象,作用是它可以获取请求参数的值。
如:
转换线索 ${param.fullname}-${param.appellation}
在需要取值的地方直接使用el表达式的param对象.参数名方式取出参数值
若不使用param隐含对象直接使用${参数名}方式取值,这种方式是从域对象中取值,也就是jsp的九大域对象中取出响应或者其他方式保存在域中的值
延申知识点:
由于el表达式的11中隐含对象中没有如request这种jsp的九大域对象,所以需要使用el表达式中pageContext对象来获取jsp的九大域对象
pageContext对象的作用它可以获取jsp中的九大内置对象
2021-03-29:
### 问题:
现存bug问题,线索关联市场活动前端不能发请求到后台,复选框id存在问题:$xz.length == 0 其中$xz不能调.length方法,暂时不清楚原因
2021-04-05:
### 知识点:
读取properties文件中内容可以使用ResourceBundle.getBundle("文件名");形式获取内容,文件名后不需要.properties后缀
例:
```java
// 读取Stage2Possibility.properties文件内容,作为创建交易页面的可能性值
ResourceBundle stage2Possibility = ResourceBundle.getBundle("Stage2Possibility");
Set keySet = stage2Possibility.keySet();
for (String key : keySet) {
String value = stage2Possibility.getString(key);
map.put(key, value);
}
servletContext.setAttribute("stage2", map);
```
## 完结撒花
### 项目总结
经过几个月的开发,终于踉踉跄跄的写完,虽然还有些bug没调完,经过此项目,对Java web学习的更全面,不在畏惧过滤器、监听器,一直觉得
他们是很高大上的东西,项目总体难度对于我而言在于前端的开发,后端还是比较简单的,sql也不难,由于工作原因(天天加班)延期到五月了,
超出计划一个月时间,现阶段也在纠结了,是继续向spring系列推进,还是深入学习基础。好杂,好难