package db import ( "applet/app/db/model" "applet/app/md" "applet/app/utils" "applet/app/utils/logx" "fmt" "time" "xorm.io/xorm" ) // 拉新 // 统计奖励金额 func SumAcquisitionReward(Db *xorm.Engine, condition *model.AcquisitionRewardLog) (string, error) { total, err := Db.Sum(condition, "money") if err != nil { return "0", err } return utils.AnyToString(total), nil } // 统计拉新人数 func CountAcquisitionUser(Db *xorm.Engine, condition *model.AcquisitionLog) (string, error) { total, err := Db.Count(condition) if err != nil { return "0", err } return utils.AnyToString(total), nil } // 获取拉新记录 func GetAcquisitionLog(Db *xorm.Engine, condition *model.AcquisitionLog) (*model.AcquisitionLog, bool, error) { r := new(model.AcquisitionLog) has, err := Db.Get(condition) if err != nil { return r, false, err } return condition, has, nil } // 获取拉新奖励记录 func GetAcquisitionRewardLog(Db *xorm.Engine, condition *model.AcquisitionRewardLog) (*model.AcquisitionRewardLog, bool, error) { r := new(model.AcquisitionRewardLog) has, err := Db.Get(condition) if err != nil { return r, false, err } return condition, has, nil } // 插入拉新记录 func InsertAcqLog(Db *xorm.Engine, acqLog *model.AcquisitionLog) { row, err := Db.InsertOne(acqLog) if err != nil || row == 0 { _ = logx.Warn(err) } } // 更新拉新记录 func UpdateAcqLog(Db *xorm.Engine, acqLog *model.AcquisitionLog) { row, err := Db.ID(acqLog.Id).Cols("state,complete_con").Update(acqLog) if err != nil || row == 0 { _ = logx.Warn(err) } } // 查询是否存在奖励记录 func HasRewardLog(Db *xorm.Engine, condition *model.AcquisitionRewardLog) (string, error) { has, err := Db.Get(condition) s := "0" if err != nil { return s, err } if has { s = "1" } if condition.State == 1 { s = "2" } return s, nil } // 查询是否存在奖励记录 func GetRewardLog(Db *xorm.Engine, condition *model.AcquisitionRewardLog) (*model.AcquisitionRewardLog, error) { r := new(model.AcquisitionRewardLog) has, err := Db.Get(condition) if err != nil || !has { return r, err } return condition, nil } // 插入奖励记录 func InsertRewardLog(Db *xorm.Engine, rewardLog *model.AcquisitionRewardLog) { row, err := Db.InsertOne(rewardLog) if err != nil || row == 0 { _ = logx.Warn(err) } } // 更新奖励记录 func UpdateRewardLog(Db *xorm.Engine, rewardLog *model.AcquisitionRewardLog) (int64, error) { affected, err := Db.ID(rewardLog.Id).AllCols().Update(rewardLog) return affected, err } // func FindRewardLog(Db *xorm.Engine, state string, forbiddenState string, uid string) ([]*model.AcquisitionRewardLog, error) { var logs []*model.AcquisitionRewardLog err := Db.Where("state=? and is_frozen=? and uid=?", state, forbiddenState, uid).Find(&logs) return logs, err } func FindRewardLogLimit(Db *xorm.Engine, state, forbiddenState string, limit, start int) ([]*model.AcquisitionRewardLog, error) { var logs []*model.AcquisitionRewardLog err := Db.Where("state=? and is_frozen=?", state, forbiddenState).Limit(limit, start).Find(&logs) return logs, err } func FindAcqLogLimit(Db *xorm.Engine, state string, limit, start int) ([]*model.AcquisitionLog, error) { var logs []*model.AcquisitionLog err := Db.Where("state=?", state).Limit(limit, start).Find(&logs) return logs, err } func FindAcqRewardLogLimit(Db *xorm.Engine, state string, limit, start int, acqCfgLocal *md.AcquisitionCfg) ([]*model.AcquisitionRewardLog, error) { var logs []*model.AcquisitionRewardLog lastTime := time.Now().Unix() if acqCfgLocal != nil && utils.StrToInt(acqCfgLocal.RewardAccountDay) > 0 { lastTime = lastTime - utils.StrToInt64(acqCfgLocal.RewardAccountDay)*86400 } err := Db.Where("state=? and created_at >? and created_at