|
|
package ProtoController
|
|
|
|
|
|
import (
|
|
|
"dsAutoCode/Model"
|
|
|
"dsAutoCode/Service/ProtoService"
|
|
|
"dsAutoCode/Utils/CommonUtil"
|
|
|
"dsAutoCode/Utils/FileUtil"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
|
"os"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
/**
|
|
|
功能:为web层创建目录及文件
|
|
|
作者:黄海
|
|
|
时间:2020-04-23
|
|
|
*/
|
|
|
func CreateWebFiles(c *gin.Context) {
|
|
|
var tableName string
|
|
|
var operateType string
|
|
|
interfaceName := c.Query("interfaceName")
|
|
|
type Result struct {
|
|
|
Num int
|
|
|
Item string
|
|
|
Success bool
|
|
|
Message string
|
|
|
}
|
|
|
var ListResult []Result
|
|
|
//操作类型
|
|
|
operateType = ProtoService.GetOperateType(interfaceName)
|
|
|
tableName = strings.Replace(interfaceName, operateType, "", -1)
|
|
|
//1、Controller目录是否存在?
|
|
|
workingPath := CommonUtil.GetParentPath(CommonUtil.GetCurrentDirectory()) + "\\dsBaseWeb\\Business\\#tableName#\\#tableName#Controller"
|
|
|
workingPath = strings.Replace(workingPath, "#tableName#", tableName, -1)
|
|
|
exists, _ := CommonUtil.PathExists(workingPath)
|
|
|
if !exists {
|
|
|
os.MkdirAll(workingPath, os.ModePerm)
|
|
|
//创建Controller文件
|
|
|
head:=
|
|
|
`package #tableName#Controller
|
|
|
import (
|
|
|
"dsBaseWeb/Business/#tableName#/#tableName#Service"
|
|
|
"dsBaseWeb/Model"
|
|
|
"dsBaseWeb/Utils/CommonUtil"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"net/http"
|
|
|
)
|
|
|
`
|
|
|
tableName, content := getFrameworkContent(interfaceName)
|
|
|
fi:=workingPath+"\\"+tableName+"Controller.go"
|
|
|
head = strings.Replace(head, "#tableName#", tableName, -1)
|
|
|
//写入文件
|
|
|
FileUtil.WriteFileContent(fi,head+content)
|
|
|
|
|
|
var r Result
|
|
|
r.Item = "创建Controller目录"
|
|
|
r.Message = "创建成功!"
|
|
|
r.Num = 1
|
|
|
r.Success = true
|
|
|
ListResult = append(ListResult, r)
|
|
|
} else {
|
|
|
var r Result
|
|
|
r.Item = "创建Controller目录"
|
|
|
r.Message = "已存在!"
|
|
|
r.Num = 1
|
|
|
r.Success = false
|
|
|
ListResult = append(ListResult, r)
|
|
|
}
|
|
|
//2、Service目录是不是存在
|
|
|
workingPath = CommonUtil.GetParentPath(CommonUtil.GetCurrentDirectory()) + "\\dsBaseWeb\\Business\\#tableName#\\#tableName#Service"
|
|
|
workingPath = strings.Replace(workingPath, "#tableName#", tableName, -1)
|
|
|
exists, _ = CommonUtil.PathExists(workingPath)
|
|
|
if !exists {
|
|
|
os.MkdirAll(workingPath, os.ModePerm)
|
|
|
//创建空的Service文件,注意包名称
|
|
|
//GovAreaService.go
|
|
|
fi:=workingPath+"\\"+tableName+"ProtoService.go"
|
|
|
content:=
|
|
|
`package #tableName#Service
|
|
|
import (
|
|
|
"context"
|
|
|
"dsBaseWeb/Business/#tableName#/#tableName#Proto"
|
|
|
"dsBaseWeb/Utils/GRpcUtil"
|
|
|
"dsBaseWeb/Utils/LogUtil"
|
|
|
"time"
|
|
|
)
|
|
|
`
|
|
|
content = strings.Replace(content, "#tableName#", tableName, -1)
|
|
|
//写入文件
|
|
|
FileUtil.WriteFileContent(fi,content)
|
|
|
|
|
|
var r Result
|
|
|
r.Item = "创建Service目录"
|
|
|
r.Message = "创建成功!"
|
|
|
r.Num = 2
|
|
|
r.Success = true
|
|
|
ListResult = append(ListResult, r)
|
|
|
} else {
|
|
|
var r Result
|
|
|
r.Item = "创建Service目录"
|
|
|
r.Message = "已存在!"
|
|
|
r.Num = 2
|
|
|
r.Success = false
|
|
|
ListResult = append(ListResult, r)
|
|
|
}
|
|
|
|
|
|
//3、Proto目录是不是存在
|
|
|
sourcePath := CommonUtil.GetParentPath(CommonUtil.GetCurrentDirectory()) + "\\dsBaseRpc\\RpcService\\#tableName#\\#tableName#Proto"
|
|
|
sourcePath = strings.Replace(sourcePath, "#tableName#", tableName, -1)
|
|
|
|
|
|
workingPath = CommonUtil.GetParentPath(CommonUtil.GetCurrentDirectory()) + "\\dsBaseWeb\\Business\\#tableName#\\#tableName#Proto"
|
|
|
workingPath = strings.Replace(workingPath, "#tableName#", tableName, -1)
|
|
|
exists, _ = CommonUtil.PathExists(workingPath)
|
|
|
if !exists {
|
|
|
os.MkdirAll(workingPath, os.ModePerm)
|
|
|
var r Result
|
|
|
r.Item = "创建Proto目录及拷贝pb.go文件"
|
|
|
r.Message = "创建成功!"
|
|
|
r.Num = 2
|
|
|
r.Success = true
|
|
|
ListResult = append(ListResult, r)
|
|
|
//如果不存在,则拷贝rpc过来
|
|
|
fileInfoList, _ := ioutil.ReadDir(sourcePath)
|
|
|
for i := range fileInfoList {
|
|
|
s := sourcePath + "\\" + fileInfoList[i].Name()
|
|
|
t := workingPath + "\\" + fileInfoList[i].Name()
|
|
|
CommonUtil.CopyFile(s, t)
|
|
|
}
|
|
|
} else {
|
|
|
var r Result
|
|
|
r.Item = "创建Proto目录及拷贝pb.go文件"
|
|
|
r.Message = "已存在,请手工替换!"
|
|
|
r.Num = 3
|
|
|
r.Success = false
|
|
|
ListResult = append(ListResult, r)
|
|
|
}
|
|
|
|
|
|
c.JSON(http.StatusOK, Model.Res{
|
|
|
Data: ListResult,
|
|
|
})
|
|
|
}
|
|
|
|