79 lines
2.1 KiB
Go
79 lines
2.1 KiB
Go
package horoscope
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/pb"
|
|
"go_dreamfactory/sys/configure"
|
|
cfg "go_dreamfactory/sys/configure/structs"
|
|
"time"
|
|
)
|
|
|
|
//参数校验
|
|
func (this *apiComp) ResetCheck(session comm.IUserSession, req *pb.HoroscopeResetReq) (errdata *pb.ErrorData) {
|
|
|
|
return
|
|
}
|
|
|
|
///获取自己的排行榜信息
|
|
func (this *apiComp) Reset(session comm.IUserSession, req *pb.HoroscopeResetReq) (errdata *pb.ErrorData) {
|
|
var (
|
|
info *pb.DBHoroscope
|
|
conf *cfg.GameGlobalData
|
|
err error
|
|
)
|
|
if errdata = this.ResetCheck(session, req); errdata != nil {
|
|
return
|
|
}
|
|
if info, err = this.module.modelHoroscope.queryInfo(session.GetUserId()); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
conf = this.module.ModuleTools.GetGlobalConf()
|
|
if info.Lastrest > 0 {
|
|
if configure.Now().Sub(time.Unix(info.Lastrest, 0)).Seconds() < float64(conf.HoroscopeResetCd) {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_HoroscopeRestCDNoEnd,
|
|
Title: pb.ErrorCode_HoroscopeRestCDNoEnd.ToString(),
|
|
}
|
|
return
|
|
}
|
|
}
|
|
|
|
if errdata = this.module.ConsumeRes(session, []*cfg.Gameatn{conf.HoroscopeResetCost}, true); errdata != nil {
|
|
return
|
|
}
|
|
res := make([]*cfg.Gameatn, 0)
|
|
for _, v := range info.Consume {
|
|
res = append(res, &cfg.Gameatn{
|
|
A: v.A,
|
|
T: v.T,
|
|
N: v.N,
|
|
})
|
|
}
|
|
if errdata = this.module.DispenseRes(session, res, true); errdata != nil {
|
|
return
|
|
}
|
|
consume := info.Consume
|
|
info.Nodes = make(map[int32]int32)
|
|
info.Consume = make([]*pb.UserAssets, 0)
|
|
info.Lastrest = configure.Now().Unix()
|
|
if err = this.module.modelHoroscope.updateInfo(session, info); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
session.SendMsg(string(this.module.GetType()), "reset", &pb.HoroscopeResetResp{Issucc: true, Info: info, Award: consume})
|
|
go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) {
|
|
this.module.WriteUserLog(session.GetUserId(), "HoroscopeResetReq", res)
|
|
})
|
|
|
|
return
|
|
}
|