Commit 8d10a9ba17d5a38e17abd9da7b4521a8661e3b78

Authored by 陆恒
1 parent a2520e5b
Exists in master

提交

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