mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-22 02:27:54 +00:00
265 lines
7.3 KiB
Go
265 lines
7.3 KiB
Go
// ============================================================================
|
|
// This is auto-generated by gf cli tool only once. Fill this file as you wish.
|
|
// ============================================================================
|
|
|
|
package model_info
|
|
|
|
import (
|
|
"fmt"
|
|
"gfast/app/model/admin/model_category"
|
|
"github.com/gogf/gf/database/gdb"
|
|
"github.com/gogf/gf/errors/gerror"
|
|
"github.com/gogf/gf/frame/g"
|
|
"github.com/gogf/gf/os/gtime"
|
|
"github.com/gogf/gf/util/gconv"
|
|
)
|
|
|
|
// AddReq 用于存储新增请求的请求参数
|
|
type AddReq struct {
|
|
ModelCategoryId uint `p:"modelCategoryId" v:"required|min:1#模型分类id不能为空|模型分类id不能为空"`
|
|
ModelName string `p:"modelName" v:"required#模型标识不能为空"`
|
|
ModelTitle string `p:"modelTitle" v:"required#模型名称不能为空"`
|
|
ModelStatus uint `p:"modelStatus" v:"required#状态不能为空"`
|
|
ModelEngine string `p:"modelEngine" `
|
|
CreateBy int //添加人
|
|
}
|
|
|
|
// EditReq 用于存储修改请求参数
|
|
type EditReq struct {
|
|
ModelId int `p:"modelId" v:"required#主键ID不能为空"`
|
|
ModelCategoryId int `p:"modelCategoryId" `
|
|
ModelName string `p:"modelName" v:"required#模型标识不能为空"`
|
|
ModelTitle string `p:"modelTitle" `
|
|
ModelStatus int `p:"modelStatus" v:"required#状态不能为空"`
|
|
ModelEngine string `p:"modelEngine" `
|
|
UpdateBy int
|
|
}
|
|
|
|
//模型字段属性修改请求参数
|
|
type FieldsAttrReq struct {
|
|
ModelId int `p:"modelId" v:"required#主键ID不能为空"`
|
|
ModelPk string `p:"modelPk" `
|
|
ModelOrder string `p:"modelOrder" `
|
|
ModelSort string `p:"modelSort" `
|
|
ModelList string `p:"modelList" `
|
|
ModelEdit string `p:"modelEdit" `
|
|
ModelIndexes string `p:"modelIndexes" `
|
|
SearchList string `p:"searchList" `
|
|
}
|
|
|
|
type ListEntity struct {
|
|
Entity
|
|
CName string `orm:"c_name" json:"c_name" `
|
|
}
|
|
|
|
type StatusSetReq struct {
|
|
ModelId uint `p:"modelId" v:"required#模型ID不能为空"`
|
|
ModelStatus int `p:"modelStatus" v:"required#状态不能为空"`
|
|
}
|
|
|
|
// SelectPageReq 用于存储分页查询的请求参数
|
|
type SelectPageReq struct {
|
|
ModelName string `p:"modelName"` //模型标识
|
|
ModelTitle string `p:"modelTitle"` //模型名称
|
|
ModelStatus string `p"modelStatus"` //模型状态
|
|
ModelCategoryId string `p"modelCategoryId"` //模型分类
|
|
BeginTime string `p:"beginTime"` //开始时间
|
|
EndTime string `p:"endTime"` //结束时间
|
|
PageNum int `p:"pageNum"` //当前页码
|
|
PageSize int `p:"pageSize"` //每页数
|
|
}
|
|
|
|
type RemoveReq struct {
|
|
Ids []int `p:"ids"` //删除id
|
|
}
|
|
|
|
// GetPlugAdByID 根据ID查询记录
|
|
func GetByID(id int64) (*Entity, error) {
|
|
entity, err := Model.FindOne(id)
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
err = gerror.New("根据ID查询记录出错")
|
|
}
|
|
if entity == nil {
|
|
err = gerror.New("根据ID未能查询到记录")
|
|
}
|
|
return entity, nil
|
|
}
|
|
|
|
// AddSave 添加
|
|
func AddSave(req *AddReq) error {
|
|
if err := ModelExists(req.ModelName, 0); err != nil {
|
|
return err
|
|
}
|
|
entity := new(Entity)
|
|
entity.ModelCategoryId = req.ModelCategoryId
|
|
entity.ModelName = req.ModelName
|
|
entity.ModelTitle = req.ModelTitle
|
|
entity.ModelStatus = req.ModelStatus
|
|
entity.ModelEngine = req.ModelEngine
|
|
entity.CreateBy = gconv.Uint64(req.CreateBy)
|
|
time := gconv.Uint64(gtime.Timestamp())
|
|
entity.CreateTime = time
|
|
entity.UpdateTime = time
|
|
|
|
result, err := entity.Insert()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
_, err = result.LastInsertId()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//判断模型是否存在
|
|
func ModelExists(name string, id int) error {
|
|
var res *Entity
|
|
if id != 0 {
|
|
res, _ = Model.Where(Columns.ModelName, name).And(Columns.ModelId+" != ", id).One()
|
|
} else {
|
|
res, _ = Model.Where(Columns.ModelName, name).One()
|
|
}
|
|
if res != nil {
|
|
return gerror.New("模型标识已经存在")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// 删除模型
|
|
func DeleteByIds(Ids []int, tx *gdb.TX) error {
|
|
_, err := Model.TX(tx).Delete("model_id in(?)", Ids)
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
return gerror.New("删除失败")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// 根据ID来修改信息
|
|
func EditSave(req *EditReq) error {
|
|
if err := ModelExists(req.ModelName, req.ModelId); err != nil {
|
|
return err
|
|
}
|
|
// 先根据ID来查询要修改的记录
|
|
entity, err := GetByID(gconv.Int64(req.ModelId))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
// 修改实体
|
|
entity.ModelCategoryId = gconv.Uint(req.ModelCategoryId)
|
|
entity.ModelName = req.ModelName
|
|
entity.ModelTitle = req.ModelTitle
|
|
entity.ModelStatus = gconv.Uint(req.ModelStatus)
|
|
entity.ModelEngine = req.ModelEngine
|
|
entity.UpdateBy = gconv.Uint64(req.UpdateBy)
|
|
entity.UpdateTime = gconv.Uint64(gtime.Timestamp())
|
|
_, err = entity.Update()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
return gerror.New("修改失败")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// 分页查询,返回值total总记录数,page当前页
|
|
func SelectListByPage(req *SelectPageReq) (total int, page int, list []*ListEntity, err error) {
|
|
model := g.DB().Table(Table + " info")
|
|
if req != nil {
|
|
if req.ModelName != "" {
|
|
model.Where("info.model_name like ?", "%"+req.ModelName+"%")
|
|
}
|
|
if req.ModelTitle != "" {
|
|
model.Where("info.model_title like ?", "%"+req.ModelTitle+"%")
|
|
}
|
|
if req.ModelStatus != "" {
|
|
model.Where("info.model_status", gconv.Uint(req.ModelStatus))
|
|
}
|
|
if req.ModelCategoryId != "" {
|
|
model.Where("info.model_category_id", gconv.Uint(req.ModelCategoryId))
|
|
}
|
|
}
|
|
model = model.LeftJoin(model_category.Table+" cate", "cate.c_id=info.model_category_id")
|
|
// 查询总记录数(总行数)
|
|
total, err = model.Count()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
err = gerror.New("获取总记录数失败")
|
|
return
|
|
}
|
|
if req.PageNum == 0 {
|
|
req.PageNum = 1
|
|
}
|
|
page = req.PageNum
|
|
if req.PageSize == 0 {
|
|
req.PageSize = 10
|
|
}
|
|
// 分页排序查询
|
|
var res gdb.Result
|
|
res, err = model.Fields("info.*,cate.c_name").Page(page, req.PageSize).Order("info.model_id asc").All()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
err = gerror.New("查询失败")
|
|
return
|
|
}
|
|
err = res.Structs(&list)
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
err = gerror.New("查询失败")
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
// 获取所有数据
|
|
func SelectListAll(req *SelectPageReq) (list []*Entity, err error) {
|
|
model := Model
|
|
if req != nil {
|
|
if req.ModelName != "" {
|
|
model.Where("model_name like ?", "%"+req.ModelName+"%")
|
|
}
|
|
if req.ModelTitle != "" {
|
|
model.Where("model_title = ?", req.ModelTitle)
|
|
}
|
|
}
|
|
// 查询
|
|
list, err = model.Order("model_id asc").All()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
err = gerror.New("查询失败")
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
//设置模型状态
|
|
func SetStatus(req *StatusSetReq) error {
|
|
if req != nil {
|
|
entity, err := Model.Where(Columns.ModelId, req.ModelId).One()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
return gerror.New("获取模型信息失败")
|
|
}
|
|
entity.ModelStatus = gconv.Uint(req.ModelStatus)
|
|
_, err = entity.Update()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
return gerror.New("设置状态失败")
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//通过模型分类ID获取模型
|
|
func GetModelsByCateIds(cateIds []int) (models []*Entity, err error) {
|
|
models, err = Model.Fields(fmt.Sprintf("%s,%s,%s", Columns.ModelId, Columns.ModelName, Columns.ModelTitle)).
|
|
Where(Columns.ModelCategoryId+" in(?)", cateIds).
|
|
Order(Columns.ModelId + " ASC ").FindAll()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
err = gerror.New("获取模型信息失败")
|
|
}
|
|
return
|
|
}
|