package daichongctrl import ( "net/http" "strconv" "strings" "91porn-server/common/daichong" "91porn-server/common/log" "91porn-server/common/stderr" "91porn-server/models/e/daichongmod" "91porn-server/models/v/usermod" "91porn-server/models/v/walletmod" "91porn-server/web/webg" "github.com/gin-gonic/gin" ) // 查询玩家信息 doc // @Summary 查询玩家信息 通知订单生成 // @Description 通知订单生成 // @Tags WEB-daichong // @Accept mpfd,json // @Produce json,html // @Param appId formData string true "代充平台提供的appId" // @Param data formData string true "加密结果字符串" // @Success 200 {string} json "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /daichong/api/chat/queryPlayerInfo [post] func QueryPlayerInfo(ctx *gin.Context) { param := daichongmod.CommnReq{} if err := ctx.ShouldBind(¶m); err != nil { log.Warn("daichong callback api queryPlayerInfo post param fail error", log.E(err)) ctx.JSON(http.StatusOK, gin.H{"data": nil, "code": stderr.ErrParamError, "msg": stderr.ErrParamError.Msg()}) return } if param.AppId != webg.Conf.DaiChong.AppID { ctx.JSON(http.StatusOK, gin.H{"data": nil, "code": stderr.ErrAppIDNotExist, "msg": stderr.ErrAppIDNotExist.Msg()}) return } querySign := daichongmod.BalanceSign{} if err := daichong.Sign2Struct(&querySign, param.Data, webg.Conf.DaiChong.AppSecret); err != nil { log.Warn("daichong callback api queryPlayerInfo decrypt sign data fail error", log.E(err)) ctx.JSON(http.StatusOK, gin.H{"data": nil, "code": stderr.Failure, "msg": stderr.Failure.Msg()}) return } uidstr := strings.Split(strings.TrimSpace(querySign.Uids), ",") type userForThird struct { Uid string `json:"uid"` NickName string `json:"nickName"` CoinNum string `json:"coinNum"` BankCoin string `json:"bankCoin"` } ut := make([]userForThird, len(uidstr)) for i, v := range uidstr { uid, _ := strconv.Atoi(strings.TrimSpace(v)) user, err := usermod.FindUserByUID(uint64(uid)) if err != nil || user == nil { continue } w, _ := walletmod.GetWallet(uint64(uid)) coinNum := w.Amount ut[i] = userForThird{ Uid: strings.TrimSpace(v), NickName: user.Name, CoinNum: strconv.Itoa(int(coinNum)), BankCoin: "0", } } ctx.JSON(http.StatusOK, gin.H{"data": ut, "code": stderr.Success, "msg": stderr.Success.Msg()}) }