提交 177b55e3 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

Merge branch 'gva_gormv2_dev' of...

Merge branch 'gva_gormv2_dev' of https://github.com/flipped-aurora/gin-vue-admin into gva_gormv2_dev
......@@ -23,7 +23,7 @@ import (
// @Produce application/json
// @Param data body request.SysAutoHistory true "查询回滚记录"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /autoCode/preview [post]
// @Router /autoCode/getSysHistory [post]
func GetSysHistory(c *gin.Context) {
var search request.SysAutoHistory
_ = c.ShouldBindJSON(&search)
......@@ -48,7 +48,7 @@ func GetSysHistory(c *gin.Context) {
// @Produce application/json
// @Param data body request.AutoHistoryByID true "回滚自动生成代码"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"回滚成功"}"
// @Router /autoCode/preview [post]
// @Router /autoCode/rollback [post]
func RollBack(c *gin.Context) {
var id request.AutoHistoryByID
_ = c.ShouldBindJSON(&id)
......@@ -59,6 +59,26 @@ func RollBack(c *gin.Context) {
response.OkWithMessage("回滚成功", c)
}
// @Tags AutoCode
// @Summary 回滚
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body request.AutoHistoryByID true "获取meta信息"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /autoCode/getMeta [post]
func GetMeta(c *gin.Context) {
var id request.AutoHistoryByID
_ = c.ShouldBindJSON(&id)
if v, err := service.GetMeta(id.ID); err != nil {
response.FailWithMessage(err.Error(), c)
return
} else {
response.OkWithDetailed(gin.H{"meta": v}, "获取成功", c)
}
}
// @Tags AutoCode
// @Summary 预览创建后的代码
// @Security ApiKeyAuth
......
......@@ -7,8 +7,10 @@ import "gin-vue-admin/global"
type SysAutoCodeHistory struct {
global.GVA_MODEL
TableName string
AutoCodeMeta string `gorm:"type:text"` // 其他meta信息 path;path
InjectionMeta string `gorm:"type:text"` // 注入的内容 RouterPath@functionName@RouterString;
RequestMeta string `gorm:"type:text" json:"request_meta,omitempty"` // 前端传入的结构化信息
AutoCodePath string `gorm:"type:text"` // 其他meta信息 path;path
InjectionMeta string `gorm:"type:text"` // 注入的内容 RouterPath@functionName@RouterString;
ApiIDs string // api表注册内容
Flag int // 表示对应状态 0 代表创建, 1 代表回滚 ...
}
......@@ -8,6 +8,7 @@ import (
func InitAutoCodeRouter(Router *gin.RouterGroup) {
AutoCodeRouter := Router.Group("autoCode")
{
AutoCodeRouter.POST("getMeta", v1.GetMeta) // 根据id获取meta信息
AutoCodeRouter.POST("getSysHistory", v1.GetSysHistory) // 获取回滚记录分页
AutoCodeRouter.POST("rollback", v1.RollBack) // 回滚
AutoCodeRouter.POST("preview", v1.PreviewTemp) // 获取自动创建代码预览
......
package service
import (
"encoding/json"
"errors"
"fmt"
"gin-vue-admin/global"
......@@ -105,6 +106,7 @@ func CreateTemp(autoCode model.AutoCodeStruct, ids ...uint) (err error) {
if err != nil {
return err
}
meta, _ := json.Marshal(autoCode)
// 写入文件前,先创建文件夹
if err = utils.CreateDir(needMkdir...); err != nil {
return err
......@@ -179,18 +181,24 @@ func CreateTemp(autoCode model.AutoCodeStruct, ids ...uint) (err error) {
return err
}
}
if autoCode.TableName != "" {
err = CreateAutoCodeHistory(bf.String(),
injectionCodeMeta.String(),
autoCode.TableName,
idBf.String(),
)
} else {
err = CreateAutoCodeHistory(bf.String(),
injectionCodeMeta.String(),
autoCode.StructName,
idBf.String(),
)
if autoCode.AutoMoveFile || autoCode.AutoCreateApiToSql {
if autoCode.TableName != "" {
err = CreateAutoCodeHistory(
string(meta),
bf.String(),
injectionCodeMeta.String(),
autoCode.TableName,
idBf.String(),
)
} else {
err = CreateAutoCodeHistory(
string(meta),
bf.String(),
injectionCodeMeta.String(),
autoCode.StructName,
idBf.String(),
)
}
}
if err != nil {
return err
......
package service
import (
"errors"
"gin-vue-admin/global"
"gin-vue-admin/model"
"gin-vue-admin/model/request"
......@@ -12,9 +11,10 @@ import (
)
// CreateAutoCodeHistory RouterPath : RouterPath@RouterString;RouterPath2@RouterString2
func CreateAutoCodeHistory(autoCodeMeta string, injectionMeta string, tableName string, apiIds string) error {
func CreateAutoCodeHistory(meta, autoCodePath string, injectionMeta string, tableName string, apiIds string) error {
return global.GVA_DB.Create(&model.SysAutoCodeHistory{
AutoCodeMeta: autoCodeMeta,
RequestMeta: meta,
AutoCodePath: autoCodePath,
InjectionMeta: injectionMeta,
TableName: tableName,
ApiIDs: apiIds,
......@@ -48,28 +48,32 @@ func RollBack(id uint) error {
}
}
// 删除文件
for _, path := range strings.Split(md.AutoCodeMeta, ";") {
for _, path := range strings.Split(md.AutoCodePath, ";") {
_ = utils.DeLFile(path)
}
// 清除注入
for _, v := range strings.Split(md.InjectionMeta, ";") {
// RouterPath@functionName@RouterString
meta := strings.Split(v, "@")
if len(meta) != 3 {
return errors.New("split InjectionMeta Err")
if len(meta) == 3 {
_ = utils.AutoClearCode(meta[0], meta[2])
}
_ = utils.AutoClearCode(meta[0], meta[2])
}
md.Flag = 1
return global.GVA_DB.Save(&md).Error
}
func GetMeta(id uint) (string, error) {
var meta string
return meta, global.GVA_DB.Model(model.SysAutoCodeHistory{}).Select("request_meta").First(&meta, id).Error
}
func GetSysHistoryPage(info request.PageInfo) (err error, list interface{}, total int64) {
limit := info.PageSize
offset := info.PageSize * (info.Page - 1)
db := global.GVA_DB
var fileLists []model.SysAutoCodeHistory
err = db.Find(&fileLists).Count(&total).Error
err = db.Limit(limit).Offset(offset).Order("updated_at desc").Find(&fileLists).Error
err = db.Limit(limit).Offset(offset).Order("updated_at desc").Select("id,created_at,updated_at,table_name,auto_code_path,injection_meta,api_ids,flag").Find(&fileLists).Error
return err, fileLists, total
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册