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,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 | type InviteWorksDesc struct { | 135 | type InviteWorksDesc struct { |
| 132 | Invite_data []InviteWorkDesc `json:"invite_data"` | 136 | Invite_data []InviteWorkDesc `json:"invite_data"` |
| 137 | + Offlinelist []InviteWorkOffDesc `json:"offlinelist"` | ||
| 133 | } | 138 | } |
| 134 | 139 | ||
| 135 | type InviteWorkResult struct { | 140 | type InviteWorkResult struct { |
src/HttpServer/logic/function.go
| @@ -779,32 +779,67 @@ func (wl *WorkList) IsInWork(uuid int) bool { | @@ -779,32 +779,67 @@ func (wl *WorkList) IsInWork(uuid int) bool { | ||
| 779 | return isIn | 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 | vv,err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION,strconv.Itoa(uuid)) | 815 | vv,err := redishandler.GetRedisClient().HGet(redis.USER_INVITEWORK_RELATION,strconv.Itoa(uuid)) |
| 785 | 816 | ||
| 786 | if err != nil { | 817 | if err != nil { |
| 787 | //logger.Error("GetdagongList err=%v",err) | 818 | //logger.Error("GetdagongList err=%v",err) |
| 788 | - return nil,nil | 819 | + return nil,nil,nil |
| 789 | } | 820 | } |
| 790 | 821 | ||
| 791 | var list WorkList | 822 | var list WorkList |
| 792 | err = json.Unmarshal([]byte(vv),&list) | 823 | err = json.Unmarshal([]byte(vv),&list) |
| 793 | if err != nil { | 824 | if err != nil { |
| 794 | logger.Error("GetdagongList err=%v",err) | 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 | //此处时间改为600s | 830 | //此处时间改为600s |
| 799 | nowtime := int(time.Now().Unix()) | 831 | nowtime := int(time.Now().Unix()) |
| 800 | for i:=0;i<len(list);i++ { | 832 | for i:=0;i<len(list);i++ { |
| 801 | if nowtime > 600 + list[i].InviteTime { | 833 | if nowtime > 600 + list[i].InviteTime { |
| 802 | list = append(list[:i],list[i+1:]...) | 834 | list = append(list[:i],list[i+1:]...) |
| 803 | i-- | 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,7 +320,7 @@ func HandleQueryInviteWork(w http.ResponseWriter, data string) { | ||
| 320 | break | 320 | break |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | - dalist,_ := GetdagongList(rdata.Uuid) | 323 | + dalist,offlist,_ := GetdagongList(rdata.Uuid) |
| 324 | if dalist == nil { | 324 | if dalist == nil { |
| 325 | resp.Result.Code = ERROR_OK | 325 | resp.Result.Code = ERROR_OK |
| 326 | break | 326 | break |
| @@ -330,6 +330,12 @@ func HandleQueryInviteWork(w http.ResponseWriter, data string) { | @@ -330,6 +330,12 @@ func HandleQueryInviteWork(w http.ResponseWriter, data string) { | ||
| 330 | resp.Result.Data.Invite_data = append(resp.Result.Data.Invite_data,val) | 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 | resp.Result.Code = ERROR_OK | 339 | resp.Result.Code = ERROR_OK |
| 334 | break | 340 | break |
| 335 | } | 341 | } |
| @@ -384,7 +390,8 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { | @@ -384,7 +390,8 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { | ||
| 384 | redishandler.GetRedisClient().HSet(rkey,strconv.Itoa(rdata.Selfuuid),"0") | 390 | redishandler.GetRedisClient().HSet(rkey,strconv.Itoa(rdata.Selfuuid),"0") |
| 385 | }else { | 391 | }else { |
| 386 | //邀请打工 | 392 | //邀请打工 |
| 387 | - invitelist,err := GetdagongList(rdata.Inviteuuid) | 393 | + //invitelist,err := GetdagongList(rdata.Inviteuuid) |
| 394 | + invitelist,reallist,err :=GetRealDagonglist(rdata.Inviteuuid) | ||
| 388 | if err != nil { | 395 | if err != nil { |
| 389 | /*logger.Error("HandleEnterInvite GetdagongList failed") | 396 | /*logger.Error("HandleEnterInvite GetdagongList failed") |
| 390 | resp.Result.Code = ERROR_SRVDB_FAILED | 397 | resp.Result.Code = ERROR_SRVDB_FAILED |
| @@ -392,8 +399,8 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { | @@ -392,8 +399,8 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { | ||
| 392 | break*/ | 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 | logger.Error("HandleEnterInvite dagong num is full") | 404 | logger.Error("HandleEnterInvite dagong num is full") |
| 398 | resp.Result.Code = ERROR_DAGONG_FULL | 405 | resp.Result.Code = ERROR_DAGONG_FULL |
| 399 | //resp.Message = "dagong full" | 406 | //resp.Message = "dagong full" |
| @@ -401,20 +408,31 @@ func HandleEnterInvite(w http.ResponseWriter, data string) { | @@ -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 | logger.Error("HandleEnterInvite IsInWork") | 412 | logger.Error("HandleEnterInvite IsInWork") |
| 406 | resp.Result.Code = ERROR_DAGONG_FULL | 413 | resp.Result.Code = ERROR_DAGONG_FULL |
| 407 | //resp.Message = "ERROR_ALREADY_INWORK" | 414 | //resp.Message = "ERROR_ALREADY_INWORK" |
| 408 | break | 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 | }else { | 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 |