# 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上的提交记录,如下图所示:

# 版本管理
`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文件中的内容

3. 打开vscode的设置

4. 搜索vetur,然后打开vetur的settings.json文件

5. 将项目中的settings.json文件中的内容拷贝到Vetur中的settings.json中