123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626 |
- 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
- }
|