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