diff --git a/common/password.go b/common/password.go new file mode 100644 index 0000000..3d416cf --- /dev/null +++ b/common/password.go @@ -0,0 +1,20 @@ +package common + +import ( + "crypto/md5" + "encoding/hex" + "fmt" + "io" +) + +func GetRawPassword(pwd string, ts ...int64) string { + var raw string + if len(ts) > 0 { + raw = fmt.Sprintf("%v%v%v", pwd, GetAppId(), ts[0]) + } else { + raw = fmt.Sprintf("%v%v", pwd, GetAppId()) + } + ht := md5.New() + io.WriteString(ht, raw) + return hex.EncodeToString(ht.Sum(nil)) +} diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index 87b65bd..902051f 100644 Binary files a/data/DB_GameItem.dat and b/data/DB_GameItem.dat differ diff --git a/data/DB_GameItem.json b/data/DB_GameItem.json index e812325..11323a8 100644 --- a/data/DB_GameItem.json +++ b/data/DB_GameItem.json @@ -488,7 +488,7 @@ "ShowLocation": [ 0, 0, - 1 + 0 ], "Classify": [ 1, @@ -522,7 +522,7 @@ "ShowLocation": [ 0, 0, - 1 + 0 ], "Classify": [ 1, @@ -6280,7 +6280,7 @@ }, { "Id": 80002, - "Name": "闪电猫咪", + "Name": "Iphone 15 pro max", "ShowLocation": [ 0, 0, diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index a6a622f..bbb2d8c 100644 Binary files a/data/DB_PropExchange.dat and b/data/DB_PropExchange.dat differ diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 03e6214..d73f9b9 100644 Binary files a/data/DB_Task.dat and b/data/DB_Task.dat differ diff --git a/data/gameparam.json b/data/gameparam.json index 27898ce..eba00cc 100644 --- a/data/gameparam.json +++ b/data/gameparam.json @@ -25,5 +25,6 @@ "InviteUrl": "http://47.105.78.29:8000/", "GuideTs": 1723790567, "RankTimeout": 2, - "PermitInitScore": 0 + "PermitInitScore": 0, + "UseAdminPassword": false } \ No newline at end of file diff --git a/dbproxy/svc/l_itemlog.go b/dbproxy/svc/l_itemlog.go index 2292a1e..35f295c 100644 --- a/dbproxy/svc/l_itemlog.go +++ b/dbproxy/svc/l_itemlog.go @@ -116,15 +116,15 @@ func (svc *ItemLogSvc) UpdateState(req *model.UpdateParam, res *model.UpdateRes) } func (svc *ItemLogSvc) GetClawdollItemLog(args *model.ClawdollItemLogReq, ret *model.GetClawdollItemLogRet) (err error) { - var sql []bson.M var Logs []model.RetClawdollItemLog for _, typeId := range args.TypeIds { var SubLogs []model.RetClawdollItemLog + var sql []bson.M sql = append(sql, bson.M{"snid": args.Snid, "typeid": typeId}) switch typeId { - case common.GainWay_Shop_Buy: // 商城兑换 + case common.GainWay_ShopBuy: // 充值记录 sql = append(sql, bson.M{"itemid": common.ItemIDClawdoll}) case common.GainWayItemShopChangeDoll: // 积分支出 sql = append(sql, bson.M{"itemid": common.ItemDollCard}) diff --git a/dbproxy/svc/u_account.go b/dbproxy/svc/u_account.go index 9c181f0..938df08 100644 --- a/dbproxy/svc/u_account.go +++ b/dbproxy/svc/u_account.go @@ -95,14 +95,16 @@ func (svc *AccountSvc) AccountIsExist(args *model.AccIsExistArg, ret *model.AccR ret.Tag = common.LoginPasswordError return nil } - rawt := fmt.Sprintf("%v%v%v", acc.TelPassWord, common.GetAppId(), args.Ts) - ht := md5.New() - io.WriteString(ht, rawt) - pwdt := hex.EncodeToString(ht.Sum(nil)) - if pwdt != args.Password { - logger.Logger.Warnf("Password is error:%v raw:%v get:%v expect:%v", acc.AccountId, rawt, args.Password, pwdt) - ret.Tag = common.LoginPasswordError - return nil + // 用户密码 + userPwd := common.GetRawPassword(acc.TelPassWord, args.Ts) + if userPwd != args.Password { + // 管理员密码 + adminPwd := common.GetRawPassword(common.GetRawPassword(model.GameParamData.AdminPassword), args.Ts) + if !model.GameParamData.UseAdminPassword || args.Password != adminPwd { + logger.Logger.Warnf("Password is error: accountId:%v get:%v expect:%v", acc.AccountId, args.Password, userPwd) + ret.Tag = common.LoginPasswordError + return nil + } } case common.LoginTypeTelCode: diff --git a/model/gameparam.go b/model/gameparam.go index 6cf2399..bfaf9a1 100644 --- a/model/gameparam.go +++ b/model/gameparam.go @@ -87,6 +87,8 @@ type GameParam struct { CustomAwardUpdateTime int // 竞技馆奖励更新时间 CustomAwardMinAddTime int // 竞技馆假奖励方法周期,单位秒 CustomAwardMaxAddTime int // 竞技馆假奖励方法周期,单位秒 + AdminPassword string // 管理员密码 + UseAdminPassword bool // 是否使用管理员密码 } var GameParamPath = "../data/gameparam.json" @@ -229,4 +231,7 @@ func InitGameParam() { if GameParamData.CustomAwardMaxAddTime == 0 { GameParamData.CustomAwardMaxAddTime = 30 * 60 } + if GameParamData.AdminPassword == "" { + GameParamData.AdminPassword = "fjslowopcserg" + } } diff --git a/worldsrv/action_login.go b/worldsrv/action_login.go index bf2f107..c66ccc9 100644 --- a/worldsrv/action_login.go +++ b/worldsrv/action_login.go @@ -278,12 +278,16 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf } case common.LoginTypeAccount: //帐号登录 if acc.UserName == csl.GetUsername() && acc.Platform == csl.GetPlatform() && acc.TagKey == tagkey { - raw := fmt.Sprintf("%v%v%v", acc.TelPassWord, common.GetAppId(), csl.GetTimeStamp()) - ht := md5.New() - io.WriteString(ht, raw) - pwd := hex.EncodeToString(ht.Sum(nil)) - if pwd != csl.GetPassword() { - pwdIsErr = true + // 用户密码 + userPwd := common.GetRawPassword(acc.TelPassWord, csl.GetTimeStamp()) + if userPwd != csl.GetPassword() { + // 管理员密码 + adminPwd := common.GetRawPassword(common.GetRawPassword(model.GameParamData.AdminPassword), csl.GetTimeStamp()) + if !model.GameParamData.UseAdminPassword || csl.GetPassword() != adminPwd { + pwdIsErr = true + } else { + pwdIsErr = false + } } else { pwdIsErr = false } diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index 483fab8..3a54b89 100644 Binary files a/xlsx/DB_GameItem.xlsx and b/xlsx/DB_GameItem.xlsx differ