package dashboard import ( "context" "fmt" "time" "wechat-api/internal/svc" "wechat-api/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type GetChartsLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewGetChartsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetChartsLogic { return &GetChartsLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx} } func (l *GetChartsLogic) GetCharts(req *types.ChartsReq) (resp *types.ChartsResp, err error) { // 获取组织id var organizationId uint64 = 0 isAdmin := l.ctx.Value("isAdmin").(bool) if isAdmin && req.OrganizationId != nil && *req.OrganizationId != 0 { organizationId = *req.OrganizationId } else { organizationId = l.ctx.Value("organizationId").(uint64) } // 解析起始和截止时间 layouts := []string{ "2006-01", // 对应 "2024-01" "2006-01-02", // 对应 "2024-01-01" } var startTime time.Time for _, layout := range layouts { startTime, err = time.Parse(layout, *req.StartDate) if err == nil { break } } if err != nil { fmt.Println("解析开始时间失败:", err) return } var endTime time.Time for _, layout := range layouts { endTime, err = time.Parse(layout, *req.EndDate) if err == nil { break } } if err != nil { fmt.Println("解析结束时间失败:", err) return } return }