Files
huangguo_server/app/api/customerCtrl/user.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

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)
}