From 72d2521a3bcc634aa987db3240becb586a9723fb Mon Sep 17 00:00:00 2001 From: lwl0608 Date: Mon, 8 Jul 2024 01:56:50 +0800 Subject: [PATCH 1/4] fix --- app/mix/service/logic/vas.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/mix/service/logic/vas.go b/app/mix/service/logic/vas.go index 62b7dafa..e4ab26de 100644 --- a/app/mix/service/logic/vas.go +++ b/app/mix/service/logic/vas.go @@ -2560,10 +2560,10 @@ func (v *Vas) refundMembership(ctx *gin.Context, order *dbstruct.Order, req *vas } incomeChList = append(incomeChList, ch) } - if len(incomeChList) > 1 { - err = errors.New("收入记录错误,请找开发同学排查") - return err - } + //if len(incomeChList) > 1 { + // err = errors.New("收入记录错误,请找开发同学排查") + // return err + //} // 有分成的情况 if len(incomeChList) > 0 { From f45ec3e11e716a30cca4c7debf45c092aab4cefe Mon Sep 17 00:00:00 2001 From: lwl0608 Date: Mon, 8 Jul 2024 02:00:53 +0800 Subject: [PATCH 2/4] fix --- app/mix/service/logic/vas.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/mix/service/logic/vas.go b/app/mix/service/logic/vas.go index e4ab26de..7e784724 100644 --- a/app/mix/service/logic/vas.go +++ b/app/mix/service/logic/vas.go @@ -2566,8 +2566,8 @@ func (v *Vas) refundMembership(ctx *gin.Context, order *dbstruct.Order, req *vas //} // 有分成的情况 - if len(incomeChList) > 0 { - ch := incomeChList[0] + for _, ch := range incomeChList { + //ch := incomeChList[0] streamerMid := ch.GetMid() if streamerMid <= 0 { err = errors.New("收入streamerMid错误") From bfc5c9f8107c007d34f9eea2fccb7352ad69b457 Mon Sep 17 00:00:00 2001 From: lwl0608 Date: Tue, 9 Jul 2024 09:47:28 +0800 Subject: [PATCH 3/4] black --- app/mix/service/logic/vas.go | 1 + 1 file changed, 1 insertion(+) diff --git a/app/mix/service/logic/vas.go b/app/mix/service/logic/vas.go index 7e784724..28235e4d 100644 --- a/app/mix/service/logic/vas.go +++ b/app/mix/service/logic/vas.go @@ -115,6 +115,7 @@ var CreateOrderBlacklist = map[int64]bool{ 351461: true, 359669: true, 358643: true, + 359498: true, } func (v *Vas) CreateOrder(ctx *gin.Context, req *vasproto.CreateOrderReq) (data *vasproto.CreateOrderData, err error) { From e47ed25ed070cc329fe984f7f3d3eb3b46cd5bcd Mon Sep 17 00:00:00 2001 From: Leufolium Date: Wed, 10 Jul 2024 05:47:56 +0800 Subject: [PATCH 4/4] by Robin at 20240710 --- api/consts/option.go | 1 + .../service/apiservice_business_validation.go | 15 +++++++++++++++ app/mix/service/logic/vas.go | 16 ++++++++++++++++ app/mix/service/service.go | 7 +++++++ 4 files changed, 39 insertions(+) diff --git a/api/consts/option.go b/api/consts/option.go index eb520052..35ccd93b 100644 --- a/api/consts/option.go +++ b/api/consts/option.go @@ -26,6 +26,7 @@ const ( AccountPunishment_BlockFromBeingSearched = 4 // 禁止被搜索到 AccountPunishment_BlockFromBeingDiscovered = 5 // 禁止在推荐被发现 AccountPunishment_BlockFromBeingSeenAtMoment = 6 // 禁止在广场被发现 + AccountPunishment_BlockFromPaying = 7 // 禁止付款 ) const ( diff --git a/app/mix/service/apiservice_business_validation.go b/app/mix/service/apiservice_business_validation.go index 4a0d38f5..d8fd9559 100644 --- a/app/mix/service/apiservice_business_validation.go +++ b/app/mix/service/apiservice_business_validation.go @@ -1,6 +1,7 @@ package service import ( + "fmt" "service/api/consts" "service/api/errcode" accountproto "service/api/proto/account/proto" @@ -9,6 +10,7 @@ import ( momentproto "service/api/proto/moment/proto" streamerproto "service/api/proto/streamer/proto" streamerauthapprovalproto "service/api/proto/streamerauthapproval/proto" + vasproto "service/api/proto/vas/proto" vericodeproto "service/api/proto/vericode/proto" zone_collaborator_proto "service/api/proto/zone_collaborator/proto" zone_third_partner_proto "service/api/proto/zone_third_partner/proto" @@ -730,3 +732,16 @@ func (s *Service) ApiUpdateZoneCollaboratorBusinessValidate(ctx *gin.Context, re return } + +func (s *Service) ApiCreateOrderBusinessValidate(ctx *gin.Context, req *vasproto.CreateOrderReq) (err error) { + + result := businessvalidator.NewAuthBusinessValidator(ctx, req). + EnsureSuchAccountPunishmentNotExist(req.BaseRequest.Mid, consts.AccountPunishment_BlockFromPaying, _DefaultAccountPunishment.OpListByMidAndType). + Validate(). + Collect() + ec := result[0].(errcode.ErrCode) + if ec == errcode.ErrCodeAccountPunishmentExist { + return fmt.Errorf("账号已受限,解限请联系客服") + } + return nil +} diff --git a/app/mix/service/logic/vas.go b/app/mix/service/logic/vas.go index 28235e4d..648f83d4 100644 --- a/app/mix/service/logic/vas.go +++ b/app/mix/service/logic/vas.go @@ -41,6 +41,8 @@ type Vas struct { zone *Zone zonetp *ZoneThirdPartner zoneclr *ZoneCollaborator + + createOrderProxy *CreateOrderProxy } func NewVas(store *dao.Store, streamer *Streamer, account *Account, zone *Zone, zonetp *ZoneThirdPartner, zoneclr *ZoneCollaborator) (v *Vas) { @@ -54,6 +56,10 @@ func NewVas(store *dao.Store, streamer *Streamer, account *Account, zone *Zone, } } +func (v *Vas) RegisterProxyForCreateOrder(proxy *CreateOrderProxy) { + v.createOrderProxy = proxy +} + func (v *Vas) GetCoinsProductList(ctx *gin.Context, req *vasproto.GetCoinsProductListReq) (listAlipayH5 []*dbstruct.Product, err error) { // 获取所有金币商品 list, err := v.store.GetProductByDtType(ctx, req.DevType, dbstruct.ProductTypeCoins) @@ -118,7 +124,17 @@ var CreateOrderBlacklist = map[int64]bool{ 359498: true, } +type CreateOrderProxy struct { + PreProc func(ctx *gin.Context, req *vasproto.CreateOrderReq) (data any, err error) +} + func (v *Vas) CreateOrder(ctx *gin.Context, req *vasproto.CreateOrderReq) (data *vasproto.CreateOrderData, err error) { + + _, err = v.createOrderProxy.PreProc(ctx, req) + if err != nil { + return + } + if CreateOrderBlacklist[req.Mid] { err = fmt.Errorf("账号已受限,解限请联系客服") return diff --git a/app/mix/service/service.go b/app/mix/service/service.go index c0e7be09..79121b6c 100644 --- a/app/mix/service/service.go +++ b/app/mix/service/service.go @@ -238,6 +238,13 @@ func (s *Service) Init(c any) (err error) { _DefaultVas = logic.NewVas(store, _DefaultStreamer, _DefaultAccount, _DefaultZone, _DefaultZoneThirdPartner, _DefaultZoneCollaborator) _DefaultStreamerAcct = logic.NewStreamerAcct(store) + + _DefaultVas.RegisterProxyForCreateOrder(&logic.CreateOrderProxy{ + PreProc: func(ctx *gin.Context, req *vasproto.CreateOrderReq) (data any, err error) { + err = s.ApiCreateOrderBusinessValidate(ctx, req) + return nil, err + }, + }) return }