diff --git a/app/admin/apis/syschinaareadata/syschinaareadata.go b/app/admin/apis/syschinaareadata/syschinaareadata.go new file mode 100644 index 00000000..97cb9348 --- /dev/null +++ b/app/admin/apis/syschinaareadata/syschinaareadata.go @@ -0,0 +1,189 @@ +package syschinaareadata + +import ( + "github.com/gin-gonic/gin" + "go-admin/app/admin/service" + "net/http" + + "go-admin/app/admin/models" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" + "go-admin/common/apis" + "go-admin/common/log" + "go-admin/tools" +) + +type SysChinaAreaData struct { + apis.Api +} + +func (e *SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { + msgID := tools.GenerateMsgIDFromContext(c) + d := new(dto.SysChinaAreaDataSearch) + db, err := tools.GetOrm(c) + if err != nil { + log.Error(err) + return + } + + //查询列表 + err = d.Bind(c) + if err != nil { + e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + return + } + + //数据权限检查 + p := actions.GetPermissionFromContext(c) + + list := make([]models.SysChinaAreaData, 0) + var count int64 + serviceStudent := service.SysChinaAreaData{} + serviceStudent.MsgID = msgID + serviceStudent.Orm = db + err = serviceStudent.GetSysChinaAreaDataPage(d, p, &list, &count) + if err != nil { + e.Error(c, http.StatusUnprocessableEntity, err, "查询失败") + return + } + + e.PageOK(c, list, int(count), d.GetPageIndex(), d.GetPageSize(), "查询成功") +} + +func (e *SysChinaAreaData) GetSysChinaAreaData(c *gin.Context) { + control := new(dto.SysChinaAreaDataById) + db, err := tools.GetOrm(c) + if err != nil { + log.Error(err) + return + } + + msgID := tools.GenerateMsgIDFromContext(c) + //查看详情 + err = control.Bind(c) + if err != nil { + e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + return + } + var object models.SysChinaAreaData + + //数据权限检查 + p := actions.GetPermissionFromContext(c) + + serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData.MsgID = msgID + serviceSysChinaAreaData.Orm = db + err = serviceSysChinaAreaData.GetSysChinaAreaData(control, p, &object) + if err != nil { + e.Error(c, http.StatusUnprocessableEntity, err, "查询失败") + return + } + + e.OK(c, object, "查看成功") +} + +func (e *SysChinaAreaData) InsertSysChinaAreaData(c *gin.Context) { + control := new(dto.SysChinaAreaDataControl) + db, err := tools.GetOrm(c) + if err != nil { + log.Error(err) + return + } + + msgID := tools.GenerateMsgIDFromContext(c) + //新增操作 + err = control.Bind(c) + if err != nil { + e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + return + } + object, err := control.Generate() + if err != nil { + e.Error(c, http.StatusInternalServerError, err, "模型生成失败") + return + } + // 设置创建人 + object.SetCreateBy(tools.GetUserId(c)) + + serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData.Orm = db + serviceSysChinaAreaData.MsgID = msgID + err = serviceSysChinaAreaData.InsertSysChinaAreaData(object) + if err != nil { + log.Error(err) + e.Error(c, http.StatusInternalServerError, err, "创建失败") + return + } + + e.OK(c, object.GetId(), "创建成功") +} + +func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *gin.Context) { + control := new(dto.SysChinaAreaDataControl) + db, err := tools.GetOrm(c) + if err != nil { + log.Error(err) + return + } + + msgID := tools.GenerateMsgIDFromContext(c) + //更新操作 + err = control.Bind(c) + if err != nil { + e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + return + } + object, err := control.Generate() + if err != nil { + e.Error(c, http.StatusInternalServerError, err, "模型生成失败") + return + } + object.SetUpdateBy(tools.GetUserId(c)) + + //数据权限检查 + p := actions.GetPermissionFromContext(c) + + serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData.Orm = db + serviceSysChinaAreaData.MsgID = msgID + err = serviceSysChinaAreaData.UpdateSysChinaAreaData(object, p) + if err != nil { + log.Error(err) + return + } + e.OK(c, object.GetId(), "更新成功") +} + +func (e *SysChinaAreaData) DeleteSysChinaAreaData(c *gin.Context) { + control := new(dto.SysChinaAreaDataById) + db, err := tools.GetOrm(c) + if err != nil { + log.Error(err) + return + } + + msgID := tools.GenerateMsgIDFromContext(c) + //删除操作 + err = control.Bind(c) + if err != nil { + log.Errorf("MsgID[%s] Bind error: %s", msgID, err) + e.Error(c, http.StatusUnprocessableEntity, err, "参数验证失败") + return + } + + // 设置编辑人 + control.SetUpdateBy(tools.GetUserId(c)) + + // 数据权限检查 + p := actions.GetPermissionFromContext(c) + + serviceSysChinaAreaData := service.SysChinaAreaData{} + serviceSysChinaAreaData.Orm = db + serviceSysChinaAreaData.MsgID = msgID + err = serviceSysChinaAreaData.RemoveSysChinaAreaData(control, p) + if err != nil { + log.Error(err) + return + } + e.OK(c, control.GetId(), "删除成功") +} diff --git a/app/admin/apis/tools/gen.go b/app/admin/apis/tools/gen.go index bdeef987..ada3ce83 100644 --- a/app/admin/apis/tools/gen.go +++ b/app/admin/apis/tools/gen.go @@ -19,17 +19,17 @@ func Preview(c *gin.Context) { id, err := tools2.StringToInt(c.Param("tableId")) tools2.HasError(err, "", -1) table.TableId = id - t1, err := template.ParseFiles("template/v3/model.go.template") + t1, err := template.ParseFiles("template/v4/model.go.template") tools2.HasError(err, "", -1) - t2, err := template.ParseFiles("template/v3/no_actions/apis.go.template") + t2, err := template.ParseFiles("template/v4/no_actions/apis.go.template") tools2.HasError(err, "", -1) - t3, err := template.ParseFiles("template/v3/js.go.template") + t3, err := template.ParseFiles("template/v4/js.go.template") tools2.HasError(err, "", -1) - t4, err := template.ParseFiles("template/v3/vue.go.template") + t4, err := template.ParseFiles("template/v4/vue.go.template") tools2.HasError(err, "", -1) - t5, err := template.ParseFiles("template/v3/no_actions/router_check_role.go.template") + t5, err := template.ParseFiles("template/v4/no_actions/router_check_role.go.template") tools2.HasError(err, "", -1) - t6, err := template.ParseFiles("template/v3/dto.go.template") + t6, err := template.ParseFiles("template/v4/dto.go.template") tools2.HasError(err, "", -1) tab, _ := table.Get() var b1 bytes.Buffer @@ -76,7 +76,7 @@ func GenCodeV3(c *gin.Context) { func NOActionsGenV3(tab tools.SysTables) { - basePath := "template/v3/" + basePath := "template/v4/" routerFile := basePath + "no_actions/router_check_role.go.template" if tab.IsAuth == 2 { @@ -130,7 +130,7 @@ func NOActionsGenV3(tab tools.SysTables) { } func ActionsGenV3(tab tools.SysTables) { - basePath := "template/v3/" + basePath := "template/v4/" routerFile := basePath + "actions/router_check_role.go.template" if tab.IsAuth == 2 { @@ -405,4 +405,4 @@ func GenMenuAndApi(c *gin.Context) { ADelete.MenuId, err = ADelete.Create() app.OK(c, "", "数据生成成功!") -} +} \ No newline at end of file diff --git a/app/admin/models/sys_file_dir.go b/app/admin/models/sys_file_dir.go index d2f6c9ea..ca2138ba 100644 --- a/app/admin/models/sys_file_dir.go +++ b/app/admin/models/sys_file_dir.go @@ -36,5 +36,5 @@ func (e *SysFileDir) Generate() models.ActiveRecord { } func (e *SysFileDir) GetId() interface{} { - return e.ID -} + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/sys_file_info.go b/app/admin/models/sys_file_info.go index e0f4b08b..5bb3c695 100644 --- a/app/admin/models/sys_file_info.go +++ b/app/admin/models/sys_file_info.go @@ -27,5 +27,5 @@ func (e *SysFileInfo) Generate() models.ActiveRecord { } func (e *SysFileInfo) GetId() interface{} { - return e.ID -} + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/syscategory.go b/app/admin/models/syscategory.go index 44363584..c04a91eb 100644 --- a/app/admin/models/syscategory.go +++ b/app/admin/models/syscategory.go @@ -25,5 +25,5 @@ func (e *SysCategory) Generate() models.ActiveRecord { } func (e *SysCategory) GetId() interface{} { - return e.ID -} + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/syschinaareadata.go b/app/admin/models/syschinaareadata.go new file mode 100644 index 00000000..69cf3060 --- /dev/null +++ b/app/admin/models/syschinaareadata.go @@ -0,0 +1,30 @@ +package models + +import ( + "go-admin/common/models" + "time" +) + +type SysChinaAreaData struct { + models.Model + models.ControlBy + + PId string `json:"pId" gorm:"type:int(11);comment:上级编码"` + Name string `json:"name" gorm:"type:varchar(128);comment:名称"` + CreateTime time.Time `json:"createTime" gorm:"type:timestamp;comment:CreateTime"` + UpdateTime time.Time `json:"updateTime" gorm:"type:timestamp;comment:UpdateTime"` + DeleteTime time.Time `json:"deleteTime" gorm:"type:timestamp;comment:DeleteTime"` +} + +func (SysChinaAreaData) TableName() string { + return "sys_china_area_data" +} + +func (e *SysChinaAreaData) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *SysChinaAreaData) GetId() interface{} { + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/system/sys_config.go b/app/admin/models/system/sys_config.go index b6f8e822..80bbe34a 100644 --- a/app/admin/models/system/sys_config.go +++ b/app/admin/models/system/sys_config.go @@ -25,5 +25,5 @@ func (e *SysConfig) Generate() models.ActiveRecord { } func (e *SysConfig) GetId() interface{} { - return e.ID -} + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/system/sys_login_log.go b/app/admin/models/system/sys_login_log.go index 74cf118c..ee9f6082 100644 --- a/app/admin/models/system/sys_login_log.go +++ b/app/admin/models/system/sys_login_log.go @@ -33,5 +33,5 @@ func (e *SysLoginLog) Generate() models.ActiveRecord { } func (e *SysLoginLog) GetId() interface{} { - return e.ID -} + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/system/sys_opera_log.go b/app/admin/models/system/sys_opera_log.go index f2384351..1723994b 100644 --- a/app/admin/models/system/sys_opera_log.go +++ b/app/admin/models/system/sys_opera_log.go @@ -41,5 +41,5 @@ func (e *SysOperaLog) Generate() models.ActiveRecord { } func (e *SysOperaLog) GetId() interface{} { - return e.ID -} + return e.Id +} \ No newline at end of file diff --git a/app/admin/router/syschinaareadata.go b/app/admin/router/syschinaareadata.go new file mode 100644 index 00000000..47b27a57 --- /dev/null +++ b/app/admin/router/syschinaareadata.go @@ -0,0 +1,25 @@ +package router + +import ( + "github.com/gin-gonic/gin" + "go-admin/app/admin/apis/syschinaareadata" + "go-admin/app/admin/middleware" + jwt "go-admin/pkg/jwtauth" +) + +func init() { + routerCheckRole = append(routerCheckRole, registerSysChinaAreaDataRouter) +} + +// 需认证的路由代码 +func registerSysChinaAreaDataRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { + api := &syschinaareadata.SysChinaAreaData{} + r := v1.Group("/syschinaareadata").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) + { + r.GET("", api.GetSysChinaAreaDataList) + r.GET("/:id", api.GetSysChinaAreaData) + r.POST("", api.InsertSysChinaAreaData) + r.PUT("/:id", api.UpdateSysChinaAreaData) + r.DELETE("", api.DeleteSysChinaAreaData) + } +} diff --git a/app/admin/service/dto/sys_category.go b/app/admin/service/dto/sys_category.go index 398ddae5..1d6d09ea 100644 --- a/app/admin/service/dto/sys_category.go +++ b/app/admin/service/dto/sys_category.go @@ -35,7 +35,7 @@ func (m *SysCategorySearch) Generate() dto.Index { } type SysCategoryControl struct { - ID int `uri:"ID" comment:"标识"` // 标识 + ID int `uri:"Id" comment:"标识"` // 标识 Name string `json:"name" comment:"名称"` @@ -69,7 +69,7 @@ func (s *SysCategoryControl) Generate() dto.Control { func (s *SysCategoryControl) GenerateM() (common.ActiveRecord, error) { return &models.SysCategory{ - Model: common.Model{ID: s.ID}, + Model: common.Model{Id: s.ID}, Name: s.Name, Img: s.Img, Sort: s.Sort, @@ -93,4 +93,4 @@ func (s *SysCategoryById) Generate() dto.Control { func (s *SysCategoryById) GenerateM() (common.ActiveRecord, error) { return &models.SysCategory{}, nil -} +} \ No newline at end of file diff --git a/app/admin/service/dto/sys_config.go b/app/admin/service/dto/sys_config.go index bb791a5b..2e1ce1a1 100644 --- a/app/admin/service/dto/sys_config.go +++ b/app/admin/service/dto/sys_config.go @@ -35,7 +35,7 @@ func (m *SysConfigSearch) Bind(ctx *gin.Context) error { // SysConfigControl 增、改使用的结构体 type SysConfigControl struct { - ID int `uri:"ID" comment:"编码"` // 编码 + ID int `uri:"Id" comment:"编码"` // 编码 ConfigName string `json:"configName" comment:""` ConfigKey string `uri:"configKey" json:"configKey" comment:""` ConfigValue string `json:"configValue" comment:""` @@ -67,7 +67,7 @@ func (s *SysConfigControl) Bind(ctx *gin.Context) error { // Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型 func (s *SysConfigControl) Generate() (*system.SysConfig, error) { return &system.SysConfig{ - Model: common.Model{ID: s.ID}, + Model: common.Model{Id: s.ID}, ConfigName: s.ConfigName, ConfigKey: s.ConfigKey, ConfigValue: s.ConfigValue, @@ -112,4 +112,4 @@ func (s *SysConfigById) Bind(ctx *gin.Context) error { func (s *SysConfigById) GenerateM() (*system.SysConfig, error) { return &system.SysConfig{}, nil -} +} \ No newline at end of file diff --git a/app/admin/service/dto/sys_file_dir.go b/app/admin/service/dto/sys_file_dir.go index 01be4cc6..8296c6e5 100644 --- a/app/admin/service/dto/sys_file_dir.go +++ b/app/admin/service/dto/sys_file_dir.go @@ -13,7 +13,7 @@ import ( type SysFileDirSearch struct { dto.Pagination `search:"-"` - ID int `form:"ID" search:"type:exact;column:id;table:sys_file_dir" comment:"标识"` + ID int `form:"Id" search:"type:exact;column:id;table:sys_file_dir" comment:"标识"` Label string `form:"label" search:"type:exact;column:label;table:sys_file_dir" comment:"目录名称"` PId string `form:"pId" search:"type:exact;column:p_id;table:sys_file_dir" comment:"上级目录"` //Sort string `form:"sort" search:"type:exact;column:sort;table:sys_file_dir" comment:"排序"` @@ -39,7 +39,7 @@ func (m *SysFileDirSearch) Generate() dto.Index { } type SysFileDirControl struct { - ID int `uri:"ID" comment:"标识"` // 标识 + ID int `uri:"Id" comment:"标识"` // 标识 Label string `json:"label" comment:"目录名称"` PId int `json:"pId" comment:"上级目录"` Sort string `json:"sort" comment:"排序"` @@ -69,7 +69,7 @@ func (s *SysFileDirControl) Generate() dto.Control { func (s *SysFileDirControl) GenerateM() (common.ActiveRecord, error) { return &models.SysFileDir{ - Model: common.Model{ID: s.ID}, + Model: common.Model{Id: s.ID}, Label: s.Label, PId: s.PId, //Sort: s.Sort, @@ -97,4 +97,4 @@ func (s *SysFileDirById) Generate() dto.Control { func (s *SysFileDirById) GenerateM() (common.ActiveRecord, error) { return &models.SysFileDir{}, nil -} +} \ No newline at end of file diff --git a/app/admin/service/dto/sys_file_info.go b/app/admin/service/dto/sys_file_info.go index b25d484b..8765ebea 100644 --- a/app/admin/service/dto/sys_file_info.go +++ b/app/admin/service/dto/sys_file_info.go @@ -8,7 +8,7 @@ import ( type SysFileInfoSearch struct { dto.Pagination `search:"-"` - ID int `form:"ID" search:"type:exact;column:id;table:sys_file_info" comment:"标识"` + ID int `form:"Id" search:"type:exact;column:id;table:sys_file_info" comment:"标识"` Type string `form:"type" search:"type:exact;column:type;table:sys_file_info" comment:"类型"` Name string `form:"name" search:"type:exact;column:name;table:sys_file_info" comment:"名称"` PId string `form:"pId" search:"type:exact;column:p_id;table:sys_file_info" comment:"目录"` @@ -34,7 +34,7 @@ type SysFileInfoControl struct { func (s *SysFileInfoControl) Generate() (*models.SysFileInfo, error) { return &models.SysFileInfo{ - Model: common.Model{ID: s.ID}, + Model: common.Model{Id: s.ID}, Type: s.Type, Name: s.Name, Size: s.Size, @@ -49,4 +49,4 @@ func (s *SysFileInfoControl) Generate() (*models.SysFileInfo, error) { type SysFileInfoById struct { dto.ObjectById UpdateBy int `json:"-"` -} +} \ No newline at end of file diff --git a/app/admin/service/dto/sys_login_log.go b/app/admin/service/dto/sys_login_log.go index 62ec6818..bc6ac0b9 100644 --- a/app/admin/service/dto/sys_login_log.go +++ b/app/admin/service/dto/sys_login_log.go @@ -33,7 +33,7 @@ func (m *SysLoginLogSearch) Bind(ctx *gin.Context) error { } type SysLoginLogControl struct { - ID int `uri:"ID" comment:"主键"` // 主键 + ID int `uri:"Id" comment:"主键"` // 主键 Username string `json:"username" comment:"用户名"` Status string `json:"status" comment:"状态"` Ipaddr string `json:"ipaddr" comment:"ip地址"` @@ -62,7 +62,7 @@ func (s *SysLoginLogControl) Bind(ctx *gin.Context) error { func (s *SysLoginLogControl) Generate() (*system.SysLoginLog, error) { return &system.SysLoginLog{ - Model: common.Model{ID: s.ID}, + Model: common.Model{Id: s.ID}, Username: s.Username, Status: s.Status, Ipaddr: s.Ipaddr, @@ -110,4 +110,4 @@ func (s *SysLoginLogById) Generate() *SysLoginLogById { func (s *SysLoginLogById) GenerateM() (*system.SysLoginLog, error) { return &system.SysLoginLog{}, nil -} +} \ No newline at end of file diff --git a/app/admin/service/dto/sys_opera_log.go b/app/admin/service/dto/sys_opera_log.go index b9cf977c..d8341b11 100644 --- a/app/admin/service/dto/sys_opera_log.go +++ b/app/admin/service/dto/sys_opera_log.go @@ -35,7 +35,7 @@ func (m *SysOperaLogSearch) Bind(ctx *gin.Context) error { } type SysOperaLogControl struct { - ID int `uri:"ID" comment:"编码"` // 编码 + ID int `uri:"Id" comment:"编码"` // 编码 Title string `json:"title" comment:"操作模块"` BusinessType string `json:"businessType" comment:"操作类型"` BusinessTypes string `json:"businessTypes" comment:""` @@ -72,7 +72,7 @@ func (s *SysOperaLogControl) Bind(ctx *gin.Context) error { func (s *SysOperaLogControl) Generate() (*system.SysOperaLog, error) { return &system.SysOperaLog{ - Model: common.Model{ID: s.ID}, + Model: common.Model{Id: s.ID}, Title: s.Title, BusinessType: s.BusinessType, BusinessTypes: s.BusinessTypes, @@ -127,4 +127,4 @@ func (s *SysOperaLogById) Bind(ctx *gin.Context) error { func (s *SysOperaLogById) SetUpdateBy(id int) { -} +} \ No newline at end of file diff --git a/app/admin/service/dto/syschinaareadata.go b/app/admin/service/dto/syschinaareadata.go new file mode 100644 index 00000000..1c3fcc9b --- /dev/null +++ b/app/admin/service/dto/syschinaareadata.go @@ -0,0 +1,114 @@ +package dto + +import ( + "github.com/gin-gonic/gin" + "go-admin/app/admin/models" + "go-admin/common/dto" + "go-admin/common/log" + common "go-admin/common/models" + "go-admin/tools" + "time" +) + +type SysChinaAreaDataSearch struct { + dto.Pagination `search:"-"` + PId string `form:"pId" search:"type:exact;column:p_id;table:sys_china_area_data" comment:"上级编码"` + + Name string `form:"name" search:"type:exact;column:name;table:sys_china_area_data" comment:"名称"` + + +} + +func (m *SysChinaAreaDataSearch) GetNeedSearch() interface{} { + return *m +} + +func (m *SysChinaAreaDataSearch) Bind(ctx *gin.Context) error { + msgID := tools.GenerateMsgIDFromContext(ctx) + err := ctx.ShouldBind(m) + if err != nil { + log.Debugf("MsgID[%s] ShouldBind error: %s", msgID, err.Error()) + } + return err +} + +type SysChinaAreaDataControl struct { + + Id int `uri:"id" comment:"编码"` // 编码 + + PId string `json:"pId" comment:"上级编码"` + + + Name string `json:"name" comment:"名称"` + + + CreateTime time.Time `json:"createTime" comment:""` + + + UpdateTime time.Time `json:"updateTime" comment:""` + + + DeleteTime time.Time `json:"deleteTime" comment:""` + +} + +func (s *SysChinaAreaDataControl) Bind(ctx *gin.Context) error { + msgID := tools.GenerateMsgIDFromContext(ctx) + err := ctx.ShouldBindUri(s) + if err != nil { + log.Debugf("MsgID[%s] ShouldBindUri error: %s", msgID, err.Error()) + return err + } + err = ctx.ShouldBind(s) + if err != nil { + log.Debugf("MsgID[%s] ShouldBind error: %#v", msgID, err.Error()) + } + return err +} + +func (s *SysChinaAreaDataControl) Generate() (*models.SysChinaAreaData, error) { + return &models.SysChinaAreaData{ + + Model: common.Model{ Id: s.Id }, + PId: s.PId, + Name: s.Name, + CreateTime: s.CreateTime, + UpdateTime: s.UpdateTime, + DeleteTime: s.DeleteTime, + }, nil +} + +func (s *SysChinaAreaDataControl) GetId() interface{} { + return s.Id +} + +type SysChinaAreaDataById struct { + Id int `uri:"id"` + Ids []int `json:"ids"` +} + +func (s *SysChinaAreaDataById) GetId() interface{} { + if len(s.Ids) > 0 { + s.Ids = append(s.Ids, s.Id) + return s.Ids + } + return s.Id +} + +func (s *SysChinaAreaDataById) Bind(ctx *gin.Context) error { + msgID := tools.GenerateMsgIDFromContext(ctx) + err := ctx.ShouldBindUri(s) + if err != nil { + log.Debugf("MsgID[%s] ShouldBindUri error: %s", msgID, err.Error()) + return err + } + err = ctx.ShouldBind(s) + if err != nil { + log.Debugf("MsgID[%s] ShouldBind error: %#v", msgID, err.Error()) + } + return err +} + +func (s *SysChinaAreaDataById) SetUpdateBy(id int) { + +} \ No newline at end of file diff --git a/app/admin/service/sys_file_dir.go b/app/admin/service/sys_file_dir.go index e7267e86..c88df57a 100644 --- a/app/admin/service/sys_file_dir.go +++ b/app/admin/service/sys_file_dir.go @@ -149,11 +149,11 @@ func SysFileDirCall(list *[]models.SysFileDirL, m models.SysFileDirL) models.Sys listGroup := *list min := make([]models.SysFileDirL, 0) for j := 0; j < len(listGroup); j++ { - if m.ID != listGroup[j].PId { + if m.Id != listGroup[j].PId { continue } mi := models.SysFileDirL{} - mi.ID = listGroup[j].ID + mi.Id = listGroup[j].Id mi.PId = listGroup[j].PId mi.Label = listGroup[j].Label //mi.Sort = listGroup[j].Sort @@ -170,4 +170,4 @@ func SysFileDirCall(list *[]models.SysFileDirL, m models.SysFileDirL) models.Sys } return m -} +} \ No newline at end of file diff --git a/app/admin/service/syschinaareadata.go b/app/admin/service/syschinaareadata.go new file mode 100644 index 00000000..4bc7d7da --- /dev/null +++ b/app/admin/service/syschinaareadata.go @@ -0,0 +1,119 @@ +package service + +import ( + "errors" + "go-admin/app/admin/models" + "go-admin/common/actions" + cDto "go-admin/common/dto" + "go-admin/common/log" + "go-admin/app/admin/service/dto" + "go-admin/common/service" + "gorm.io/gorm" +) + +type SysChinaAreaData struct { + service.Service +} + +// GetSysChinaAreaDataPage 获取SysChinaAreaData列表 +func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models.SysChinaAreaData, count *int64) error { + var err error + var data models.SysChinaAreaData + msgID := e.MsgID + + err = e.Orm.Model(&data). + Scopes( + cDto.MakeCondition(c.GetNeedSearch()), + cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), + actions.Permission(data.TableName(), p), + ). + Find(list).Limit(-1).Offset(-1). + Count(count).Error + if err != nil { + log.Errorf("msgID[%s] db error:%s", msgID, err) + return err + } + return nil +} + +// GetSysChinaAreaData 获取SysChinaAreaData对象 +func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission, model *models.SysChinaAreaData) error { + var err error + var data models.SysChinaAreaData + msgID := e.MsgID + + db := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ). + First(model, d.GetId()) + err = db.Error + if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { + err = errors.New("查看对象不存在或无权查看") + log.Errorf("msgID[%s] db error:%s", msgID, err) + return err + } + if db.Error != nil { + log.Errorf("msgID[%s] db error:%s", msgID, err) + return err + } + return nil +} + +// InsertSysChinaAreaData 创建SysChinaAreaData对象 +func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData) error { + var err error + var data models.SysChinaAreaData + msgID := e.MsgID + + err = e.Orm.Model(&data). + Create(model).Error + if err != nil { + log.Errorf("msgID[%s] db error:%s", msgID, err) + return err + } + return nil +} + +// UpdateSysChinaAreaData 修改SysChinaAreaData对象 +func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models.SysChinaAreaData, p *actions.DataPermission) error { + var err error + var data models.SysChinaAreaData + msgID := e.MsgID + + db := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ).Where(c.GetId()).Updates(c) + if db.Error != nil { + log.Errorf("msgID[%s] db error:%s", msgID, err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权更新该数据") + + } + return nil +} + +// RemoveSysChinaAreaData 删除SysChinaAreaData +func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission) error { + var err error + var data models.SysChinaAreaData + msgID := e.MsgID + + db := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ).Delete(&data, d.GetId()) + if db.Error != nil { + err = db.Error + log.Errorf("MsgID[%s] Delete error: %s", msgID, err) + return err + } + if db.RowsAffected == 0 { + err = errors.New("无权删除该数据") + return err + } + return nil +} \ No newline at end of file diff --git a/cmd/migrate/migration/version/1599190683670_migrate.go b/cmd/migrate/migration/version/1599190683670_migrate.go index ee2034f4..bbebf63e 100644 --- a/cmd/migrate/migration/version/1599190683670_migrate.go +++ b/cmd/migrate/migration/version/1599190683670_migrate.go @@ -29,9 +29,9 @@ func _1599190683670Test(db *gorm.DB, version string) error { } list4 := []system.SysConfig{ - {Model: common.Model{ID: 1}, ModelTime: common.ModelTime{CreatedAt: time.Now(), UpdatedAt: time.Now()}, ControlBy: common.ControlBy{CreateBy: 1, UpdateBy: 1}, ConfigName: "主框架页-默认皮肤样式名称", ConfigKey: "sys_index_skinName", ConfigValue: "skin-blue", ConfigType: "Y", Remark: "蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow"}, - {Model: common.Model{ID: 2}, ModelTime: common.ModelTime{CreatedAt: time.Now(), UpdatedAt: time.Now()}, ControlBy: common.ControlBy{CreateBy: 1, UpdateBy: 1}, ConfigName: "用户管理-账号初始密码", ConfigKey: "sys.user.initPassword", ConfigValue: "123456", ConfigType: "Y", Remark: "初始化密码 123456"}, - {Model: common.Model{ID: 3}, ModelTime: common.ModelTime{CreatedAt: time.Now(), UpdatedAt: time.Now()}, ControlBy: common.ControlBy{CreateBy: 1, UpdateBy: 1}, ConfigName: "主框架页-侧边栏主题", ConfigKey: "sys_index_sideTheme", ConfigValue: "theme-dark", ConfigType: "Y", Remark: "深色主题theme-dark,浅色主题theme-light"}, + {Model: common.Model{Id: 1}, ModelTime: common.ModelTime{CreatedAt: time.Now(), UpdatedAt: time.Now()}, ControlBy: common.ControlBy{CreateBy: 1, UpdateBy: 1}, ConfigName: "主框架页-默认皮肤样式名称", ConfigKey: "sys_index_skinName", ConfigValue: "skin-blue", ConfigType: "Y", Remark: "蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow"}, + {Model: common.Model{Id: 2}, ModelTime: common.ModelTime{CreatedAt: time.Now(), UpdatedAt: time.Now()}, ControlBy: common.ControlBy{CreateBy: 1, UpdateBy: 1}, ConfigName: "用户管理-账号初始密码", ConfigKey: "sys.user.initPassword", ConfigValue: "123456", ConfigType: "Y", Remark: "初始化密码 123456"}, + {Model: common.Model{Id: 3}, ModelTime: common.ModelTime{CreatedAt: time.Now(), UpdatedAt: time.Now()}, ControlBy: common.ControlBy{CreateBy: 1, UpdateBy: 1}, ConfigName: "主框架页-侧边栏主题", ConfigKey: "sys_index_sideTheme", ConfigValue: "theme-dark", ConfigType: "Y", Remark: "深色主题theme-dark,浅色主题theme-light"}, } list5 := []models.Post{ @@ -157,4 +157,4 @@ func _1599190683670Test(db *gorm.DB, version string) error { Version: version, }).Error }) -} +} \ No newline at end of file diff --git a/common/models/by.go b/common/models/by.go index 48e31adb..b7cd37ad 100644 --- a/common/models/by.go +++ b/common/models/by.go @@ -19,11 +19,11 @@ func (e *ControlBy) SetUpdateBy(updateBy int) { } type Model struct { - ID int `json:"id" gorm:"primaryKey;autoIncrement;comment:主键编码"` + Id int `json:"id" gorm:"primaryKey;autoIncrement;comment:主键编码"` } type ModelTime struct { CreatedAt time.Time `json:"createdAt" gorm:"comment:创建时间"` UpdatedAt time.Time `json:"updatedAt" gorm:"comment:最后更新时间"` DeletedAt gorm.DeletedAt `json:"-" gorm:"index;comment:删除时间"` -} +} \ No newline at end of file diff --git a/go.mod b/go.mod index e1dd9d70..ef37fdd6 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,6 @@ require ( gorm.io/driver/postgres v1.0.6-0.20201208020313-1ed927cfab53 gorm.io/driver/sqlite v1.1.5-0.20201206014648-c84401fbe3ba gorm.io/gorm v1.20.12 - gorm.io/plugin/dbresolver v1.1.0 sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect ) diff --git a/template/v4/dto.go.template b/template/v4/dto.go.template index bdc49857..7fd61ab2 100644 --- a/template/v4/dto.go.template +++ b/template/v4/dto.go.template @@ -72,7 +72,7 @@ func (s *{{.ClassName}}Control) Generate() (*models.{{.ClassName}}, error) { {{ range .Columns -}} {{$x := .Pk}} {{- if ($x) }} - Model: gorm.Model{ID: s.ID}, + Model: common.Model{ {{.GoField}}: s.{{.GoField}} }, {{- else if eq .GoField "CreatedAt" -}} {{- else if eq .GoField "UpdatedAt" -}} {{- else if eq .GoField "DeletedAt" -}} @@ -120,4 +120,4 @@ func (s *{{.ClassName}}ById) Bind(ctx *gin.Context) error { func (s *{{.ClassName}}ById) SetUpdateBy(id int) { -} +} \ No newline at end of file diff --git a/template/v4/model.go.template b/template/v4/model.go.template index 913fb1cb..e6dc8963 100644 --- a/template/v4/model.go.template +++ b/template/v4/model.go.template @@ -7,7 +7,7 @@ import ( ) type {{.ClassName}} struct { - gorm.Model + models.Model models.ControlBy {{ range .Columns -}} {{$x := .Pk}} @@ -34,4 +34,4 @@ func (e *{{.ClassName}}) Generate() models.ActiveRecord { func (e *{{.ClassName}}) GetId() interface{} { return e.{{.PkGoField}} -} +} \ No newline at end of file