package router import ( "demo/data/dao/manage" "demo/data/domain" "demo/share" "fmt" "github.com/gin-gonic/gin" "github.com/mitchellh/mapstructure" "github.com/spf13/cast" "strings" "time" "unicode" ) func UtilStructToMap(m map[string]interface{}) map[string]interface{} { res := make(map[string]interface{}) for s := range m { result := "" for i, r := range s { if unicode.IsUpper(r) && i > 0 { result += "_" } result += strings.ToLower(string(r)) } res[result] = m[s] } return res } func DateToString(date time.Time) string { return date.Format("2006-01-02 15:04:05") } {{range .gens}} func Base{{.table.name}}Router(group *gin.RouterGroup) { BaseArticleGroup := group.Group("/back/base") PushRouter(BaseArticleGroup, "GET", "/{{.table.routerName}}", GetBase{{.table.name}}ById) PushRouter(BaseArticleGroup, "POST", "/{{.table.routerName}}/list", GetBase{{.table.name}}List) PushRouter(BaseArticleGroup, "POST", "/{{.table.routerName}}/in", GetBase{{.table.name}}ListInId) PushRouter(BaseArticleGroup, "POST", "/{{.table.routerName}}", SaveBase{{.table.name}}) PushRouter(BaseArticleGroup, "PUT", "/{{.table.routerName}}", UpdateBase{{.table.name}}) PushRouter(BaseArticleGroup, "DELETE", "/{{.table.routerName}}", DeleteBase{{.table.name}}) } {{end}} {{range .gens}} {{$createBy := false}}{{$createTime := false}}{{$updateBy := false}}{{$updateTime := false}}{{range .tableColumns}}{{if and (eq $createBy false) (eq .columnName "create_by")}}{{$createBy = true}}{{end}}{{if and (eq $createTime false) (eq .columnName "create_time")}}{{$createTime = true}}{{end}}{{if and (eq $updateBy false) (eq .columnName "update_by")}}{{$updateBy = true}}{{end}}{{if and (eq $updateTime false) (eq .columnName "update_time")}}{{$updateTime = true}}{{end}}{{end}} //================{{.table.name}} {{.table.tableComment}}============================== func GetBase{{.table.name}}ById(c *gin.Context) { id := c.Query("id") {{.table.routerName}}, err := manage.Get{{.table.name}}ById(cast.ToInt64(id)) if err != nil { c.JSON(200, CreateResultError(500, "用户查询不存在")) return } c.JSON(200, CreateResultData({{.table.routerName}})) return } func GetBase{{.table.name}}List(c *gin.Context) { data := share.GetJsonAnyParam(c) param, _ := data("param") pageNum, _ := data("pageNum") pageSize, _ := data("pageSize") {{.table.routerName}} := domain.{{.table.name}}{} err := mapstructure.Decode(param, &{{.table.routerName}}) if err != nil { c.JSON(200, CreateResultError(500, "json转换错误")) return } list, err := manage.Get{{.table.name}}List({{.table.routerName}}, cast.ToInt(pageNum), cast.ToInt(pageSize)) if err != nil { c.JSON(200, CreateResultError(500, "查询错误")) return } c.JSON(200, CreateResultData(list)) } func GetBase{{.table.name}}ListInId(c *gin.Context) { data := share.GetJsonAnyParam(c) idsString, _ := data("ids") var ids []int64 err := mapstructure.Decode([]byte(cast.ToString(idsString)), &ids) list, err := manage.Get{{.table.name}}ListInId(ids) if err != nil { c.JSON(200, CreateResultError(500, "查询错误")) return } c.JSON(200, CreateResultData(list)) } func SaveBase{{.table.name}}(c *gin.Context) { data := share.GetJsonAnyParam(c) {{.table.routerName}}Param, _ := data("{{.table.routerName}}") {{.table.routerName}} := domain.{{.table.name}}{} err := mapstructure.Decode({{.table.routerName}}Param, &{{.table.routerName}}) {{if $createBy}}goods{{.table.routerName}}.CreateBy = fmt.Sprint(GetUserIdByToken(c)){{end}} {{if $createTime}}goods{{.table.routerName}}.CreateTime = time.Now(){{end}} save{{.table.name}}, err := manage.Save{{.table.name}}(&{{.table.routerName}}) if err != nil { c.JSON(200, CreateResultError(500, "保存错误")) return } c.JSON(200, CreateResultData(save{{.table.name}})) } func UpdateBase{{.table.name}}(c *gin.Context) { data := share.GetJsonAnyParam(c) {{.table.routerName}}, _ := data("{{.table.routerName}}") id, _ := data("id") toMap := UtilStructToMap(cast.ToStringMap({{.table.routerName}})) {{if $createBy}}toMap["create_by"] = nil{{end}} {{if $createTime}}toMap["create_time"] = nil{{end}} {{if $updateBy}}toMap["update_by"] = fmt.Sprint(GetUserIdByToken(c)){{end}} {{if $updateTime}}toMap["update_time"] = DateToString(time.Now()){{end}} set{{.table.name}}, b, err := manage.Set{{.table.name}}(toMap, cast.ToInt64(id)) if err != nil || !b { c.JSON(200, CreateResultError(500, "修改错误")) return } c.JSON(200, CreateResultData(set{{.table.name}})) } func DeleteBase{{.table.name}}(c *gin.Context) { id := c.Query("id") res := manage.Delete{{.table.name}}(cast.ToInt64(id)) if !res { c.JSON(200, CreateResultError(500, "删除错误")) return } c.JSON(200, CreateResult()) } {{end}}