120 lines
3.1 KiB
Go
120 lines
3.1 KiB
Go
package customerCtrl
|
|
|
|
import (
|
|
"91porn-server/app/appg"
|
|
"91porn-server/app/service/customerser"
|
|
"91porn-server/common"
|
|
"91porn-server/common/crypt"
|
|
"91porn-server/common/log"
|
|
"91porn-server/common/stderr"
|
|
"encoding/hex"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/go-playground/form"
|
|
"net/url"
|
|
)
|
|
|
|
// Url doc
|
|
//
|
|
// @Summary 获取客服链接
|
|
// @Description 获取客服链接
|
|
// @Tags 移动端-客服
|
|
// @Accept mpfd,json
|
|
// @Produce json
|
|
// @Success 200 object string "成功"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/app/customer/url [get]
|
|
func Url(ctx *gin.Context) {
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, nil)
|
|
return
|
|
}
|
|
ua, _ := common.GetUA(ctx)
|
|
resp, err := customerser.GetUrl(uid, ua)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.Failure, err)
|
|
return
|
|
}
|
|
common.ServeJSON(ctx, stderr.Success, resp.Data.Url)
|
|
}
|
|
|
|
func parseRequest(ctx *gin.Context, data interface{}) (err error) {
|
|
// 获取请求参数sign
|
|
sign := ctx.Query("sign")
|
|
decodeByte, err := hex.DecodeString(sign)
|
|
if err != nil {
|
|
log.Warn("非法请求1", log.Any("sign", sign), log.E(err))
|
|
return
|
|
}
|
|
str, err := crypt.AesDecrypt(string(decodeByte), appg.Conf.Customer.Secret)
|
|
if err != nil {
|
|
log.Warn("非法请求2", log.Any("sign", sign), log.E(err))
|
|
return
|
|
}
|
|
values, err := url.ParseQuery(str)
|
|
if err != nil {
|
|
log.Warn("非法请求3", log.Any("sign", sign), log.Any("str", str), log.E(err))
|
|
return
|
|
}
|
|
// 解码到结构体
|
|
decoder := form.NewDecoder()
|
|
err = decoder.Decode(data, values)
|
|
if err != nil {
|
|
log.Warn("参数解析错误", log.Any("values", values), log.E(err))
|
|
return
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Backpack doc
|
|
//
|
|
// @Summary 获取背包
|
|
// @Description 获取背包
|
|
// @Tags 移动端-客服
|
|
// @Accept mpfd,json
|
|
// @Produce json
|
|
// @Param q query customerser.BackpackReq false "请求参数"
|
|
// @Success 200 object customerser.BackpackResp "成功"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /customer/user/backpack [get]
|
|
func Backpack(ctx *gin.Context) {
|
|
p := &customerser.BackpackReq{}
|
|
if err := parseRequest(ctx, p); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, nil)
|
|
return
|
|
}
|
|
|
|
resp, err := p.GetData(ctx, uint64(p.UserID), p.Account, p.Phone, p.InviteCode)
|
|
if err != nil {
|
|
common.ServeJSONNoEncrypt(ctx, stderr.Failure, err)
|
|
return
|
|
}
|
|
common.ServeJSONNoEncrypt(ctx, stderr.Success, resp)
|
|
}
|
|
|
|
// Recharge doc
|
|
//
|
|
// @Summary 获取充值订单
|
|
// @Description 获取充值订单
|
|
// @Tags 移动端-客服
|
|
// @Accept mpfd,json
|
|
// @Produce json
|
|
// @Param q query customerser.RechargeReq false "请求参数"
|
|
// @Success 200 object customerser.RechargeResp "成功"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /customer/user/recharge [get]
|
|
func Recharge(ctx *gin.Context) {
|
|
p := &customerser.RechargeReq{}
|
|
if err := parseRequest(ctx, p); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, nil)
|
|
return
|
|
}
|
|
|
|
resp, err := p.GetData(ctx, uint64(p.UserID))
|
|
if err != nil {
|
|
common.ServeJSONNoEncrypt(ctx, stderr.Failure, err)
|
|
return
|
|
}
|
|
common.ServeJSONNoEncrypt(ctx, stderr.Success, resp)
|
|
}
|