get_erp_role_logic.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package logic
  2. import (
  3. "context"
  4. "errors"
  5. "fmt"
  6. "git.i2edu.net/i2/i2-bill-erp/internal/svc"
  7. "git.i2edu.net/i2/i2-bill-erp/transform"
  8. "git.i2edu.net/i2/go-zero/core/logx"
  9. )
  10. type GetErpRoleLogic struct {
  11. ctx context.Context
  12. svcCtx *svc.ServiceContext
  13. logx.Logger
  14. }
  15. func NewGetErpRoleLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetErpRoleLogic {
  16. return &GetErpRoleLogic{
  17. ctx: ctx,
  18. svcCtx: svcCtx,
  19. Logger: logx.WithContext(ctx),
  20. }
  21. }
  22. // 获取 erp 用户角色
  23. func (l *GetErpRoleLogic) GetErpRole(in *transform.GetErpRoleReq) (*transform.GetErpRoleRes, error) {
  24. // todo: add your logic here and delete this line
  25. if in.Mobile == "" && in.UserId == "" {
  26. return nil, errors.New("mobile and user_id is empty")
  27. }
  28. sql := `select
  29. sys_user.id user_id,GROUP_CONCAT(sys_role.code) role,sys_user_school.os_id sch_id,sys_user.mobile
  30. from
  31. sys_user
  32. LEFT JOIN
  33. sys_user_role on sys_user.id=sys_user_role.user_id
  34. LEFT JOIN sys_role on sys_user_role.role_id= sys_role.id
  35. LEFT JOIN sys_user_school on sys_user_school.user_id = sys_user.id
  36. where
  37. sys_user_role.del_flag =0 and sys_user.status = 0 and sys_user.del_flag = 0 %s GROUP BY sys_user.mobile`
  38. var args string
  39. if in.Mobile != "" {
  40. args = in.Mobile
  41. sql = fmt.Sprintf(sql, " and sys_user.mobile = ? ")
  42. }
  43. if in.UserId != "" {
  44. args = in.UserId
  45. sql = fmt.Sprintf(sql, " and sys_user.id = ? ")
  46. }
  47. result, err := l.svcCtx.DB.SQL(sql, args).Query().List()
  48. if err != nil {
  49. return nil, err
  50. }
  51. if len(result) == 0 {
  52. return &transform.GetErpRoleRes{}, nil
  53. }
  54. user_id, _ := result[0]["user_id"].(string)
  55. role, _ := result[0]["role"].(string)
  56. sch_id, _ := result[0]["sch_id"].(int64)
  57. return &transform.GetErpRoleRes{UserId: user_id, Role: role, SchId: sch_id}, nil
  58. }