123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- package service
- import (
- "context"
- "encoding/json"
- "strconv"
- "go-common/app/admin/main/search/model"
- "go-common/library/ecode"
- "go-common/library/sync/errgroup"
- )
- // BusinessList .
- func (s *Service) BusinessList(ctx context.Context, name string, pn, ps int) (list []*model.MngBusiness, total int64, err error) {
- offset := (pn - 1) * ps
- if list, err = s.dao.BusinessList(ctx, name, offset, ps); err != nil {
- return
- }
- total, err = s.dao.BusinessTotal(ctx, name)
- return
- }
- // BusinessAll .
- func (s *Service) BusinessAll(ctx context.Context) (list []*model.MngBusiness, err error) {
- list, err = s.dao.BusinessAll(ctx)
- return
- }
- // BusinessInfo .
- func (s *Service) BusinessInfo(ctx context.Context, id int64) (info *model.MngBusiness, err error) {
- info, err = s.dao.BusinessInfo(ctx, id)
- return
- }
- // AddBusiness .
- func (s *Service) AddBusiness(ctx context.Context, b *model.MngBusiness) (id int64, err error) {
- info, err := s.dao.BusinessInfoByName(ctx, b.Name)
- if err != nil {
- return
- }
- if info != nil {
- err = ecode.SearchBusinessExistErr
- return
- }
- id, err = s.dao.AddBusiness(ctx, b)
- return
- }
- // UpdateBusiness .
- func (s *Service) UpdateBusiness(ctx context.Context, b *model.MngBusiness) (err error) {
- err = s.dao.UpdateBusiness(ctx, b)
- return
- }
- // UpdateBusinessApp .
- func (s *Service) UpdateBusinessApp(ctx context.Context, business, app, incrWay string, isJob, incrOpen bool) (err error) {
- info, err := s.dao.BusinessInfoByName(ctx, business)
- if err != nil {
- return
- }
- var exist bool
- for k, v := range info.Apps {
- if v.AppID == app {
- exist = true
- if !isJob {
- info.Apps = append(info.Apps[:k], info.Apps[k+1:]...)
- break
- }
- v.IncrWay = incrWay
- v.IncrOpen = incrOpen
- }
- }
- if !exist {
- info.Apps = append(info.Apps, &model.MngBusinessApp{AppID: app, IncrWay: incrWay, IncrOpen: incrOpen})
- }
- bs, err := json.Marshal(info.Apps)
- if err != nil {
- return
- }
- info.AppsJSON = string(bs)
- err = s.dao.UpdateBusiness(ctx, info)
- return
- }
- // AssetList .
- func (s *Service) AssetList(ctx context.Context, typ int, name string, pn, ps int) (list []*model.MngAsset, total int64, err error) {
- offset := (pn - 1) * ps
- if list, err = s.dao.AssetList(ctx, typ, name, offset, ps); err != nil {
- return
- }
- total, err = s.dao.AssetTotal(ctx, typ, name)
- return
- }
- // AssetAll .
- func (s *Service) AssetAll(ctx context.Context) (list []*model.MngAsset, err error) {
- list, err = s.dao.AssetAll(ctx)
- return
- }
- // AssetInfo .
- func (s *Service) AssetInfo(ctx context.Context, id int64) (info *model.MngAsset, err error) {
- info, err = s.dao.AssetInfo(ctx, id)
- return
- }
- // AddAsset .
- func (s *Service) AddAsset(ctx context.Context, a *model.MngAsset) (id int64, err error) {
- info, err := s.dao.AssetInfoByName(ctx, a.Name)
- if err != nil {
- return
- }
- if info != nil {
- err = ecode.SearchAssetExistErr
- return
- }
- id, err = s.dao.AddAsset(ctx, a)
- return
- }
- // UpdateAsset .
- func (s *Service) UpdateAsset(ctx context.Context, a *model.MngAsset) (err error) {
- if err = s.dao.UpdateAsset(ctx, a); err != nil {
- return
- }
- if a.Type == model.MngAssetTypeDatabus {
- if a.Config == "" {
- return
- }
- v := new(model.MngAssetDatabus)
- if err = json.Unmarshal([]byte(a.Config), &v); err != nil {
- return
- }
- err = s.dao.UpdateAppAssetDatabus(ctx, a.Name, v)
- return
- }
- if a.Type == model.MngAssetTypeTable {
- if a.Config == "" {
- return
- }
- v := new(model.MngAssetTable)
- if err = json.Unmarshal([]byte(a.Config), &v); err != nil {
- return
- }
- err = s.dao.UpdateAppAssetTable(ctx, a.Name, v)
- return
- }
- return
- }
- // AppList .
- func (s *Service) AppList(ctx context.Context, business string) (list []*model.MngApp, err error) {
- list, err = s.dao.AppList(ctx, business)
- return
- }
- // AppInfo .
- func (s *Service) AppInfo(ctx context.Context, id int64) (info *model.MngApp, err error) {
- info, err = s.dao.AppInfo(ctx, id)
- return
- }
- // AddApp .
- func (s *Service) AddApp(ctx context.Context, a *model.MngApp) (id int64, err error) {
- info, err := s.dao.AppInfoByAppid(ctx, a.AppID)
- if err != nil {
- return
- }
- if info != nil {
- err = ecode.SearchAssetExistErr
- return
- }
- id, err = s.dao.AddApp(ctx, a)
- return
- }
- // UpdateApp .
- func (s *Service) UpdateApp(ctx context.Context, a *model.MngApp) (err error) {
- group := errgroup.Group{}
- group.Go(func() error {
- if a.TableName == "" {
- a.TableFormat = ""
- a.TablePrefix = ""
- return nil
- }
- tb, e := s.dao.AssetInfoByName(ctx, a.TableName)
- if e != nil {
- return e
- }
- if tb == nil || tb.Config == "" {
- return nil
- }
- val := new(model.MngAssetTable)
- if e := json.Unmarshal([]byte(tb.Config), val); e != nil {
- return e
- }
- a.TablePrefix = val.TablePrefix
- a.TableFormat = val.TableFormat
- return nil
- })
- group.Go(func() error {
- if a.DatabusName == "" {
- a.DatabusInfo = ""
- a.DatabusIndexID = ""
- return nil
- }
- dbus, e := s.dao.AssetInfoByName(ctx, a.DatabusName)
- if e != nil {
- return e
- }
- if dbus == nil || dbus.Config == "" {
- return nil
- }
- val := new(model.MngAssetDatabus)
- if e := json.Unmarshal([]byte(dbus.Config), val); e != nil {
- return e
- }
- a.DatabusInfo = val.DatabusInfo
- a.DatabusIndexID = val.DatabusIndexID
- return nil
- })
- if err = group.Wait(); err != nil {
- return
- }
- err = s.dao.UpdateApp(ctx, a)
- return
- }
- // MngCountList .
- func (s *Service) MngCountList(ctx context.Context) (list []*model.MngCount, err error) {
- daily := "每日增量"
- sum := "历史总量"
- list = []*model.MngCount{
- // 业务方
- {Business: "业务方", Type: sum, Name: "业务方历史总量", Chart: "line", Param: "business=app&type=all"},
- {Business: "业务方", Type: daily, Name: "业务方每日增量", Chart: "line", Param: "business=app&type=inc"},
- // 视频+稿件
- {Business: "视频稿件", Type: daily, Name: "archive每日增量", Chart: "line", Param: "business=archive&type=inc"},
- {Business: "视频稿件", Type: daily, Name: "video每日增量", Chart: "line", Param: "business=archive_video&type=inc"},
- {Business: "视频稿件", Type: sum, Name: "archive历史总量", Chart: "line", Param: "business=archive&type=all"},
- {Business: "视频稿件", Type: sum, Name: "video历史总量", Chart: "line", Param: "business=archive_video&type=all"},
- // 弹幕
- {Business: "弹幕", Type: daily, Name: "弹幕每日增量", Chart: "line", Param: "business=dm&type=inc"},
- {Business: "弹幕", Type: daily, Name: "弹幕举报每日增量", Chart: "line", Param: "business=dm_report&type=inc"},
- {Business: "弹幕", Type: daily, Name: "弹幕监控每日增量", Chart: "line", Param: "business=dm_monitor&type=inc"},
- {Business: "弹幕", Type: sum, Name: "弹幕历史总量", Chart: "line", Param: "business=dm&type=all"},
- {Business: "弹幕", Type: sum, Name: "弹幕举报历史总量", Chart: "line", Param: "business=dm_report&type=all"},
- {Business: "弹幕", Type: sum, Name: "弹幕监控历史总量", Chart: "line", Param: "business=dm_monitor&type=all"},
- // 评论
- {Business: "评论", Type: daily, Name: "评论每日增量", Chart: "line", Param: "business=reply&type=inc"},
- // 日志
- {Business: "日志", Type: "审核日志", Name: "审核日志每日查询量", Chart: "line", Param: "business=log_audit_access&type=inc"},
- {Business: "日志", Type: "审核日志", Name: "审核日志昨日查询情况 - 业务维度", Chart: "pie", Param: "business=log_audit_business&type=inc"},
- {Business: "日志", Type: "审核日志", Name: "审核日志昨日查询情况 - 用户维度", Chart: "pie", Param: "business=log_audit_uid&type=inc"},
- {Business: "日志", Type: "用户日志", Name: "用户日志每日查询量", Chart: "line", Param: "business=log_user_action_access&type=inc"},
- {Business: "日志", Type: "用户日志", Name: "用户日志昨日查询情况 - 业务维度", Chart: "pie", Param: "business=log_user_action_business&type=inc"},
- {Business: "日志", Type: "用户日志", Name: "用户日志昨日查询情况 - 用户维度", Chart: "pie", Param: "business=log_user_action_uid&type=inc"},
- // 用户
- {Business: "用户", Type: sum, Name: "用户历史总量", Chart: "line", Param: "business=user&type=all"},
- // 专栏
- {Business: "专栏", Type: daily, Name: "专栏每日增量", Chart: "line", Param: "business=article&type=inc"},
- {Business: "专栏", Type: sum, Name: "专栏历史总量", Chart: "line", Param: "business=article&type=all"},
- }
- return list, err
- }
- // MngCount .
- func (s *Service) MngCount(ctx context.Context, c *model.MngCount) (list []*model.MngCountRes, err error) {
- list, err = s.dao.MngCount(ctx, c)
- return
- }
- // MngCount .
- func (s *Service) MngPercent(ctx context.Context, c *model.MngCount) (list []*model.MngPercentRes, err error) {
- list, err = s.dao.MngPercent(ctx, c)
- switch c.Business {
- case "log_audit_business":
- for k, v := range list {
- if id, e := strconv.Atoi(v.Name); e == nil {
- if t, ok := s.dao.GetLogInfo("log_audit", id); ok {
- list[k].Name = t.Name
- }
- }
- }
- case "log_user_action_business":
- for k, v := range list {
- if id, e := strconv.Atoi(v.Name); e == nil {
- if t, ok := s.dao.GetLogInfo("log_user_action", id); ok {
- list[k].Name = t.Name
- }
- }
- }
- case "log_audit_uid", "log_user_action_uid":
- uid := []string{}
- for _, v := range list {
- uid = append(uid, v.Name)
- }
- if data, err := s.dao.Unames(ctx, uid); err == nil {
- for k, v := range list {
- if t, ok := data.Data[v.Name]; ok {
- list[k].Name = t
- }
- }
- }
- }
- return
- }
|