| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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, _ := s.getReportData(v, nil)
- numReport.Data = value
- numConfig = append(numConfig, numReport)
- }
- resp.NumReportResponse = numConfig
- return
- }
- func (s *HomeService) QueryHomeDataReportData(param *home.SearchDataReportData) (resp *home.DataReportResponse, err error) {
- resp = new(home.DataReportResponse)
- resp.Id = param.ReportId
- value, err := s.getReportData(param.ReportId, ¶m.Params)
- if err != nil {
- return nil, err
- }
- resp.Data = value
- return
- }
- // 10000-20000之间:个人看板数据 TODO 疑似与 sys_report 表对应?
- // 20000-30000之间:报表数据 TODO 疑似与 sys_report 表对应?
- func (s *HomeService) getReportData(id int64, params *map[string]interface{}) (interface{}, error) {
- switch id {
- case 10000:
- // 个人看板数据
- return nil, nil
- case 20000:
- // 报表数据 个人销售金额
- return getPersonalContractReportData(s.ContextService.Ctx, "CONTRACT", params)
- case 20001:
- // 报表数据 个人销售回款
- return getPersonalContractReportData(s.ContextService.Ctx, "COLLECTION", params)
- case 20002:
- // 报表数据 总部销售金额
- return getCompanyContractReportData(s.ContextService.Ctx, "CONTRACT", params)
- case 20003:
- // 报表数据 总部销售回款
- return getCompanyContractReportData(s.ContextService.Ctx, "COLLECTION", params)
- default:
- return nil, nil
- }
- }
|