You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
224 lines
4.9 KiB
224 lines
4.9 KiB
package http |
|
|
|
import ( |
|
"encoding/json" |
|
"fmt" |
|
|
|
eggModel "go-common/app/admin/main/feed/model/egg" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
bm "go-common/library/net/http/blademaster" |
|
|
|
"github.com/jinzhu/gorm" |
|
) |
|
|
|
func addEgg(c *bm.Context) { |
|
var ( |
|
err error |
|
p []eggModel.Plat |
|
) |
|
res := map[string]interface{}{} |
|
param := new(eggModel.Obj) |
|
if err = c.Bind(param); err != nil { |
|
return |
|
} |
|
uid, name := managerInfo(c) |
|
e := &eggModel.Egg{ |
|
Stime: param.Stime, |
|
Etime: param.Etime, |
|
ShowCount: param.ShowCount, |
|
UID: uid, |
|
Publish: eggModel.NotPublish, |
|
Person: name, |
|
Delete: eggModel.NotDelete, |
|
} |
|
if err = json.Unmarshal([]byte(param.Plat), &p); err != nil { |
|
res["message"] = "参数有误:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
if err = checkEgg(param.Query, e); err != nil { |
|
res["message"] = err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
if err = eggSvc.AddEgg(e, p, param.Query); err != nil { |
|
res["message"] = "添加失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(nil, nil) |
|
} |
|
|
|
//delEgg delete egg |
|
func delEgg(c *bm.Context) { |
|
var ( |
|
err error |
|
egg *eggModel.Egg |
|
) |
|
res := map[string]interface{}{} |
|
param := &struct { |
|
ID uint `form:"id" validate:"required"` |
|
}{} |
|
if err = c.Bind(param); err != nil { |
|
return |
|
} |
|
if egg, err = eggSvc.EggWithID(param.ID); err != nil { |
|
if err == gorm.ErrRecordNotFound { |
|
res["message"] = "找不到数据:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
res["message"] = "删除失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
if egg.Publish == eggModel.Publish { |
|
res["message"] = "已发布彩蛋不能删除" |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
uid, name := managerInfo(c) |
|
if err = eggSvc.DelEgg(param.ID, name, uid); err != nil { |
|
res["message"] = "删除失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(nil, nil) |
|
} |
|
|
|
//pubEgg publish egg |
|
func pubEgg(c *bm.Context) { |
|
var ( |
|
err error |
|
) |
|
res := map[string]interface{}{} |
|
param := &struct { |
|
ID uint `form:"id" validate:"required"` |
|
Publish uint8 `form:"publish"` |
|
}{} |
|
if err = c.Bind(param); err != nil { |
|
return |
|
} |
|
uid, name := managerInfo(c) |
|
if err = eggSvc.PubEgg(param.ID, param.Publish, name, uid); err != nil { |
|
res["message"] = "发布失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(nil, nil) |
|
} |
|
|
|
//updateEgg update egg |
|
func updateEgg(c *bm.Context) { |
|
var ( |
|
err error |
|
p []eggModel.Plat |
|
) |
|
res := map[string]interface{}{} |
|
param := new(eggModel.ObjUpdate) |
|
if err = c.Bind(param); err != nil { |
|
return |
|
} |
|
uid, name := managerInfo(c) |
|
e := &eggModel.Egg{ |
|
ID: param.ID, |
|
Stime: param.Stime, |
|
Etime: param.Etime, |
|
ShowCount: param.ShowCount, |
|
UID: uid, |
|
Publish: eggModel.NotPublish, |
|
Person: name, |
|
Delete: eggModel.NotDelete, |
|
} |
|
if err = json.Unmarshal([]byte(param.Plat), &p); err != nil { |
|
res["message"] = "json解析失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
if err = checkEgg(param.Query, e); err != nil { |
|
res["message"] = err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
if err = eggSvc.UpdateEgg(e, p, param.Query); err != nil { |
|
res["message"] = "更新失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(nil, nil) |
|
} |
|
|
|
//checkEgg check egg error |
|
func checkEgg(w []string, e *eggModel.Egg) (err error) { |
|
var ( |
|
flag bool |
|
eW string |
|
) |
|
if len(w) > 20 { |
|
err = fmt.Errorf("搜索词不能大于20个") |
|
return |
|
} |
|
if e.ShowCount > 10 { |
|
err = fmt.Errorf("彩蛋展示次数不能大于10") |
|
return |
|
} |
|
if flag, eW, err = eggSvc.IsWdExist(w, e.Stime, e.Etime, e.ID); err != nil { |
|
log.Error("eggSrv.checkEgg IsWdExist error(%v)", err) |
|
return |
|
} |
|
if flag { |
|
err = fmt.Errorf("搜索词 (%v) 已有彩蛋,请勿重复添加", eW) |
|
return |
|
} |
|
return |
|
} |
|
|
|
//indexEgg get egg list |
|
func indexEgg(c *bm.Context) { |
|
var ( |
|
err error |
|
eggs *eggModel.IndexPager |
|
) |
|
res := map[string]interface{}{} |
|
param := &eggModel.IndexParam{} |
|
if err = c.Bind(param); err != nil { |
|
return |
|
} |
|
if eggs, err = eggSvc.IndexEgg(param); err != nil { |
|
res["message"] = "查询失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(eggs, nil) |
|
} |
|
|
|
//searchEgg search api for search |
|
func searchEgg(c *bm.Context) { |
|
var ( |
|
err error |
|
eggs []eggModel.SearchEgg |
|
) |
|
res := map[string]interface{}{} |
|
if eggs, err = eggSvc.SearchEgg(); err != nil { |
|
res["message"] = "搜索查询失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(eggs, nil) |
|
} |
|
|
|
//SearchEggWeb search api for web |
|
func SearchEggWeb(c *bm.Context) { |
|
var ( |
|
err error |
|
eggs []eggModel.SearchEggWeb |
|
) |
|
res := map[string]interface{}{} |
|
if eggs, err = eggSvc.SearchEggWeb(); err != nil { |
|
res["message"] = "Web搜索查询失败:" + err.Error() |
|
c.JSONMap(res, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(eggs, nil) |
|
}
|
|
|