# coder4j
**Repository Path**: jj_3/coder4j
## Basic Information
- **Project Name**: coder4j
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-10-17
- **Last Updated**: 2024-10-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 项目说明
## 前端 inetvine-web
> vue3、ant-design-vue、vite
### 启动
```
npm install
npm run dev
```
### 打包
```
npm run build
```
## 后端 inetvine-web-app
> jdk1.8/11、maven、redis、mysql
### 代码结构
### 统一应答
> Controller 中返回的数据统一使用 R,内置错误应答可以根据需要自行添加
### 鉴权
> 主线程上调用 AuthUtil类,用于获取当前登录用户信息
### 日志记录
> 接口请求日志、异常日志会自动记录
> 操作日志,可以在 Controller 中的方法上添加 @OperationLog 注解实现自动记录日志
> 业务日志,可以在任意线程上调用 LogUtil 快速记录日志
### 表设计注意事项
#### 必选字段
> 框架包含操作日志记录、需要统一处理操作人信息,因此对数据表字段有特殊要求
> 创建数据表时,以下7个字段必须有
```mysql
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`create_time` datetime COMMENT '创建时间',
`create_id` bigint COMMENT '创建人ID',
`create_name` varchar(200) COMMENT '创建人名称',
`update_time` datetime COMMENT '修改时间',
`update_id` bigint COMMENT '修改人ID',
`update_name` varchar(200) COMMENT '修改人名称',
```
#### 建议(可选)
- 要作为查询条件的字段,需要设计为索引字段,在代码生成时,会读取索引字段,有索引字段后,代码生成时会进行如下操作:
- 在 Query 对象中添加查询字段
- 在 Mapper 中创建默认查询条件,并自动运用到 列表查询、分页查询等场景
- 必填的字段,需要在表设计时设计为必填,在代码生成时,会在 Controller 中保存数据时,为必填字段生成非空判断逻辑
### 后端代码生成
> 参见 test 中的 GeneratorTest示例
```java
public void createAllWithBaseEntity(){
//模版路径
String templatePath = "D:\\Projects\\wangteng\\snowy\\inetvine-web-app\\src\\main\\resources\\template";
//Java代码路径
String javaPath = "D:\\Projects\\wangteng\\snowy\\inetvine-web-app\\src\\main\\java\\com\\inetvine\\videoai\\module\\biz";
//作者名
String author = "keller";
TableParams tableParams = new TableParams(templatePath,javaPath,null,author);
tableParams.initTables(
//格式为 表名:类名前缀; 也可以只写表名,如 "tbl_camera" ,会生成默认的类名前缀 TblCamera
"tbl_camera:Camera"
// "tbl_algorithm:Algorithm",
// "tbl_task:Task",
// "tbl_task_algorithm:TaskAlgorithm",
// "tbl_task_camera:TaskCamera",
// "tbl_alarm_log:AlarmLog"
);
service.createJavaAndVue(tableParams);
}
```
生成的代码示例:
### 通用 Mapper
> Mapper 继承 BaseMapper ,即可使用通用Mapper中提供的各种方法
### 通用 Service
> Service 继承 BaseServiceImpl ,即可使用通用Service中提供的各种方法
