fix: 修复订阅消息发送逻辑
This commit is contained in:
@@ -8,7 +8,7 @@ import (
|
||||
type UserBadge struct {
|
||||
global.BaseModel
|
||||
UserId string `gorm:"type:varchar(50);index;not null;column:user_id;comment:用户id" json:"userId"`
|
||||
BadgeId string `gorm:"index:idx_user_badge,unique;not null;column:badge_id;comment:徽章配置ID" json:"badgeId"`
|
||||
BadgeId string `gorm:"index:idx_user_badge;not null;column:badge_id;comment:徽章配置ID" json:"badgeId"`
|
||||
AcquiredAt time.Time `gorm:"autoCreateTime;column:acquired_at;comment:获得时间" json:"acquiredAt"`
|
||||
Badge *BadgeConfig `json:"badge" gorm:"foreignKey:BadgeId"`
|
||||
}
|
||||
|
||||
@@ -107,10 +107,10 @@ func SendCareMsg() error {
|
||||
}
|
||||
|
||||
if smr.Errcode != 0 {
|
||||
global.Logger.Error("订阅消息发送失败!" + userId + "open-id" + user.MiniOpenId)
|
||||
return fmt.Errorf("微信服务器返回错误: errcode=%d, errmsg=%s", smr.Errcode, smr.Errmsg)
|
||||
global.Logger.Error(fmt.Sprintf("订阅消息发送失败! userId: %s, openId: %s, errcode: %d, errmsg: %s", userId, user.MiniOpenId, smr.Errcode, smr.Errmsg))
|
||||
continue // 不要因为某个用户失败(如43101没配额)而中断整个发送流程
|
||||
}
|
||||
global.Logger.Info("订阅消息发送成功!" + userId + "open-id" + user.MiniOpenId)
|
||||
global.Logger.Info(fmt.Sprintf("订阅消息发送成功! userId: %s, openId: %s", userId, user.MiniOpenId))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
package task
|
||||
|
||||
//
|
||||
//import (
|
||||
// "sundynix-go/global"
|
||||
// "sundynix-go/model/plant"
|
||||
// "time"
|
||||
//
|
||||
// "go.uber.org/zap"
|
||||
//)
|
||||
//
|
||||
//// GeneratorTodayCare 生成今日养护任务
|
||||
//func GeneratorTodayCare() error {
|
||||
// now := time.Now()
|
||||
// today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local)
|
||||
//
|
||||
// //1.获取所有的养护计划
|
||||
// var plans []*plant.CarePlan
|
||||
// if err := global.DB.Find(&plans).Error; err != nil {
|
||||
// global.Logger.Error("获取所有的养护计划失败", zap.Error(err))
|
||||
// return err
|
||||
// }
|
||||
// for _, plan := range plans {
|
||||
// if plan.Period > 0 {
|
||||
// var todayCare plant.TodayCare
|
||||
// err := global.DB.Where("care_id = ?", plan.Id).First(&todayCare).Error
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// // 如果今日日期满足周期循环
|
||||
// if plan.ShouldTriggerOn() {
|
||||
// // 如果不是逾期的任务 就把ExpectedDate改为今日
|
||||
// if todayCare.Status != 4 {
|
||||
// todayCare.Status = 1
|
||||
// todayCare.ExpectedDate = today
|
||||
// if err = global.DB.Save(&todayCare).Error; err != nil {
|
||||
// return err
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return nil
|
||||
//}
|
||||
//
|
||||
//// UpdateExpireCare 更新过期的养护任务
|
||||
//func UpdateExpireCare() error {
|
||||
// now := time.Now()
|
||||
// // 归一化到当天的0点(本地时区)
|
||||
// today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local)
|
||||
// var expiredCares []*plant.TodayCare
|
||||
// // 1.查询所有未完成且预计日期在今天之前的养护任务
|
||||
// if err := global.DB.Where("status = ? and expected_date < ?", 1, today).
|
||||
// Or("status = ?", 4).Find(&expiredCares).Error; err != nil {
|
||||
// return err
|
||||
// }
|
||||
// //2.计算过期天数并更新状态为逾期
|
||||
// for _, care := range expiredCares {
|
||||
// expireDays := int(today.Sub(care.ExpectedDate).Hours() / 24)
|
||||
// updateMap := map[string]interface{}{
|
||||
// "is_expired": 1,
|
||||
// "expire_days": expireDays,
|
||||
// "status": 4,
|
||||
// "expected_date": today,
|
||||
// }
|
||||
// if err := global.DB.Model(care).Updates(updateMap).Error; err != nil {
|
||||
// return err
|
||||
// }
|
||||
// }
|
||||
// return nil
|
||||
//}
|
||||
//
|
||||
//// GenerateUserCenter 更新用户中心数据
|
||||
//func GenerateUserCenter() error {
|
||||
// //1.所有的用户
|
||||
// var users []plant.Personal
|
||||
// if err := global.DB.Find(&users).Error; err != nil {
|
||||
// return err
|
||||
// }
|
||||
// now := time.Now()
|
||||
// // 归一化到当天的0点(本地时区)
|
||||
// now = time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local)
|
||||
// for _, user := range users {
|
||||
// joinDate := user.JoinDate
|
||||
// //1.加入多少天
|
||||
// joinDays := int(now.Sub(joinDate).Hours() / 24)
|
||||
// //2.植物数量
|
||||
// var plantCount int64
|
||||
// err := global.DB.Model(&plant.MyPlant{}).Where("user_id = ?", user.Id).Count(&plantCount).Error
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// //3.养护次数
|
||||
// var careCount int64
|
||||
// err = global.DB.Model(&plant.CareRecord{}).Where("user_id = ?", user.Id).Count(&careCount).Error
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
//
|
||||
// //4.徽章数量 todo
|
||||
// var badgeCount int64
|
||||
// err = global.DB.Model(&plant.MyBadge{}).Where("user_id = ?", user.Id).Count(&badgeCount).Error
|
||||
// user.BadgeCount = int(badgeCount)
|
||||
// // 5. 使用 Updates 方法进行精确、安全的更新
|
||||
// // 只更新我们刚刚计算和查询出的这四个字段
|
||||
// updateData := map[string]interface{}{
|
||||
// "join_days": joinDays,
|
||||
// "plant_count": plantCount,
|
||||
// "care_count": careCount,
|
||||
// "badge_count": badgeCount,
|
||||
// }
|
||||
// if err := global.DB.Model(&plant.Personal{}).Where("id = ?", user.Id).Updates(updateData).Error; err != nil {
|
||||
// return err
|
||||
// }
|
||||
// }
|
||||
// return nil
|
||||
//}
|
||||
Reference in New Issue
Block a user