Commit 8d10a9ba17d5a38e17abd9da7b4521a8661e3b78
1 parent
a2520e5b
Exists in
master
提交
Showing
3 changed files
with
71 additions
and
13 deletions
Show diff stats
src/HttpServer/logic/datadef.go
| ... | ... | @@ -127,9 +127,14 @@ type InviteWorkDesc struct { |
| 127 | 127 | |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | +type InviteWorkOffDesc struct { | |
| 131 | + Uuid int `json:"uuid"` //打工者ID | |
| 132 | + | |
| 133 | +} | |
| 130 | 134 | |
| 131 | 135 | type InviteWorksDesc struct { |
| 132 | 136 | Invite_data []InviteWorkDesc `json:"invite_data"` |
| 137 | + Offlinelist []InviteWorkOffDesc `json:"offlinelist"` | |
| 133 | 138 | } |
| 134 | 139 | |
| 135 | 140 | type InviteWorkResult struct { | ... | ... |
src/HttpServer/logic/function.go
| ... | ... | @@ -779,32 +779,67 @@ func (wl *WorkList) IsInWork(uuid int) bool { |
| 779 | 779 | return isIn |
| 780 | 780 | } |
| 781 | 781 | |
| 782 | -func GetdagongList(uuid int) (*WorkList,error) { | |
| 782 | +//此接口为处理返回所有的打工列表 | |
| 783 | +func GetRealDagonglist(uuid int) (*WorkList,*WorkList,error) { | |
| 784 | + vv,err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION,strconv.Itoa(uuid)) | |
| 785 | + | |
| 786 | + if err != nil { | |
| 787 | + //logger.Error("GetdagongList err=%v",err) | |
| 788 | + return nil,nil,nil | |
| 789 | + } | |
| 790 | + | |
| 791 | + var reallist WorkList | |
| 792 | + var list WorkList | |
| 793 | + err = json.Unmarshal([]byte(vv),&list) | |
| 794 | + if err != nil { | |
| 795 | + logger.Error("GetRealDagonglist err=%v",err) | |
| 796 | + return nil,nil,err | |
| 797 | + } | |
| 798 | + | |
| 799 | + //此处时间改为600s | |
| 800 | + nowtime := int(time.Now().Unix()) | |
| 801 | + for i:=0;i<len(list);i++ { | |
| 802 | + if nowtime > 600 + list[i].InviteTime { | |
| 803 | + //list = append(list[:i],list[i+1:]...) | |
| 804 | + //i-- | |
| 805 | + }else { | |
| 806 | + reallist = append(reallist,list[i]) | |
| 807 | + } | |
| 808 | + } | |
| 809 | + | |
| 810 | + return &list,&reallist,nil | |
| 811 | +} | |
| 812 | + | |
| 813 | +func GetdagongList(uuid int) (*WorkList,[]int,error) { | |
| 783 | 814 | //需要判断 超过时间 四小时的删除 |
| 784 | 815 | vv,err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION,strconv.Itoa(uuid)) |
| 785 | 816 | |
| 786 | 817 | if err != nil { |
| 787 | 818 | //logger.Error("GetdagongList err=%v",err) |
| 788 | - return nil,nil | |
| 819 | + return nil,nil,nil | |
| 789 | 820 | } |
| 790 | 821 | |
| 791 | 822 | var list WorkList |
| 792 | 823 | err = json.Unmarshal([]byte(vv),&list) |
| 793 | 824 | if err != nil { |
| 794 | 825 | logger.Error("GetdagongList err=%v",err) |
| 795 | - return nil,err | |
| 826 | + return nil,nil,err | |
| 796 | 827 | } |
| 797 | 828 | |
| 829 | + var offlist []int | |
| 798 | 830 | //此处时间改为600s |
| 799 | 831 | nowtime := int(time.Now().Unix()) |
| 800 | 832 | for i:=0;i<len(list);i++ { |
| 801 | 833 | if nowtime > 600 + list[i].InviteTime { |
| 802 | 834 | list = append(list[:i],list[i+1:]...) |
| 803 | 835 | i-- |
| 836 | + offlist = append(offlist,list[i].Uuid) | |
| 804 | 837 | } |
| 805 | 838 | } |
| 806 | 839 | |
| 807 | - return &list,nil | |
| 840 | + | |
| 841 | + | |
| 842 | + return &list,offlist,nil | |
| 808 | 843 | } |
| 809 | 844 | |
| 810 | 845 | //加入打工列表 | ... | ... |
src/HttpServer/logic/logic.go
| ... | ... | @@ -320,7 +320,7 @@ func HandleQueryInviteWork(w http.ResponseWriter, data string) { |
| 320 | 320 | break |
| 321 | 321 | } |
| 322 | 322 | |
| 323 | - dalist,_ := GetdagongList(rdata.Uuid) | |
| 323 | + dalist,offlist,_ := GetdagongList(rdata.Uuid) | |
| 324 | 324 | if dalist == nil { |
| 325 | 325 | resp.Result.Code = ERROR_OK |
| 326 | 326 | break |
| ... | ... | @@ -330,6 +330,12 @@ func HandleQueryInviteWork(w http.ResponseWriter, data string) { |
| 330 | 330 | resp.Result.Data.Invite_data = append(resp.Result.Data.Invite_data,val) |
| 331 | 331 | } |
| 332 | 332 | |
| 333 | + for _,val := range offlist { | |
| 334 | + var tmp InviteWorkOffDesc | |
| 335 | + tmp.Uuid = val | |
| 336 | + resp.Result.Data.Offlinelist = append(resp.Result.Data.Offlinelist,tmp) | |
| 337 | + } | |
| 338 | + | |
| 333 | 339 | resp.Result.Code = ERROR_OK |
| 334 | 340 | break |
| 335 | 341 | } |
| ... | ... | @@ -384,7 +390,8 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { |
| 384 | 390 | redishandler.GetRedisClient().HSet(rkey,strconv.Itoa(rdata.Selfuuid),"0") |
| 385 | 391 | }else { |
| 386 | 392 | //邀请打工 |
| 387 | - invitelist,err := GetdagongList(rdata.Inviteuuid) | |
| 393 | + //invitelist,err := GetdagongList(rdata.Inviteuuid) | |
| 394 | + invitelist,reallist,err :=GetRealDagonglist(rdata.Inviteuuid) | |
| 388 | 395 | if err != nil { |
| 389 | 396 | /*logger.Error("HandleEnterInvite GetdagongList failed") |
| 390 | 397 | resp.Result.Code = ERROR_SRVDB_FAILED |
| ... | ... | @@ -392,8 +399,8 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { |
| 392 | 399 | break*/ |
| 393 | 400 | } |
| 394 | 401 | |
| 395 | - if invitelist != nil { | |
| 396 | - if len(*invitelist) > 2 { | |
| 402 | + if reallist != nil { | |
| 403 | + if len(*reallist) > 2 { | |
| 397 | 404 | logger.Error("HandleEnterInvite dagong num is full") |
| 398 | 405 | resp.Result.Code = ERROR_DAGONG_FULL |
| 399 | 406 | //resp.Message = "dagong full" |
| ... | ... | @@ -401,20 +408,31 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { |
| 401 | 408 | } |
| 402 | 409 | |
| 403 | 410 | //需要判断是否已经处于打工中 |
| 404 | - if invitelist.IsInWork(rdata.Selfuuid) { | |
| 411 | + if reallist.IsInWork(rdata.Selfuuid) { | |
| 405 | 412 | logger.Error("HandleEnterInvite IsInWork") |
| 406 | 413 | resp.Result.Code = ERROR_DAGONG_FULL |
| 407 | 414 | //resp.Message = "ERROR_ALREADY_INWORK" |
| 408 | 415 | break |
| 409 | 416 | } |
| 410 | 417 | |
| 411 | - err = AddDagongList(rdata.Selfuuid,rdata.Inviteuuid,*invitelist) | |
| 418 | + if invitelist != nil { | |
| 419 | + err = AddDagongList(rdata.Selfuuid,rdata.Inviteuuid,*invitelist) | |
| 420 | + }else { | |
| 421 | + //此时列表为空 新建一个 | |
| 422 | + var newlist WorkList | |
| 423 | + err = AddDagongList(rdata.Selfuuid,rdata.Inviteuuid,newlist) | |
| 424 | + } | |
| 425 | + | |
| 412 | 426 | |
| 413 | 427 | }else { |
| 414 | 428 | //此时列表为空 新建一个 |
| 415 | - var newlist WorkList | |
| 416 | - err = AddDagongList(rdata.Selfuuid,rdata.Inviteuuid,newlist) | |
| 417 | - | |
| 429 | + if invitelist != nil { | |
| 430 | + err = AddDagongList(rdata.Selfuuid,rdata.Inviteuuid,*invitelist) | |
| 431 | + }else { | |
| 432 | + //此时列表为空 新建一个 | |
| 433 | + var newlist WorkList | |
| 434 | + err = AddDagongList(rdata.Selfuuid,rdata.Inviteuuid,newlist) | |
| 435 | + } | |
| 418 | 436 | } |
| 419 | 437 | |
| 420 | 438 | ... | ... |