# 72crm-9.0-Jfinal
**Repository Path**: junxinkeji_admin/72crm-java
## Basic Information
- **Project Name**: 72crm-9.0-Jfinal
- **Description**: 悟空CRM-基于jfinal+vue+ElementUI的前后端分离CRM系统
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1082
- **Created**: 2022-10-08
- **Last Updated**: 2023-04-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 骏信CRM(JAVA版)
##注意!注意!项目启动成功后如报以下错误,是因数据库开启了only_full_group_by规则校验,mysql5.7及一下版本该模式默认打开的
##或者执行 select @@global.sql_mode; 如查下结果含有ONLY_FULL_GROUP_BY证明该模式打开。
##解决:执行以下两个sql即可关闭该校验,分号里值是执行 select @@global.sql_mode结果除去ONLY_FULL_GROUP_BY后字符串
## set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
## set @@SESSION.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'crm9.ccb.type_id' which is not functionally
dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_b
骏信CRM采用全新的前后端分离模式,本仓库代码中已集成前端vue打包后文件,可免去打包操作
如需调整前端代码,请单独下载前端代码,前端代码在根目录的ux文件夹中
## 主要技术栈
核心框架:jfinal3.8
缓存:redis caffeine
数据库连接池:Druid
工具类:hutool,fastjson,poi-ooxml
定时任务:jfinal-cron
项目构建工具:maven
Web容器:tomcat,undertow(默认)
前端MVVM框架:Vue.JS 2.5.x
路由:Vue-Router 3.x
数据交互:Axios
UI框架:Element-UI 2.6.3
## 安装说明
1、配置java运行环境,redis环境,mysql环境。
2、将目录doc下的crm9.sql导入到数据库( `初始化安装只需要导入crm9.sql就好了,更新代码导入对应日期的sql文件`)。
3、修改`resources/config/crm9-config.txt`下的数据库配置文件。
4、修改`resources/config/redis.json`下的redis连接文件
5、undertow启动端口号在`resources/config/undertow.txt`下修改。
默认账号 admin 默认密码 123456
## 部署说明
本项目JDK要求JDK8及以上
### 一、Undertow(默认)
```
com.jfinal
jfinal-undertow
1.9
```
取消以上代码的注释,将tomcat的pom依赖javax.servlet.javax.servlet-api注释掉,打包方式改为jar 运行maven package,打包完成后
将上述打包命令生成的 crm9-release.zip 文件上传到服务器并解压,运行对应的72crm.sh/72crm.bat即可
### 二、Tomcat部署
```
javax.servlet
javax.servlet-api
4.0.1
provided
```
取消以上代码的注释,将undertow的pom依赖com.jfinal.jfinal-undertow注释掉,并将com.kakarote.crm9.Application的main方法注释掉,打包方式改为war,
运行maven package命令,将war包放在`tomcat/webapps`目录下
项目默认是ROOT.war,若需要携带项目名,需要修改 ux/config/prod.env.js的BASE_API为'"/项目名/"',改动完成后需要重新打包替换到webapp下
项目webapp下自带打包后的前端代码,如果不需要对前端代码更改,直接访问即可
如果更改了前端代码,需要将打包后的dist下static文件夹和index.html替换到webapp下
ps:可以使用`nginx`代理静态文件,后台只做接口响应,项目本身设计是前后端完全分离的
### 前端部署
安装node.js 前端部分是基于node.js上运行的,所以必须先安装`node.js`,版本要求为6.0以上
使用npm安装依赖 下载悟空CRM9.0前端代码; 可将代码放置在后端同级目录ux,执行命令安装依赖:
npm install
修改内部配置 修改请求地址或域名:config/dev.env.js里修改BASE_API(开发环境服务端地址,默认localhost) 修改自定义端口:config/index.js里面的dev对象的port参数(默认8090,不建议修改)
### 运行前端
npm run dev
注意:前端服务启动,默认会占用8090端口,所以在启动前端服务之前,请确认8090端口没有被占用。
程序运行之前需搭建好Server端