diff --git a/api/internal/handler/core/participantlisthandler.go b/api/internal/handler/core/participantlisthandler.go new file mode 100644 index 00000000..91bfd19a --- /dev/null +++ b/api/internal/handler/core/participantlisthandler.go @@ -0,0 +1,17 @@ +package core + +import ( + "gitlink.org.cn/jcce-pcm/utils/result" + "net/http" + + "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/core" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" +) + +func ParticipantListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + l := core.NewParticipantListLogic(r.Context(), svcCtx) + resp, err := l.ParticipantList() + result.HttpResult(r, w, resp, err) + } +} diff --git a/api/internal/logic/core/participantlistlogic.go b/api/internal/logic/core/participantlistlogic.go new file mode 100644 index 00000000..c84cd855 --- /dev/null +++ b/api/internal/logic/core/participantlistlogic.go @@ -0,0 +1,35 @@ +package core + +import ( + "context" + "github.com/zeromicro/go-zero/core/logx" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" + "gitlink.org.cn/jcce-pcm/utils/tool" +) + +type ParticipantListLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewParticipantListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ParticipantListLogic { + return &ParticipantListLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *ParticipantListLogic) ParticipantList() (resp *types.ParticipantListResp, err error) { + var participants []types.Participant + + tx := l.svcCtx.DbEngin.Raw("SELECT ppi.id,ppi.name,ppi.address,ppi.metrics_url ,ti.tenant_name,(CASE ppi.type WHEN '0' THEN '数算' WHEN '1' THEN '智算' WHEN '2' THEN '超算' ELSE '' END) as type_name from sc_participant_phy_info ppi LEFT JOIN sc_tenant_info ti on ti.id = ppi.tenant_id where ppi.deleted_flag = '0'").Scan(&participants) + if tx.Error != nil { + return nil, tx.Error + } + result := types.ParticipantListResp{} + tool.Convert(participants, &result.Participants) + return &result, nil +}