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 }