1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package rpc
- import (
- "bp.jydev.jianyu360.cn/BaseService/resourceCenter/rpc/pb"
- "bp.jydev.jianyu360.cn/BaseService/resourceCenter/rpc/resource"
- "fmt"
- . "gateway/common/gatecode"
- "github.com/gogf/gf/v2/os/gcfg"
- "github.com/gogf/gf/v2/os/gctx"
- "github.com/zeromicro/go-zero/core/discov"
- "github.com/zeromicro/go-zero/zrpc"
- )
- var ResourceCenterRpc resource.Resource
- func initResourceCenterRpc() {
- ResourceCenterRpc = resource.NewResource(zrpc.MustNewClient(zrpc.RpcClientConf{
- Etcd: discov.EtcdConf{
- Key: gcfg.Instance().MustGet(gctx.New(), "etcd.baseserver.resourceCenter.key", nil).String(),
- Hosts: gcfg.Instance().MustGet(gctx.New(), "etcd.baseserver.resourceCenter.address", nil).Strings(),
- },
- }))
- }
- // CheekResourcePower 校验账户是否有对应权益
- // eid 企业id
- // uId 新用户id;非mongodb中user表id
- // funcCode 业务代码
- func CheekResourcePower(eId, uId int64, funcCode string) error {
- res, err := ResourceCenterRpc.CheckPower(gctx.New(), &pb.CheckPowerReq{
- Appid: gcfg.Instance().MustGet(gctx.New(), "etcd.baseserver.appid", "10000").String(),
- FunctionCode: funcCode,
- EntId: eId,
- UserId: uId,
- })
- if err != nil {
- return NewErrorWithCode(GATEWAY_RPC_RESOURCECENTER_ERR, err.Error())
- }
- //0:失败 1:成功 -1:不在有效期内 -2:数量不足 -3:没有授权
- switch res.Status {
- case 0:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_FAIL, fmt.Sprintf("账户 eId:%d,uId:%d 无业务%s权限", eId, uId, funcCode))
- case -1:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_EXPIRED, fmt.Sprintf("账户 eId:%d,uId:%d 业务%s权限已过期", eId, uId, funcCode))
- case -2:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_NOTENOUGH, fmt.Sprintf("账户 eId:%d,uId:%d 业务%s权限余额不足", eId, uId, funcCode))
- case -3:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_NOTHAS, fmt.Sprintf("账户 eId:%d,uId:%d 业务%s权限无授权", eId, uId, funcCode))
- }
- return nil
- }
- // ResourcePowerDeduct 资源中心消费
- // eid 企业id
- // uId 新用户id;非mongodb中user表id
- // funcCode 业务代码
- // deductNum 扣除数量
- // ids 扣除详情id;例如数据导出信息id等数据
- func ResourcePowerDeduct(eId, uId int64, funcCode string, deductNum int64, ids []string) error {
- res, err := ResourceCenterRpc.Deduction(gctx.New(), &pb.DeductionReq{
- Appid: gcfg.Instance().MustGet(gctx.New(), "etcd.baseserver.appid", "10000").String(),
- EntId: eId,
- UserId: uId,
- FunctionCode: funcCode,
- Count: deductNum,
- Ids: ids,
- })
- if err != nil {
- return NewErrorWithCode(GATEWAY_RPC_RESOURCECENTER_ERR, err.Error())
- }
- //0:失败 1:成功 -1:不在有效期内 -2:数量不足 -3:没有授权
- switch res.Status {
- case 0:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_FAIL, fmt.Sprintf("账户 eId:%d,uId:%d 扣除业务%s权限失败", eId, uId, funcCode))
- case -1:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_EXPIRED, fmt.Sprintf("账户 eId:%d,uId:%d 扣除业务%s权限失败,权限已过期", eId, uId, funcCode))
- case -2:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_NOTENOUGH, fmt.Sprintf("账户 eId:%d,uId:%d 扣除业务%s权限失败,余额不足", eId, uId, funcCode))
- case -3:
- return NewErrorWithCode(GLOBAL_ERR_RESOURCE_PORWE_NOTHAS, fmt.Sprintf("账户 eId:%d,uId:%d 扣除业务%s权限失败", eId, uId, funcCode))
- }
- return nil
- }
|