|
@@ -0,0 +1,67 @@
|
|
|
+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
|
|
|
+}
|