123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- 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)
- }
|