package home import ( "context" "dashoo.cn/micro/app/model/home" "dashoo.cn/micro/app/model/plat" "dashoo.cn/micro/app/service" server "dashoo.cn/micro/app/service/plat" "encoding/json" "github.com/gogf/gf/util/gconv" ) type HomeService struct { *service.ContextService } func NewHomeService(ctx context.Context) (svc *HomeService, err error) { svc = new(HomeService) if svc.ContextService, err = svc.Init(ctx); err != nil { return nil, err } return svc, nil } func (s *HomeService) SetUpHomeReportConfig(param *home.SetUpHomeConfig) (err error) { svc, err := server.NewUserConfigService(s.Ctx) config, _ := svc.QueryByUserIdAndModelCode(s.GetCxtUserId(), param.ModuleCode) by, _ := json.Marshal(param) if config != nil { config.ConfigInfo = gconv.String(by) err = svc.Edit(config) } else { config := new(plat.PlatUserConfig) config.UserId = s.GetCxtUserId() config.ModuleCode = param.ModuleCode config.ConfigInfo = gconv.String(by) _, err = svc.Create(config) } return } func (s *HomeService) QueryHomeReportConfig(moduleCode string) (config *plat.PlatUserConfig, err error) { svc, err := server.NewUserConfigService(s.Ctx) config, err = svc.QueryByUserIdAndModelCode(s.GetCxtUserId(), moduleCode) return } func (s *HomeService) QueryHomeNumReportData(param *home.SearchNumReportData) (resp *home.NumReportResponses, err error) { numConfig := make([]*home.NumReportResponse, len(param.ReportId)) for _, v := range param.ReportId { numReport := new(home.NumReportResponse) numReport.Id = v value, _ := getReportData(v) numReport.Data = value numConfig = append(numConfig, numReport) } resp.NumReportResponse = numConfig return } func (s *HomeService) QueryHomeDataReportData(param *home.SearchDataReportData) (resp *home.DataReportResponse, err error) { resp.Id = param.ReportId value, err := getReportData(param.ReportId) if err != nil { return nil, err } resp.Data = value return } func getReportData(id int64) (interface{}, error) { switch id { case 0: return nil, nil default: return nil, nil } }