123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- package http
- import (
- "fmt"
- "strconv"
- "strings"
- "go-common/app/interface/main/answer/model"
- "go-common/library/ecode"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/xstr"
- )
- func localized(c *bm.Context) string {
- langs := detectLocalizedWeb(c)
- if len(langs) == 0 {
- return model.LangZhCN
- }
- switch langs[0] {
- case model.LangZhTW:
- return model.LangZhTW
- case model.LangZhHK:
- return model.LangZhTW
- default:
- return model.LangZhCN
- }
- }
- func checkBirthDay(c *bm.Context) {
- var mid, _ = c.Get("mid")
- if ok := svc.CheckBirthday(c, mid.(int64)); !ok {
- c.JSON(nil, ecode.MemberBirthdayInfoIsNull)
- return
- }
- c.JSON(nil, nil)
- }
- func checkPro(c *bm.Context) {
- var (
- err error
- ids []int64
- params = c.Request.Form
- qIds = params.Get("qs_ids")
- mid, _ = c.Get("mid")
- ansHash = make(map[int64]string)
- )
- qidArr := strings.Split(qIds, ",")
- for _, qid := range qidArr {
- id, _ := strconv.ParseInt(qid, 10, 64)
- ansHash[id] = params.Get("ans_hash_" + qid)
- ids = append(ids, id)
- }
- hid, err := svc.ProCheck(c, mid.(int64), ids, ansHash, localized(c))
- if err != nil {
- log.Error("svc.ProCheck(%d,%s,%+v) error(%+v)", mid.(int64), xstr.JoinInts(ids), ansHash, err)
- c.JSON(nil, err)
- return
- }
- c.JSON(fmt.Sprintf(model.ProPassed, hid), nil)
- }
- func checkBase(c *bm.Context) {
- var (
- err error
- ids []int64
- params = c.Request.Form
- qIds = params.Get("qs_ids")
- mid, _ = c.Get("mid")
- ansHash = make(map[int64]string)
- )
- qidsArr := strings.Split(qIds, ",")
- for _, qid := range qidsArr {
- id, _ := strconv.ParseInt(qid, 10, 64)
- ansHash[id] = params.Get("ans_hash_" + qid)
- ids = append(ids, id)
- }
- req, err := svc.CheckBase(c, mid.(int64), ids, ansHash, localized(c))
- if err != nil {
- log.Error("svc.BaseCheck(%d,%s,%+v) error(%+v)", mid.(int64), xstr.JoinInts(ids), ansHash, err)
- c.JSON(nil, err)
- return
- }
- res := make(map[string]interface{})
- if req != nil && len(req.QidList) > 0 {
- res["next"] = false
- res["ids"] = req.QidList
- c.JSON(res, nil)
- return
- }
- res["next"] = true
- c.JSON(res, nil)
- }
- func checkExtra(c *bm.Context) {
- var (
- ids []int64
- params = c.Request.Form
- qIds = params.Get("qs_ids")
- mid, ok = c.Get("mid")
- ansHash = make(map[int64]string)
- ua = c.Request.Header.Get("User-Agent")
- refer = c.Request.Header.Get("Referer")
- )
- if !ok {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- qidsArr := strings.Split(qIds, ",")
- for _, qid := range qidsArr {
- id, _ := strconv.ParseInt(qid, 10, 64)
- h := params.Get("ans_hash_" + qid)
- if h != "" {
- ansHash[id] = params.Get("ans_hash_" + qid)
- ids = append(ids, id)
- }
- }
- buvid := c.Request.Header.Get("Buvid")
- if buvid == "" {
- cookie, _ := c.Request.Cookie("buvid3")
- if cookie != nil {
- buvid = cookie.Value
- }
- }
- c.JSON(nil, svc.ExtraCheck(c, mid.(int64), ids, ansHash, ua, localized(c), refer, buvid))
- }
- func baseQus(c *bm.Context) {
- var (
- mid, ok = c.Get("mid")
- mobile = strings.Contains(c.Request.UserAgent(), model.MobileUserAgentFlag)
- )
- if !ok {
- c.JSON(nil, ecode.NoLogin)
- return
- }
- c.JSON(svc.BaseQ(c, mid.(int64), localized(c), mobile))
- }
- func proType(c *bm.Context) {
- mid, ok := c.Get("mid")
- if !ok {
- c.JSON(nil, ecode.NoLogin)
- return
- }
- c.JSON(svc.ProType(c, mid.(int64), localized(c)))
- }
- func proQus(c *bm.Context) {
- var (
- params = c.Request.Form
- mid, ok = c.Get("mid")
- tIdsStr = params.Get("type_ids")
- mobile = strings.Contains(c.Request.UserAgent(), model.MobileUserAgentFlag)
- )
- if !ok {
- c.JSON(nil, ecode.NoLogin)
- return
- }
- c.JSON(svc.ConvertProQues(c, mid.(int64), tIdsStr, localized(c), mobile))
- }
- func extraQus(c *bm.Context) {
- var (
- mid, ok = c.Get("mid")
- mobile = strings.Contains(c.Request.UserAgent(), model.MobileUserAgentFlag)
- )
- if !ok {
- c.JSON(nil, ecode.NoLogin)
- return
- }
- c.JSON(svc.ConvertExtraQs(c, mid.(int64), localized(c), mobile))
- }
- func cool(c *bm.Context) {
- var (
- err error
- mid int64
- hid int64
- params = c.Request.Form
- hidStr = params.Get("id")
- )
- if midI, ok := c.Get("mid"); ok {
- mid = midI.(int64)
- }
- if hid, err = strconv.ParseInt(hidStr, 10, 64); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.JSON(svc.Cool(c, hid, mid))
- }
- func extraScore(c *bm.Context) {
- mid, ok := c.Get("mid")
- if !ok {
- c.JSON(nil, ecode.NoLogin)
- return
- }
- c.JSON(svc.ExtraScore(c, mid.(int64)))
- }
|