# 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端