get_erp_role_logic.go 1.3 KB

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