# demo3 **Repository Path**: jasonjensen/demo3 ## Basic Information - **Project Name**: demo3 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-12 - **Last Updated**: 2024-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 运行环境 - jdk8 - mysql8 # 配置文件 ## 数据库配置修改 ./project-app/src/main/resources/application-dev.yml ```yml spring: application: name: project datasource: dynamic: primary: master #设置默认的数据源或者数据源组,默认值即为master strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 datasource: master: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.1.35:3306/eip8.2.2?serverTimezone=Asia/Shanghai&nullDatabaseMeansCurrent=true username: xxxx password: xxxxx type: com.alibaba.druid.pool.DruidDataSource druid: validation-query: select 1 ``` # 初始化sql ```sql CREATE TABLE `w_bdkj` ( `ID_` varchar(40) NOT NULL COMMENT '主键', `REF_ID_` varchar(40) DEFAULT NULL COMMENT '外键', `F_dxwb` varchar(200) DEFAULT NULL COMMENT '单行文本', `F_dxwbk` varchar(200) DEFAULT NULL COMMENT '多行文本框', `F_sm` varchar(200) DEFAULT NULL COMMENT '说明', `F_sz` decimal(12,2) DEFAULT '0.00' COMMENT '数字', `F_dxk` varchar(200) DEFAULT NULL COMMENT '单选框', `F_fxk` varchar(200) DEFAULT NULL COMMENT '复选框', `F_zrq` datetime DEFAULT NULL COMMENT '长日期', `F_drq` datetime DEFAULT NULL COMMENT '短日期', `F_sj` varchar(200) DEFAULT NULL COMMENT '时间', `F_xzq` varchar(200) DEFAULT NULL COMMENT '选择器', `F_xzqid` varchar(200) DEFAULT NULL COMMENT '选择器id', `F_dhk` varchar(200) DEFAULT NULL COMMENT '对话框', `F_xlk` varchar(200) DEFAULT NULL COMMENT '下拉框', `F_fj` text COMMENT '附件', `F_kg` varchar(200) DEFAULT NULL COMMENT '开关', `F_sjzd` varchar(200) DEFAULT NULL COMMENT '数据字典', `F_bq` varchar(200) DEFAULT NULL COMMENT '标签', `F_pf` decimal(12,2) DEFAULT '0.00' COMMENT '评分', `F_tp` text COMMENT '图片', `F_bjtp` text COMMENT '背景图片', `F_srjy` varchar(200) DEFAULT NULL COMMENT '输入建议', `F_hk` decimal(12,2) DEFAULT '0.00' COMMENT '滑块', `F_ksrq` datetime DEFAULT NULL COMMENT '开始日期', `F_jsrq` datetime DEFAULT NULL COMMENT '结束日期', `F_rqjs` varchar(200) DEFAULT NULL COMMENT '日期计算', `F_rqfw` varchar(200) DEFAULT NULL COMMENT '日期范围', `F_sjfw` varchar(200) DEFAULT NULL COMMENT '时间范围', `F_fwb` text COMMENT '富文本', `F_an` varchar(200) DEFAULT NULL COMMENT '按钮', `F_lcb` varchar(200) DEFAULT NULL COMMENT '里程碑', `F_jl` varchar(200) DEFAULT NULL COMMENT '级联', `F_iframe` varchar(200) DEFAULT NULL COMMENT 'iframe', `F_ewm` varchar(200) DEFAULT NULL COMMENT '二维码', `F_gddt` varchar(200) DEFAULT NULL COMMENT '高德地图', `F_zb` varchar(200) DEFAULT NULL COMMENT '坐标', `F_tb` varchar(200) DEFAULT NULL COMMENT '图表', `F_xls` varchar(200) DEFAULT NULL COMMENT '下拉树', `F_xlsid` varchar(200) DEFAULT NULL COMMENT '下拉树id', `F_form_data_rev_` bigint DEFAULT '0' COMMENT '表单数据版本', PRIMARY KEY (`ID_`), KEY `IDX_W_bdkj_REF_ID_` (`REF_ID_`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='表单控件'; ``` # 目录结构 - project 父项目 - project-app 项目启动类 & 对eip base模块兼容处理 - project-auth 登录&认证模块 - project-webapps 前端项目 可以前后端分开部署,也可以将前端打包成webjar来部署 - dev-standard 开发标准规范 # 对接登录 ## 登录接口 AuthController ## 获取登录用户信息 需要改造BaseUserDetailsServiceImpl.loadUserByUsername获取登录用户信息 - restful方式获取 - 从数据库中读取 # 自定义密码策略 ICSPasswordEncoder ```yml hotent: security: ignore: httpUrls: /ics/**,/webjars/**,/swagger-resources/**,/img/**,/css/**,/fonts/**,/js/**,/manage/**,/*/auth/v1/login,/*/auth/v1/sso/auth pswd: encoder: security.com.hotent.project.auth.ICSPasswordEncoder # 自定义密码策略 ``` # 匿名url配置 ```yml eip: anonymousUrl: - /*/auth/v1/login - /auth/v1/login - /webjars/** - /swagger-resources/** - /manage/** - /img/** - /css/** - /fonts/** - /js/** ``` # 前后端项目一起打包webjar ```xml project-webapps ``` # 前后端分开部署 project-app模块pom.xml需要将project-webapps依赖去掉 ```xml com.hotent project-webapps ``` # 访问地址 http://localhost:9002/index.html#/login 账号: admin 密码:123456 # 代码提交要求 代码提交必须按照以下格式填写备注: `[action]:实现下拉框组件 [type]#790` 例如:`feat:实现下拉框组件 task#790` 其中`action`为提交类型,有以下几种类型: * `feat` 增加新功能 * `fix` 修复问题/BUG * `style` 代码风格相关不影响运行结果 * `perf` 优化/性能提升 * `refactor` 重构 * `revert` 撤销修改 * `test` 测试相关 * `docs` 文档/注释 * `chore` 依赖更新/脚手架配置修改等 * `workflow` 工作流程改进 * `ci` 持续集成 * `types` 类型定义文件更改 * `wip` 开发中 `type`为关联[禅道](http://zentao.ht.cn/zentao)中的类型: * `task` 任务 * `bug` 问题/BUG `#`后面的数字为禅道中的任务/BUG对应的编号,代码提交以后在禅道对应的任务/BUG中会自动关联本次Git上的提交记录,如下图所示: ![关联禅道](http://git.ht.cn/hotent/develop-standard/-/raw/master/images/1.png) # 版本管理 `Git`中每个项目至少会有一个`master`版本,一个`dev`版本,任意多个`[branch]`版本,任意多个`[tag]`版本。 * `master`版本为当前主线的稳定版本,只有`owner`能够提交代码,一般在`dev`上测试稳定的版本再合并到`master`上 * `dev`版本为当前开发版本,`developer`可以提交到这个版本,也可以自行创建分支开发完成后合并到`dev` * `[branch]`为分支版本,`developer`可以自行创建分支,分支开发测试完成可以合并到`dev`,合并完成以后删除该分支 * `[tag]`为稳定版本,是通过`master`版本`release`出来的 # eip7-front代码自动格式化配置说明 代码自动格式化必须按照下面的说明进行配置 这样保证所有开发代码的格式化保持一致 可以方便代码进行不同版本的比对 1. 在vscode中安装Vetur插件 2. 复制.vscode/settings.json文件中的内容 ![项目中的settings.json文件](http://git.ht.cn/hotent/develop-standard/-/raw/master/images/3.png) 3. 打开vscode的设置 ![vscode设置](http://git.ht.cn/hotent/develop-standard/-/raw/master/images/5.png) 4. 搜索vetur,然后打开vetur的settings.json文件 ![vscode的settings.json配置](http://git.ht.cn/hotent/develop-standard/-/raw/master/images/6.png) 5. 将项目中的settings.json文件中的内容拷贝到Vetur中的settings.json中