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 |