198 lines
6.1 KiB
Go
198 lines
6.1 KiB
Go
package appeal
|
|
|
|
import (
|
|
"context"
|
|
"net/url"
|
|
"strconv"
|
|
|
|
"go-common/app/interface/main/creative/model/appeal"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// appeal url
|
|
const (
|
|
_list = "/x/internal/workflow/appeal/list"
|
|
_detail = "/x/internal/workflow/appeal/info"
|
|
_addappeal = "/x/internal/workflow/appeal/add"
|
|
_addreply = "/x/internal/workflow/appeal/reply/add"
|
|
_appealstar = "/x/internal/workflow/appeal/extra/up"
|
|
_appealstate = "/x/internal/workflow/appeal/state"
|
|
_appealStarInfo = "/x/internal/workflow/appeal/extra/info"
|
|
)
|
|
|
|
// AppealList appeal list .
|
|
func (d *Dao) AppealList(c context.Context, mid int64, business int, ip string) (as []*appeal.AppealMeta, err error) {
|
|
params := url.Values{}
|
|
params.Set("mid", strconv.FormatInt(mid, 10))
|
|
params.Set("business", strconv.Itoa(business))
|
|
var res struct {
|
|
Code int `json:"code"`
|
|
Data []*appeal.AppealMeta `json:"data"`
|
|
}
|
|
if err = d.client.Get(c, d.list, ip, params, &res); err != nil {
|
|
err = errors.Wrap(err, "appeal list api")
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("appeal list url(%s) mid(%d) res(%v)", d.list+"?"+params.Encode(), mid, res)
|
|
err = ecode.Int(res.Code)
|
|
return
|
|
}
|
|
as = res.Data
|
|
return
|
|
}
|
|
|
|
// AppealDetail appeal detail.
|
|
func (d *Dao) AppealDetail(c context.Context, mid, id int64, business int, ip string) (a *appeal.AppealMeta, err error) {
|
|
params := url.Values{}
|
|
params.Set("mid", strconv.FormatInt(mid, 10))
|
|
params.Set("id", strconv.FormatInt(id, 10))
|
|
params.Set("business", strconv.Itoa(business))
|
|
var res struct {
|
|
Code int `json:"code"`
|
|
Data *appeal.AppealMeta `json:"data"`
|
|
}
|
|
if err = d.client.Get(c, d.detail, ip, params, &res); err != nil {
|
|
err = errors.Wrap(err, "appeal api")
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("appeal url(%s) mid(%d) res(%v)", d.detail+"?"+params.Encode(), mid, res)
|
|
err = ecode.Int(res.Code)
|
|
return
|
|
}
|
|
a = res.Data
|
|
return
|
|
}
|
|
|
|
// AddAppeal add appeal.
|
|
func (d *Dao) AddAppeal(c context.Context, tid, aid, mid, business int64, qq, phone, email, desc, attachments, ip string, ap *appeal.BusinessAppeal) (apID int64, err error) {
|
|
params := url.Values{}
|
|
params.Set("tid", strconv.FormatInt(tid, 10))
|
|
params.Set("oid", strconv.FormatInt(aid, 10))
|
|
params.Set("mid", strconv.FormatInt(mid, 10))
|
|
params.Set("business", strconv.FormatInt(business, 10))
|
|
params.Set("qq", qq)
|
|
params.Set("phone", phone)
|
|
params.Set("email", email)
|
|
params.Set("description", desc)
|
|
params.Set("attachments", attachments)
|
|
params.Set("business_typeid", strconv.FormatInt(ap.BusinessTypeID, 10))
|
|
params.Set("business_mid", strconv.FormatInt(ap.BusinessMID, 10))
|
|
params.Set("business_title", ap.BusinessTitle)
|
|
params.Set("business_content", ap.BusinessContent)
|
|
params.Set("business_state", strconv.FormatInt(appeal.StateCreate, 10))
|
|
var res struct {
|
|
Code int `json:"code"`
|
|
Data struct {
|
|
ChallengeNo int64 `json:"challengeNo"`
|
|
} `json:"data"`
|
|
}
|
|
log.Info("AddAppeal params(%v)", params)
|
|
if err = d.client.Post(c, d.addappeal, ip, params, &res); err != nil {
|
|
err = errors.Wrap(err, "appeal api")
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("add appeal url(%s) mid(%d) res(%v)", d.addappeal+"?"+params.Encode(), mid, res)
|
|
err = ecode.Int(res.Code)
|
|
}
|
|
apID = res.Data.ChallengeNo
|
|
return
|
|
}
|
|
|
|
// AddReply add appeal reply .
|
|
func (d *Dao) AddReply(c context.Context, cid, event int64, content, attachments, ip string) (err error) {
|
|
params := url.Values{}
|
|
params.Set("cid", strconv.FormatInt(cid, 10))
|
|
params.Set("content", content)
|
|
params.Set("attachments", attachments)
|
|
params.Set("event", strconv.FormatInt(event, 10))
|
|
var res struct {
|
|
Code int `json:"code"`
|
|
}
|
|
if err = d.client.Post(c, d.addreply, ip, params, &res); err != nil {
|
|
err = errors.Wrap(err, "appeal reply api")
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("add appeal url(%s) res(%v)", d.addreply+"?"+params.Encode(), res)
|
|
err = ecode.Int(res.Code)
|
|
}
|
|
return
|
|
}
|
|
|
|
// AppealExtra modify appeal extra.
|
|
func (d *Dao) AppealExtra(c context.Context, mid, cid, business, val int64, key, ip string) (err error) {
|
|
params := url.Values{}
|
|
params.Set("mid", strconv.FormatInt(mid, 10))
|
|
params.Set("cid", strconv.FormatInt(cid, 10))
|
|
params.Set("business", strconv.FormatInt(business, 10))
|
|
params.Set("key", key)
|
|
params.Set("val", strconv.FormatInt(val, 10))
|
|
var res struct {
|
|
Code int `json:"code"`
|
|
}
|
|
log.Info("AppealExtra params(%v)", params)
|
|
if err = d.client.Post(c, d.appealstar, ip, params, &res); err != nil {
|
|
err = errors.Wrap(err, "appeal star api")
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("appeal start url(%s) res(%v)", d.appealstar+"?"+params.Encode(), res)
|
|
err = ecode.Int(res.Code)
|
|
}
|
|
return
|
|
}
|
|
|
|
// AppealState modify appeal state .
|
|
func (d *Dao) AppealState(c context.Context, mid, id, business, state int64, ip string) (err error) {
|
|
params := url.Values{}
|
|
params.Set("id", strconv.FormatInt(id, 10))
|
|
params.Set("mid", strconv.FormatInt(mid, 10))
|
|
params.Set("business", strconv.FormatInt(business, 10))
|
|
params.Set("business_state", strconv.FormatInt(state, 10))
|
|
var res struct {
|
|
Code int `json:"code"`
|
|
}
|
|
if err = d.client.Post(c, d.appealstate, ip, params, &res); err != nil {
|
|
err = errors.Wrap(err, "appeal state api")
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("appeal state url(%s) res(%v)", d.appealstate+"?"+params.Encode(), res)
|
|
err = ecode.Int(res.Code)
|
|
}
|
|
return
|
|
}
|
|
|
|
// AppealStarInfo appeal star detail.
|
|
func (d *Dao) AppealStarInfo(c context.Context, mid, cid int64, business int, ip string) (star, etime string, err error) {
|
|
params := url.Values{}
|
|
params.Set("mid", strconv.FormatInt(mid, 10))
|
|
params.Set("cid", strconv.FormatInt(cid, 10))
|
|
params.Set("business", strconv.Itoa(business))
|
|
var res struct {
|
|
Code int `json:"code"`
|
|
Data struct {
|
|
Star string `json:"star"`
|
|
ETime string `json:"etime"`
|
|
} `json:"data"`
|
|
}
|
|
if err = d.client.Get(c, d.appealStarInfo, ip, params, &res); err != nil {
|
|
err = errors.Wrap(err, "appeal api")
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("appeal url(%s) mid(%d) res(%v)", d.detail+"?"+params.Encode(), mid, res)
|
|
err = ecode.Int(res.Code)
|
|
return
|
|
}
|
|
star = res.Data.Star
|
|
etime = res.Data.ETime
|
|
return
|
|
}
|