This commit is contained in:
zhangwenjian
2020-04-01 14:39:47 +08:00
parent 119facec02
commit 4bb5c883f6
8 changed files with 477 additions and 28 deletions
+94
View File
@@ -0,0 +1,94 @@
package apis
import (
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"go-admin/models"
"go-admin/pkg"
"go-admin/utils"
"net/http"
)
func Get{{.ClassName}}List(c *gin.Context) {
var data models.{{.ClassName}}
var err error
var pageSize = 10
var pageIndex = 1
if size := c.Request.FormValue("pageSize"); size != "" {
pageSize = pkg.StrToInt(err, size)
}
if index := c.Request.FormValue("pageIndex"); index != "" {
pageIndex = pkg.StrToInt(err, index)
}
{{ range .Columns -}}
{{$z := .IsQuery}}
{{- if ($z) -}}data.{{.GoField}} = c.Request.FormValue("{{.JsonField}}")
{{ end -}}
{{end}}
data.DataScope = utils.GetUserIdStr(c)
result, count, err := data.GetPage(pageSize, pageIndex)
pkg.AssertErr(err, "", -1)
var mp = make(map[string]interface{}, 3)
mp["list"] = result
mp["count"] = count
mp["pageIndex"] = pageIndex
mp["pageIndex"] = pageSize
var res models.Response
res.Data = mp
c.JSON(http.StatusOK, res.ReturnOK())
}
func Get{{.ClassName}}(c *gin.Context) {
var data models.{{.ClassName}}
data.{{.PkGoField}}, _ = utils.StringToInt64(c.Param("{{.PkJsonField}}"))
result, err := data.Get()
pkg.AssertErr(err, "抱歉未找到相关信息", -1)
var res models.Response
res.Data = result
c.JSON(http.StatusOK, res.ReturnOK())
}
func Insert{{.ClassName}}(c *gin.Context) {
var data models.{{.ClassName}}
err := c.BindWith(&data, binding.JSON)
data.CreateBy = utils.GetUserIdStr(c)
pkg.AssertErr(err, "", 500)
result, err := data.Create()
pkg.AssertErr(err, "", -1)
var res models.Response
res.Data = result
c.JSON(http.StatusOK, res.ReturnOK())
}
func Update{{.ClassName}}(c *gin.Context) {
var data models.{{.ClassName}}
err := c.BindWith(&data, binding.JSON)
pkg.AssertErr(err, "数据解析失败", -1)
data.UpdateBy = utils.GetUserIdStr(c)
result, err := data.Update(data.{{.PkGoField}})
pkg.AssertErr(err, "", -1)
var res models.Response
res.Data = result
c.JSON(http.StatusOK, res.ReturnOK())
}
func Delete{{.ClassName}}(c *gin.Context) {
var data models.{{.ClassName}}
id, err := utils.StringToInt64(c.Param("{{.PkJsonField}}"))
data.UpdateBy = utils.GetUserIdStr(c)
_, err = data.Delete(id)
pkg.AssertErr(err, "修改失败", 500)
var res models.Response
res.Msg = "删除成功"
c.JSON(http.StatusOK, res.ReturnOK())
}
+107
View File
@@ -0,0 +1,107 @@
package models
import (
orm "go-admin/database"
"go-admin/utils"
"time"
)
type {{.ClassName}} struct {
{{ range .Columns -}}
{{$x := .Pk}}
// {{.ColumnComment}}
{{if ($x)}}{{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"column:{{.ColumnName}};primary_key"`{{else}}{{.GoField}} {{.GoType}} `json:"{{.JsonField}}" gorm:"column:{{.ColumnName}};"`{{end}}
{{ end -}}
}
// 创建{{.ClassName}}
func (e *{{.ClassName}}) Create() ({{.ClassName}}, error) {
var doc {{.ClassName}}
doc.IsDel = "0"
e.CreateTime = time.Now().String()
result := orm.Eloquent.Table("{{.TableName}}").Create(&e)
if result.Error != nil {
err := result.Error
return doc, err
}
doc = *e
return doc, nil
}
// 获取{{.ClassName}}
func (e *{{.ClassName}}) Get() ({{.ClassName}}, error) {
var doc {{.ClassName}}
table := orm.Eloquent.Table("{{.TableName}}")
{{ range .Columns -}}
{{$z := .IsQuery}}
{{- if ($z) -}}
if e.{{.GoField}} != "" {
table = table.Where("{{.ColumnName}} = ?", e.{{.GoField}})
}
{{ end -}}
{{ end }}
if err := table.Where("is_del = 0").First(&doc).Error; err != nil {
return doc, err
}
return doc, nil
}
// 获取{{.ClassName}}带分页
func (e *{{.ClassName}}) GetPage(pageSize int, pageIndex int) ([]{{.ClassName}}, int32, error) {
var doc []{{.ClassName}}
table := orm.Eloquent.Select("*").Table("{{.TableName}}")
{{ range .Columns -}}
{{$z := .IsQuery}}
{{- if ($z) -}}
if e.{{.GoField}} != "" {
table = table.Where("{{.ColumnName}} = ?", e.{{.GoField}})
}
{{ end -}}
{{ end }}
// 数据权限控制
dataPermission := new(DataPermission)
dataPermission.UserId, _ = utils.StringToInt64(e.DataScope)
table = dataPermission.GetDataScope("{{.TableName}}", table)
var count int32
table = table.Where("is_del = 0").Offset((pageIndex - 1) * pageSize).Limit(pageSize)
if err := table.Find(&doc).Error; err != nil {
return nil, 0, err
}
table.Where("is_del = 0").Count(&count)
return doc, count, nil
}
// 更新{{.ClassName}}
func (e *{{.ClassName}}) Update(id int64) (update {{.ClassName}}, err error) {
e.UpdateTime = utils.GetCurrntTime()
if err = orm.Eloquent.Table("{{.TableName}}").Where("{{.PkColumn}} = ?", id).First(&update).Error; err != nil {
return
}
//参数1:是要修改的数据
//参数2:是修改的数据
if err = orm.Eloquent.Table("{{.TableName}}").Model(&update).Updates(&e).Error; err != nil {
return
}
return
}
// 删除{{.ClassName}}
func (e *{{.ClassName}}) Delete(id int64) (success bool, err error) {
var mp = map[string]string{}
mp["is_del"] = "1"
mp["update_time"] = utils.GetCurrntTime()
mp["update_by"] = e.UpdateBy
if err = orm.Eloquent.Table("{{.TableName}}").Where("{{.PkColumn}} = ?", id).Update(mp).Error; err != nil {
success = false
return
}
success = true
return
}