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 | ... | ... |