You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
626 lines
21 KiB
626 lines
21 KiB
package newcomer |
|
|
|
import ( |
|
"context" |
|
"strconv" |
|
"time" |
|
|
|
"go-common/app/interface/main/creative/model/newcomer" |
|
"go-common/library/log" |
|
|
|
"go-common/library/sync/errgroup.v2" |
|
) |
|
|
|
//DriveStateByUser drive new hand & advanced task state |
|
func (s *Service) DriveStateByUser(c context.Context, mid int64) { |
|
res, err := s.newc.UserTasksByMID(c, mid) |
|
if err != nil { |
|
log.Error("DriveStateByUser s.newc.UserTasksByMID mid(%d)|err(%v)", mid, err) |
|
return |
|
} |
|
if len(res) == 0 { |
|
return |
|
} |
|
|
|
for _, v := range res { |
|
if s.CheckTaskState(context.Background(), &newcomer.CheckTaskStateReq{MID: v.MID, TaskID: v.TaskID}) { |
|
_, err := s.newc.UpUserTask(c, v.MID, v.TaskID) |
|
if err != nil { |
|
log.Error("DriveStateByUser s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", v.MID, v.TaskID, err) |
|
} |
|
} |
|
} |
|
} |
|
|
|
//CheckTaskState check task state by mid & task id |
|
func (s *Service) CheckTaskState(c context.Context, req *newcomer.CheckTaskStateReq) (state bool) { |
|
if req == nil { |
|
return |
|
} |
|
|
|
mid, tid := req.MID, req.TaskID |
|
if _, ok := s.TaskMapCache[tid]; !ok { |
|
return |
|
} |
|
task := s.TaskMapCache[tid] |
|
//log.Info("CheckTaskState req(%+v)|task(%+v)", req, task) |
|
|
|
switch task.TargetType { |
|
case newcomer.TargetType001, newcomer.TargetType014: //新手任务-1 该UID下开放浏览的稿件≥1 / 进阶任务- 14 该UID下开放浏览的稿件≥5 |
|
cnt, err := s.arc.UpCount(c, mid) |
|
if err != nil { |
|
log.Error("CheckTaskState s.arc.UpCount mid(%d)|error(%v)", mid, err) |
|
return |
|
} |
|
if cnt >= task.TargetValue { |
|
switch task.TargetType { |
|
case newcomer.TargetType001: |
|
log.Info("CheckTaskState TargetType001 mid(%d)|count(%d)|指标:新手任务-1 该UID下开放浏览的稿件≥1", mid, cnt) |
|
case newcomer.TargetType014: |
|
log.Info("CheckTaskState TargetType014 mid(%d)|count(%d)|指标:进阶任务- 14 该UID下开放浏览的稿件≥5", mid, cnt) |
|
} |
|
state = true |
|
} |
|
|
|
case newcomer.TargetType002: //该UID分享自己视频的次数≥1 |
|
case newcomer.TargetType003: //该UID在创作学院的观看记录≥1 |
|
cnt, err := s.aca.PlayCount(c, mid) |
|
if err != nil { |
|
log.Error("s.aca.PlayCount error(%v)", err) |
|
return |
|
} |
|
if cnt >= task.TargetValue { |
|
log.Info("CheckTaskState TargetType003 mid(%d)|count(%d)|指标:新手任务-1 该UID在创作学院的观看记录≥1", mid, cnt) |
|
state = true |
|
} |
|
|
|
case newcomer.TargetType004, newcomer.TargetType005, newcomer.TargetType006, newcomer.TargetType007, newcomer.TargetType008, newcomer.TargetType009: //该UID下所有avid的获得评论数/...≥3/5 |
|
state = s.totalStat(c, mid, int64(task.TargetValue), task.TargetType) |
|
|
|
case newcomer.TargetType010, newcomer.TargetType022: //新手任务- 10 获得10个粉丝 / 进阶任务- 22 该UID的粉丝数≥1000 |
|
pl, err := s.acc.ProfileWithStat(c, mid) |
|
if err != nil { |
|
log.Error("CheckTaskState s.acc.ProfileWithStat error(%v)", err) |
|
return |
|
} |
|
if pl == nil { |
|
return |
|
} |
|
if pl.Follower >= int64(task.TargetValue) { |
|
switch task.TargetType { |
|
case newcomer.TargetType010: |
|
log.Info("CheckTaskState TargetType010 mid(%d)|follower(%d)|指标:新手任务-10 该UID的粉丝数≥10", mid, pl.Follower) |
|
case newcomer.TargetType022: |
|
log.Info("CheckTaskState TargetType022 mid(%d)|follower(%d)|指标:进阶任务-22 该UID的粉丝数≥1000", mid, pl.Follower) |
|
} |
|
state = true |
|
} |
|
|
|
case newcomer.TargetType011: //任务完成期间该UID的水印开关为打开状态 |
|
wm, err := s.wm.WaterMark(c, mid) |
|
if err != nil { |
|
log.Error("CheckTaskState s.wm.WaterMark mid(%d) error(%v)", mid, err) |
|
return |
|
} |
|
if wm != nil && wm.State == 1 && wm.URL != "" { |
|
log.Info("CheckTaskState TargetType011 mid(%d)已开启水印|指标:新手任务-11 任务完成期间该UID的水印开关为打开状态", mid) |
|
state = true |
|
} |
|
|
|
case newcomer.TargetType012: //该UID的关注列表含有“哔哩哔哩创作中心” |
|
fid := creatorMID //用户哔哩哔哩创作中心 mid |
|
fl, err := s.acc.Relations(c, mid, []int64{fid}, "") |
|
if err != nil { |
|
log.Error("CheckTaskState s.acc.Relations mid(%d)|ip(%s)|error(%v)", mid, "", err) |
|
return |
|
} |
|
if fl == nil { |
|
return |
|
} |
|
if st, ok := fl[fid]; ok && (st == 6 || st == 2) { |
|
log.Info("CheckTaskState TargetType012 mid(%d)已关注创作中心|指标:新手任务-12 该UID的关注列表含有“哔哩哔哩创作中心”", mid) |
|
state = true |
|
} |
|
|
|
case newcomer.TargetType013, newcomer.TargetType015, newcomer.TargetType016, newcomer.TargetType017, newcomer.TargetType018, newcomer.TargetType019, newcomer.TargetType020, newcomer.TargetType021: //13-该UID通过手机投稿的稿件≥1 / 15-21单稿件获得1000播放... |
|
state = s.singleStat(c, mid, int64(task.TargetValue), task.TargetType) |
|
case newcomer.TargetType023: //该UID的激励计划状态为已开通 |
|
ac, err := s.order.GrowAccountState(c, mid, 0) //类型 0 视频 2 专栏 3 素材 |
|
if err != nil { |
|
log.Error("CheckTaskState s.order.GrowUpPlan mid(%d) error(%v)", mid, err) |
|
return |
|
} |
|
if ac == nil { |
|
return |
|
} |
|
if ac.State == 3 { //账号状态; 1: 未申请; 2: 待审核; 3: 已签约; 4.已驳回; 5.主动退出; 6:被动退出; 7:封禁 |
|
log.Info("CheckTaskState TargetType023 mid(%d)已签约激励计划|指标:进阶任务-23 该UID的激励计划状态为已开通", mid) |
|
state = true |
|
} |
|
|
|
case newcomer.TargetType024: //该UID粉丝勋章为开启状态 |
|
medal, err := s.medal.Medal(c, mid) |
|
if err != nil { |
|
log.Error("CheckTaskState s.medal.Medal mid(%d) error(%v)", mid, err) |
|
return |
|
} |
|
if medal == nil { |
|
return |
|
} |
|
status, err := strconv.Atoi(medal.Status) |
|
if err != nil { |
|
log.Error("CheckTaskState strconv.Atoi medal.Status(%s) error(%v)", medal.Status, err) |
|
return |
|
} |
|
if status == 2 { //勋章审核状态 -1已拒绝 0未申请 1已申请 2已开通 |
|
log.Info("CheckTaskState TargetType024 mid(%d)已开通粉丝勋章|指标:进阶任务-24 该UID粉丝勋章为开启状态", mid) |
|
state = true |
|
} |
|
} |
|
return |
|
} |
|
|
|
func (s *Service) totalStat(c context.Context, mid, val int64, ty int8) (state bool) { |
|
st, err := s.data.UpStat(c, mid, time.Now().AddDate(0, 0, -1).Add(-12*time.Hour).Format("20060102")) |
|
if err != nil || st == nil { |
|
log.Error("totalStat s.data.NewStat mid(%d) st(%+v) error(%v) ", mid, st, err) |
|
return |
|
} |
|
|
|
switch ty { |
|
case newcomer.TargetType004: |
|
if st.Reply >= val { |
|
log.Info("CheckTaskState TargetType004 mid(%d)|v(%+v)|指标:新手任务-4 该UID下所有avid的获得评论数≥3", mid, st.Reply) |
|
state = true |
|
} |
|
case newcomer.TargetType005: |
|
if st.Share >= val { |
|
log.Info("CheckTaskState TargetType005 mid(%d)|v(%+v)|指标:新手任务-5 该UID下所有avid获得分享数≥3", mid, st.Share) |
|
state = true |
|
} |
|
case newcomer.TargetType006: |
|
if st.Fav >= val { |
|
log.Info("CheckTaskState TargetType006 mid(%d)|v(%+v)|指标:新手任务-6 该UID的所有avid的获得收藏数≥5", mid, st.Fav) |
|
state = true |
|
} |
|
case newcomer.TargetType007: |
|
if st.Coin >= val { |
|
log.Info("CheckTaskState TargetType007 mid(%d)|v(%+v)|指标:新手任务-7 该UID下所有avid的获得硬币数≥5", mid, st.Coin) |
|
state = true |
|
} |
|
case newcomer.TargetType008: |
|
if st.Like >= val { |
|
log.Info("CheckTaskState TargetType008 mid(%d)|v(%+v)|指标:新手任务-8 该UID下所有avid获得点赞数≥5", mid, st.Like) |
|
state = true |
|
} |
|
case newcomer.TargetType009: |
|
if st.Dm >= val { |
|
log.Info("CheckTaskState TargetType009 mid(%d)|v(%+v)|指标:新手任务-9 该UID下所有avid的获得弹幕数≥5", mid, st.Dm) |
|
state = true |
|
} |
|
} |
|
|
|
return |
|
} |
|
|
|
func (s *Service) singleStat(c context.Context, mid, val int64, ty int8) (state bool) { |
|
st, err := s.data.UpArchiveStatQuery(c, mid, time.Now().AddDate(0, 0, -1).Add(-12*time.Hour).Format("20060102")) |
|
if err != nil || st == nil { |
|
log.Error("singleStat s.data.UpArchiveStatQuery mid(%d)|err(%v)", mid, err) |
|
return |
|
} |
|
|
|
switch ty { |
|
case newcomer.TargetType013: |
|
if st.FromPhoneNum >= val { |
|
log.Info("CheckTaskState TargetType013 mid(%d)|v(%+v)|指标:进阶任务-13 用手机投稿上传视频", mid, st.FromPhoneNum) |
|
state = true |
|
} |
|
case newcomer.TargetType015: |
|
if st.PlayV >= val { |
|
log.Info("CheckTaskState TargetType015 mid(%d)|v(%+v)|指标:进阶任务-15 该UID下任意avid的获得点击量≥1000", mid, st.PlayV) |
|
state = true |
|
} |
|
case newcomer.TargetType016: |
|
if st.ReplyV >= val { |
|
log.Info("CheckTaskState TargetType016 mid(%d)|v(%+v)|指标:进阶任务-16 该UID下任意avid的评论≥30", mid, st.ReplyV) |
|
state = true |
|
} |
|
case newcomer.TargetType017: |
|
if st.ShareV >= val { |
|
log.Info("CheckTaskState TargetType017 mid(%d)|v(%+v)|指标:进阶任务-17 该UID下任意avid的获得分享数≥10", mid, st.ShareV) |
|
state = true |
|
} |
|
case newcomer.TargetType018: |
|
if st.FavV >= val { |
|
log.Info("CheckTaskState TargetType018 mid(%d)|v(%+v)|指标:进阶任务-18 该UID下任意avid的获得收藏数≥30", mid, st.FavV) |
|
state = true |
|
} |
|
case newcomer.TargetType019: |
|
if st.CoinV >= val { |
|
log.Info("CheckTaskState TargetType019 mid(%d)|v(%+v)|指标:进阶任务-19 该UID下任意avid的获得硬币数≥50", mid, st.CoinV) |
|
state = true |
|
} |
|
case newcomer.TargetType020: |
|
if st.LikeV >= val { |
|
log.Info("CheckTaskState TargetType020 mid(%d)|v(%+v)|指标:进阶任务-20 该UID下任意avid的获得点赞数≥50", mid, st.LikeV) |
|
state = true |
|
} |
|
case newcomer.TargetType021: |
|
if st.DmV >= val { |
|
log.Info("CheckTaskState TargetType021 mid(%d)|v(%+v)|指标:进阶任务-21 该UID下任意avid的获得弹幕数≥50", mid, st.DmV) |
|
state = true |
|
} |
|
} |
|
return |
|
} |
|
|
|
//syncCheckTaskStatus check task status |
|
func (s *Service) syncCheckTaskStatus(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
log.Info("syncCheckTaskStatus mid(%d) | tasks count(%d)", mid, len(tasks)) |
|
tsm := getTaskSortMap(tasks) |
|
if len(tsm) == 0 { |
|
return |
|
} |
|
g := &errgroup.Group{} |
|
for k := range tsm { |
|
switch k { |
|
case newcomer.ArcUpCount: //该UID下开放浏览的稿件数量 |
|
g.Go(func(context.Context) error { |
|
s.arcUpCount(c, mid, tsm[newcomer.ArcUpCount]) |
|
return nil |
|
}) |
|
case newcomer.AcaPlayCount: //该UID在创作学院的观看记录 |
|
g.Go(func(context.Context) error { |
|
s.acaPlayCount(c, mid, tsm[newcomer.AcaPlayCount]) |
|
return nil |
|
}) |
|
case newcomer.DataUpStat: //该UID下所有avid的最高计数 |
|
g.Go(func(context.Context) error { |
|
s.dataUpStat(c, mid, tsm[newcomer.DataUpStat]) |
|
return nil |
|
}) |
|
case newcomer.AccProfileWithStat: //粉丝数量 |
|
g.Go(func(context.Context) error { |
|
s.accProfileWithStat(c, mid, tsm[newcomer.AccProfileWithStat]) |
|
return nil |
|
}) |
|
case newcomer.WmWaterMark: //水印状态 |
|
g.Go(func(context.Context) error { |
|
s.wmWaterMark(c, mid, tsm[newcomer.WmWaterMark]) |
|
return nil |
|
}) |
|
case newcomer.AccRelation: //该UID的关注列表含有“哔哩哔哩创作中心” |
|
g.Go(func(context.Context) error { |
|
s.accRelation(c, mid, tsm[newcomer.AccRelation]) |
|
return nil |
|
}) |
|
case newcomer.DataUpArchiveStat: //该UID下任意avid的计数 |
|
g.Go(func(context.Context) error { |
|
s.dataUpArchiveStatQuery(c, mid, tsm[newcomer.DataUpArchiveStat]) |
|
return nil |
|
}) |
|
case newcomer.OrderGrowAccountState: //激励计划状态 |
|
g.Go(func(context.Context) error { |
|
s.orderGrowAccountState(c, mid, tsm[newcomer.OrderGrowAccountState]) |
|
return nil |
|
}) |
|
case newcomer.MedalCheckMedal: //该UID粉丝勋章 |
|
g.Go(func(context.Context) error { |
|
s.medalCheckMedal(c, mid, tsm[newcomer.MedalCheckMedal]) |
|
return nil |
|
}) |
|
} |
|
} |
|
g.Wait() |
|
} |
|
|
|
func (s *Service) arcUpCount(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
cnt, err := s.arc.UpCount(c, mid) |
|
if err != nil { |
|
log.Error("arcUpCount s.arc.UpCount mid(%d)|error(%v)", mid, err) |
|
return |
|
} |
|
for _, v := range tasks { |
|
if cnt >= v.TargetValue { |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("arcUpCount s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
} |
|
log.Info("arcUpCount finish task mid(%d)|count(%d)|", mid, cnt) |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) acaPlayCount(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
cnt, err := s.aca.PlayCount(c, mid) |
|
if err != nil { |
|
log.Error("acaPlayCount s.aca.PlayCount error(%v)", err) |
|
return |
|
} |
|
for _, v := range tasks { |
|
if cnt >= v.TargetValue { |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("acaPlayCount s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
continue |
|
} |
|
log.Info("acaPlayCount finish task mid(%d)|count(%d)|", mid, cnt) |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) dataUpStat(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
st, err := s.data.UpStat(c, mid, time.Now().AddDate(0, 0, -1).Add(-12*time.Hour).Format("20060102")) |
|
if err != nil || st == nil { |
|
log.Error("dataUpStat s.data.NewStat mid(%d) st(%+v) error(%v) ", mid, st, err) |
|
return |
|
} |
|
|
|
for _, v := range tasks { |
|
val := int64(v.TargetValue) |
|
state := false |
|
switch v.TargetType { |
|
case newcomer.TargetType004: |
|
if st.Reply >= val { |
|
state = true |
|
} |
|
log.Info("dataUpStat TargetType004 mid(%d)|v(%+v)|", mid, st.Reply) |
|
case newcomer.TargetType005: |
|
if st.Share >= val { |
|
state = true |
|
} |
|
log.Info("dataUpStat TargetType005 mid(%d)|v(%+v)|", mid, st.Share) |
|
case newcomer.TargetType006: |
|
if st.Fav >= val { |
|
state = true |
|
} |
|
log.Info("dataUpStat TargetType006 mid(%d)|v(%+v)|", mid, st.Fav) |
|
case newcomer.TargetType007: |
|
if st.Coin >= val { |
|
state = true |
|
} |
|
log.Info("dataUpStat TargetType007 mid(%d)|v(%+v)|", mid, st.Coin) |
|
case newcomer.TargetType008: |
|
if st.Like >= val { |
|
state = true |
|
} |
|
log.Info("dataUpStat TargetType008 mid(%d)|v(%+v)|", mid, st.Like) |
|
case newcomer.TargetType009: |
|
if st.Dm >= val { |
|
state = true |
|
} |
|
log.Info("dataUpStat TargetType009 mid(%d)|v(%+v)|", mid, st.Dm) |
|
} |
|
if state { |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("dataUpStat s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
} |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) accProfileWithStat(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
pl, err := s.acc.ProfileWithStat(c, mid) |
|
if err != nil { |
|
log.Error("accProfileWithStat s.acc.ProfileWithStat error(%v)", err) |
|
return |
|
} |
|
if pl == nil { |
|
return |
|
} |
|
for _, v := range tasks { |
|
if pl.Follower >= int64(v.TargetValue) { |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("accProfileWithStat s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
continue |
|
} |
|
log.Info("accProfileWithStat finish task mid(%d)|follower(%d)|", mid, pl.Follower) |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) wmWaterMark(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
wm, err := s.wm.WaterMark(c, mid) |
|
if err != nil { |
|
log.Error("wmWaterMark s.wm.WaterMark mid(%d) error(%v)", mid, err) |
|
return |
|
} |
|
for _, v := range tasks { |
|
if wm != nil && wm.State == 1 && wm.URL != "" { |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("wmWaterMark s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
continue |
|
} |
|
log.Info("wmWaterMark finish task mid(%d)|state(%d)|", mid, wm.State) |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) accRelation(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
fid := creatorMID //用户哔哩哔哩创作中心 mid |
|
fl, err := s.acc.Relations(c, mid, []int64{fid}, "") |
|
if err != nil { |
|
log.Error("accRelation s.acc.Relations mid(%d)|ip(%s)|error(%v)", mid, "", err) |
|
return |
|
} |
|
if fl == nil { |
|
return |
|
} |
|
for _, v := range tasks { |
|
if st, ok := fl[fid]; ok && (st == 6 || st == 2) { |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("accRelation s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
continue |
|
} |
|
log.Info("accRelation finish task mid(%d)|state(%d)|", mid, st) |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) dataUpArchiveStatQuery(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
st, err := s.data.UpArchiveStatQuery(c, mid, time.Now().AddDate(0, 0, -1).Add(-12*time.Hour).Format("20060102")) |
|
if err != nil || st == nil { |
|
log.Error("dataUpArchiveStatQuery s.data.UpArchiveStatQuery mid(%d)|err(%v)", mid, err) |
|
return |
|
} |
|
|
|
for _, v := range tasks { |
|
val := int64(v.TargetValue) |
|
state := false |
|
switch v.TargetType { |
|
case newcomer.TargetType013: |
|
if st.FromPhoneNum >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType013 mid(%d)|v(%+v)|", mid, st.FromPhoneNum) |
|
state = true |
|
} |
|
case newcomer.TargetType015: |
|
if st.PlayV >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType015 mid(%d)|v(%+v)|", mid, st.PlayV) |
|
state = true |
|
} |
|
case newcomer.TargetType016: |
|
if st.ReplyV >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType016 mid(%d)|v(%+v)|", mid, st.ReplyV) |
|
state = true |
|
} |
|
case newcomer.TargetType017: |
|
if st.ShareV >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType017 mid(%d)|v(%+v)|", mid, st.ShareV) |
|
state = true |
|
} |
|
case newcomer.TargetType018: |
|
if st.FavV >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType018 mid(%d)|v(%+v)|", mid, st.FavV) |
|
state = true |
|
} |
|
case newcomer.TargetType019: |
|
if st.CoinV >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType019 mid(%d)|v(%+v)|", mid, st.CoinV) |
|
state = true |
|
} |
|
case newcomer.TargetType020: |
|
if st.LikeV >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType020 mid(%d)|v(%+v)|", mid, st.LikeV) |
|
state = true |
|
} |
|
case newcomer.TargetType021: |
|
if st.DmV >= val { |
|
log.Info("dataUpArchiveStatQuery TargetType021 mid(%d)|v(%+v)|", mid, st.DmV) |
|
state = true |
|
} |
|
} |
|
if state { |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("dataUpArchiveStatQuery s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
} |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) orderGrowAccountState(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
ac, err := s.order.GrowAccountState(c, mid, 0) |
|
if err != nil { |
|
log.Error("orderGrowAccountState s.order.GrowUpPlan mid(%d) error(%v)", mid, err) |
|
return |
|
} |
|
if ac == nil { |
|
return |
|
} |
|
for _, v := range tasks { |
|
if ac.State == 3 { //账号状态; 1: 未申请; 2: 待审核; 3: 已签约; 4.已驳回; 5.主动退出; 6:被动退出; 7:封禁 |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("orderGrowAccountState s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
continue |
|
} |
|
log.Info("orderGrowAccountState finish task mid(%d)|state(%d)|", mid, ac.State) |
|
} |
|
} |
|
} |
|
|
|
func (s *Service) medalCheckMedal(c context.Context, mid int64, tasks []*newcomer.Task) { |
|
if len(tasks) == 0 { |
|
return |
|
} |
|
medal, err := s.medal.Medal(c, mid) |
|
if err != nil { |
|
log.Error("medalCheckMedal s.medal.Medal mid(%d) error(%v)", mid, err) |
|
return |
|
} |
|
if medal == nil { |
|
return |
|
} |
|
for _, v := range tasks { |
|
status, err := strconv.Atoi(medal.Status) |
|
if err != nil { |
|
log.Error("medalCheckMedal strconv.Atoi medal.Status(%s) error(%v)", medal.Status, err) |
|
continue |
|
} |
|
if status == 2 { //勋章审核状态 -1已拒绝 0未申请 1已申请 2已开通 |
|
_, err := s.newc.UpUserTask(c, mid, v.ID) |
|
if err != nil { |
|
log.Error("medalCheckMedal s.newc.UpUserTask mid(%d)|task id(%d)|err(%v)", mid, v.ID, err) |
|
continue |
|
} |
|
log.Info("medalCheckMedal finish task mid(%d)|state(%d)|", mid, status) |
|
} |
|
} |
|
} |
|
|
|
func getTaskSortMap(tasks []*newcomer.Task) map[int8][]*newcomer.Task { |
|
taskSortMap := make(map[int8][]*newcomer.Task) |
|
for _, v := range tasks { |
|
switch v.TargetType { |
|
case newcomer.TargetType001, newcomer.TargetType014: |
|
taskSortMap[newcomer.ArcUpCount] = append(taskSortMap[newcomer.ArcUpCount], v) |
|
case newcomer.TargetType002: //分享 |
|
case newcomer.TargetType003: |
|
taskSortMap[newcomer.AcaPlayCount] = append(taskSortMap[newcomer.AcaPlayCount], v) |
|
case newcomer.TargetType004, newcomer.TargetType005, newcomer.TargetType006, newcomer.TargetType007, newcomer.TargetType008, newcomer.TargetType009: |
|
taskSortMap[newcomer.DataUpStat] = append(taskSortMap[newcomer.DataUpStat], v) |
|
case newcomer.TargetType010, newcomer.TargetType022: |
|
taskSortMap[newcomer.AccProfileWithStat] = append(taskSortMap[newcomer.AccProfileWithStat], v) |
|
case newcomer.TargetType011: |
|
taskSortMap[newcomer.WmWaterMark] = append(taskSortMap[newcomer.WmWaterMark], v) |
|
case newcomer.TargetType012: |
|
taskSortMap[newcomer.AccRelation] = append(taskSortMap[newcomer.AccRelation], v) |
|
case newcomer.TargetType013, newcomer.TargetType015, newcomer.TargetType016, newcomer.TargetType017, newcomer.TargetType018, newcomer.TargetType019, newcomer.TargetType020, newcomer.TargetType021: |
|
taskSortMap[newcomer.DataUpArchiveStat] = append(taskSortMap[newcomer.DataUpArchiveStat], v) |
|
case newcomer.TargetType023: |
|
taskSortMap[newcomer.OrderGrowAccountState] = append(taskSortMap[newcomer.OrderGrowAccountState], v) |
|
case newcomer.TargetType024: |
|
taskSortMap[newcomer.MedalCheckMedal] = append(taskSortMap[newcomer.MedalCheckMedal], v) |
|
} |
|
} |
|
return taskSortMap |
|
}
|
|
|