role_msg.go 36 KB

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