mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 10:12:59 +00:00
文件上传
This commit is contained in:
@@ -31,20 +31,20 @@ type ReqAddParams struct {
|
||||
}
|
||||
|
||||
//添加文章操作
|
||||
func AddNews(req *ReqAddParams, menuIds []int, userId int) (insId []int64, err error) {
|
||||
if len(menuIds) == 0 {
|
||||
func AddNews(req *ReqAddParams, cateIds []int, userId int) (insId []int64, err error) {
|
||||
if len(cateIds) == 0 {
|
||||
err = gerror.New("栏目不能为空")
|
||||
return
|
||||
}
|
||||
tx, err := g.DB().Begin()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
err = gerror.New("保存失败")
|
||||
err = gerror.New("添加失败")
|
||||
return
|
||||
}
|
||||
for _, menuId := range menuIds {
|
||||
for _, cateId := range cateIds {
|
||||
entity := &Entity{
|
||||
CateId: gconv.Uint(menuId),
|
||||
CateId: gconv.Uint(cateId),
|
||||
UserId: gconv.Uint64(userId),
|
||||
NewsStatus: req.NewsStatus,
|
||||
IsTop: req.IsTop,
|
||||
@@ -60,16 +60,16 @@ func AddNews(req *ReqAddParams, menuIds []int, userId int) (insId []int64, err e
|
||||
IsJump: req.IsJump,
|
||||
JumpUrl: req.JumpUrl,
|
||||
}
|
||||
res, err := entity.Save()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
res, e := entity.Save()
|
||||
if e != nil {
|
||||
g.Log().Error(e)
|
||||
err = gerror.New("添加文章失败")
|
||||
tx.Rollback()
|
||||
return
|
||||
}
|
||||
id, err := res.LastInsertId()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
id, e := res.LastInsertId()
|
||||
if e != nil {
|
||||
g.Log().Error(e)
|
||||
err = gerror.New("添加文章失败")
|
||||
tx.Rollback()
|
||||
return
|
||||
|
||||
@@ -46,11 +46,6 @@ func (r *Entity) Insert() (result sql.Result, err error) {
|
||||
return Model.Data(r).Insert()
|
||||
}
|
||||
|
||||
// InsertIgnore does "INSERT IGNORE INTO ..." statement for inserting current object into table.
|
||||
func (r *Entity) InsertIgnore() (result sql.Result, err error) {
|
||||
return Model.Data(r).InsertIgnore()
|
||||
}
|
||||
|
||||
// Replace does "REPLACE...INTO..." statement for inserting current object into table.
|
||||
// If there's already another same record in the table (it checks using primary key or unique index),
|
||||
// it deletes it and insert this one.
|
||||
|
||||
@@ -8,13 +8,12 @@ import (
|
||||
"database/sql"
|
||||
"github.com/gogf/gf/database/gdb"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/frame/gmvc"
|
||||
"time"
|
||||
)
|
||||
|
||||
// arModel is a active record design model for table cms_news operations.
|
||||
type arModel struct {
|
||||
gmvc.M
|
||||
M *gdb.Model
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -22,54 +21,6 @@ var (
|
||||
Table = "cms_news"
|
||||
// Model is the model object of cms_news.
|
||||
Model = &arModel{g.DB("default").Table(Table).Safe()}
|
||||
// Columns defines and stores column names for table cms_news.
|
||||
Columns = struct {
|
||||
Id string //
|
||||
CateId string // 栏目id
|
||||
NewsFormat string // 内容格式;1:html;2:md
|
||||
UserId string // 发表者用户id
|
||||
NewsStatus string // 状态;1:已发布;0:未发布;
|
||||
IsTop string // 是否置顶;1:置顶;0:不置顶
|
||||
Recommended string // 是否推荐;1:推荐;0:不推荐
|
||||
NewsHits string // 查看数
|
||||
NewsLike string // 点赞数
|
||||
CreateTime string // 创建时间
|
||||
UpdateTime string // 更新时间
|
||||
PublishedTime string // 发布时间
|
||||
DeleteTime string // 删除时间
|
||||
NewsTitle string // post标题
|
||||
NewsKeywords string // seo keywords
|
||||
NewsExcerpt string // post摘要
|
||||
NewsSource string // 转载文章的来源
|
||||
NewsContent string // 文章内容
|
||||
Thumbnail string // 缩略图
|
||||
IsJump string // 是否跳转地址
|
||||
JumpUrl string // 跳转地址
|
||||
IsPushed string // 是否已推送
|
||||
}{
|
||||
Id: "id",
|
||||
CateId: "cate_id",
|
||||
NewsFormat: "news_format",
|
||||
UserId: "user_id",
|
||||
NewsStatus: "news_status",
|
||||
IsTop: "is_top",
|
||||
Recommended: "recommended",
|
||||
NewsHits: "news_hits",
|
||||
NewsLike: "news_like",
|
||||
CreateTime: "create_time",
|
||||
UpdateTime: "update_time",
|
||||
PublishedTime: "published_time",
|
||||
DeleteTime: "delete_time",
|
||||
NewsTitle: "news_title",
|
||||
NewsKeywords: "news_keywords",
|
||||
NewsExcerpt: "news_excerpt",
|
||||
NewsSource: "news_source",
|
||||
NewsContent: "news_content",
|
||||
Thumbnail: "thumbnail",
|
||||
IsJump: "is_jump",
|
||||
JumpUrl: "jump_url",
|
||||
IsPushed: "is_pushed",
|
||||
}
|
||||
)
|
||||
|
||||
// FindOne is a convenience method for Model.FindOne.
|
||||
@@ -90,12 +41,6 @@ func FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
||||
return Model.FindValue(fieldsAndWhere...)
|
||||
}
|
||||
|
||||
// FindArray is a convenience method for Model.FindArray.
|
||||
// See Model.FindArray.
|
||||
func FindArray(fieldsAndWhere ...interface{}) ([]gdb.Value, error) {
|
||||
return Model.FindArray(fieldsAndWhere...)
|
||||
}
|
||||
|
||||
// FindCount is a convenience method for Model.FindCount.
|
||||
// See Model.FindCount.
|
||||
func FindCount(where ...interface{}) (int, error) {
|
||||
@@ -277,6 +222,53 @@ func (m *arModel) Data(data ...interface{}) *arModel {
|
||||
return &arModel{m.M.Data(data...)}
|
||||
}
|
||||
|
||||
// Insert does "INSERT INTO ..." statement for the model.
|
||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
||||
// see Model.Data.
|
||||
func (m *arModel) Insert(data ...interface{}) (result sql.Result, err error) {
|
||||
return m.M.Insert(data...)
|
||||
}
|
||||
|
||||
// Replace does "REPLACE INTO ..." statement for the model.
|
||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
||||
// see Model.Data.
|
||||
func (m *arModel) Replace(data ...interface{}) (result sql.Result, err error) {
|
||||
return m.M.Replace(data...)
|
||||
}
|
||||
|
||||
// Save does "INSERT INTO ... ON DUPLICATE KEY UPDATE..." statement for the model.
|
||||
// It updates the record if there's primary or unique index in the saving data,
|
||||
// or else it inserts a new record into the table.
|
||||
//
|
||||
// The optional parameter <data> is the same as the parameter of Model.Data function,
|
||||
// see Model.Data.
|
||||
func (m *arModel) Save(data ...interface{}) (result sql.Result, err error) {
|
||||
return m.M.Save(data...)
|
||||
}
|
||||
|
||||
// Update does "UPDATE ... " statement for the model.
|
||||
//
|
||||
// If the optional parameter <dataAndWhere> is given, the dataAndWhere[0] is the updated
|
||||
// data field, and dataAndWhere[1:] is treated as where condition fields.
|
||||
// Also see Model.Data and Model.Where functions.
|
||||
func (m *arModel) Update(dataAndWhere ...interface{}) (result sql.Result, err error) {
|
||||
return m.M.Update(dataAndWhere...)
|
||||
}
|
||||
|
||||
// Delete does "DELETE FROM ... " statement for the model.
|
||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
||||
// see Model.Where.
|
||||
func (m *arModel) Delete(where ...interface{}) (result sql.Result, err error) {
|
||||
return m.M.Delete(where...)
|
||||
}
|
||||
|
||||
// Count does "SELECT COUNT(x) FROM ..." statement for the model.
|
||||
// The optional parameter <where> is the same as the parameter of Model.Where function,
|
||||
// see Model.Where.
|
||||
func (m *arModel) Count(where ...interface{}) (int, error) {
|
||||
return m.M.Count(where...)
|
||||
}
|
||||
|
||||
// All does "SELECT FROM ..." statement for the model.
|
||||
// It retrieves the records from table and returns the result as []*Entity.
|
||||
// It returns nil if there's no record retrieved with the given conditions from table.
|
||||
@@ -312,6 +304,16 @@ func (m *arModel) One(where ...interface{}) (*Entity, error) {
|
||||
return entity, nil
|
||||
}
|
||||
|
||||
// Value retrieves a specified record value from table and returns the result as interface type.
|
||||
// It returns nil if there's no record found with the given conditions from table.
|
||||
//
|
||||
// If the optional parameter <fieldsAndWhere> is given, the fieldsAndWhere[0] is the selected fields
|
||||
// and fieldsAndWhere[1:] is treated as where condition fields.
|
||||
// Also see Model.Fields and Model.Where functions.
|
||||
func (m *arModel) Value(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
||||
return m.M.Value(fieldsAndWhere...)
|
||||
}
|
||||
|
||||
// FindOne retrieves and returns a single Record by Model.WherePri and Model.One.
|
||||
// Also see Model.WherePri and Model.One.
|
||||
func (m *arModel) FindOne(where ...interface{}) (*Entity, error) {
|
||||
@@ -340,6 +342,18 @@ func (m *arModel) FindAll(where ...interface{}) ([]*Entity, error) {
|
||||
return entities, nil
|
||||
}
|
||||
|
||||
// FindValue retrieves and returns single field value by Model.WherePri and Model.Value.
|
||||
// Also see Model.WherePri and Model.Value.
|
||||
func (m *arModel) FindValue(fieldsAndWhere ...interface{}) (gdb.Value, error) {
|
||||
return m.M.FindValue(fieldsAndWhere...)
|
||||
}
|
||||
|
||||
// FindCount retrieves and returns the record number by Model.WherePri and Model.Count.
|
||||
// Also see Model.WherePri and Model.Count.
|
||||
func (m *arModel) FindCount(where ...interface{}) (int, error) {
|
||||
return m.M.FindCount(where...)
|
||||
}
|
||||
|
||||
// Chunk iterates the table with given size and callback function.
|
||||
func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error) bool) {
|
||||
m.M.Chunk(limit, func(result gdb.Result, err error) bool {
|
||||
|
||||
@@ -176,3 +176,13 @@ func DeleteByIds(ids []int) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//通过key获取配置信息
|
||||
func GetByKey(key string) (config *Entity, err error) {
|
||||
config, err = Model.FindOne("config_key", key)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
err = gerror.New("获取配置失败")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user