go-common/app/interface/main/creative/service/newcomer/state.go

627 lines
21 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
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
}