作者 tangxvhui

后台登录时检查/设置公司的初始数据

  1 +测试环境服务端域名 http://sumifcc-discuss-test.sumifcc.com/
@@ -93,12 +93,70 @@ func (l *SystemUserInfoLogic) SystemUserInfo(req *types.SystemUserInfoRequest) ( @@ -93,12 +93,70 @@ func (l *SystemUserInfoLogic) SystemUserInfo(req *types.SystemUserInfoRequest) (
93 } 93 }
94 } 94 }
95 } 95 }
  96 + err = l.initSystemData(companyId)
  97 + if err != nil {
  98 + return nil, err
  99 + }
96 return 100 return
97 } 101 }
98 102
99 -// 后台登录时检查/设置公司的初始数据 103 +// 后台登录时检查/设置公司的初始数据
100 func (l *SystemUserInfoLogic) initSystemData(companyId int64) error { 104 func (l *SystemUserInfoLogic) initSystemData(companyId int64) error {
101 - // TODO 初始设置文章标签 105 + // 初始设置文章标签
  106 + queryOption := domain.NewQueryOptions().WithCountOnly()
  107 + conn := l.svcCtx.DefaultDBConn()
  108 + cnt, _, err := l.svcCtx.ArticleTagRepository.Find(l.ctx, conn, companyId, queryOption)
  109 + if err != nil {
  110 + return xerr.NewErrMsgErr("初始话公司数据失败", err)
  111 + }
  112 + if cnt == 0 {
  113 + articleTags := []*domain.ArticleTag{
  114 + {
  115 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  116 + Name: "紧急重要", Category: "紧急重要", Remark: "优先解决", SortBy: 1,
  117 + },
  118 + {
  119 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  120 + Name: "不紧急不重要", Category: "紧急重要", Remark: "给别人做", SortBy: 2,
  121 + },
  122 + {
  123 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  124 + Name: "紧急不重要", Category: "紧急重要", Remark: "有空再做", SortBy: 3,
  125 + },
  126 + {
  127 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  128 + Name: "不紧急重要", Category: "紧急重要", Remark: "制定计划去做", SortBy: 4,
  129 + },
  130 + {
  131 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  132 + Name: "大机会高风险", Category: "机会风险", Remark: "谨慎考虑专项讨论", SortBy: 5,
  133 + },
  134 + {
  135 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  136 + Name: "大机会中风险", Category: "机会风险", Remark: "加大关注值得尝试", SortBy: 6,
  137 + },
  138 + {
  139 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  140 + Name: "大机会低风险", Category: "机会风险", Remark: "全员投入抓紧落实", SortBy: 7,
  141 + },
  142 + {
  143 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  144 + Name: "中机会高风险", Category: "机会风险", Remark: "专人跟踪成立项目", SortBy: 8,
  145 + },
  146 + {
  147 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  148 + Name: "中机会中风险", Category: "机会风险", Remark: "讨论落实", SortBy: 9,
  149 + },
  150 + {
  151 + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0},
  152 + Name: "中机会低风险", Category: "机会风险", Remark: "解决问题多手准备", SortBy: 10,
  153 + },
  154 + }
  155 + err = l.svcCtx.ArticleTagRepository.CreateInBatches(l.ctx, conn, articleTags)
  156 + if err != nil {
  157 + return xerr.NewErrMsgErr("初始话公司数据失败", err)
  158 + }
  159 + }
102 160
103 return nil 161 return nil
104 } 162 }
@@ -33,7 +33,28 @@ func (repository *ArticleTagRepository) Insert(ctx context.Context, conn transac @@ -33,7 +33,28 @@ func (repository *ArticleTagRepository) Insert(ctx context.Context, conn transac
33 33
34 } 34 }
35 35
36 -// func (repository *ArticleTagRepository) CreateInBatches 36 +func (repository *ArticleTagRepository) CreateInBatches(ctx context.Context, conn transaction.Conn, dm []*domain.ArticleTag) error {
  37 +
  38 + var (
  39 + ms = []*models.ArticleTag{}
  40 + tx = conn.DB()
  41 + )
  42 +
  43 + for _, val := range dm {
  44 + m, err := repository.DomainModelToModel(val)
  45 + if err != nil {
  46 + return err
  47 + }
  48 + ms = append(ms, m)
  49 + }
  50 + if tx = tx.CreateInBatches(ms, 100); tx.Error != nil {
  51 + return tx.Error
  52 + }
  53 + for i, val := range ms {
  54 + dm[i].Id = val.Id
  55 + }
  56 + return nil
  57 +}
37 58
38 func (repository *ArticleTagRepository) Update(ctx context.Context, conn transaction.Conn, dm *domain.ArticleTag) (*domain.ArticleTag, error) { 59 func (repository *ArticleTagRepository) Update(ctx context.Context, conn transaction.Conn, dm *domain.ArticleTag) (*domain.ArticleTag, error) {
39 var ( 60 var (
@@ -24,6 +24,7 @@ type ArticleTag struct { @@ -24,6 +24,7 @@ type ArticleTag struct {
24 } 24 }
25 type ArticleTagRepository interface { 25 type ArticleTagRepository interface {
26 Insert(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) 26 Insert(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error)
  27 + CreateInBatches(ctx context.Context, conn transaction.Conn, dm []*ArticleTag) error
27 Update(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) 28 Update(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error)
28 Delete(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) 29 Delete(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error)
29 UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) 30 UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error)