get_erp_city_tree_logic.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package logic
  2. import (
  3. "context"
  4. "git.i2edu.net/i2/i2-bill-erp/model"
  5. "git.i2edu.net/i2/i2-bill-erp/utils"
  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 GetErpCityTreeLogic struct {
  11. ctx context.Context
  12. svcCtx *svc.ServiceContext
  13. logx.Logger
  14. }
  15. func NewGetErpCityTreeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetErpCityTreeLogic {
  16. return &GetErpCityTreeLogic{
  17. ctx: ctx,
  18. svcCtx: svcCtx,
  19. Logger: logx.WithContext(ctx),
  20. }
  21. }
  22. func (l *GetErpCityTreeLogic) GetErpCityTree(in *transform.Empty) (*transform.TreeNodes, error) {
  23. var nodes = new([]*transform.TreeNode)
  24. var cits = new([]model.BaseOrgan)
  25. sql := `select
  26. *
  27. from
  28. base_organ
  29. where
  30. base_organ.del_flag = 0
  31. and organ_type != 105
  32. group by base_organ.id`
  33. err := l.svcCtx.SqlConn.QueryRows(cits, sql)
  34. if err != nil {
  35. return nil, err
  36. }
  37. for _, c := range *cits {
  38. node := new(transform.TreeNode)
  39. node.Id = c.Id
  40. node.Parent = c.Parent.Int64
  41. node.Text = c.Name.String
  42. *nodes = append(*nodes, node)
  43. }
  44. res, err := utils.BuildTree(nodes)
  45. return &transform.TreeNodes{Nodes: res}, err
  46. }