|
|
package ProtoController
|
|
|
|
|
|
import (
|
|
|
"bytes"
|
|
|
"dsAutoCode/Dao/ProtoDao"
|
|
|
"dsAutoCode/Model"
|
|
|
"dsAutoCode/Service/ProtoService"
|
|
|
"dsAutoCode/Utils/CommonUtil"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"log"
|
|
|
"net/http"
|
|
|
"strings"
|
|
|
"text/template"
|
|
|
)
|
|
|
|
|
|
/**
|
|
|
功能:生成Dao层的操作代码
|
|
|
作者:黄海
|
|
|
时间:2020-04-23
|
|
|
*/
|
|
|
func CodeDao(c *gin.Context) {
|
|
|
var operateType string
|
|
|
var tableName string
|
|
|
interfaceId := c.Query("interfaceId")
|
|
|
//真实的表名
|
|
|
trueTableName := ProtoService.GetTrueTableNameFromInterfaceId(interfaceId)
|
|
|
//蛇形命名后的表名
|
|
|
tableName = ProtoDao.GetTrueTableNameFromInterfaceId(interfaceId)
|
|
|
tableName = strings.Replace(tableName, ".pb.go", "", -1)
|
|
|
//这个表的主键-->ModelArg:
|
|
|
_, _, pkFiled, _ := ProtoService.GetParameterByInterfaceId(interfaceId)
|
|
|
interfaceName := c.Query("interfaceName")
|
|
|
|
|
|
//获取接口的描述信息
|
|
|
controllerName := c.Query("controllerName")
|
|
|
_, _, description := ProtoService.GetControllerInfoByName(controllerName)
|
|
|
|
|
|
//作者信息
|
|
|
authorId := c.Query("author_id")
|
|
|
authorName := ProtoService.GetPersonInfoById(authorId)["person_name"].(string)
|
|
|
//操作类型
|
|
|
operateType = ProtoService.GetOperateType(interfaceName)
|
|
|
//调用模板,
|
|
|
filesName :=CommonUtil.GetCurrentPath()+ "/Controller/ProtoController/Template/Dao.template"
|
|
|
t, err := template.ParseFiles(filesName)
|
|
|
if err != nil {
|
|
|
log.Fatalln("parse file err:", err)
|
|
|
return
|
|
|
}
|
|
|
buf := new(bytes.Buffer)
|
|
|
//返回的结构体前缀
|
|
|
var DeleteIdsArg = false
|
|
|
var ModelArg = false
|
|
|
var QueryArg = false
|
|
|
|
|
|
if operateType == "Page" {
|
|
|
QueryArg = true
|
|
|
} else if operateType == "Delete" {
|
|
|
DeleteIdsArg = true
|
|
|
} else {
|
|
|
ModelArg = true
|
|
|
}
|
|
|
|
|
|
var content string
|
|
|
if !DeleteIdsArg{
|
|
|
var p = map[string]interface{}{
|
|
|
"tableName": tableName,
|
|
|
"operateType": operateType,
|
|
|
"CurrentTime": CommonUtil.GetCurrentTime(),
|
|
|
"description": description,
|
|
|
"authorName": authorName,
|
|
|
"modelName": CommonUtil.StrFirstToLower(tableName),
|
|
|
"ModelArg": ModelArg,
|
|
|
"QueryArg": QueryArg,
|
|
|
"trueTableName": trueTableName,
|
|
|
"PK": pkFiled,
|
|
|
"interfaceName": interfaceName,
|
|
|
}
|
|
|
if err := t.Execute(buf, p); err != nil {
|
|
|
log.Fatal("There was an error:", err.Error())
|
|
|
}
|
|
|
content = buf.String()
|
|
|
//删除空格
|
|
|
content = CommonUtil.DeleteBlankString(content)
|
|
|
}else{
|
|
|
content="删除功能请统一使用CommonDao.DeleteIds"
|
|
|
}
|
|
|
|
|
|
//返回结果
|
|
|
c.JSON(http.StatusOK, Model.Res{
|
|
|
Data: content,
|
|
|
Msg: tableName,
|
|
|
CodePath: ProtoService.GetGenereateCodePath("Dao", tableName),
|
|
|
})
|
|
|
}
|