123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- package http
- import (
- "encoding/json"
- "fmt"
- "go-common/app/admin/main/creative/model/whitelist"
- accapi "go-common/app/service/main/account/api"
- "go-common/library/ecode"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/http/blademaster/render"
- "net/http"
- "time"
- )
- var maxMid = int64(2147483647)
- func viewWhiteList(c *bm.Context) {
- var (
- err error
- info = &whitelist.Whitelist{}
- )
- if err = c.Bind(info); err != nil {
- return
- }
- if info.ID == 0 {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).First(info, info.ID).Error; err != nil {
- c.JSON(nil, err)
- return
- }
- if info.ID == 0 {
- c.JSON(nil, ecode.NothingFound)
- } else {
- pfl, _ := svc.ProfileStat(c, info.MID)
- if pfl.Profile != nil {
- info.Name = pfl.Profile.Name
- }
- info.Fans = pfl.Follower
- info.CurrentLevel = pfl.LevelInfo.Cur
- c.JSON(info, nil)
- }
- }
- func listWhiteList(c *bm.Context) {
- var (
- err error
- wls []*whitelist.Whitelist
- total int
- )
- v := new(struct {
- MID int64 `form:"mid"`
- AdminMID int64 `form:"admin_mid"`
- State int8 `form:"state"`
- Type int8 `form:"type"`
- Page int `form:"pn"`
- PageSize int `form:"ps"`
- })
- if err = c.Bind(v); err != nil {
- return
- }
- if v.Page < 1 {
- v.Page = 1
- }
- if v.PageSize < 20 {
- v.PageSize = 20
- }
- where := " state = ? AND type = ? "
- if v.MID != 0 {
- where += " AND mid = ?"
- if v.AdminMID != 0 {
- where += " AND admin_id = ?"
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type, v.MID, v.AdminMID).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type, v.MID, v.AdminMID).Count(&total)
- } else {
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type, v.MID).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type, v.MID).Count(&total)
- }
- } else {
- if v.AdminMID != 0 {
- where += " AND admin_id = ?"
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type, v.AdminMID).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type, v.AdminMID).Count(&total)
- } else {
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type).Count(&total)
- }
- }
- wls, err = svc.Cards(c, wls)
- if err != nil {
- log.Error("svc.Cards error(%v)", err)
- c.JSON(nil, err)
- return
- }
- c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
- "code": 0,
- "message": "0",
- "data": wls,
- "pager": map[string]int{
- "page": v.Page,
- "pagesize": v.PageSize,
- "total": total,
- },
- }))
- }
- func exportWhiteList(c *bm.Context) {
- var (
- err error
- wls []*whitelist.Whitelist
- total int
- )
- v := new(struct {
- MID int64 `form:"mid;" `
- AdminMID int64 `form:"admin_mid;" `
- State int8 `form:"state"`
- Type int8 `form:"type"`
- Page int `form:"pn"`
- PageSize int `form:"ps"`
- })
- if err = c.Bind(v); err != nil {
- return
- }
- if v.Page < 1 {
- v.Page = 1
- }
- if v.PageSize < 20 {
- v.PageSize = 20
- }
- where := " state = ? AND type = ? "
- if v.MID != 0 {
- where += " AND mid = ?"
- if v.AdminMID != 0 {
- where += " AND admin_id = ?"
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type, v.MID, v.AdminMID).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type, v.MID, v.AdminMID).Count(&total)
- } else {
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type, v.MID).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type, v.MID).Count(&total)
- }
- } else {
- if v.AdminMID != 0 {
- where += " AND admin_id = ?"
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type, v.AdminMID).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type, v.AdminMID).Count(&total)
- } else {
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Order("ctime DESC").Offset((v.Page-1)*v.PageSize).Limit(v.PageSize).Find(&wls, where, v.State, v.Type).Error; err != nil {
- c.JSON(nil, err)
- }
- svc.DB.Debug().Model(&whitelist.Whitelist{}).Where(where, v.State, v.Type).Count(&total)
- }
- }
- wls, err = svc.Cards(c, wls)
- if err != nil {
- log.Error("svc.Cards error(%v)", err)
- c.JSON(nil, err)
- return
- }
- fWLS, err := formatWhilteList(wls)
- if err != nil {
- log.Error("formatWhilteList error(%v)", err)
- c.JSON(nil, err)
- return
- }
- c.Render(http.StatusOK, CSV{
- Content: FormatCSV(fWLS),
- Title: fmt.Sprintf("%s-%d-%d-%s", time.Now().Format("2006-01-02"), v.Type, v.State, "white_list"),
- })
- }
- func addWhiteList(c *bm.Context) {
- var (
- err error
- pfl *accapi.ProfileStatReply
- )
- v := new(struct {
- MID int64 `form:"mid" validate:"required,min=1,gte=1"`
- AdminMID int64 `form:"admin_mid" validate:"required,min=1,gte=1"`
- Comment string `form:"comment"`
- State int8 `form:"state"`
- Type int8 `form:"type"`
- })
- if err = c.Bind(v); err != nil {
- return
- }
- if v.MID > maxMid || v.AdminMID > maxMid {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- pfl, err = svc.ProfileStat(c, v.MID)
- if err != nil || pfl == nil || pfl.Profile == nil || pfl.Profile.Mid == 0 {
- log.Error("svc.Card zero result error(%v)", err)
- c.JSON(nil, ecode.UserNotExist)
- return
- }
- m := &whitelist.Whitelist{
- State: v.State,
- Type: v.Type,
- Ctime: time.Now().Format("2006-01-02 15:04:05"),
- MID: v.MID,
- AdminMID: v.AdminMID,
- Comment: v.Comment,
- }
- db := svc.DB.Debug().Model(&whitelist.Whitelist{}).Create(m)
- if err = db.Error; err != nil {
- log.Error("creativeSvc.whitelist error(%v)", err)
- c.JSON(nil, err)
- }
- c.JSON(map[string]interface{}{
- "id": db.Value.(*whitelist.Whitelist).ID,
- }, nil)
- }
- func addBatchWhiteList(c *bm.Context) {
- var (
- err error
- )
- v := new(struct {
- Params string `form:"params" validate:"required"`
- })
- if err = c.Bind(v); err != nil {
- return
- }
- filterJSON := v.Params
- if len(filterJSON) == 0 {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- type Filter struct {
- MID int64 `json:"mid"`
- AdminMID int64 `json:"admin_mid"`
- Comment string `json:"comment"`
- State int8 `json:"state"`
- Type int8 `json:"type"`
- }
- var filtersJSONData []*Filter
- if err = json.Unmarshal([]byte(filterJSON), &filtersJSONData); err != nil {
- err = ecode.RequestErr
- return
- }
- if len(filtersJSONData) == 0 {
- err = ecode.RequestErr
- return
- }
- db := svc.DB.Debug().Model(&whitelist.Whitelist{})
- for _, v := range filtersJSONData {
- m := &whitelist.Whitelist{
- State: v.State,
- Type: v.Type,
- Ctime: time.Now().Format("2006-01-02 15:04:05"),
- MID: v.MID,
- AdminMID: v.AdminMID,
- Comment: v.Comment,
- }
- db.Create(m)
- if err = db.Error; err != nil {
- log.Error("creativeSvc.batchWhitelist error(%v)", err)
- c.JSON(nil, err)
- return
- }
- }
- c.JSON(nil, err)
- }
- func upWhiteList(c *bm.Context) {
- var (
- wl = &whitelist.Whitelist{}
- pfl *accapi.ProfileStatReply
- err error
- )
- v := new(struct {
- ID int64 `form:"id"`
- MID int64 `form:"mid" validate:"required,min=1,gte=1"`
- AdminMID int64 `form:"admin_mid" validate:"required,min=1,gte=1"`
- Comment string `form:"comment"`
- })
- if err = c.Bind(v); err != nil {
- return
- }
- if v.ID == 0 || v.MID > maxMid || v.AdminMID > maxMid {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- pfl, err = svc.ProfileStat(c, v.MID)
- if err != nil || pfl == nil || pfl.Profile == nil || pfl.Profile.Mid == 0 {
- log.Error("svc.Card zero result error(%v)", err)
- c.JSON(nil, ecode.UserNotExist)
- return
- }
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Find(wl, v.ID).Error; err != nil {
- c.JSON(nil, err)
- return
- }
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{ID: v.ID}).Update(map[string]interface {
- }{
- "id": v.ID,
- "mid": v.MID,
- "admin_mid": v.AdminMID,
- "comment": v.Comment,
- "mtime": time.Now().Format("2006-01-02 15:04:05"),
- }).Error; err != nil {
- log.Error("svc.save error(%v)", err)
- }
- c.JSON(nil, err)
- }
- func delWhiteList(c *bm.Context) {
- var (
- wl = &whitelist.Whitelist{}
- err error
- )
- if err = c.Bind(wl); err != nil {
- return
- }
- if wl.ID == 0 {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{}).Find(wl, wl.ID).Error; err != nil {
- c.JSON(nil, err)
- return
- }
- if err = svc.DB.Debug().Model(&whitelist.Whitelist{ID: wl.ID}).Update(map[string]interface {
- }{
- "id": wl.ID,
- "State": 0,
- "mtime": time.Now().Format("2006-01-02 15:04:05"),
- }).Error; err != nil {
- log.Error("svc.del WhiteList error(%v)", err)
- }
- c.JSON(nil, err)
- }
|