Commit d2f067d8495e029066c87f3efb0db5207d8a979d

Authored by 陆恒
1 parent 6b096748
Exists in ver2.3.0 and in 1 other branch ver2.2.8

增加兼容老表

src/HttpServer/logic/datadef.go
@@ -325,9 +325,24 @@ type WithDrawRecord struct { @@ -325,9 +325,24 @@ type WithDrawRecord struct {
325 Typ int `json:"typ"` 325 Typ int `json:"typ"`
326 } 326 }
327 327
  328 +type WithDrawDescs []WithDrawDesc
  329 +
  330 +func (v WithDrawDescs) Len() int {
  331 + return len(v)
  332 +}
  333 +
  334 +func (v WithDrawDescs) Swap(i, j int) {
  335 + v[i], v[j] = v[j], v[i]
  336 +}
  337 +
  338 +func (v WithDrawDescs) Less(i, j int) bool {
  339 +
  340 + return v[i].Cid < v[j].Cid
  341 +}
  342 +
328 type WithDrawInfo struct { 343 type WithDrawInfo struct {
329 - Cashdata []WithDrawDesc `json:"cashdata"`  
330 - SpecialCashdata []WithDrawDesc `json:"specialcashdata"` 344 + Cashdata WithDrawDescs `json:"cashdata"`
  345 + SpecialCashdata WithDrawDescs `json:"specialcashdata"`
331 } 346 }
332 347
333 type WithDrawDesc struct { 348 type WithDrawDesc struct {
src/HttpServer/logic/function.go
@@ -469,6 +469,90 @@ func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel str @@ -469,6 +469,90 @@ func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel str
469 return 0, 0, 0, 0, 0, 0, 0 469 return 0, 0, 0, 0, 0, 0, 0
470 } 470 }
471 471
  472 +func (u *UserData) ReInitWithDraw(uniqueuid string) error {
  473 + //u.WithDraw.Cashdata = u.WithDraw.Cashdata[:0]
  474 + //重新读取配置
  475 + for _, val := range jsonconf.GetJsonConf().WithDrawConfig {
  476 +
  477 + isin, idx := u.IsInWithList(val.Id)
  478 + if isin && idx > 0 && idx < len(u.WithDraw.Cashdata) {
  479 + //已经有了的话更新一下配置
  480 + u.WithDraw.Cashdata[idx].Day = val.Day
  481 + u.WithDraw.Cashdata[idx].Limitlv = val.Level
  482 + u.WithDraw.Cashdata[idx].Cnum = val.Money
  483 + } else {
  484 + //还没有 新加入
  485 + var tmp WithDrawDesc
  486 + tmp.Cid = val.Id
  487 + tmp.Cnum = val.Money
  488 + if val.Isnew == 1 {
  489 + tmp.Isnew = 1
  490 + } else {
  491 + tmp.Isnew = 2
  492 + }
  493 + tmp.Limitlv = val.Level
  494 + if val.Id == 1 {
  495 + tmp.Preisfind = 1
  496 + } else {
  497 + tmp.Preisfind = 0
  498 + }
  499 + tmp.Day = val.Day
  500 + u.WithDraw.Cashdata = append(u.WithDraw.Cashdata, tmp)
  501 + }
  502 +
  503 + }
  504 +
  505 + //需要统一处理一下前置条件
  506 + for i := 0; i < len(u.WithDraw.Cashdata); i++ {
  507 + if i > 0 {
  508 + //需要判断下前面的前置条件
  509 + if u.WithDraw.Cashdata[i-1].Preisfind == 1 {
  510 + //前面已完成,拿自己也变成完成状态
  511 + u.WithDraw.Cashdata[i].Preisfind = 1
  512 + }
  513 + }
  514 + }
  515 +
  516 + for _, val := range jsonconf.GetJsonConf().ActiveWithdrawConfig {
  517 +
  518 + isin, idx := u.IsInSpeaialWithList(val.Id)
  519 + if isin && idx > 0 && idx < len(u.WithDraw.SpecialCashdata) {
  520 + //已经有了的话更新一下配置
  521 + u.WithDraw.SpecialCashdata[idx].Day = val.Day
  522 + u.WithDraw.SpecialCashdata[idx].Limitlv = val.Level
  523 + u.WithDraw.SpecialCashdata[idx].Cnum = val.Money
  524 + } else {
  525 + //还没有 新加入
  526 + var tmp WithDrawDesc
  527 + tmp.Cid = val.Id
  528 + tmp.Cnum = val.Money
  529 + if val.Isnew == 1 {
  530 + tmp.Isnew = 1
  531 + } else {
  532 + tmp.Isnew = 2
  533 + }
  534 + tmp.Limitlv = val.Level
  535 + //没有前置条件
  536 + tmp.Preisfind = 1
  537 +
  538 + tmp.Day = val.Day
  539 + u.WithDraw.SpecialCashdata = append(u.WithDraw.SpecialCashdata, tmp)
  540 + }
  541 +
  542 + }
  543 +
  544 + //做一个排序
  545 + sort.Sort(u.WithDraw.Cashdata)
  546 + sort.Sort(u.WithDraw.SpecialCashdata)
  547 +
  548 + err := SaveUserInfo(u, uniqueuid)
  549 + if err != nil {
  550 + logger.Error("ReInitWithDraw failed")
  551 + }
  552 +
  553 + return err
  554 +}
  555 +
472 func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int, uniqueuid string) error { 556 func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int, uniqueuid string) error {
473 557
474 var initdata UserData 558 var initdata UserData
@@ -543,6 +627,24 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int, uniqueuid s @@ -543,6 +627,24 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int, uniqueuid s
543 return err 627 return err
544 } 628 }
545 629
  630 +func (u *UserData) IsInWithList(id int) (bool, int) {
  631 + for k, val := range u.WithDraw.Cashdata {
  632 + if val.Cid == id {
  633 + return true, k
  634 + }
  635 + }
  636 + return false, -1
  637 +}
  638 +
  639 +func (u *UserData) IsInSpeaialWithList(id int) (bool, int) {
  640 + for k, val := range u.WithDraw.SpecialCashdata {
  641 + if val.Cid == id {
  642 + return true, k
  643 + }
  644 + }
  645 + return false, -1
  646 +}
  647 +
546 func (t *TaskList) IsInTaskList(id int) bool { 648 func (t *TaskList) IsInTaskList(id int) bool {
547 for _, val := range t.Taskdata { 649 for _, val := range t.Taskdata {
548 if val.Taskid == id { 650 if val.Taskid == id {
@@ -752,6 +854,12 @@ func GetUserData(uuid int, uniqueuid string, req *UserLoginReq, resp *UserLoginR @@ -752,6 +854,12 @@ func GetUserData(uuid int, uniqueuid string, req *UserLoginReq, resp *UserLoginR
752 //此处要处理一下跨天逻辑 854 //此处要处理一下跨天逻辑
753 data.HandlePassDay(uuid, req.Channel) 855 data.HandlePassDay(uuid, req.Channel)
754 856
  857 + //需要处理下提现表信息
  858 + err = data.ReInitWithDraw(uniqueuid)
  859 + if err != nil {
  860 + logger.Error("GetUserData err=%v", err)
  861 + }
  862 +
755 //此处处理一下从sdk拉取钱包金币数量 863 //此处处理一下从sdk拉取钱包金币数量
756 gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel) 864 gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel)
757 if err == nil { 865 if err == nil {