| 路由path                                          | 路由描述                | 测试情况 | 备注       |
| ------------------------------------------------- | ----------------------- | :------: | ---------- |
| /base/login                                       | 用户登录                |    √     | SliverHorn |
| /base/register                                    | 用户注册                |    √     | SliverHorn |
| /api/createApi                                    | 创建api                 |    √     | SliverHorn |
| /api/getApiList                                   | 获取api详细信息         |    √     | SliverHorn |
| /api/deleteApi                                    | 删除Api                 |    √     | SliverHorn |
| /api/updateApi                                    | 更新Api                 |    √     | SliverHorn |
| /api/getAllApis                                   | 获取所有api             |    √     | SliverHorn |
| /authority/createAuthority                        | 创建角色                |    √     | SliverHorn |
| /authority/createAuthority                        | 创建子角色              |    √     | SliverHorn |
| /authority/deleteAuthority                        | 删除角色                |    √     | SliverHorn |
| /authority/getAuthorityList                       | 获取角色列表            |    √     | SliverHorn |
| /menu/getMenu                                     | 获取菜单树              |    √     | SliverHorn |
| /menu/getMenuList                                 | 分页获取基础menu列表    |    √     | SliverHorn |
| /menu/addBaseMenu                                 | 新增菜单                |    √     | SliverHorn |
| /menu/getBaseMenuTree                             | 获取用户动态路由        |    √     | SliverHorn |
| /menu/addMenuAuthority                            | 增加menu和角色关联关系  |    √     | SliverHorn |
| /menu/getMenuAuthority                            | 获取指定角色menu        |    √     | SliverHorn |
| /menu/deleteBaseMenu                              | 删除菜单                |    √     | SliverHorn |
| /menu/updateBaseMenu                              | 更新菜单                |    √     | SliverHorn |
| /menu/getBaseMenuById                             | 根据id获取菜单          |    √     | SliverHorn |
| /user/changePassword                              | 修改密码                |    √     | SliverHorn |
| /user/uploadHeaderImg                             | 上传头像                |    √     | SliverHorn |
| /user/getUserList                                 | 获取用户列表            |    √     | SliverHorn |
| /user/setUserAuthority                            | 修改用户角色            |    √     | SliverHorn |
| /fileUploadAndDownload/upload                     | 文件上传示例            |    √     | SliverHorn |
| /fileUploadAndDownload/getFileList                | 获取上传文件列表        |    √     | SliverHorn |
| /casbin/updateCasbin                              | 更改角色api权限         |    √     | SliverHorn |
| /casbin/getPolicyPathByAuthorityId                | 获取权限列表            |    √     | SliverHorn |
| /fileUploadAndDownload/deleteFile                 | 删除文件                |    √     | SliverHorn |
| /jwt/jsonInBlacklist                              | jwt加入黑名单           |    √     | SliverHorn |
| /authority/setDataAuthority                       | 设置角色资源权限        |    √     | SliverHorn |
| /system/getSystemConfig                           | 获取配置文件内容        |    √     | SliverHorn |
| /system/setSystemConfig                           | 设置配置文件内容        |    √     | SliverHorn |
| /customer/customer                                | 创建客户                |    √     | SliverHorn |
| /customer/customer                                | 更新客户                |    √     | SliverHorn |
| /customer/customer                                | 删除客户                |    √     | SliverHorn |
| /customer/customer                                | 获取单一客户            |    √     | SliverHorn |
| /customer/customerList                            | 获取客户列表            |    √     | SliverHorn |
| /autoCode/createTemp                              | 自动化代码              |    √     | SliverHorn |
| /authority/updateAuthority                        | 更新角色信息            |    √     | SliverHorn |
| /authority/copyAuthority                          | 拷贝角色                |    √     | SliverHorn |
| /user/deleteUser                                  | 删除用户                |    √     | SliverHorn |
| /sysDictionaryDetail/createSysDictionaryDetail    | 新增字典内容            |    √     | SliverHorn |
| /sysDictionaryDetail/deleteSysDictionaryDetail    | 删除字典内容            |    √     | SliverHorn |
| /sysDictionaryDetail/updateSysDictionaryDetail    | 更新字典内容            |    √     | SliverHorn |
| /sysDictionaryDetail/findSysDictionaryDetail      | 根据ID获取字典内容      |    √     | SliverHorn |
| /sysDictionaryDetail/getSysDictionaryDetailList   | 获取字典内容列表        |    √     | SliverHorn |
| /sysDictionary/createSysDictionary                | 新增字典                |    √     | SliverHorn |
| /sysDictionary/deleteSysDictionary                | 删除字典                |    √     | SliverHorn |
| /sysDictionary/updateSysDictionary                | 更新字典                |    √     | SliverHorn |
| /sysDictionary/findSysDictionary                  | 根据ID获取字典          |    √     | SliverHorn |
| /sysDictionary/getSysDictionaryList               | 获取字典列表            |    √     | SliverHorn |
| /sysOperationRecord/createSysOperationRecord      | 新增操作记录            |    √     | SliverHorn |
| /sysOperationRecord/deleteSysOperationRecord      | 删除操作记录            |    √     | SliverHorn |
| /sysOperationRecord/findSysOperationRecord        | 根据ID获取操作记录      |    √     | SliverHorn |
| /sysOperationRecord/getSysOperationRecordList     | 获取操作记录列表        |    √     | SliverHorn |
| /autoCode/getTables                               | 获取数据库表            |    √     | SliverHorn |
| /autoCode/getDB                                   | 获取所有数据库          |    √     | SliverHorn |
| /autoCode/getColume                               | 获取所选table的所有字段 |    √     | SliverHorn |
| /sysOperationRecord/deleteSysOperationRecordByIds | 批量删除操作历史        |    √     | SliverHorn |
| /simpleUploader/upload                            | 插件版分片上传          |    √     | SliverHorn |
| /simpleUploader/checkFileMd5                      | 文件完整度验证          |    √     | SliverHorn |
| /simpleUploader/mergeFileMd5                      | 上传完成合并文件        |    √     | SliverHorn |

### Gorm V2 Vs Gorm V1
- in查询,v2不需要括号了
```go
// V2文档
// IN
db.Where("name IN ?", []string{"jinzhu", "jinzhu 2"}).Find(&users)
// SELECT * FROM users WHERE name in ('jinzhu','jinzhu 2');

// V1文档
// IN
db.Where("name IN (?)", []string{"jinzhu", "jinzhu 2"}).Find(&users)
//// SELECT * FROM users WHERE name in ('jinzhu','jinzhu 2');
```

- v2将RecordNotFound链式调用,取而代之是errors.Is(error, gorm.ErrRecordNotFound)

```go
// V2版本代码(https://github.com/flipped-aurora/gin-vue-admin/blob/gva_gormv2_dev/server/service/sys_user.go)
func Register(u model.SysUser) (err error, userInter model.SysUser) {
    var user model.SysUser
    if !errors.Is(global.GVA_DB.Where("username = ?", u.Username).First(&user).Error, gorm.ErrRecordNotFound){ // 判断用户名是否注册
        return errors.New("用户名已注册"), userInter
    }
    // 否则 附加uuid 密码md5简单加密 注册
    u.Password = utils.MD5V([]byte(u.Password))
    u.UUID = uuid.NewV4()
    err = global.GVA_DB.Create(&u).Error
	return err, u
}

// V1版本Register(https://github.com/flipped-aurora/gin-vue-admin/blob/master/server/service/sys_user.go)
func Register(u model.SysUser) (err error, userInter model.SysUser) {
	var user model.SysUser
	// 判断用户名是否注册
	notRegister := global.GVA_DB.Where("username = ?", u.Username).First(&user).RecordNotFound()
	// notRegister为false表明读取到了 不能注册
	if !notRegister {
		return errors.New("用户名已注册"), userInter
	} else {
		// 否则 附加uuid 密码md5简单加密 注册
		u.Password = utils.MD5V([]byte(u.Password))
		u.UUID = uuid.NewV4()
		err = global.GVA_DB.Create(&u).Error
	}
	return err, u
}
```