225 lines
4.9 KiB
Go
225 lines
4.9 KiB
Go
|
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)
|
||
|
}
|