Commit c184eee5 authored by hujiebin's avatar hujiebin

Merge branch 'feature/family' into feature/3.5

parents 9ef41d0e 6363907b
...@@ -178,10 +178,17 @@ func IncrGroupPowerExpOnMic(model *domain.Model, groupPowerId, userId mysql.ID, ...@@ -178,10 +178,17 @@ func IncrGroupPowerExpOnMic(model *domain.Model, groupPowerId, userId mysql.ID,
if err != nil { if err != nil {
return err return err
} }
onMicSeconds := time.Now().Unix() - joinMicTimestamp nowTs := time.Now().Unix()
if onMic.LastCalTs == joinMicTimestamp { curTs := joinMicTimestamp
onMicSeconds = onMicSeconds - int64(numDetails*600) // 扣除之前加过的时间 day0Ts := utils.GetZeroTime(time.Now()).Unix()
if joinMicTimestamp < onMic.LastCalTs {
curTs = onMic.LastCalTs
} }
// 跨天
if curTs < day0Ts {
curTs = day0Ts
}
onMicSeconds := nowTs - curTs
var moreDetails []*GroupPowerOnMicDetail var moreDetails []*GroupPowerOnMicDetail
totalMinuteTimes := int((onMic.Seconds + onMicSeconds) / 600) // 今天实际能加经验次数 totalMinuteTimes := int((onMic.Seconds + onMicSeconds) / 600) // 今天实际能加经验次数
if totalMinuteTimes >= MaxMinuteTimes { if totalMinuteTimes >= MaxMinuteTimes {
...@@ -212,12 +219,12 @@ func IncrGroupPowerExpOnMic(model *domain.Model, groupPowerId, userId mysql.ID, ...@@ -212,12 +219,12 @@ func IncrGroupPowerExpOnMic(model *domain.Model, groupPowerId, userId mysql.ID,
} }
// 更新micExp信息 // 更新micExp信息
onMic.Seconds = onMic.Seconds + onMicSeconds onMic.Seconds = onMic.Seconds + onMicSeconds
onMic.LastCalTs = joinMicTimestamp onMic.LastCalTs = nowTs
if err := model.DB().Model(GroupPowerOnMic{}).Clauses(clause.OnConflict{Columns: []clause.Column{{Name: "date"}, {Name: "group_power_id"}}, if err := model.DB().Model(GroupPowerOnMic{}).Clauses(clause.OnConflict{Columns: []clause.Column{{Name: "date"}, {Name: "group_power_id"}},
DoUpdates: clause.Assignments( DoUpdates: clause.Assignments(
map[string]interface{}{ map[string]interface{}{
"seconds": onMic.Seconds, "seconds": onMic.Seconds,
"last_cal_ts": joinMicTimestamp, "last_cal_ts": nowTs,
}, },
)}). )}).
Create(onMic).Error; err != nil { Create(onMic).Error; err != nil {
...@@ -232,15 +239,21 @@ func IncrGroupPowerExpOnMic(model *domain.Model, groupPowerId, userId mysql.ID, ...@@ -232,15 +239,21 @@ func IncrGroupPowerExpOnMic(model *domain.Model, groupPowerId, userId mysql.ID,
// 事务操作 // 事务操作
func IncrGroupPowerStarOnMic(model *domain.Model, groupPowerId, userId mysql.ID, joinMicTimestamp int64) error { func IncrGroupPowerStarOnMic(model *domain.Model, groupPowerId, userId mysql.ID, joinMicTimestamp int64) error {
return model.Transaction(func(model *domain.Model) error { return model.Transaction(func(model *domain.Model) error {
// 月统计
star, err := GetGroupPowerMonthStar(model, groupPowerId, userId, groupPower_e.GroupPowerStarTypeActive) star, err := GetGroupPowerMonthStar(model, groupPowerId, userId, groupPower_e.GroupPowerStarTypeActive)
curTs := joinMicTimestamp curTs := joinMicTimestamp
nowTs := time.Now().Unix() nowTs := time.Now().Unix()
month0Ts := now.BeginningOfMonth().Unix()
if err != nil && err != gorm.ErrRecordNotFound { if err != nil && err != gorm.ErrRecordNotFound {
return err return err
} }
if star != nil && joinMicTimestamp < star.LastCalTs { // 加入的时间比上次计算时间小 if star != nil && joinMicTimestamp < star.LastCalTs { // 加入的时间比上次计算时间小
curTs = star.LastCalTs curTs = star.LastCalTs
} }
// 跨月
if curTs < month0Ts {
curTs = month0Ts
}
score := nowTs - curTs score := nowTs - curTs
return IncrGroupPowerMonthStarScore(model, groupPowerId, userId, groupPower_e.GroupPowerStarTypeActive, mysql.Num(score), nowTs) return IncrGroupPowerMonthStarScore(model, groupPowerId, userId, groupPower_e.GroupPowerStarTypeActive, mysql.Num(score), nowTs)
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment