diff --git a/hasaki-gen-crud/hasaki-gen-crud.js b/hasaki-gen-crud/hasaki-gen-crud.js index 79ced6f..9bb23c9 100644 --- a/hasaki-gen-crud/hasaki-gen-crud.js +++ b/hasaki-gen-crud/hasaki-gen-crud.js @@ -4,12 +4,16 @@ try { console.log("start") const vscode = require("vscode") const fs = require("fs") + var path = require('path'); let start = vscode.window.activeTextEditor.selection.start.line let fileName = vscode.window.activeTextEditor.document.fileName + console.log(start) console.log(fileName) + let fileDir = path.dirname(fileName) + let fileBaseName = path.basename(fileName) fs.readFile(fileName, 'utf8', (err, data) => { if (err) throw err; @@ -75,11 +79,30 @@ try { for (; prefix.indexOf(" ") > 0;) { prefix = prefix.replace(" ", " ") } + + + let underscore_naming = rearr.join("_"); + let lowercase_first_letter = ""; + let capitalize_the_first_letter = ""; + let rearr = prefix.toLocaleLowerCase().split(" "); + for (var i = 0; i < rearr.length; i++) { + let tmp = rearr[i].split(""); + tmp[0] = tmp[0].toLocaleUpperCase(); + capitalize_the_first_letter += tmp.join(""); + if (i == 0) { + lowercase_first_letter += rearr[i]; + } else { + lowercase_first_letter += tmp.join("");; + } + } + prefix = prefix.replace(/ /g, "/") let endPosition = new vscode.Position(endLine, endChar) + + axios({ method: 'get', url: 'http://git.ouxuan.net/3136352472/vscode-helper-js/raw/branch/master/hasaki-gen-crud/template.go', @@ -87,23 +110,46 @@ try { }).then(res => { console.log("123") let text = "" + res['data'] - let tmp = text.split("// ----------------------------temp------------------------------------") - text = tmp[1] text = text.replace(/Temp3A60/g, struct) let structHeadLower = struct[0].toLocaleLowerCase() + struct.slice(1) console.log("structHeadLower", structHeadLower, struct[0].toLocaleLowerCase()) text = text.replace(/TempLowHead3A60/g, structHeadLower) text = text.replace(/Prefix3A60/g, prefix) + + text = text.replace(/PrefixHigHead3A60/g, capitalize_the_first_letter) console.log(text) console.log(endPosition) - vscode.window.activeTextEditor.edit(function (textEditorEdit) { - textEditorEdit.insert( - endPosition, - text, - ) - }) + + let tmp = text.split("// ----------------------------temp------------------------------------") + + if (data.indexOf(`${struct}) wherePrimaryKey`) < 0) { + vscode.window.activeTextEditor.edit(function (textEditorEdit) { + textEditorEdit.insert( + endPosition, + tmp[1], + ) + }) + } + + let package_src = "" + for (let i = 0; i < context_arr.length; i++) { + const element = context_arr[i].trim(" "); + if (element.indexOf("package") == 0) { + package_src = element + break + } + } + + let crudFileName = path.join(fileDir, `auto_generated_crud_${fileBaseName}`) + + let httpFileName = path.join(fileDir, `auto_generated_http_${underscore_naming}_${fileBaseName}`) + + fs.writeFile(crudFileName, `${package_src}\n\n${tmp[2]}`) + + fs.writeFile(httpFileName, `${package_src}\n\n${tmp[3]}`) + // vscode.window.showErrorMessage(res) }).catch(error => { diff --git a/hasaki-gen-crud/template.go b/hasaki-gen-crud/template.go index 297e14d..708a0fb 100644 --- a/hasaki-gen-crud/template.go +++ b/hasaki-gen-crud/template.go @@ -12,6 +12,7 @@ type Temp3A60 struct { // ----------------------------temp------------------------------------ +//wherePrimaryKey func (TempLowHead3A60 *Temp3A60) wherePrimaryKey() (q interface{}, args []interface{}) { //todo 根据需求修改 return "`id`=?", []interface{}{ @@ -23,6 +24,8 @@ func (TempLowHead3A60 *Temp3A60) getXorm() *xorm.Engine { return hskdb.GetXormAuto() } +// ----------------------------temp------------------------------------ + func (TempLowHead3A60 *Temp3A60) Save(isAllCols ...bool) (err error) { tmp := Temp3A60{} whereQuery, whereArgs := TempLowHead3A60.wherePrimaryKey() @@ -41,7 +44,7 @@ func (TempLowHead3A60 *Temp3A60) Save(isAllCols ...bool) (err error) { func (TempLowHead3A60 *Temp3A60) Load() (err error) { whereQuery, whereArgs := TempLowHead3A60.wherePrimaryKey() - _, err = TempLowHead3A60.getXorm().Where(whereQuery, whereArgs...).Get(&TempLowHead3A60) + _, err = TempLowHead3A60.getXorm().Where(whereQuery, whereArgs...).Get(TempLowHead3A60) return } @@ -57,12 +60,13 @@ func (TempLowHead3A60 *Temp3A60) PageData(page, pageSize int) (data []Temp3A60, func (TempLowHead3A60 *Temp3A60) Delete() (err error) { whereQuery, whereArgs := TempLowHead3A60.wherePrimaryKey() - _, err = TempLowHead3A60.getXorm().Where(whereQuery, whereArgs...).Delete(&TempLowHead3A60) + _, err = TempLowHead3A60.getXorm().Where(whereQuery, whereArgs...).Delete(TempLowHead3A60) return } -//该方法请不要放在db文件中 -func InitializationTemp3A60(router *hskgin.GinHelper) { +// ----------------------------temp------------------------------------ + +func InitializationPrefixHigHead3A60Temp3A60(router *hskgin.GinHelper) { var authority = func(ctx *hskgin.GinContextHelper) { //todo 权限控制 }