user_erp_info.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package user
  2. import (
  3. "context"
  4. "errors"
  5. "git.i2edu.net/i2/go-zero/core/logx"
  6. "git.i2edu.net/i2/i2-bill-api/model"
  7. "git.i2edu.net/i2/i2-bill-erp/transform"
  8. "git.i2edu.net/i2/i2-bill-erp/transformclient"
  9. "github.com/xormplus/xorm"
  10. "strings"
  11. )
  12. func GetAcquirePerm(userId int64, rpcClient transformclient.Transform, engine *xorm.Engine) (string, error) {
  13. //获取兼职
  14. partUser := new(model.I2billMktPartTimeUser)
  15. _, err := engine.SQL("select * from i2bill_mkt_part_time_user where del_flag = 0 and check_state = 57 and user_id = ?", userId).Get(partUser)
  16. if err != nil {
  17. return "", err
  18. }
  19. if partUser.Id != 0 {
  20. return partUser.MkId, nil
  21. }
  22. //获取erp用户
  23. user := new(model.User)
  24. _, err = engine.SQL("select * from i2bill_user where del_flag = 0 and user_id = ?", userId).Get(user)
  25. if err != nil {
  26. return "", err
  27. }
  28. if user.Id == 0 {
  29. logx.Error("用户不存在")
  30. return "", errors.New("用户不存在")
  31. }
  32. ctx := context.Background()
  33. in := new(transform.GetErpRoleReq)
  34. in.Mobile = user.Mobile
  35. erpRoles, err := rpcClient.GetErpRole(ctx, in)
  36. if err != nil {
  37. return "", err
  38. }
  39. //判定是不是 mk 还是 兼职
  40. if erpRoles.UserId != "" {
  41. roles := strings.Split(erpRoles.Role, ",")
  42. for _, r := range roles {
  43. if r == "LAMK" || r == "LAMKM" || r == "student/readingStudent" {
  44. return erpRoles.UserId, nil
  45. }
  46. }
  47. }
  48. return "", nil
  49. }
  50. //获取校区权限
  51. func GetUserSchoolPerm(erpUserId string, rpcClient transformclient.Transform, engine *xorm.Engine) ([]*transform.OrganSchool, error) {
  52. ctx := context.Background()
  53. in := erpUserId
  54. result, err := rpcClient.GetErpOrganSchPerByUserId(ctx, &transform.GetErpOrganSchPerByUserIdReq{UserId: in})
  55. if err != nil {
  56. return nil, err
  57. }
  58. return result.School, nil
  59. }