469 lines
9.9 KiB
Go
469 lines
9.9 KiB
Go
package http
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"go-common/app/interface/main/activity/model/like"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
"go-common/library/net/metadata"
|
|
)
|
|
|
|
func subject(c *bm.Context) {
|
|
params := c.Request.Form
|
|
sidStr := params.Get("sid")
|
|
sid, err := strconv.ParseInt(sidStr, 10, 32)
|
|
if err != nil {
|
|
log.Error("strconv.ParseInt(%s) error(%v)", sidStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
c.JSON(likeSvc.Subject(c, sid))
|
|
}
|
|
|
|
func vote(c *bm.Context) {
|
|
var (
|
|
mid int64
|
|
)
|
|
midStr, _ := c.Get("mid")
|
|
mid = midStr.(int64)
|
|
params := c.Request.Form
|
|
voteStr := params.Get("vote")
|
|
vote, err := strconv.ParseInt(voteStr, 10, 64)
|
|
if err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
stageStr := params.Get("stage")
|
|
stage, err := strconv.ParseInt(stageStr, 10, 64)
|
|
if err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
aidStr := params.Get("aid")
|
|
aid, err := strconv.ParseInt(aidStr, 10, 64)
|
|
if err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
if strRe, _ := likeSvc.OnlineVote(c, mid, vote, stage, aid); !strRe {
|
|
c.JSON(nil, ecode.NotModified)
|
|
return
|
|
}
|
|
c.JSON("ok", nil)
|
|
}
|
|
|
|
func ltime(c *bm.Context) {
|
|
params := c.Request.Form
|
|
sidStr := params.Get("sid")
|
|
sid, err := strconv.ParseInt(sidStr, 10, 64)
|
|
if err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
index, err := likeSvc.Ltime(c, sid)
|
|
if err != nil {
|
|
log.Error("error(%v)", err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
if index == nil {
|
|
c.JSON(nil, ecode.NothingFound)
|
|
return
|
|
}
|
|
c.JSON(index, nil)
|
|
}
|
|
|
|
func likeAct(c *bm.Context) {
|
|
p := new(like.ParamAddLikeAct)
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.LikeAct(c, p, mid))
|
|
}
|
|
|
|
func storyKingAct(c *bm.Context) {
|
|
p := new(like.ParamStoryKingAct)
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.StoryKingAct(c, p, mid))
|
|
}
|
|
|
|
func storyKingLeft(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.StoryKingLeftTime(c, p.Sid, mid))
|
|
|
|
}
|
|
|
|
func upList(c *bm.Context) {
|
|
p := new(like.ParamList)
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
mid := int64(0)
|
|
if midStr, ok := c.Get("mid"); ok {
|
|
mid = midStr.(int64)
|
|
}
|
|
c.JSON(likeSvc.UpList(c, p, mid))
|
|
}
|
|
|
|
func missionLike(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.MissionLike(c, p.Sid, mid))
|
|
}
|
|
|
|
func missionLikeAct(c *bm.Context) {
|
|
p := new(like.ParamMissionLikeAct)
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.MissionLikeAct(c, p, mid))
|
|
}
|
|
|
|
func missionInfo(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Lid int64 `form:"lid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.MissionInfo(c, p.Sid, p.Lid, mid))
|
|
|
|
}
|
|
func missionTops(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Num int `form:"num" validate:"min=1,max=200"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
c.JSON(likeSvc.MissionTops(c, p.Sid, p.Num))
|
|
}
|
|
|
|
func missionUser(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Lid int64 `form:"lid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
c.JSON(likeSvc.MissionUser(c, p.Sid, p.Lid))
|
|
}
|
|
|
|
func missionRank(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.MissionRank(c, p.Sid, mid))
|
|
}
|
|
|
|
func missionFriends(c *bm.Context) {
|
|
p := new(like.ParamMissionFriends)
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.MissionFriendsList(c, p, mid))
|
|
}
|
|
|
|
func missionAward(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.MissionAward(c, p.Sid, mid))
|
|
}
|
|
|
|
func missionAchieve(c *bm.Context) {
|
|
p := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
ID int64 `form:"id" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(p); err != nil {
|
|
return
|
|
}
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
c.JSON(likeSvc.MissionAchieve(c, p.Sid, p.ID, mid))
|
|
}
|
|
|
|
func likeActList(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Lids []int64 `form:"lids,split" validate:"min=1,max=50,dive,min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
mid := int64(0)
|
|
if midStr, ok := c.Get("mid"); ok {
|
|
mid = midStr.(int64)
|
|
}
|
|
c.JSON(likeSvc.LikeActList(c, v.Sid, mid, v.Lids))
|
|
}
|
|
|
|
func subjectInit(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.SubjectInitialize(c, v.Sid-1))
|
|
}
|
|
|
|
func likeInit(c *bm.Context) {
|
|
v := new(struct {
|
|
Lid int64 `form:"lid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.LikeInitialize(c, v.Lid-1))
|
|
}
|
|
|
|
func subjectLikeListInit(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.SubjectLikeListInitialize(c, v.Sid))
|
|
}
|
|
|
|
func likeActCountInit(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.LikeActCountInitialize(c, v.Sid))
|
|
}
|
|
|
|
func tagList(c *bm.Context) {
|
|
var (
|
|
err error
|
|
cnt int
|
|
list []*like.Like
|
|
)
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
TagID int64 `form:"tag_id" validate:"min=1"`
|
|
Type string `form:"type" default:"ctime"`
|
|
Pn int `form:"pn" default:"1" validate:"min=1"`
|
|
Ps int `form:"ps" default:"30" validate:"min=1,max=30"`
|
|
})
|
|
if err = c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
if v.Type != "ctime" && v.Type != "random" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
if list, cnt, err = likeSvc.TagArcList(c, v.Sid, v.TagID, v.Pn, v.Ps, v.Type, metadata.String(c, metadata.RemoteIP)); err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
data := map[string]interface{}{
|
|
"page": map[string]int{
|
|
"num": v.Pn,
|
|
"size": v.Ps,
|
|
"total": cnt,
|
|
},
|
|
"list": list,
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func regionList(c *bm.Context) {
|
|
var (
|
|
err error
|
|
cnt int
|
|
list []*like.Like
|
|
)
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Rid int16 `form:"rid" validate:"min=1"`
|
|
Type string `form:"type" default:"ctime"`
|
|
Pn int `form:"pn" default:"1" validate:"min=1"`
|
|
Ps int `form:"ps" default:"30" validate:"min=1,max=30"`
|
|
})
|
|
if err = c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
if v.Type != "ctime" && v.Type != "random" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
if list, cnt, err = likeSvc.RegionArcList(c, v.Sid, v.Rid, v.Pn, v.Ps, v.Type, metadata.String(c, metadata.RemoteIP)); err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
data := map[string]interface{}{
|
|
"page": map[string]int{
|
|
"num": v.Pn,
|
|
"size": v.Ps,
|
|
"total": cnt,
|
|
},
|
|
"list": list,
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func tagStats(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(likeSvc.TagLikeCounts(c, v.Sid))
|
|
}
|
|
|
|
func subjectStat(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(likeSvc.SubjectStat(c, v.Sid))
|
|
}
|
|
|
|
func setSubjectStat(c *bm.Context) {
|
|
v := new(like.SubjectStat)
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.SetSubjectStat(c, v))
|
|
}
|
|
|
|
func viewRank(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Pn int `form:"pn" default:"1" validate:"min=1"`
|
|
Ps int `form:"ps" default:"20" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
list, count, err := likeSvc.ViewRank(c, v.Sid, v.Pn, v.Ps)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
data := make(map[string]interface{}, 2)
|
|
data["list"] = list
|
|
data["page"] = map[string]int{
|
|
"pn": v.Pn,
|
|
"ps": v.Ps,
|
|
"count": count,
|
|
}
|
|
c.JSON(data, err)
|
|
}
|
|
|
|
func setViewRank(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Aids []int64 `form:"aids,split" validate:"min=1,dive,min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.SetViewRank(c, v.Sid, v.Aids))
|
|
}
|
|
|
|
func groupData(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
ck := c.Request.Header.Get("cookie")
|
|
c.JSON(likeSvc.ObjectGroup(c, v.Sid, ck))
|
|
}
|
|
|
|
func setLikeContent(c *bm.Context) {
|
|
v := new(struct {
|
|
Lid int64 `form:"lid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.SetLikeContent(c, v.Lid))
|
|
}
|
|
|
|
func addLikeAct(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Lid int64 `form:"lid" validate:"min=1"`
|
|
Score int64 `form:"score" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(nil, likeSvc.AddLikeActCache(c, v.Sid, v.Lid, v.Score))
|
|
}
|
|
|
|
func likeActCache(c *bm.Context) {
|
|
v := new(struct {
|
|
Sid int64 `form:"sid" validate:"min=1"`
|
|
Lid int64 `form:"lid" validate:"min=1"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(likeSvc.LikeActCache(c, v.Sid, v.Lid))
|
|
}
|
|
|
|
func likeOidsInfo(c *bm.Context) {
|
|
v := new(struct {
|
|
Type int `form:"type" validate:"min=1"`
|
|
Oids []int64 `form:"oids,split" validate:"required,min=1,max=50,dive,gt=0"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
c.JSON(likeSvc.LikeOidsInfo(c, v.Type, v.Oids))
|
|
}
|