| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- package code_gen
- import (
- "encoding/json"
- "encoding/xml"
- "fmt"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine-client/code_gen/apigen"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine-client/code_gen/utils"
- "io/ioutil"
- )
- /*type ResponeResult struct {
- Code int32 `json:"code"`
- //描述
- Msg string `json:"msg"`
- //数据
- Data []GenerateResult `json:"data"`
- }
- type GenerateResult struct {
- Name string `json:"name"`
- Content []byte `json:"content"`
- Type string `json:"type"`
- }*/
- func DoGenerate(xmlfile string, isCompress bool) []byte {
- bs, _ := ioutil.ReadFile(xmlfile)
- //body := &bytes.Buffer{}
- //body.Write(bs)
- app := utils.XmlApplication{}
- err := xml.Unmarshal(bs, &app)
- if err != nil {
- fmt.Println(err.Error())
- return nil
- }
- //fmt.Println(bs)
- res := utils.ResponeResult{Code: 200, Msg: ""}
- res.Data = []utils.GenerateResult{}
- tData := map[string]interface{}{}
- tData["app"] = app
- var gr *utils.GenerateResult
- for i := 0; i < len(app.Beans.BeanList); i++ {
- bean := app.Beans.BeanList[i]
- tData["data"] = bean
- gr = utils.NewResult(
- "model",
- fmt.Sprintf("%s/models/%s_gen.go", app.ApplicationName, utils.CamelizeStr(bean.Name, true)),
- apigen.GenBean,
- tData,
- isCompress)
- res.Data = append(res.Data, *gr)
- // var b bytes.Buffer
- // b.Write(result.Data[i].Content)
- // unzip := unzipbytes(&b)
- // result.Data[i].Content = unzip.Bytes()
- //model.Content = utils.ZipBytes(res.Data[i].Content)
- }
- for i := 0; i < len(app.Controllers.ControllerList); i++ {
- c := app.Controllers.ControllerList[i]
- tData["data"] = c
- gr = utils.NewResult(
- "controllers",
- fmt.Sprintf("%s/controllers/gen/%sController_gen.go", app.ApplicationName, utils.CamelizeStr(c.Name, true)),
- apigen.GenController,
- tData,
- isCompress)
- res.Data = append(res.Data, *gr)
- gr = utils.NewResult(
- "controllers",
- fmt.Sprintf("%s/controllers/partial/%s/%sController.go", app.ApplicationName, c.Dir, utils.CamelizeStr(c.Name, true)),
- apigen.GenPartial,
- tData,
- isCompress)
- //fmt.Println(string(gr.Content))
- res.Data = append(res.Data, *gr)
- gr = utils.NewResult(
- "routers",
- fmt.Sprintf("%s/routers/%s_gen.go", app.ApplicationName, c.Name),
- apigen.GenRouter,
- tData,
- isCompress)
- res.Data = append(res.Data, *gr)
- gr = utils.NewResult(
- "vue",
- fmt.Sprintf("%s/vue/api/modules/%s/index.js", app.ApplicationName, c.Name),
- apigen.GenVue,
- tData,
- isCompress)
- res.Data = append(res.Data, *gr)
- }
- gr = utils.NewResult(
- "routers",
- fmt.Sprintf("%s/routers/router_gen.go", app.ApplicationName),
- apigen.GenRouterGenGo,
- tData,
- isCompress)
- res.Data = append(res.Data, *gr)
- gr = utils.NewResult(
- "models",
- fmt.Sprintf("%s/models/model.go", app.ApplicationName),
- apigen.GenModelGo,
- tData,
- isCompress)
- res.Data = append(res.Data, *gr)
- for i := 0; i < len(app.Tables.TableList); i++ {
- table := app.Tables.TableList[i]
- tData["data"] = table
- gr = utils.NewResult(
- "models",
- fmt.Sprintf("%s/models/%s_gen.go", app.ApplicationName, utils.CamelizeStr(table.Name, true)),
- apigen.GenModel,
- tData,
- isCompress)
- res.Data = append(res.Data, *gr)
- }
- out, err := json.Marshal(res)
- if err != nil {
- fmt.Println(err.Error())
- return nil
- }
- return out
- }
|