123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package service
- import (
- "context"
- "time"
- "go-common/app/job/main/mcn/model"
- "go-common/library/log"
- "github.com/pkg/errors"
- )
- // UpMcnSignStateCron .
- func (s *Service) UpMcnSignStateCron() {
- defer func() {
- if r := recover(); r != nil {
- r = errors.WithStack(r.(error))
- log.Error("recover panic error(%+v)", r)
- }
- }()
- var (
- err error
- c = context.TODO()
- now = time.Now()
- nowDate = time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local).Unix()
- mss []*model.MCNSignInfo
- )
- if mss, err = s.dao.McnSigns(c); err != nil {
- log.Error("s.dao.McnSigns error(%+v)", err)
- return
- }
- if len(mss) == 0 {
- log.Warn("mcn sign data is empty!")
- return
- }
- for _, v := range mss {
- var state int8
- switch {
- case v.State.NotDealState():
- continue
- case nowDate > v.EndDate.Time().Unix() && nowDate-v.EndDate.Time().Unix() <= model.ThirtyDayUnixTime && v.State != model.MCNSignStateOnCooling:
- state = int8(model.MCNSignStateOnCooling)
- case nowDate > v.EndDate.Time().Unix() && nowDate-v.EndDate.Time().Unix() > model.ThirtyDayUnixTime:
- state = int8(model.MCNSignStateOnExpire)
- case nowDate < v.BeginDate.Time().Unix() && v.State != model.MCNSignStateOnPreOpen:
- state = int8(model.MCNSignStateOnPreOpen)
- case v.BeginDate.Time().Unix() <= nowDate && nowDate <= v.EndDate.Time().Unix() && v.State != model.MCNSignStateOnSign && v.State == model.MCNSignStateOnPreOpen:
- state = int8(model.MCNSignStateOnSign)
- default:
- continue
- }
- if _, err = s.dao.UpMcnSignStateOP(c, v.SignID, state); err != nil {
- log.Error("s.dao.UpMcnSignStateOP(%d,%d) error(%+v)", v.SignID, state, err)
- continue
- }
- if err = s.dao.DelMcnSignCache(c, v.McnMid); err != nil {
- log.Error("s.dao.DelMcnSignCache(%d) error(%+v)", v.McnMid, err)
- continue
- }
- log.Info("signID(%d) change old state(%d) to new state(%d)", v.SignID, v.State, state)
- }
- }
- // UpExpirePayCron .
- func (s *Service) UpExpirePayCron() {
- defer func() {
- if r := recover(); r != nil {
- r = errors.WithStack(r.(error))
- log.Error("recover panic error(%+v)", r)
- }
- }()
- var (
- err error
- c = context.TODO()
- sps []*model.SignPayInfo
- )
- if sps, err = s.dao.McnSignPayWarns(c); err != nil {
- log.Error("s.dao.McnSignPayWarns error(%+v)", err)
- return
- }
- if len(sps) == 0 {
- log.Warn("mcn sign pay date is empty!")
- return
- }
- ms := make(map[int64]struct{})
- for _, v := range sps {
- ms[v.SignID] = struct{}{}
- }
- for signID := range ms {
- if _, err = s.dao.UpMcnSignPayExpOP(c, signID); err != nil {
- log.Error("s.dao.UpMcnSignPayExpOP(%d) error(%+v)", signID, err)
- continue
- }
- log.Info("sign_id(%d) change pay data warn state to 2", signID)
- }
- }
|