@@ -58,7 +58,23 @@ func OneCirclesUserWatchRecordsDelete(Db *xorm.Engine, id interface{}) (int64, e | |||
} | |||
// OneCirclesUserWatchRecordsUpdate 更新记录 | |||
func OneCirclesUserWatchRecordsUpdate(session *xorm.Session, id interface{}, OneCirclesUserWatchRecords *model.OneCirclesUserWatchRecords, forceColums ...string) (int64, error) { | |||
func OneCirclesUserWatchRecordsUpdate(Db *xorm.Engine, id interface{}, OneCirclesUserWatchRecords *model.OneCirclesUserWatchRecords, forceColums ...string) (int64, error) { | |||
var ( | |||
affected int64 | |||
err error | |||
) | |||
if forceColums != nil { | |||
affected, err = Db.Where("id=?", id).Cols(forceColums...).Update(OneCirclesUserWatchRecords) | |||
} else { | |||
affected, err = Db.Where("id=?", id).Update(OneCirclesUserWatchRecords) | |||
} | |||
if err != nil { | |||
return 0, err | |||
} | |||
return affected, nil | |||
} | |||
func OneCirclesUserWatchRecordsUpdateBySession(session *xorm.Session, id interface{}, OneCirclesUserWatchRecords *model.OneCirclesUserWatchRecords, forceColums ...string) (int64, error) { | |||
var ( | |||
affected int64 | |||
err error | |||
@@ -92,9 +108,13 @@ func OneCirclesUserWatchRecordsGetOneByParamsBySession(session *xorm.Session, pa | |||
func OneCirclesUserWatchRecordsGetOneByParams(Db *xorm.Engine, params map[string]interface{}) (*model.OneCirclesUserWatchRecords, error) { | |||
var m model.OneCirclesUserWatchRecords | |||
var query = fmt.Sprintf("%s =?", params["key"]) | |||
if has, err := Db.Where(query, params["value"]).Get(&m); err != nil || has == false { | |||
has, err := Db.Where(query, params["value"]).Get(&m) | |||
if err != nil { | |||
return nil, zhios_order_relate_logx.Error(err) | |||
} | |||
if !has { | |||
return nil, nil | |||
} | |||
return &m, nil | |||
} | |||
@@ -5,11 +5,10 @@ import ( | |||
) | |||
type OneCirclesUserWatchRecords struct { | |||
Id int64 `json:"id" xorm:"pk autoincr BIGINT(20)"` | |||
Uid int `json:"uid" xorm:"not null default 0 comment('用户id') INT(11)"` | |||
NextWatchAdDate time.Time `json:"next_watch_ad_date" xorm:"not null default 'CURRENT_TIMESTAMP' comment('下一轮观看视屏时间') DATETIME"` | |||
LastRoundWatchAdTotal int `json:"last_round_watch_ad_total" xorm:"not null default 0 comment('上一轮观看视屏总数') INT(11)"` | |||
ResidueWatchAdNum int `json:"residue_watch_ad_num" xorm:"not null default 0 comment('剩余观看视屏数') INT(11)"` | |||
CreateAt time.Time `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||
UpdateAt time.Time `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||
Id int64 `json:"id" xorm:"pk autoincr BIGINT(20)"` | |||
Uid int `json:"uid" xorm:"not null default 0 comment('用户id') INT(11)"` | |||
NextWatchAdDate time.Time `json:"next_watch_ad_date" xorm:"not null default 'CURRENT_TIMESTAMP' comment('下一轮观看视屏时间') DATETIME"` | |||
ResidueWatchAdNum int `json:"residue_watch_ad_num" xorm:"not null default 0 comment('剩余观看视屏数') INT(11)"` | |||
CreateAt time.Time `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||
UpdateAt time.Time `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||
} |
@@ -53,7 +53,7 @@ func SettlementPublicGiveActivityCoin(engine *xorm.Engine, masterId string, uid | |||
"value": uid, | |||
}) | |||
if err1 != nil { | |||
return | |||
return err1 | |||
} | |||
var rewardFather []struct { | |||
@@ -81,6 +81,41 @@ func SettlementPublicGiveActivityCoin(engine *xorm.Engine, masterId string, uid | |||
} | |||
} | |||
//增加 one_circles_user_watch_records 记录 | |||
oneCirclesUserWatchRecords, err1 := db.OneCirclesUserWatchRecordsGetOneByParams(engine, map[string]interface{}{ | |||
"key": "uid", | |||
"value": uid, | |||
}) | |||
if err1 != nil { | |||
return err1 | |||
} | |||
now := time.Now() | |||
if oneCirclesUserWatchRecords == nil { | |||
_, err2 := db.OneCirclesUserWatchRecordsInsert(engine, &model.OneCirclesUserWatchRecords{ | |||
Uid: uid, | |||
NextWatchAdDate: now.Add(time.Hour * time.Duration(zhios_order_relate_utils.StrToInt(videoRewardSystem.EachRoundHour))), | |||
ResidueWatchAdNum: zhios_order_relate_utils.StrToInt(videoRewardSystem.RewardTotalNum) - 1, | |||
CreateAt: now, | |||
UpdateAt: now, | |||
}) | |||
if err2 != nil { | |||
return err2 | |||
} | |||
} else { | |||
residueWatchAdNum := oneCirclesUserWatchRecords.ResidueWatchAdNum - 1 | |||
nextWatchAdDate := oneCirclesUserWatchRecords.NextWatchAdDate | |||
if residueWatchAdNum == 0 { | |||
nextWatchAdDate = now.Add(time.Hour * time.Duration(zhios_order_relate_utils.StrToInt(videoRewardSystem.EachRoundHour))) | |||
residueWatchAdNum = zhios_order_relate_utils.StrToInt(videoRewardSystem.EachRoundHour) | |||
} | |||
oneCirclesUserWatchRecords.ResidueWatchAdNum = residueWatchAdNum | |||
oneCirclesUserWatchRecords.NextWatchAdDate = nextWatchAdDate | |||
_, err2 := db.OneCirclesUserWatchRecordsUpdate(engine, oneCirclesUserWatchRecords.Id, oneCirclesUserWatchRecords, "residue_watch_ad_num", "next_watch_ad_date") | |||
if err2 != nil { | |||
return err2 | |||
} | |||
} | |||
session := engine.NewSession() | |||
//给相应的用户加上"个人"活跃积分 | |||
err = DealUserCoin(session, md.DealUserCoinReq{ | |||