Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"appeal.go",
"blocked.go",
"credit.go",
"http.go",
"jury.go",
"labour.go",
],
importpath = "go-common/app/interface/main/credit/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/credit/conf:go_default_library",
"//app/interface/main/credit/model:go_default_library",
"//app/interface/main/credit/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/antispam:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
"//library/net/http/blademaster/middleware/verify:go_default_library",
"//library/xstr:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,64 @@
package http
import (
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"strconv"
)
func addAppeal(c *bm.Context) {
var (
err error
params = c.Request.Form
btid int64
bid int64
midI, _ = c.Get("mid")
btidStr = params.Get("business_typeid")
bidStr = params.Get("bid")
reason = params.Get("reason")
)
if btid, err = strconv.ParseInt(btidStr, 10, 64); err != nil {
log.Error("strconv.ParseInt err(err) %v", err)
c.JSON(nil, ecode.RequestErr)
return
}
if bid, err = strconv.ParseInt(bidStr, 10, 64); err != nil {
log.Error("strconv.ParseInt err(err) %v", err)
c.JSON(nil, ecode.RequestErr)
return
}
if err = creditSvc.AddAppeal(c, btid, bid, midI.(int64), reason); err != nil {
log.Error("creditSvc.AddAppeal error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func appealStatus(c *bm.Context) {
var (
err error
params = c.Request.Form
mid int64
bid int64
bidStr = params.Get("bid")
)
if bid, err = strconv.ParseInt(bidStr, 10, 64); err != nil {
log.Error("strconv.ParseInt err(err) %v", err)
c.JSON(nil, ecode.RequestErr)
return
}
midI, ok := c.Get("mid")
if ok {
mid, _ = midI.(int64)
}
state, err := creditSvc.AppealState(c, mid, bid)
if err != nil {
log.Error("creditSvc.AppealState error(%v)", err)
c.JSON(nil, err)
return
}
// 未申述过 true, 已申诉过flase
c.JSON(!state, nil)
}

View File

@@ -0,0 +1,233 @@
package http
import (
"strconv"
model "go-common/app/interface/main/credit/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/xstr"
)
// requirement user status in apply jury.
func blockedUserCard(c *bm.Context) {
var mid, _ = c.Get("mid")
rq, err := creditSvc.BlockedUserCard(c, mid.(int64))
if err != nil {
log.Error("creditSvc.BlockedUserCard(%d) error(%v)", mid, err)
c.JSON(nil, err)
}
c.JSON(rq, nil)
}
func blockedUserList(c *bm.Context) {
var mid, _ = c.Get("mid")
rq, err := creditSvc.BlockedUserList(c, mid.(int64))
if err != nil {
log.Error("creditSvc.BlockedUserList(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(rq, nil)
}
func blockedInfo(c *bm.Context) {
var idStr = c.Request.Form.Get("id")
id, err := strconv.ParseInt(idStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
rq, err := creditSvc.BlockedInfo(c, id)
if err != nil {
log.Error("creditSvc.BlockedInfo(%d) error(%v)", id, err)
c.JSON(nil, err)
return
}
c.JSON(rq, nil)
}
func blockedAppeal(c *bm.Context) {
var (
mid int64
err error
idStr = c.Request.Form.Get("id")
)
midI, ok := c.Get("mid")
if ok {
mid = midI.(int64)
}
id, err := strconv.ParseInt(idStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
rq, err := creditSvc.BlockedInfoAppeal(c, id, mid)
if err != nil {
log.Error("creditSvc.BlockedInfo(%d) error(%v)", id, err)
c.JSON(nil, err)
return
}
c.JSON(rq, nil)
}
func blockedList(c *bm.Context) {
var err error
v := new(model.ArgBlockedList)
if err = c.Bind(v); err != nil {
return
}
if v.PS <= 0 || v.PS > 10 {
v.PS = 10
}
rq, err := creditSvc.BlockedList(c, v.OType, v.BType, v.PN, v.PS)
if err != nil {
log.Error("creditSvc.Blockedlist(%d,%d) error(%v)", v.OType, v.BType, err)
c.JSON(nil, err)
return
}
c.JSON(rq, nil)
}
func announcementInfo(c *bm.Context) {
idStr := c.Request.Form.Get("id")
id, err := strconv.ParseInt(idStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
rq, err := creditSvc.AnnouncementInfo(c, id)
if err != nil {
log.Error("creditSvc.AnnouncementInfo(%d) error(%v)", id, err)
c.JSON(nil, err)
return
}
c.JSON(rq, nil)
}
func announcementList(c *bm.Context) {
var (
params = c.Request.Form
tpStr = params.Get("tp")
pnStr = params.Get("pn")
psStr = params.Get("ps")
)
tp, err := strconv.ParseInt(tpStr, 10, 8)
if err != nil {
log.Error("strconv.ParseInt err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
pn, err := strconv.ParseInt(pnStr, 10, 64)
if err != nil || pn < 1 {
log.Error("strconv.ParseInt err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
ps, err := strconv.ParseInt(psStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
if ps < 0 || ps > 10 {
ps = 10
}
rq, err := creditSvc.AnnouncementList(c, int8(tp), pn, ps)
if err != nil {
log.Error("creditSvc.AnnouncementList( tp %d) error(%v)", tp, err)
c.JSON(nil, err)
return
}
c.JSON(rq, nil)
}
func blockedNumUser(c *bm.Context) {
v := new(model.ArgBlockedNumUser)
if err := c.Bind(v); err != nil {
return
}
bn, err := creditSvc.BlockedNumUser(c, v.MID)
if err != nil {
log.Error("creditSvc.BlockedNumUser(%d) error(%v)", v.MID, err)
c.JSON(nil, err)
return
}
c.JSON(bn, nil)
}
func batchPublishs(c *bm.Context) {
v := new(model.ArgIDs)
if err := c.Bind(v); err != nil {
return
}
pubs, err := creditSvc.BatchPublishs(c, v.IDs)
if err != nil {
log.Error("creditSvc.BatchPublishs(%s) error(%v)", xstr.JoinInts(v.IDs), err)
c.JSON(nil, err)
return
}
c.JSON(pubs, nil)
}
func addBlockedInfo(c *bm.Context) {
var err error
v := new(model.ArgJudgeBlocked)
if err = c.Bind(v); err != nil {
return
}
err = creditSvc.AddBlockedInfo(c, v)
if err != nil {
log.Error("creditSvc.AddBlockedInfo(%+v) error(%v)", v, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func addBatchBlockedInfo(c *bm.Context) {
var err error
v := new(model.ArgJudgeBatchBlocked)
if err = c.Bind(v); err != nil {
return
}
err = creditSvc.AddBatchBlockedInfo(c, v)
if err != nil {
log.Error("creditSvc.AddBatchBlockedInfo(%+v) error(%v)", v, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func blkHistorys(c *bm.Context) {
v := new(model.ArgHistory)
if err := c.Bind(v); err != nil {
return
}
rhs, err := creditSvc.BLKHistorys(c, v)
if err != nil {
log.Error("creditSvc.BLKHistorys(%+v) error(%v)", v, err)
c.JSON(nil, err)
return
}
c.JSON(rhs, nil)
}
func batchBLKInfos(c *bm.Context) {
v := new(model.ArgIDs)
if err := c.Bind(v); err != nil {
return
}
mbi, err := creditSvc.BatchBLKInfos(c, v.IDs)
if err != nil {
log.Error("creditSvc.BatchBLKInfos(%+v) error(%v)", v, err)
c.JSON(nil, err)
return
}
c.JSON(mbi, nil)
}

View File

@@ -0,0 +1,279 @@
package http
import (
model "go-common/app/interface/main/credit/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
// requirement user status in apply jury.
func requirement(c *bm.Context) {
mid, _ := c.Get("mid")
rq, err := creditSvc.Requirement(c, mid.(int64))
if err != nil {
log.Error("creditSvc.Requirement(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(rq, nil)
}
// apply user apply jury.
func apply(c *bm.Context) {
mid, _ := c.Get("mid")
err := creditSvc.Apply(c, mid.(int64))
if err != nil {
log.Error("creditSvc.Apply(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
// jury jury user info.
func jury(c *bm.Context) {
mid, _ := c.Get("mid")
ui, err := creditSvc.Jury(c, mid.(int64))
if err != nil {
log.Error("creditSvc.Jury(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(ui, nil)
}
// caseObtain jury user obtain case list.
func caseObtain(c *bm.Context) {
mid, _ := c.Get("mid")
v := new(model.ArgCid)
if err := c.Bind(v); err != nil {
return
}
id, err := creditSvc.CaseObtain(c, mid.(int64), v.Cid)
if err != nil {
log.Error("creditSvc.CaseObtain(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
type reid struct {
CID int64 `json:"id"`
}
var data reid
data.CID = id
c.JSON(data, nil)
}
// caseObtainByID jury user obtain case list.
func caseObtainByID(c *bm.Context) {
mid, _ := c.Get("mid")
v := new(model.ArgCid)
if err := c.Bind(v); err != nil {
return
}
if v.Cid == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
err := creditSvc.CaseObtainByID(c, mid.(int64), v.Cid)
if err != nil {
log.Error("creditSvc.CaseObtain(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
type reid struct {
CID int64 `json:"id"`
}
var data reid
data.CID = v.Cid
c.JSON(data, nil)
}
// vote jury user vote case.
func vote(c *bm.Context) {
mid, _ := c.Get("mid")
v := new(model.ArgVote)
if err := c.Bind(v); err != nil {
return
}
if err := creditSvc.Vote(c, mid.(int64), v.Cid, v.Attr, v.Vote, v.AType, v.AReason, v.Content, v.Likes, v.Hates); err != nil {
log.Error("creditSvc.Vote(%d,%+v) error(%v)", mid, v, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
// voteInfo jury user vote info.
func voteInfo(c *bm.Context) {
mid, _ := c.Get("mid")
v := new(model.ArgCid)
if err := c.Bind(v); err != nil {
return
}
vi, err := creditSvc.VoteInfo(c, mid.(int64), v.Cid)
if err != nil {
log.Error("creditSvc.VoteInfo(%d %d) error(%v)", mid, v.Cid, err)
c.JSON(nil, err)
return
}
var data interface{}
if vi == nil || vi.MID == 0 {
data = &struct{}{}
} else {
data = vi
}
c.JSON(data, nil)
}
// caseInfo jury get case info.
func caseInfo(c *bm.Context) {
v := new(model.ArgCid)
if err := c.Bind(v); err != nil {
return
}
ci, err := creditSvc.CaseInfo(c, v.Cid)
if err != nil {
log.Error("creditSvc.CaseInfo(%d) error(%v)", v.Cid, err)
c.JSON(nil, err)
return
}
c.JSON(ci, nil)
}
// juryCase jury user case info contain vote.
func juryCase(c *bm.Context) {
mid, _ := c.Get("mid")
v := new(model.ArgCid)
if err := c.Bind(v); err != nil {
return
}
jc, err := creditSvc.JuryCase(c, mid.(int64), v.Cid)
if err != nil {
log.Error("creditSvc.JuryCase(%d %d) error(%v)", mid, v.Cid, err)
c.JSON(nil, err)
return
}
c.JSON(jc, nil)
}
// spJuryCase get specific jury case info.
func spJuryCase(c *bm.Context) {
var mid int64
iMid, ok := c.Get("mid")
if ok {
mid = iMid.(int64)
}
v := new(model.ArgCid)
if err := c.Bind(v); err != nil {
return
}
jc, err := creditSvc.SpJuryCase(c, mid, v.Cid)
if err != nil {
log.Error("creditSvc.JuryCase(%d %d) error(%v)", mid, v.Cid, err)
c.JSON(nil, err)
return
}
c.JSON(jc, nil)
}
// caseList user case list.
func caseList(c *bm.Context) {
mid, _ := c.Get("mid")
v := new(model.ArgPage)
if err := c.Bind(v); err != nil {
return
}
cl, err := creditSvc.CaseList(c, mid.(int64), v.PN, v.PS)
if err != nil {
log.Error("creditSvc.CaseList(%d,%d,%d) error(%v)", mid, v.PN, v.PS, err)
c.JSON(nil, err)
return
}
c.JSON(cl, nil)
}
// notice get jury notice.
func notice(c *bm.Context) {
n, err := creditSvc.Notice(c)
if err != nil {
log.Error("creditSvc.notice error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(n, nil)
}
// reasonList get reason list.
func reasonList(c *bm.Context) {
n, err := creditSvc.ReasonList(c)
if err != nil {
log.Error("creditSvc.ReasonList error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(n, nil)
}
// kpiList get kpi list.
func kpiList(c *bm.Context) {
mid, _ := c.Get("mid")
n, err := creditSvc.KPIList(c, mid.(int64))
if err != nil {
log.Error("creditSvc.KpiList error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(n, nil)
}
// voteOpinion get vote opinion.
func voteOpinion(c *bm.Context) {
v := new(model.ArgOpinion)
if err := c.Bind(v); err != nil {
return
}
ops, count, err := creditSvc.VoteOpinion(c, v.Cid, v.PN, v.PS, v.Otype)
if err != nil {
log.Error("creditSvc.VoteOpinion error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(&model.OpinionRes{
Count: count,
Opinion: ops,
}, nil)
}
// caseOpinion get case opinion.
func caseOpinion(c *bm.Context) {
v := new(model.ArgOpinion)
if err := c.Bind(v); err != nil {
return
}
ops, count, err := creditSvc.CaseOpinion(c, v.Cid, v.PN, v.PS)
if err != nil {
log.Error("creditSvc.CaseOpinion error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(&model.OpinionRes{
Count: count,
Opinion: ops,
}, nil)
}
// batchBLKCases get case info.
func batchBLKCases(c *bm.Context) {
v := new(model.ArgIDs)
if err := c.Bind(v); err != nil {
return
}
cases, err := creditSvc.BatchBLKCases(c, v.IDs)
if err != nil {
log.Error("creditSvc.BatchBLKCases(%+v) error(%+v)", v.IDs, err)
c.JSON(nil, err)
return
}
c.JSON(cases, nil)
}

View File

@@ -0,0 +1,111 @@
package http
import (
"net/http"
"go-common/app/interface/main/credit/conf"
"go-common/app/interface/main/credit/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/antispam"
"go-common/library/net/http/blademaster/middleware/auth"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
creditSvc *service.Service
verifySvc *verify.Verify
authSvc *auth.Auth
antSvc *antispam.Antispam
)
// Init init http sever instance.
func Init(c *conf.Config) {
initService(c)
engineInner := bm.DefaultServer((c.BM.Inner))
// init inner router
innerRouter(engineInner)
if err := engineInner.Start(); err != nil {
log.Error("engineInner.Start() error(%v)", err)
panic(err)
}
}
// initService init service
func initService(c *conf.Config) {
verifySvc = verify.New(c.Verify)
authSvc = auth.New(c.AuthN)
creditSvc = service.New(c)
antSvc = antispam.New(c.Antispam)
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
// ping monitor
e.Ping(ping)
// internal api
ig := e.Group("/x/internal/credit", verifySvc.Verify)
{
ig.POST("/labour/addQs", addQs)
ig.POST("/labour/setQs", setQs)
ig.POST("/labour/delQs", delQs)
ig.GET("/labour/isanswered", isAnswered)
// blocked
ig.POST("/blocked/case/add", addBlockedCase)
ig.POST("/blocked/info/add", addBlockedInfo)
ig.POST("/blocked/info/batch/add", addBatchBlockedInfo)
ig.GET("/blocked/user/num", blockedNumUser)
ig.GET("/blocked/infos", batchBLKInfos)
ig.GET("/blocked/cases", batchBLKCases)
ig.GET("/blocked/historys", blkHistorys)
// jury
ig.GET("/jury/infos", batchJuryInfos)
// other
ig.POST("/opinion/del", delOpinion)
ig.GET("/publish/infos", batchPublishs)
}
og := e.Group("/x/credit", bm.CORS())
{
// jury
og.GET("/jury/requirement", authSvc.User, requirement)
og.POST("/jury/apply", authSvc.User, apply)
og.GET("/jury/jury", authSvc.User, jury)
og.POST("/jury/caseObtain", authSvc.User, caseObtain)
og.POST("/jury/vote", authSvc.User, vote)
og.GET("/jury/voteInfo", authSvc.User, voteInfo)
og.GET("/jury/caseInfo", authSvc.Guest, caseInfo)
og.GET("/jury/juryCase", authSvc.User, juryCase)
og.GET("/jury/caseList", authSvc.User, caseList)
og.GET("/jury/kpi", authSvc.User, kpiList)
og.GET("/jury/vote/opinion", authSvc.Guest, voteOpinion)
og.GET("/jury/case/opinion", authSvc.Guest, caseOpinion)
og.GET("/jury/notice", notice)
og.GET("/jury/reasonList", reasonList)
og.POST("/jury/caseObtain/open", authSvc.User, caseObtainByID)
og.GET("/jury/juryCase/open", authSvc.Guest, spJuryCase)
// appeal
og.POST("/jury/appeal/add", authSvc.User, addAppeal)
og.GET("/jury/appeal/status", authSvc.User, appealStatus)
// labour
og.GET("/labour/getQs", authSvc.User, getQs)
og.POST("/labour/commitQs", authSvc.User, antSvc.Handler(), commitQs)
// blocked
og.GET("/blocked/user", authSvc.User, blockedUserCard)
og.GET("/blocked/user/list", authSvc.User, blockedUserList)
og.GET("/blocked/info", blockedInfo)
og.GET("/blocked/info/appeal", authSvc.User, blockedAppeal)
og.GET("/blocked/list", blockedList)
// announcement
og.GET("/publish/info", announcementInfo)
og.GET("/publish/list", announcementList)
}
}
// ping check server ok.
func ping(c *bm.Context) {
err := creditSvc.Ping(c)
if err != nil {
log.Error("credit interface ping error")
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}

View File

@@ -0,0 +1,72 @@
package http
import (
"encoding/json"
"strconv"
"go-common/app/interface/main/credit/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func delOpinion(c *bm.Context) {
var (
err error
cid int64
opid int64
params = c.Request.Form
cidStr = params.Get("cid")
opidStr = params.Get("opid")
)
if cid, err = strconv.ParseInt(cidStr, 10, 64); err != nil {
log.Error("strconv.ParseInt err(err) %v", err)
c.JSON(nil, ecode.RequestErr)
return
}
if opid, err = strconv.ParseInt(opidStr, 10, 64); err != nil {
log.Error("strconv.ParseInt err(err) %v", err)
c.JSON(nil, ecode.RequestErr)
return
}
if err = creditSvc.DelOpinion(c, cid, opid); err != nil {
log.Error("creditSvc.DelOpinion(%d,%d) error(err) %v", cid, opid, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func addBlockedCase(c *bm.Context) {
var (
err error
params = c.Request.Form
data = params.Get("data")
bc = make([]*model.ArgJudgeCase, 0)
)
if err = json.Unmarshal([]byte(data), &bc); err != nil {
log.Error("json.Unmarshal(%s),err:%v.", data, err)
c.JSON(nil, ecode.RequestErr)
return
}
if err = creditSvc.AddBlockedCases(c, bc); err != nil {
log.Error("creditSvc.AddBlockedCases error(err) %v", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func batchJuryInfos(c *bm.Context) {
v := new(model.ArgMIDs)
if err := c.Bind(v); err != nil {
return
}
mbj, err := creditSvc.JuryInfos(c, v.MIDs)
if err != nil {
log.Error("creditSvc.JuryInfos(%+v) error(%v)", v, err)
c.JSON(nil, err)
return
}
c.JSON(mbj, nil)
}

View File

@@ -0,0 +1,140 @@
package http
import (
"strconv"
model "go-common/app/interface/main/credit/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/xstr"
)
func getQs(c *bm.Context) {
mid, _ := c.Get("mid")
qs, err := creditSvc.GetQs(c, mid.(int64))
if err != nil {
log.Error("creditSvc.getQs(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(qs, nil)
}
func commitQs(c *bm.Context) {
var (
mid, _ = c.Get("mid")
params = c.Request.Form
idStr = params.Get("id")
buvidStr = params.Get("buvid")
anStr = params.Get("ans")
labourAns = &model.LabourAns{}
refer = c.Request.Referer()
ua = c.Request.UserAgent()
)
ids, err := xstr.SplitInts(idStr)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
answer, err := xstr.SplitInts(anStr)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
labourAns.ID = ids
labourAns.Answer = answer
commitRes, err := creditSvc.CommitQs(c, mid.(int64), refer, ua, buvidStr, labourAns)
if err != nil {
log.Error("creditSvc.commitQs(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(commitRes, nil)
}
func addQs(c *bm.Context) {
var (
params = c.Request.Form
question = params.Get("question")
ansStr = params.Get("ans")
avIDStr = params.Get("av_id")
statusStr = params.Get("status")
sourceStr = params.Get("source")
)
ans, err := strconv.ParseInt(ansStr, 10, 64)
if err != nil || ans < 0 {
c.JSON(nil, ecode.RequestErr)
return
}
avID, err := strconv.ParseInt(avIDStr, 10, 64)
if err != nil || avID <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
status, err := strconv.ParseInt(statusStr, 10, 64)
if err != nil || status <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
source, err := strconv.ParseInt(sourceStr, 10, 64)
if err != nil || source < 0 {
c.JSON(nil, ecode.RequestErr)
return
}
var qs = &model.LabourQs{Question: question, Ans: ans, AvID: avID, Status: status, Source: source}
if err = creditSvc.AddQs(c, qs); err != nil {
log.Error("creditSvc.AddQs(%+v) error(%v)", qs, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func setQs(c *bm.Context) {
var (
params = c.Request.Form
id, _ = strconv.ParseInt(params.Get("id"), 10, 64)
ans, _ = strconv.ParseInt(params.Get("ans"), 10, 64)
status, _ = strconv.ParseInt(params.Get("status"), 10, 64)
)
if err := creditSvc.SetQs(c, id, ans, status); err != nil {
log.Error("creditSvc.SetQs(id:%d ans:%d status:%d) error(%v)", id, ans, status, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func delQs(c *bm.Context) {
var err error
v := new(model.ArgDElQS)
if err = c.Bind(v); err != nil {
return
}
if err = creditSvc.DelQs(c, v.ID, v.IsDel); err != nil {
log.Error("creditSvc.delQs(id:%d isDel:%d error(%v)", v.ID, v.IsDel, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func isAnswered(c *bm.Context) {
v := new(model.ArgHistory)
if err := c.Bind(v); err != nil {
return
}
anState, err := creditSvc.IsAnswered(c, v.MID, v.STime)
if err != nil {
log.Error("creditSvc.isanswered(mid:%d mtime:%d error(%v)", v.MID, v.STime, err)
c.JSON(nil, err)
return
}
type data struct {
Status int8 `json:"status"`
}
var rs data
rs.Status = anState
c.JSON(rs, nil)
}