role_msg.go 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059
  1. package model
  2. import (
  3. "encoding/base64"
  4. "rocommon"
  5. "rocommon/service"
  6. "rocommon/util"
  7. "roserver/baseserver/model"
  8. "roserver/serverproto"
  9. "strconv"
  10. "time"
  11. )
  12. func init() {
  13. //webgm
  14. serverproto.Handle_DB_SSWebGMChatMsgNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  15. msg := ev.Msg().(*serverproto.SSWebGMChatMsgNtf)
  16. //util.InfoF("SSWebGMChatMsgNtf msgid=%v", msg)
  17. UpdatePlayerChatMsg2Mysql(msg.Uid, msg.TargetUid, msg.MsgType, msg.Content)
  18. })
  19. //webgm
  20. serverproto.Handle_DB_SSSaveUserConnectInfo = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  21. msg := ev.Msg().(*serverproto.SSSaveUserConnectInfo)
  22. DelUserConnInfo(&serverproto.UserConnectInfo{}, msg.OpenId, msg.Platform)
  23. })
  24. //获取服务器当前赛季信息
  25. serverproto.Handle_DB_SSGetServerCompetitionReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  26. _ = ev.Msg().(*serverproto.SSGetServerCompetitionReq)
  27. util.InfoF("SSGetServerCompetitionReq")
  28. ssAckMsg := &serverproto.SSGetServerCompetitionAck{RounInfo: &serverproto.StRecRound{}}
  29. ServerCompetitionGet(ssAckMsg)
  30. model.ServiceReplay(ev, ssAckMsg)
  31. })
  32. serverproto.Handle_DB_SSServerCompetitionInfoSaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  33. msg := ev.Msg().(*serverproto.SSServerCompetitionInfoSaveNtf)
  34. util.InfoF("SSServerCompetitionInfoSaveNtf")
  35. ServerCompetitionSave(msg)
  36. })
  37. //角色日志信息写入到mysql中
  38. serverproto.Handle_DB_SSRoleLogNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  39. msg := ev.Msg().(*serverproto.SSRoleLogNtf)
  40. //util.InfoF("SSAccountGetRoleListReq msg=%v", msg)
  41. UpdatePlayerLog2Mysql(msg.LogList)
  42. })
  43. serverproto.Handle_DB_SSUserDeleteReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  44. msg := ev.Msg().(*serverproto.SSUserDeleteReq)
  45. util.ErrorF("SSUserDeleteReq msg=%v", msg)
  46. acks := &serverproto.SSUserDeleteAck{
  47. Error: 0,
  48. }
  49. ack := &serverproto.SSAccountGetRoleListAck{}
  50. err := GetRoleListFromRedis(msg.OpenId, msg.ZoneId, ack)
  51. if err != nil {
  52. acks.Error = 1
  53. util.ErrorF("SSUserDeleteReq error:%v", err)
  54. model.ServiceReplay(ev, acks)
  55. return
  56. }
  57. if msg.Type == 1 { //获取删除时间
  58. if uint64(time.Now().Unix()) >= ack.Roles[0].DeleteTime {
  59. acks.Time = 0
  60. } else {
  61. acks.Time = int64(ack.Roles[0].DeleteTime)
  62. }
  63. acks.Error = 2
  64. } else {
  65. if msg.Status == 0 { //玩家请求删除
  66. ack.Roles[0].DeleteTime = uint64(time.Now().Unix() + int64(72*3600))
  67. acks.Time = int64(ack.Roles[0].DeleteTime)
  68. } else if msg.Status == 1 { //玩家取消删除
  69. ack.Roles[0].DeleteTime = 0
  70. acks.Time = 0
  71. }
  72. err2 := SetRoleListToRedis(msg.OpenId, msg.ZoneId, ack)
  73. if err2 != nil {
  74. acks.Error = 1
  75. util.ErrorF("SSUserDeleteReq error:%v", err2)
  76. model.ServiceReplay(ev, acks)
  77. return
  78. }
  79. acks.Error = 3
  80. }
  81. model.ServiceReplay(ev, acks)
  82. })
  83. serverproto.Handle_DB_SSAccountGetRoleListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  84. msg := ev.Msg().(*serverproto.SSAccountGetRoleListReq)
  85. util.InfoF("SSAccountGetRoleListReq openid=%v zone=%v", msg.OpenId, msg.ZoneId)
  86. ack := &serverproto.SSAccountGetRoleListAck{}
  87. isCloseRegister := IsServerCloseRegister()
  88. ack.IsCloseRegister = isCloseRegister
  89. err := GetRoleListFromRedis(msg.OpenId, msg.ZoneId, ack)
  90. if err != nil {
  91. if err != service.NIL {
  92. //redis操作出错
  93. util.InfoF("GetRoleListFromRedis err=%v", err)
  94. }
  95. util.InfoF("SSAccountGetRoleListReq openid=%v zone=%v account data not empty need create", msg.OpenId, msg.ZoneId)
  96. //数据不存在
  97. //东南亚审核使用账号覆盖
  98. //_ = GetRoleListFromRedis("test", msg.ZoneId, ack)
  99. //ack.Roles[0].OpenId = msg.OpenId
  100. //
  101. //err = SetRoleListToRedis(msg.OpenId, msg.ZoneId, ack)
  102. //ack2 := &serverproto.SSAccountGetRoleListAck{}
  103. //_ = GetRoleListFromRedis("test", msg.ZoneId, ack2)
  104. //uidd := ack2.Roles[0].Uid
  105. ////获取copy玩家的基本数据
  106. //tmpRoleBase2 := &serverproto.RoleBase{}
  107. //GetRoleBaseFromRedis(uidd, tmpRoleBase2)
  108. //tmpRoleBase2.Id = cliId.SessID
  109. //tmpRoleBase2.NickName = ""
  110. //tmpRoleHero2 := &serverproto.RoleHero{}
  111. //GetRoleHeroDataFromRedis(uidd, tmpRoleHero2)
  112. //tmpRoleBattle2 := &serverproto.RoleBattle{}
  113. //GetSystemDataFromRedis(RoleBattleDataPrefix, uidd, tmpRoleBattle2)
  114. //tmpRoleEquip2 := &serverproto.RoleEquip{}
  115. //GetSystemDataFromRedis(RoleEquipDataPrefix, uidd, tmpRoleEquip2)
  116. ////复制到新号上
  117. //_ = SetRoleToRedis(cliId.SessID, tmpRoleBase2)
  118. //SetRoleHeroDataToRedis(cliId.SessID, tmpRoleHero2)
  119. //SetSystemDataToRedis(RoleBattleDataPrefix, cliId.SessID, tmpRoleBattle2)
  120. //SetSystemDataToRedis(RoleEquipDataPrefix, cliId.SessID, tmpRoleEquip2)
  121. //ack2.Roles[0].OpenId = msg.OpenId
  122. //ack2.Roles[0].Uid = cliId.SessID
  123. //ack2.Roles[0].DeleteTime = 0
  124. //err = SetRoleListToRedis(msg.OpenId, msg.ZoneId, ack2)
  125. //GetRolePetDataFromRedis2(uidd, cliId.SessID, ev)
  126. //ack2.IsCloseRegister = isCloseRegister
  127. model.ServiceReplay(ev, ack)
  128. } else {
  129. if ack.Roles[0].DeleteTime != 0 && ack.Roles[0].DeleteTime <= uint64(time.Now().Unix()) {
  130. err = DelRoleListFromRedis(msg.OpenId, msg.ZoneId, ack)
  131. ack = &serverproto.SSAccountGetRoleListAck{}
  132. ack.IsCloseRegister = isCloseRegister
  133. util.ErrorF("GetRoleListFromRedis2 err=%v,ack:%v", err, ack)
  134. }
  135. model.ServiceReplay(ev, ack)
  136. }
  137. })
  138. serverproto.Handle_DB_SSGetServerPayMailReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  139. msg := ev.Msg().(*serverproto.SSGetServerPayMailReq)
  140. util.InfoF("SSGetServerPayMailReq uid=%v", msg.Uid)
  141. ack := &serverproto.SSGetServerPayMailAck{}
  142. ack.IsTrue = IsServerClosePayMail()
  143. model.ServiceReplay(ev, ack)
  144. })
  145. serverproto.Handle_DB_SSAddRoleBaseReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  146. msg := ev.Msg().(*serverproto.SSAddRoleBaseReq)
  147. util.InfoF("uid=%v SSAddRoleBaseReq", cliId.SessID)
  148. ack := &serverproto.SSAddRoleBaseAck{}
  149. if cliId.SessID == 0 {
  150. util.InfoF("uuid=%v SSAddRoleBaseReq user uuid failed openId=%v", cliId.SessID, msg.OpenId)
  151. ack.Err = int32(serverproto.ErrorCode_ERROR_FAIL)
  152. model.ServiceReplay(ev, ack)
  153. return
  154. }
  155. //判断激活码模式下是否已经使用过该激活码
  156. if msg.ActiveCode != "" {
  157. retCode := ExistActiveCode(msg.ActiveCode)
  158. if retCode != serverproto.ErrorCode_ERROR_OK {
  159. ack.Err = int32(retCode)
  160. model.ServiceReplay(ev, ack)
  161. util.InfoF("uuid=%v SSAddRoleBaseReq user base data set redis failed=%v", cliId.SessID, retCode)
  162. return
  163. }
  164. }
  165. tmpRoleBase := &serverproto.RoleBase{}
  166. bExist := GetRoleBaseFromRedis(cliId.SessID, tmpRoleBase)
  167. if bExist {
  168. //已经存在角色信息,不再重新创建
  169. ack.Err = int32(serverproto.ErrorCode_ERROR_ROLE_HAS_CREATE)
  170. ack.CreateRoleUid = tmpRoleBase.Id
  171. } else {
  172. //再次进行确认是否已经创建了角色
  173. tmpAck := &serverproto.SSAccountGetRoleListAck{}
  174. GetRoleListFromRedis(msg.OpenId, msg.Zone, tmpAck)
  175. if len(tmpAck.Roles) > 0 {
  176. //已经存在角色信息,不再重新创建
  177. ack.Err = int32(serverproto.ErrorCode_ERROR_ROLE_HAS_CREATE)
  178. ack.CreateRoleUid = tmpAck.Roles[0].Uid
  179. } else {
  180. //东南亚审核使用账号覆盖
  181. //ack2 := &serverproto.SSAccountGetRoleListAck{}
  182. //_ = GetRoleListFromRedis("test", msg.Zone, ack2)
  183. //uidd := ack2.Roles[0].Uid
  184. ////获取copy玩家的基本数据
  185. //tmpRoleBase2 := &serverproto.RoleBase{}
  186. //GetRoleBaseFromRedis(uidd, tmpRoleBase2)
  187. //tmpRoleBase2.Id = cliId.SessID
  188. //tmpRoleBase2.NickName = ""
  189. //tmpRoleHero2 := &serverproto.RoleHero{}
  190. //GetRoleHeroDataFromRedis(uidd, tmpRoleHero2)
  191. //tmpRoleBattle2 := &serverproto.RoleBattle{}
  192. //GetSystemDataFromRedis(RoleBattleDataPrefix, uidd, tmpRoleBattle2)
  193. //tmpRoleEquip2 := &serverproto.RoleEquip{}
  194. //GetSystemDataFromRedis(RoleEquipDataPrefix, uidd, tmpRoleEquip2)
  195. ////复制到新号上
  196. //_ = SetRoleToRedis(cliId.SessID, tmpRoleBase2)
  197. //SetRoleHeroDataToRedis(cliId.SessID, tmpRoleHero2)
  198. //SetSystemDataToRedis(RoleBattleDataPrefix, cliId.SessID, tmpRoleBattle2)
  199. //SetSystemDataToRedis(RoleEquipDataPrefix, cliId.SessID, tmpRoleEquip2)
  200. //ack2.Roles[0].OpenId = msg.OpenId
  201. //ack2.Roles[0].Uid = cliId.SessID
  202. //ack2.Roles[0].DeleteTime = 0
  203. //_ = SetRoleListToRedis(msg.OpenId, msg.Zone, ack2)
  204. //GetRolePetDataFromRedis2(uidd, cliId.SessID, ev)
  205. //ack.Err = int32(serverproto.ErrorCode_ERROR_ROLE_HAS_CREATE)
  206. //ack.CreateRoleUid = cliId.SessID
  207. //model.ServiceReplay(ev, ack)
  208. //return
  209. //以上
  210. err := SetRoleToRedis(cliId.SessID, msg.Base)
  211. if err != nil {
  212. util.InfoF("uuid=%v SSAddRoleBaseReq user base data set redis failed=%v", cliId.SessID, err)
  213. ack.Err = int32(serverproto.ErrorCode_ERROR_FAIL)
  214. model.ServiceReplay(ev, ack)
  215. return
  216. } else {
  217. //判断激活码模式下是否已经使用过该激活码
  218. if msg.ActiveCode != "" {
  219. retBool := SetActiveCode(msg.ActiveCode, cliId.SessID)
  220. if !retBool {
  221. util.InfoF("SSAddRoleBaseReq setActiveCode err=%v", err)
  222. }
  223. }
  224. //添加简介信息
  225. briefInfo := &serverproto.CommonPlayerBriefInfo{
  226. Uid: msg.Base.Id,
  227. NickName: msg.Base.NickName,
  228. Gender: msg.Base.Sex,
  229. Level: msg.Base.RoleData.HeroData.BaseLevel,
  230. ConfigId: msg.Base.RoleData.HeroData.ConfigId,
  231. }
  232. UpdatePlayerBriefInfo(cliId.SessID, briefInfo, true, msg.ActiveCode, msg.OpenId, msg.SubPlatform)
  233. }
  234. }
  235. ack.Err = int32(serverproto.ErrorCode_ERROR_OK)
  236. }
  237. model.ServiceReplay(ev, ack)
  238. })
  239. serverproto.Handle_DB_SSAccountAddRoleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  240. msg := ev.Msg().(*serverproto.SSAccountAddRoleNtf)
  241. util.DebugF("SSAccountAddRoleNtf msg=%v", msg)
  242. if msg.GetRoles() == nil || len(msg.GetRoles()) <= 0 {
  243. util.InfoF("SSAccountAddRoleNtf role info empty")
  244. return
  245. }
  246. roleInfo := msg.GetRoles()[0]
  247. roleList := &serverproto.SSAccountGetRoleListAck{}
  248. //处理多角色列表信息,先获取一次数据
  249. err := GetRoleListFromRedis(roleInfo.OpenId, roleInfo.ZoneId, roleList)
  250. if err != nil && err != service.NIL {
  251. util.InfoF("SSAccountAddRoleNtf openid=%v err=%v", roleInfo.OpenId, err)
  252. }
  253. //当前创建的角色添加到角色列表中
  254. roleList.Roles = append(roleList.Roles, roleInfo)
  255. err = SetRoleListToRedis(roleInfo.OpenId, roleInfo.ZoneId, roleList)
  256. if err != nil {
  257. util.ErrorF("SSAccountAddRoleNtf openid=%v err=%v", roleInfo.OpenId, err)
  258. }
  259. })
  260. serverproto.Handle_DB_SSGetRoleReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  261. msg := ev.Msg().(*serverproto.SSGetRoleReq)
  262. util.InfoF("uid=%v receive SSGetRoleReq msg=%v", cliId.SessID, msg)
  263. ack := &serverproto.SSGetRoleAck{
  264. Err: int32(serverproto.ErrorCode_ERROR_OK),
  265. }
  266. err := GetRoleFromRedis(cliId.SessID, ack, msg.RoleRegisterTime)
  267. if err != nil {
  268. util.InfoF("uid=%v SSGetRoleReq err=%v", cliId.SessID, err)
  269. ack.Err = int32(serverproto.ErrorCode_ERROR_FAIL)
  270. }
  271. model.ServiceReplay(ev, ack)
  272. //获取Role其他系统信息,不直接走SSGetRoleAck,避免后续数据包过大
  273. GetRoleOtherInfoFromRedis(cliId.SessID, ev)
  274. ntfMsg := &serverproto.SSGetRoleFinishNtf{}
  275. model.ServiceReplay(ev, ntfMsg)
  276. })
  277. //roleBase
  278. serverproto.Handle_DB_SSRoleBaseSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  279. msg := ev.Msg().(*serverproto.SSRoleBaseSaveReq)
  280. //util.DebugF("uid=%v SSRoleBaseSaveReq msg=%v", cliId.SessID, msg)
  281. if msg.Base.Id == 0 {
  282. util.InfoF("SSRoleBaseSaveReq user uuid failed!!!")
  283. return
  284. }
  285. err := SetRoleToRedis(msg.Base.Id, msg.Base)
  286. if err != nil {
  287. util.InfoF("SSRoleBaseSaveReq save err=%v uid=%v", err, cliId.SessID)
  288. }
  289. //更新资源信息到mysql
  290. resData := &serverproto.RoleRes2MysqlInfo{
  291. Money: msg.Base.Rmb,
  292. TotalRecharge: msg.Base.TotalRecharge,
  293. VipLevel: msg.Base.VipLevel,
  294. }
  295. UpdatePlayerRes2Mysql(msg.Base.Id, resData)
  296. zone, id := model.ParseUid(msg.Base.Id)
  297. util.InfoF("SSRoleBaseSaveReq zone=%v id=%v uid=%v", zone, id, cliId.SessID)
  298. })
  299. serverproto.Handle_DB_SSGameBanRoleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  300. msg := ev.Msg().(*serverproto.SSGameBanRoleNtf)
  301. util.DebugF("uid=%v SSGameBanRoleNtf msg=%v", cliId.SessID, msg)
  302. UpdatePlayerBanInfo2Mysql(msg.BanUid, msg.BanEndTime, msg.BanType)
  303. })
  304. //gen name
  305. serverproto.Handle_DB_SSNameReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  306. msg := ev.Msg().(*serverproto.SSNameReq)
  307. util.DebugF("uid=%v SSNameReq msg=%v", cliId.SessID, msg)
  308. ntfMsg := &serverproto.SSNameNtf{
  309. Error: int32(serverproto.ErrorCode_ERROR_OK),
  310. Name: msg.Name,
  311. Type: msg.Type,
  312. }
  313. //玩家Uid
  314. namePlayerUid := cliId.SessID
  315. namePlayerUidStr := strconv.FormatUint(namePlayerUid, 10)
  316. //判断是否重名
  317. //name需要做base64处理,否则名字中有非法字符,会导致redis操作错乱
  318. msgStr := base64.StdEncoding.EncodeToString([]byte(msg.Name))
  319. keyStr := RoleNickNamePrefix + strconv.Itoa(int(msg.Zone)) + "_" + msgStr
  320. if model.ExistKey(keyStr) {
  321. ntfMsg.Error = int32(serverproto.ErrorCode_ERROR_NAME_EXIST)
  322. } else {
  323. //改名
  324. if msg.Type == 1 && msg.OldName != "" {
  325. oldNameStr := base64.StdEncoding.EncodeToString([]byte(msg.OldName))
  326. oldKeyStr := RoleNickNamePrefix + strconv.Itoa(int(msg.Zone)) + "_" + oldNameStr
  327. service.GetRedis().Del(oldKeyStr)
  328. }
  329. err := model.SetDataToRedis(keyStr, namePlayerUidStr)
  330. if err != nil {
  331. util.ErrorF("uid=%v SSNameReq SetDataToRedis err=%v ", cliId.SessID, err)
  332. ntfMsg.Error = int32(serverproto.ErrorCode_ERROR_FAIL)
  333. }
  334. }
  335. model.ServiceReplay(ev, ntfMsg)
  336. })
  337. //hero
  338. serverproto.Handle_DB_SSHeroDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  339. msg := ev.Msg().(*serverproto.SSHeroDataSaveReq)
  340. util.DebugF("uuid=%v SSHeroDataSaveReq msg=%v ", cliId.SessID, msg)
  341. err := SetRoleHeroDataToRedis(cliId.SessID, msg.Hero)
  342. if err != nil {
  343. util.InfoF("uuid=%v SSHeroDataSaveReq save err=%v", cliId.SessID, err)
  344. }
  345. })
  346. //equip
  347. serverproto.Handle_DB_SSEquipDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  348. msg := ev.Msg().(*serverproto.SSEquipDataSaveReq)
  349. util.DebugF("uuid=%v SSEquipDataSaveReq msg=%v", cliId.SessID, msg)
  350. err := SetSystemDataToRedis(RoleEquipDataPrefix, cliId.SessID, msg.Equip)
  351. if err != nil {
  352. util.InfoF("uuid=%v SSEquipDataSaveReq save err=%v", cliId.SessID, err)
  353. }
  354. })
  355. //skill equip
  356. serverproto.Handle_DB_SSSkillEquipDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  357. msg := ev.Msg().(*serverproto.SSSkillEquipDataSaveReq)
  358. util.DebugF("uid=%v SSSkillEquipDataSaveReq msg=%v", cliId.SessID, msg)
  359. SetSkillEquipDataToRedis(cliId.SessID, msg)
  360. })
  361. //bag
  362. serverproto.Handle_DB_SSBagDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  363. msg := ev.Msg().(*serverproto.SSBagDataSaveReq)
  364. util.DebugF("uuid=%v SSBagDataSaveReq msg=%v", cliId.SessID, msg)
  365. err := SetSystemDataToRedis(RoleBagDataPrefix, cliId.SessID, msg.Bag)
  366. if err != nil {
  367. util.InfoF("uid=%v SSBagDataSaveReq save err=%v", cliId.SessID, err)
  368. }
  369. })
  370. //chip
  371. serverproto.Handle_DB_SSChipDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  372. msg := ev.Msg().(*serverproto.SSChipDataSaveReq)
  373. util.DebugF("uid=%v SSChipDataSaveReq msg=%v", cliId.SessID, msg)
  374. err := SetSystemDataToRedis(RoleChipDataPrefix, cliId.SessID, msg.Chip)
  375. if err != nil {
  376. util.InfoF("uid=%v SSChipDataSaveReq save err=%v", cliId.SessID, err)
  377. }
  378. })
  379. //map
  380. serverproto.Handle_DB_SSMapDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  381. msg := ev.Msg().(*serverproto.SSMapDataSaveReq)
  382. util.DebugF("uid=%v SSMapDataSaveReq msg=%v", cliId.SessID, msg)
  383. err := SetSystemDataToRedis(RoleMapDataPrefix, cliId.SessID, msg.RoleMap)
  384. if err != nil {
  385. util.InfoF("uid=%v SSMapDataSaveReq save err=%v", cliId.SessID, err)
  386. }
  387. })
  388. //card
  389. serverproto.Handle_DB_SSCardDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  390. msg := ev.Msg().(*serverproto.SSCardDataSaveReq)
  391. //util.DebugF("uid=%v SSCardDataSaveReq msg=%v", cliId.SessID, msg)
  392. err := SetSystemDataToRedis(RoleCardDataPrefix, cliId.SessID, msg.Card)
  393. if err != nil {
  394. util.InfoF("uid=%v SSCardDataSaveReq save err=%v", cliId.SessID, err)
  395. }
  396. })
  397. //fashion
  398. serverproto.Handle_DB_SSFashionDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  399. msg := ev.Msg().(*serverproto.SSFashionDataSaveReq)
  400. //util.DebugF("uid=%v SSFashionDataSaveReq msg=%v", cliId.SessID, msg)
  401. err := SetSystemDataToRedis(RoleFashionDataPrefix, cliId.SessID, msg.Fashion)
  402. if err != nil {
  403. util.InfoF("uid=%v SSFashionDataSaveReq save err=%v", cliId.SessID, err)
  404. }
  405. })
  406. //battle
  407. serverproto.Handle_DB_SSBattleDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  408. msg := ev.Msg().(*serverproto.SSBattleDataSaveReq)
  409. //util.DebugF("uid=%v SSBattleDataSaveReq msg=%v", cliId.SessID, msg)
  410. err := SetSystemDataToRedis(RoleBattleDataPrefix, cliId.SessID, msg.Battle)
  411. if err != nil {
  412. util.InfoF("uid=%v SSBattleDataSaveReq save err=%v", cliId.SessID, err)
  413. }
  414. })
  415. //task
  416. serverproto.Handle_DB_SSTaskDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  417. msg := ev.Msg().(*serverproto.SSTaskDataSaveReq)
  418. util.DebugF("uid=%v SSTaskDataSaveReq msg=%v", cliId.SessID, msg)
  419. SetRoleTaskToRedis(cliId.SessID, msg.Task)
  420. })
  421. //red
  422. serverproto.Handle_DB_SSRoleRedSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  423. msg := ev.Msg().(*serverproto.SSRoleRedSaveReq)
  424. util.DebugF("uid=%v SSRoleRedSaveReq msg=%v", cliId.SessID, msg)
  425. err := SetSystemDataToRedis(RoleRedDataPrefix, cliId.SessID, msg.Red)
  426. if err != nil {
  427. util.InfoF("uid=%v SSRoleRedSaveReq save err=%v", cliId.SessID, err)
  428. }
  429. })
  430. //shop
  431. serverproto.Handle_DB_SSShopDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  432. msg := ev.Msg().(*serverproto.SSShopDataSaveReq)
  433. util.DebugF("uid=%v SSShopDataSaveReq msg=%v", cliId.SessID, msg)
  434. err := SetSystemDataToRedis(RoleShopDataPrefix, cliId.SessID, msg.Shop)
  435. if err != nil {
  436. util.InfoF("uid=%v SSShopDataSaveReq save err=%v", cliId.SessID, err)
  437. }
  438. })
  439. //activity
  440. serverproto.Handle_DB_SSActivityDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  441. msg := ev.Msg().(*serverproto.SSActivityDataSaveReq)
  442. //util.DebugF("uid=%v SSActivityDataSaveReq msg=%v", cliId.SessID, msg)
  443. SetRoleActivityDataToRedis(cliId.SessID, msg)
  444. })
  445. serverproto.Handle_DB_SSActivitySmashEggsMsgSaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  446. msg := ev.Msg().(*serverproto.SSActivitySmashEggsMsgSaveNtf)
  447. //util.DebugF("uid=%v SSActivityDataSaveReq msg=%v", cliId.SessID, msg)
  448. SetRoleActivitySmashEggsMsgToRedis(msg)
  449. })
  450. //competition
  451. serverproto.Handle_DB_SSCompetitionSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  452. msg := ev.Msg().(*serverproto.SSCompetitionSaveReq)
  453. util.DebugF("uid=%v SSCompetitionSaveReq msg=%v", cliId.SessID, msg)
  454. err := SetSystemDataToRedis(RoleCompetitionDataPrefix, cliId.SessID, msg.CompetitionData)
  455. if err != nil {
  456. util.InfoF("uid=%v SSCompetitionSaveReq save err=%v", cliId.SessID, err)
  457. }
  458. })
  459. //tower
  460. serverproto.Handle_DB_SSTowerDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  461. msg := ev.Msg().(*serverproto.SSTowerDataSaveReq)
  462. util.DebugF("uid=%v receive SSTowerDataSaveReq msg=%v", cliId.SessID, msg)
  463. err := SetSystemDataToRedis(RoleTowerDataPrefix, cliId.SessID, msg.Tower)
  464. if err != nil {
  465. util.InfoF("uid=%v SSTowerDataSaveReq save err=%v", cliId.SessID, err)
  466. }
  467. })
  468. //guild
  469. serverproto.Handle_DB_SSGuildDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  470. msg := ev.Msg().(*serverproto.SSGuildDataSaveReq)
  471. util.InfoF("uid=%v receive SSGuildDataSaveReq、 msg=%v", cliId.SessID, msg)
  472. err := SetSystemDataToRedis(RoleGuildDataPrefix, cliId.SessID, msg.Guild)
  473. if err != nil {
  474. util.InfoF("uid=%v SSGuildDataSaveReq save err=%v", cliId.SessID, err)
  475. }
  476. })
  477. //draw
  478. serverproto.Handle_DB_SSRoleDrawDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  479. msg := ev.Msg().(*serverproto.SSRoleDrawDataSaveReq)
  480. //util.DebugF("uid=%v SSRoleDrawDataSaveReq msg=%v", cliId.SessID, msg)
  481. err := SetSystemDataToRedis(RoleDrawDataPrefix, cliId.SessID, msg.RoleDraw)
  482. if err != nil {
  483. util.InfoF("uid=%v SSRoleDrawDataSaveReq save err=%v", cliId.SessID, err)
  484. }
  485. })
  486. //rush
  487. serverproto.Handle_DB_SSRoleRushDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  488. msg := ev.Msg().(*serverproto.SSRoleRushDataSaveReq)
  489. //util.DebugF("uid=%v SSRoleDrawDataSaveReq msg=%v", cliId.SessID, msg)
  490. err := SetSystemDataToRedis(RoleRushDataPrefix, cliId.SessID, msg.RoleRush)
  491. if err != nil {
  492. util.InfoF("uid=%v SSRoleRushDataSaveReq save err=%v", cliId.SessID, err)
  493. }
  494. })
  495. //statistics
  496. serverproto.Handle_DB_SSStatisticsDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  497. msg := ev.Msg().(*serverproto.SSStatisticsDataSaveReq)
  498. //util.DebugF("uid=%v receive SSStatisticsDataSaveReq msg=%v", cliId.SessID, msg)
  499. err := SetSystemDataToRedis(RoleStatisticDataPrefix, cliId.SessID, msg.Statistics)
  500. if err != nil {
  501. util.InfoF("uid=%v SSStatisticsDataSaveReq save err=%v", cliId.SessID, err)
  502. }
  503. })
  504. //私聊离线消息保存
  505. serverproto.Handle_DB_SSChatMessageSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  506. msg := ev.Msg().(*serverproto.SSChatMessageSaveReq)
  507. util.DebugF("uid=%v SSChatMessageSaveReq msg=%v", cliId.SessID, msg)
  508. AddChatOfflineMsg(msg.FromPlayer, msg.TargetId, msg.OfflineMsg)
  509. })
  510. //获取离线私聊消息
  511. serverproto.Handle_DB_CSChatOfflineMsgReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  512. msg := ev.Msg().(*serverproto.CSChatOfflineMsgReq)
  513. //util.DebugF("uid=%v CSChatOfflineMsgReq msg=%v", cliId.SessID, msg)
  514. ackMsg := &serverproto.SCChatOfflineMsgAck{
  515. Error: int32(serverproto.ErrorCode_ERROR_OK),
  516. }
  517. err := GetChatOfflineMsgFromRedis(msg.SelfId, msg.TargetId, ackMsg)
  518. if err != nil {
  519. util.DebugF("uid=%v CSChatOfflineMsgReq err=%v", cliId.SessID, err)
  520. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_FAIL)
  521. }
  522. model.ServiceReplay(ev, ackMsg)
  523. })
  524. //获取离线信息玩家列表
  525. serverproto.Handle_DB_SSChatOfflinePlayerReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  526. //msg := ev.Msg().(*serverproto.SSChatOfflinePlayerReq)
  527. //util.DebugF("uid=%v SSChatOfflinePlayerReq msg=%v", cliId.SessID, msg)
  528. ackMsg := &serverproto.SSChatOfflinePlayerAck{
  529. RoleOfflineMsgList: &serverproto.RoleChat{},
  530. }
  531. GetChatOfflinePlayerList(cliId.SessID, ackMsg.RoleOfflineMsgList)
  532. if len(ackMsg.RoleOfflineMsgList.OfflineMsgPlayerList) > 0 {
  533. model.ServiceReplay(ev, ackMsg)
  534. }
  535. })
  536. //save player brief info
  537. serverproto.Handle_DB_SSRoleBriefInfoSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  538. msg := ev.Msg().(*serverproto.SSRoleBriefInfoSaveReq)
  539. //util.DebugF("uid=%v SSRoleBriefInfoSaveReq nickname=%v", cliId.SessID, string(msg.BriefInfo.NickName))
  540. UpdatePlayerBriefInfo(cliId.SessID, msg.BriefInfo, false, msg.ActiveCode, msg.OpenId, msg.SubPlatform)
  541. })
  542. //获取简介信息
  543. serverproto.Handle_DB_SSGetRoleBriefInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  544. msg := ev.Msg().(*serverproto.SSGetRoleBriefInfoReq)
  545. //util.DebugF("uid=%v SSGetRoleBriefInfoReq msg=%v", cliId.SessID, msg)
  546. ssAckMsg := &serverproto.SSGetRoleBriefInfoAck{
  547. Type: msg.Type,
  548. }
  549. for idx := 0; idx < len(msg.PlayerUidList); idx++ {
  550. err, bfInfo := GetPlayerBriefInfo(msg.PlayerUidList[idx])
  551. if err != nil {
  552. continue
  553. }
  554. ssAckMsg.BriefInfo = append(ssAckMsg.BriefInfo, bfInfo)
  555. }
  556. model.ServiceReplay(ev, ssAckMsg)
  557. })
  558. //save arena
  559. serverproto.Handle_DB_SSArenaDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  560. msg := ev.Msg().(*serverproto.SSArenaDataSaveReq)
  561. //util.DebugF("uid=%v SSArenaDataSaveReq msg=%v", cliId.SessID, msg)
  562. err := SetSystemDataToRedis(RoleArenaDataPrefix, cliId.SessID, msg.RoleArena)
  563. if err != nil {
  564. util.InfoF("uid=%v SSArenaDataSaveReq save err=%v", cliId.SessID, err)
  565. }
  566. })
  567. serverproto.Handle_DB_SSPayOrderDbReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  568. msg := ev.Msg().(*serverproto.SSPayOrderDbReq)
  569. //util.DebugF("uid=%v SSArenaDataSaveReq msg=%v", cliId.SessID, msg)
  570. msgStr, err := service.GetRedis().HGet(model.PayOrderPrefix, strconv.FormatUint(msg.CpOrderId, 10)).Result()
  571. if err != nil {
  572. util.ErrorF("SSPayOrderDbReq order not exist err=%v, cpOrderId=%v", err, msg.CpOrderId)
  573. }
  574. payInfo := &serverproto.PayOrderSaveInfo{}
  575. err = model.GetDecodeMessage(payInfo, msgStr)
  576. if err != nil {
  577. util.ErrorF("SSPayOrderDbReq GetDecodeMessage err=%, cpOrderId=%v", err, msg.CpOrderId)
  578. }
  579. ackMsg := &serverproto.SSPayOrderDbAck{}
  580. ackMsg.PayOrderInfo = payInfo
  581. ackMsg.Uid = msg.Uid
  582. model.ServiceReplay(ev, ackMsg)
  583. })
  584. //arena 匹配操作
  585. serverproto.Handle_DB_SSArenaMatchReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  586. msg := ev.Msg().(*serverproto.SSArenaMatchReq)
  587. util.DebugF("uid=%v SSArenaMatchReq msg=%v", cliId.SessID, msg)
  588. ackMsg := &serverproto.SSArenaMatchAck{}
  589. ackMsg.FightInfo = ArenaMatch(cliId.SessID, msg.Score, msg.LastPlayerUid, msg.MatchLeft, msg.MatchRight, msg.TopMatchLeft)
  590. model.ServiceReplay(ev, ackMsg)
  591. })
  592. //mail 邮件数据变更
  593. serverproto.Handle_DB_SSMailSaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  594. msg := ev.Msg().(*serverproto.SSMailSaveNtf)
  595. util.DebugF("uid=%v SSMailSaveNtf msg=%v", cliId.SessID, msg)
  596. SetMailDataChangToRedis(cliId.SessID, msg.MailStateList, msg.DelMailList, msg.AddMailList, msg.MaxMailId, msg.CurGlobalMailId)
  597. })
  598. //添加邮件(离线方式添加到db中,在线添加在SSMailSaveNtf中)
  599. serverproto.Handle_DB_SSAddMailNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  600. msg := ev.Msg().(*serverproto.SSAddMailNtf)
  601. util.DebugF("uid=%v SSAddMailNtf msg=%v", cliId.SessID, msg)
  602. mail := &serverproto.MailContent{
  603. ConfigId: msg.MailConfigId,
  604. Type: msg.MailType,
  605. }
  606. if msg.MailType == int32(serverproto.MailType_MailType_GM) ||
  607. msg.MailType == int32(serverproto.MailType_MailType_GM_Self) {
  608. mail.ConfigId = 0
  609. mail.Title = msg.Title
  610. mail.Content = msg.Content
  611. mail.BeginTime = util.GetTimeMilliseconds()
  612. mail.ExpireTime = util.GetTimeMilliseconds() + 30*24*60*60*1000
  613. }
  614. if len(msg.MailParamList) > 0 {
  615. mail.ParamList = append(msg.MailParamList)
  616. }
  617. if len(msg.RewardList) > 0 {
  618. mail.RewardList = append(msg.RewardList)
  619. }
  620. for _, uid := range msg.NotifyList {
  621. AddMailToRedis(uid, mail)
  622. if msg.MailConfigId == model.GlobalMailyuanhangRankAward {
  623. SetUserRankScore(uid)
  624. }
  625. }
  626. })
  627. //观察玩家
  628. serverproto.Handle_DB_SSGetOtherTargetInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  629. msg := ev.Msg().(*serverproto.SSGetOtherTargetInfoReq)
  630. //util.DebugF("uid=%v SSGetOtherTargetInfoReq msg=%v", cliId.SessID, msg)
  631. ackMsg := &serverproto.SSGetOtherTargetInfoAck{
  632. Uid: msg.Uid,
  633. TUid: msg.TUid,
  634. }
  635. ackMsg.Info = &serverproto.ViewRoleInfo{}
  636. err := GetOtherViewInfo(msg.TUid, ackMsg.Info)
  637. ackMsg.Error = err
  638. model.ServiceReplay(ev, ackMsg)
  639. })
  640. //根据名字获取玩家uid(uidList可能有多个玩家)
  641. serverproto.Handle_DB_SSGetUidByRoleNameReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  642. msg := ev.Msg().(*serverproto.SSGetUidByRoleNameReq)
  643. //util.DebugF("uid=%v SSGetUidByRoleNameReq msg=%v", cliId.SessID, msg)
  644. //根据创建角色时加入默认名字查找列表中,最大长度20个,如果发生了改名字操作则从列表中移除
  645. ackMsg := &serverproto.SSGetUidByRoleNameAck{}
  646. GetNameSearchList(msg.SearchName, msg.SelfUid, msg.Zone, ackMsg)
  647. model.ServiceReplay(ev, ackMsg)
  648. })
  649. ////social
  650. //social未找到直接发送给db处理
  651. serverproto.Handle_DB_SSDBFriendAddFansReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  652. msg := ev.Msg().(*serverproto.SSDBFriendAddFansReq)
  653. util.DebugF("uid=%v SSDBFriendAddFansReq msg=%v", cliId.SessID, msg)
  654. ret, addBFInfo := FriendAddFans(msg.FromUid, msg.AddUid)
  655. ssAckMsg := &serverproto.SSDBFriendAddFansAck{
  656. Error: int32(serverproto.ErrorCode_ERROR_OK),
  657. FromUid: msg.FromUid,
  658. }
  659. if ret != int32(serverproto.ErrorCode_ERROR_OK) {
  660. ssAckMsg.Error = ret
  661. } else {
  662. ssAckMsg.AddUid = addBFInfo
  663. }
  664. model.ServiceReplay(ev, ssAckMsg)
  665. })
  666. //从delUid中移除粉丝fromUid
  667. serverproto.Handle_DB_SSDBFriendDelFansNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  668. msg := ev.Msg().(*serverproto.SSDBFriendDelFansNtf)
  669. util.DebugF("uid=%v SSDBFriendDelFansNtf msg=%v", cliId.SessID, msg)
  670. FriendDelFans(msg.FromUid, msg.DelUid)
  671. })
  672. //friend save data
  673. serverproto.Handle_DB_SSFriendDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  674. msg := ev.Msg().(*serverproto.SSFriendDataSaveReq)
  675. util.DebugF("uid=%v SSFriendDataSaveReq msg=%v", cliId.SessID, msg)
  676. SetFriendDataToRedis(cliId.SessID, msg)
  677. })
  678. //互粉好友简介信息
  679. serverproto.Handle_DB_SSGetFriendTowerInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  680. msg := ev.Msg().(*serverproto.SSGetFriendTowerInfoReq)
  681. util.DebugF("uid=%v SSGetFriendTowerInfoReq msg=%v", cliId.SessID, msg)
  682. GetFriendBriefFromRedis(msg.UidList, msg.Begin, msg.End, ev)
  683. })
  684. ////pet
  685. serverproto.Handle_DB_SSPetDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  686. msg := ev.Msg().(*serverproto.SSPetDataSaveReq)
  687. util.DebugF("uid=%v SSPetDataSaveReq msg=%v", cliId.SessID, msg)
  688. SetRolePetDataToRedis(cliId.SessID, msg)
  689. })
  690. //设置玩家宠物援助信息
  691. serverproto.Handle_DB_SSPetSetAssistNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  692. msg := ev.Msg().(*serverproto.SSPetSetAssistNtf)
  693. util.DebugF("uid=%v SSPetSetAssistNtf msg=%v", cliId.SessID, msg)
  694. SetRolePetAssistDataToRedis(cliId.SessID, msg)
  695. })
  696. //获取其他援助玩家的宠物信息(羁绊信息,已经设置在玩家的羁绊列表中,检查合法性)
  697. serverproto.Handle_DB_SSPetQueryAssistInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  698. msg := ev.Msg().(*serverproto.SSPetQueryAssistInfoReq)
  699. util.DebugF("uid=%v SSPetQueryAssistInfoReq msg=%v", cliId.SessID, msg)
  700. ackMsg := &serverproto.SSPetQueryAssistInfoAck{
  701. Notify: msg.Notify,
  702. }
  703. RolePetQueryAssistInfo(cliId.SessID, msg, ackMsg)
  704. model.ServiceReplay(ev, ackMsg)
  705. })
  706. //获取激活羁绊所需的宠物列表(援助列表)
  707. serverproto.Handle_DB_SSPetBondAssistListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  708. msg := ev.Msg().(*serverproto.SSPetBondAssistListReq)
  709. util.DebugF("uid=%v SSPetBondAssistListReq msg=%v", cliId.SessID, msg)
  710. ackMsg := &serverproto.SSPetBondAssistListAck{
  711. BondCfgId: msg.BondCfgId,
  712. }
  713. RolePetBondAssistListGet(cliId.SessID, msg, ackMsg)
  714. model.ServiceReplay(ev, ackMsg)
  715. })
  716. //最早收集到宠物最高进阶等级获取
  717. serverproto.Handle_DB_SSPetAdvAchievementReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  718. msg := ev.Msg().(*serverproto.SSPetAdvAchievementReq)
  719. util.DebugF("uid=%v SSPetAdvAchievementReq msg=%v", cliId.SessID, msg)
  720. ackMsg := &serverproto.SSPetAdvAchievementAck{
  721. PetCfgId: msg.PetCfgId,
  722. }
  723. PetAdvAchievementGet(msg.PetCfgId, ackMsg)
  724. model.ServiceReplay(ev, ackMsg)
  725. })
  726. serverproto.Handle_DB_SSPetAdvAchievementSetNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  727. msg := ev.Msg().(*serverproto.SSPetAdvAchievementSetNtf)
  728. util.DebugF("uid=%v SSPetAdvAchievementSetNtf msg=%v", cliId.SessID, msg)
  729. PetAdvAchievementSet(cliId.SessID, msg.PetCfgId, msg.AdvLevel)
  730. })
  731. ////expedition
  732. //救助发起求助的玩家 FromUid发起救助操作的玩家 BeHelpedUid发起求助的放玩家
  733. serverproto.Handle_DB_SSExpeditionDBHelpReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  734. msg := ev.Msg().(*serverproto.SSExpeditionDBHelpReq)
  735. util.DebugF("uid=%v SSExpeditionDBHelpReq msg=%v", cliId.SessID, msg)
  736. ret := ExpeditionHelp(msg.FromUid, msg.BeHelpedUid)
  737. ssAckMsg := &serverproto.SSExpeditionDBHelpAck{
  738. Error: int32(ret),
  739. FromUid: msg.FromUid,
  740. BeHelpedUid: msg.BeHelpedUid,
  741. }
  742. model.ServiceReplay(ev, ssAckMsg)
  743. })
  744. ////invitation
  745. //save
  746. serverproto.Handle_DB_SSInvitationSaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  747. msg := ev.Msg().(*serverproto.SSInvitationSaveNtf)
  748. //util.DebugF("uid=%v SSInvitationSaveNtf msg=%v", cliId.SessID, msg)
  749. SetInvitationDataToRedis(cliId.SessID, msg)
  750. })
  751. //生成邀请码/判断导师是否合法
  752. serverproto.Handle_DB_SSInvitationGenNumberReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  753. msg := ev.Msg().(*serverproto.SSInvitationGenNumberReq)
  754. util.DebugF("uid=%v SSInvitationGenNumberReq msg=%v", cliId.SessID, msg)
  755. genNumber, checkMasterUid := InvitationGenNumber(cliId.SessID, msg.GenNumber, msg.MasterUid)
  756. ssAckMsg := &serverproto.SSInvitationGenNumberAck{
  757. InvitationNumber: genNumber,
  758. MasterUid: checkMasterUid,
  759. }
  760. model.ServiceReplay(ev, ssAckMsg)
  761. })
  762. //master玩家最近未上线,db操作
  763. serverproto.Handle_DB_SSInvitationBeToMemberDBReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  764. msg := ev.Msg().(*serverproto.SSInvitationBeToMemberDBReq)
  765. util.DebugF("uid=%v SSInvitationBeToMemberDBReq msg=%v", cliId.SessID, msg)
  766. ret := InvitationBeToBeMember(msg.MasterNumber, msg.MasterUid, msg.SelfUid)
  767. ssAckMsg := &serverproto.SSInvitationBeToMemberDBAck{
  768. Error: int32(ret),
  769. MasterNumber: msg.MasterNumber,
  770. MasterUid: msg.MasterUid,
  771. SelfUid: msg.SelfUid,
  772. }
  773. model.ServiceReplay(ev, ssAckMsg)
  774. })
  775. //根据邀请码查询玩家信息
  776. serverproto.Handle_DB_SSInvitationNumberUserInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  777. msg := ev.Msg().(*serverproto.SSInvitationNumberUserInfoReq)
  778. util.DebugF("uid=%v SSInvitationNumberUserInfoReq msg=%v", cliId.SessID, msg)
  779. ssAckMsg := &serverproto.SSInvitationNumberUserInfoAck{}
  780. InvitationGetUserInfoByNumber(cliId.SessID, msg.Number, ssAckMsg)
  781. model.ServiceReplay(ev, ssAckMsg)
  782. })
  783. //等级,充值等数据变更时通知导师(导师不在线保存到数据库)
  784. serverproto.Handle_DB_SSInvitationMemberNoticeMasterNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  785. msg := ev.Msg().(*serverproto.SSInvitationMemberNoticeMasterNtf)
  786. util.DebugF("uid=%v SSInvitationMemberNoticeMasterNtf msg=%v", cliId.SessID, msg)
  787. InvitationMemberDataChangeNotice(msg.SelfUid, msg.MasterUid, msg.Param)
  788. })
  789. ////pay
  790. //充值订单数据保存
  791. serverproto.Handle_DB_SSPayInfoSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  792. msg := ev.Msg().(*serverproto.SSPayInfoSaveReq)
  793. util.DebugF("uid=%v SSPayInfoSaveReq msg=%v", cliId.SessID, msg)
  794. ret := SetPayOrderInfoToRedis(cliId.SessID, msg.PayOrderInfo)
  795. if msg.SaveNotify {
  796. ssAckMsg := &serverproto.SSPayInfoSaveAck{
  797. Error: int32(ret),
  798. PayOrderInfo: msg.PayOrderInfo,
  799. }
  800. model.ServiceReplay(ev, ssAckMsg)
  801. }
  802. })
  803. //上线获取成功成但是没有获取奖励的订单数据
  804. serverproto.Handle_DB_SSPayInfoOrderOKListGetReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  805. msg := ev.Msg().(*serverproto.SSPayInfoOrderOKListGetReq)
  806. util.DebugF("uid=%v SSPayInfoOrderOKListGetReq msg=%v", cliId.SessID, msg)
  807. ssAckMsg := &serverproto.SSPayInfoOrderOkListGetAck{}
  808. GetPayOrderOkListFromRedis(cliId.SessID, ssAckMsg)
  809. model.ServiceReplay(ev, ssAckMsg)
  810. })
  811. serverproto.Handle_DB_SSRuneDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  812. msg := ev.Msg().(*serverproto.SSRuneDataSaveReq)
  813. //util.DebugF("uid=%v SSRuneDataSaveReq msg=%v", cliId.SessID, msg)
  814. err := SetRoleRuneDataToRedis(cliId.SessID, msg.RoleRune)
  815. if err != nil {
  816. util.InfoF("uuid=%v SSHeroDataSaveReq save err=%v", cliId.SessID, err)
  817. }
  818. })
  819. //keepsake
  820. serverproto.Handle_DB_SSKeepSakeSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  821. msg := ev.Msg().(*serverproto.SSKeepSakeSaveReq)
  822. util.DebugF("uid=%v SSKeepSakeSaveReq msg=%v", cliId.SessID, msg)
  823. err := SetSystemDataToRedis(RoleKeepSakeDataPrefix, cliId.SessID, msg.RoleKeepSake)
  824. if err != nil {
  825. util.InfoF("uid=%v SSKeepSakeSaveReq save err=%v", cliId.SessID, err)
  826. }
  827. })
  828. ////百人道场
  829. serverproto.Handle_DB_SSDaoChang100SaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  830. msg := ev.Msg().(*serverproto.SSDaoChang100SaveNtf)
  831. //util.DebugF("uid=%v SSDaoChang100SaveNtf msg=%v", cliId.SessID, msg)
  832. SetRoleDaoChang100ToRedis(cliId.SessID, msg.SaveData)
  833. })
  834. //百人道场转盘大奖日志
  835. serverproto.Handle_DB_CSDaoChang100WheelLogReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  836. ssAckMsg := &serverproto.SCDaoChang100WheelLogAck{}
  837. GetRoleDaoChang100WheelLogListFromRedis(ssAckMsg)
  838. model.ServiceReplay(ev, ssAckMsg)
  839. })
  840. serverproto.Handle_DB_SSDaoChang100WheelLogAddNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  841. msg := ev.Msg().(*serverproto.SSDaoChang100WheelLogAddNtf)
  842. SetRoleDaoChang100WheelLogToRedis(cliId.SessID, msg)
  843. })
  844. ////远航试炼
  845. serverproto.Handle_DB_SSCrossDataSaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  846. msg := ev.Msg().(*serverproto.SSCrossDataSaveNtf)
  847. util.DebugF("uid=%v SSCrossDataSaveNtf msg=%v", cliId.SessID, msg)
  848. err := SetSystemDataToRedis(RoleCrossPrefix, cliId.SessID, msg.SaveData)
  849. if err != nil {
  850. util.InfoF("uid=%v SSCrossDataSaveNtf save err=%v", cliId.SessID, err)
  851. }
  852. })
  853. //远航被挑战日志保存
  854. serverproto.Handle_DB_SSCrossYuanHangTrialLogNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  855. msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialLogNtf)
  856. util.DebugF("uid=%v SSCrossYuanHangTrialLogNtf msg=%v", msg.NtfUid, msg)
  857. SetRoleCrossYuanHangLogToRedis(msg)
  858. })
  859. //称号数据保存
  860. serverproto.Handle_DB_SSHeadDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  861. msg := ev.Msg().(*serverproto.SSHeadDataSaveReq)
  862. //util.DebugF("uid=%v SSFashionDataSaveReq msg=%v", cliId.SessID, msg)
  863. err := SetSystemDataToRedis(RoleHeadDataPrefix, cliId.SessID, msg.Head)
  864. if err != nil {
  865. util.InfoF("uid=%v SSHeadDataSaveReq save err=%v", cliId.SessID, err)
  866. }
  867. })
  868. serverproto.Handle_DB_SSUpdateHeadDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  869. msg := ev.Msg().(*serverproto.SSUpdateHeadDataSaveReq)
  870. util.DebugF("uid=%v SSUpdateHeadDataSaveReq msg=%v", cliId.SessID, msg)
  871. headData := &serverproto.RoleHead{}
  872. err := GetSystemDataFromRedis(RoleHeadDataPrefix, msg.Uid, headData)
  873. if err != nil && err != service.NIL {
  874. util.InfoF("uid=%v [SSUpdateHeadDataSaveReq] RoleHead err:%v", msg.Uid, err)
  875. return
  876. }
  877. for _, data := range headData.Heads {
  878. if data.HeadId != msg.HeadId {
  879. continue
  880. }
  881. data.State = msg.State
  882. break
  883. }
  884. err1 := SetSystemDataToRedis(RoleHeadDataPrefix, msg.Uid, headData)
  885. if err1 != nil {
  886. util.InfoF("uid=%v SSUpdateHeadDataSaveReq update err=%v", msg.Uid, err)
  887. }
  888. })
  889. //许愿想数据保存
  890. serverproto.Handle_DB_SSWishBoxDataSaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  891. msg := ev.Msg().(*serverproto.SSWishBoxDataSaveReq)
  892. //util.DebugF("uid=%v SSFashionDataSaveReq msg=%v", cliId.SessID, msg)
  893. err := SetSystemDataToRedis(RoleWishBoxDataPrefix, cliId.SessID, msg.Wishs)
  894. if err != nil {
  895. util.InfoF("uid=%v SSWishBoxDataSaveReq save err=%v", cliId.SessID, err)
  896. }
  897. })
  898. // bt
  899. // 波利商城
  900. serverproto.Handle_DB_SSBTDataSaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  901. msg := ev.Msg().(*serverproto.SSBTDataSaveNtf)
  902. //util.DebugF("uid=%v SSFashionDataSaveReq msg=%v", cliId.SessID, msg)
  903. SetBTDataToRedis(cliId.SessID, msg)
  904. })
  905. }