You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.9 KiB
81 lines
1.9 KiB
package vip |
|
|
|
import ( |
|
"context" |
|
|
|
"go-common/app/interface/main/account/model" |
|
vipmod "go-common/app/service/main/vip/model" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
"go-common/library/net/metadata" |
|
|
|
"github.com/pkg/errors" |
|
) |
|
|
|
// CodeOpen . |
|
func (s *Service) CodeOpen(c context.Context, mid int64, code, token, verify string) (codeInfo *model.ResourceCode, err error) { |
|
var ( |
|
codeResp *model.ResourceCodeResq |
|
) |
|
if codeResp, err = s.vipDao.CodeOpen(c, mid, code, token, verify); err != nil { |
|
err = errors.WithStack(err) |
|
return |
|
} |
|
codeInfo = codeResp.Data |
|
return |
|
} |
|
|
|
//CodeOpeneds sel code opened |
|
func (s *Service) CodeOpeneds(c context.Context, arg *model.CodeInfoReq, ip string) (resp []*vipmod.CodeInfoResp, err error) { |
|
|
|
if err = s.checkIP(arg.Appkey, ip); err != nil { |
|
err = errors.WithStack(err) |
|
return |
|
} |
|
if resp, err = s.vipDao.CodeOpeneds(c, arg, ip); err != nil { |
|
err = errors.WithStack(err) |
|
} |
|
return |
|
} |
|
|
|
func (s *Service) checkIP(appkey, ip string) (err error) { |
|
var ( |
|
strings []string |
|
ok bool |
|
) |
|
if strings, ok = s.c.Vipproperty.CodeOpenwhiteIPMap[appkey]; !ok { |
|
log.Error("checkIP s.c.Vipproperty.CodeOpenwhiteIPMap empty(%s)", appkey) |
|
err = ecode.VipWhiteIPListErr |
|
return |
|
} |
|
for _, v := range strings { |
|
if v == ip { |
|
return |
|
} |
|
} |
|
log.Error("checkIP fail(%s, %s)", appkey, ip) |
|
err = ecode.VipWhiteIPListErr |
|
return |
|
} |
|
|
|
// CodeVerify . |
|
func (s *Service) CodeVerify(c context.Context) (token *model.Token, err error) { |
|
if token, err = s.vipDao.CodeVerify(c); err != nil { |
|
err = errors.WithStack(err) |
|
} |
|
return |
|
} |
|
|
|
//UseBatch use resource batch |
|
func (s *Service) UseBatch(c context.Context, arg *vipmod.ArgUseBatch) (err error) { |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
if err = s.checkIP(arg.Appkey, ip); err != nil { |
|
err = errors.WithStack(err) |
|
return |
|
} |
|
if err = s.vipRPC.ResourceBatchOpenVip(c, arg); err != nil { |
|
err = errors.WithStack(err) |
|
return |
|
} |
|
return |
|
}
|
|
|