1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package rpc
- import (
- "bp.jydev.jianyu360.cn/BaseService/gateway/common"
- . "bp.jydev.jianyu360.cn/BaseService/gateway/common/gatecode"
- "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
- "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter"
- "fmt"
- "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 UserCenterRpc usercenter.UserCenter
- func initUserCenterRpc() {
- UserCenterRpc = usercenter.NewUserCenter(zrpc.MustNewClient(zrpc.RpcClientConf{
- Etcd: discov.EtcdConf{
- Key: gcfg.Instance().MustGet(gctx.New(), "etcd.baseserver.userCenter.key", nil).String(),
- Hosts: gcfg.Instance().MustGet(gctx.New(), "etcd.baseserver.userCenter.address", nil).Strings(),
- },
- }))
- }
- // CheckAccountStatus 校验企业认证状态及账户状态
- // authCheck 是否需要认证;xy x个人 y企业 0:否 1是,
- // statusCheck是否需要检查状态(冻结);xy x个人 y企业 0:否 1是,
- func CheckAccountStatus(entId int64, userId string, authCheck, statusCheck int) error {
- if authCheck == 0 && statusCheck == 0 {
- return nil
- }
- authCheckArr := common.SplitPower(authCheck, 2)
- statusCheckArr := common.SplitPower(statusCheck, 2)
- authUser, authEnt := authCheckArr[0], authCheckArr[1]
- statusUser, statusEnt := statusCheckArr[0], statusCheckArr[1]
- //查询个人状态
- if authUser || statusUser {
- if userErr := checkPersonalStatus(userId, authCheck == 2, statusCheck == 2); userErr != nil {
- return userErr
- }
- }
- //查询企业状态
- if authEnt || statusEnt {
- if entErr := checkEntStatus(entId, authCheck == 1, statusCheck == 1); entErr != nil {
- return entErr
- }
- }
- return nil
- }
- // checkEntStatus 校验企业状态
- func checkEntStatus(entId int64, authCheck, statusCheck bool) error {
- res, err := UserCenterRpc.CheckEnt(gctx.New(), &pb.CheckEntReq{
- EntId: entId,
- })
- if err != nil {
- return NewErrorWithCode(GATEWAY_RPC_USERCENTER_ERR, err.Error())
- }
- //校验是否冻结
- if statusCheck && res.Data.FrozenStatus == 1 {
- return NewErrorWithCode(GLOBAL_ERR_ENTACCOUNT_STATUS, fmt.Sprintf("企业账户 %d 已被冻结", entId))
- }
- //校验是否认证
- if authCheck {
- //-1 未通过,0 未认证,1 已认证. -2 已到期 3 待审核
- switch res.Data.AuthStatus {
- case 0:
- return NewErrorWithCode(GLOBAL_ERR_ENTACCOUNT_AUTH_NOT, fmt.Sprintf("企业账户 %d 未认证", entId))
- case 3:
- return NewErrorWithCode(GLOBAL_ERR_ENTACCOUNT_AUTH_AWAIT, fmt.Sprintf("企业账户 %d 待审核", entId))
- case -1:
- return NewErrorWithCode(GLOBAL_ERR_ENTACCOUNT_AUTH_NOTPASS, fmt.Sprintf("企业账户 %d 未通过", entId))
- case -2:
- return NewErrorWithCode(GLOBAL_ERR_ENTACCOUNT_AUTH_EXPIRED, fmt.Sprintf("企业账户 %d 已到期", entId))
- }
- }
- return nil
- }
- // checkPersonalStatus 校验个人状态账户状态
- func checkPersonalStatus(userId string, authCheck, statusCheck bool) error {
- return NewErrorWithCode(GLOBAL_ERR_UNFINISH, "checkPersonalStatus")
- }
|