package controller import ( "github.com/gin-gonic/gin" "service/api/errcode" vasproto "service/api/proto/vas/proto" "service/app/mix/service" "service/bizcommon/util" "service/dbstruct" "service/library/logger" ) func ZoneCreateOrder(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.ZoneCreateOrderReq) if !req.IsValid() || len(req.PayType) <= 0 || len(req.ProductId) <= 0 { logger.Error("CreateOrder, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } // 检查能用金币支付的商品 if req.PayType == vasproto.PayTypeCoin && !dbstruct.CoinPayValidProductIdMap[req.ProductId] { ReplyErrorMsg(ctx, "商品错误") return } if len(req.Model) >= 28 { req.Model = req.Model[:28] } data, ec, err := service.DefaultService.ZoneCreateOrder(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneCreateOrder fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } ReplyOk(ctx, data) } func ZoneGetCashier(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.ZoneGetCashierReq) if req.Mid <= 0 || req.Zid <= 0 || len(req.ProductId) <= 0 { logger.Error("ZoneGetCashier, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } data, ec, err := service.DefaultService.ZoneGetCashier(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneGetCashier fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } ReplyOk(ctx, data) } func ZoneRefundPage(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.ZoneRefundPageReq) if req.Mid <= 0 || req.Zid <= 0 { logger.Error("ZoneRefund, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } name, price, payType, ec, err := service.DefaultService.ZoneGetRefundPage(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneGetRefundPage fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } data := &vasproto.ZoneRefundPageData{ Name: name, } if payType == vasproto.PayTypeCoin { data.CoinPrice = price } else { data.Price = price } ReplyOk(ctx, data) } func ZoneRefund(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.ZoneRefundReq) if req.Mid <= 0 || req.Zid <= 0 { logger.Error("ZoneRefund, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } ec, err := service.DefaultService.ZoneRefund(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneRefund fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } ReplyOk(ctx, nil) } func ZoneMemberList(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.GetZoneMemberListReq) if req.Mid <= 0 || req.Zid <= 0 { logger.Error("ZoneMemberList, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } list, ec, err := service.DefaultService.ZoneMemberList(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneMemberList fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } data := &vasproto.GetZoneMemberListData{ List: list, } ReplyOk(ctx, data) } func ZoneMemberListV2(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.GetZoneMemberListV2Req) if req.Offset >= 3000 { ReplyErrorMsg(ctx, "只能查询近3000条记录") return } if req.Mid <= 0 || req.Zid <= 0 { logger.Error("ZoneMemberList, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } list, total, ec, err := service.DefaultService.ZoneMemberListV2(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneMemberList fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } data := &vasproto.GetZoneMemberListV2Data{ List: list, Offset: req.Offset + int64(len(list)), Total: total, } if int64(len(list)) >= req.Limit { data.More = 1 } ReplyOk(ctx, data) } func ZoneFreeJoin(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.ZoneFreeJoinReq) if req.Mid <= 0 || req.Zid <= 0 { logger.Error("ZoneFreeJoin, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } ec, err := service.DefaultService.ZoneFreeJoin(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneFreeJoin fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } ReplyOk(ctx, nil) } func ZoneExit(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.ZoneExitReq) if req.Mid <= 0 || req.Zid <= 0 { logger.Error("ZoneExit, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } ec, err := service.DefaultService.ZoneExit(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneExit fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } ReplyOk(ctx, nil) } func ZoneMomentOrderList(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.ZoneMomentOrderListReq) if req.Offset >= 3000 { ReplyErrorMsg(ctx, "只能查询近3000条记录") return } if req.Mid <= 0 || req.MomentId <= 0 { logger.Error("ZoneExit, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } list, ec, err := service.DefaultService.ZoneMomentOrderList(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("ZoneExit fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } data := &vasproto.ZoneMomentOrderListData{ List: list, Offset: req.Offset + len(list), } if len(list) >= req.Limit { data.More = 1 } ReplyOk(ctx, data) } func SearchZoneMember(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vasproto.SearchMemberReq) if req.Mid <= 0 || req.MemberUserId <= 0 { logger.Error("SearchZoneMember, invalid param, req: %v", util.ToJson(req)) ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam) return } list, ec, err := service.DefaultService.SearchZoneMember(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("SearchZoneMember fail, req: %v, ec: %v", util.ToJson(req), ec) if ec == errcode.ErrCodeVasSrvFail && err != nil { ReplyErrorMsg(ctx, err.Error()) return } ReplyErrCodeMsg(ctx, ec) return } data := &vasproto.SearchMemberData{ List: list, } ReplyOk(ctx, data) }