package user import ( "context" "errors" "git.i2edu.net/i2/go-zero/core/logx" "git.i2edu.net/i2/i2-bill-api/model" "git.i2edu.net/i2/i2-bill-erp/transform" "git.i2edu.net/i2/i2-bill-erp/transformclient" "github.com/xormplus/xorm" "strings" ) func GetAcquirePerm(userId int64, rpcClient transformclient.Transform, engine *xorm.Engine) (string, error) { //获取兼职 partUser := new(model.I2billMktPartTimeUser) _, err := engine.SQL("select * from i2bill_mkt_part_time_user where del_flag = 0 and check_state = 57 and user_id = ?", userId).Get(partUser) if err != nil { return "", err } if partUser.Id != 0 { return partUser.MkId, nil } //获取erp用户 user := new(model.User) _, err = engine.SQL("select * from i2bill_user where del_flag = 0 and user_id = ?", userId).Get(user) if err != nil { return "", err } if user.Id == 0 { logx.Error("用户不存在") return "", errors.New("用户不存在") } ctx := context.Background() in := new(transform.GetErpRoleReq) in.Mobile = user.Mobile erpRoles, err := rpcClient.GetErpRole(ctx, in) if err != nil { return "", err } //判定是不是 mk 还是 兼职 if erpRoles.UserId != "" { roles := strings.Split(erpRoles.Role, ",") for _, r := range roles { if r == "LAMK" || r == "LAMKM" || r == "student/readingStudent" { return erpRoles.UserId, nil } } } return "", nil } //获取校区权限 func GetUserSchoolPerm(erpUserId string, rpcClient transformclient.Transform, engine *xorm.Engine) ([]*transform.OrganSchool, error) { ctx := context.Background() in := erpUserId result, err := rpcClient.GetErpOrganSchPerByUserId(ctx, &transform.GetErpOrganSchPerByUserIdReq{UserId: in}) if err != nil { return nil, err } return result.School, nil }