12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package service
- import (
- "context"
- "encoding/json"
- "time"
- "go-common/app/job/main/credit/model"
- "go-common/library/log"
- )
- // KPIReward send reward to user by kpi info.
- func (s *Service) KPIReward(c context.Context, nwMsg []byte, oldMsg []byte) (err error) {
- var (
- mr = &model.Kpi{}
- res model.Kpi
- nameplentID int64
- coins float64
- )
- if err = json.Unmarshal(nwMsg, mr); err != nil {
- log.Error("json.Unmarshal(%s) error(%v)", string(nwMsg), err)
- return
- }
- if res, err = s.dao.KPIInfo(c, mr.ID); err != nil {
- log.Error("json.KPIInf(%d) error(%v)", mr.ID, err)
- return
- }
- if res.HandlerStatus == 1 {
- return
- }
- s.dao.SendMsg(c, mr.Mid, _msgTitle, _msgContext)
- coins = model.KpiCoinsRate(mr.Rate)
- if coins > 0 {
- s.dao.AddMoney(c, mr.Mid, coins, model.KPICoinsReason)
- }
- s.dao.UpdateKPIHandlerStatus(c, mr.ID)
- if pend, ok := model.LevelPendantByKPI(int8(mr.Rate)); ok {
- expired := time.Now().AddDate(0, 0, 30)
- if err = s.dao.UpdateJuryExpired(c, mr.Mid, expired); err != nil {
- return
- }
- if len(pend) > 0 {
- if err = s.dao.SendPendant(c, mr.Mid, pend, model.KPIDefealtPendSendDays); err != nil {
- log.Error("s.dao.SendPendant err(%v)", err)
- }
- if err == nil {
- s.dao.UpdateKPIPendentStatus(c, mr.ID)
- }
- if mr.Mid%50 == 1 {
- time.Sleep(time.Second)
- }
- }
- }
- num, err := s.dao.CountKPIRate(c, mr.Mid)
- if err != nil {
- log.Error("s.dao.CountKPIRate(mid:%d) err(%v)", mr.Mid, err)
- return
- }
- nameplentID = model.KpiPlateIDRateTimes(num)
- if nameplentID != 0 {
- for i := 0; i <= 5; i++ {
- if err = s.dao.SendMedal(c, mr.Mid, nameplentID); err != nil {
- log.Error("s.dao.SendMedal(mid:%d nameNameplatid:%d) err(%v)", mr.Mid, nameplentID, err)
- continue
- }
- break
- }
- }
- return
- }
|