From 61a94ec0472d227d788885b38ad4f7101cf9dfe7 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sun, 15 Dec 2024 16:25:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=87=8D=E5=86=99=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/userService.go | 98 +++++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 40 deletions(-) diff --git a/service/userService.go b/service/userService.go index e462ff7..10630dc 100644 --- a/service/userService.go +++ b/service/userService.go @@ -225,52 +225,70 @@ func setSyncUserDataSet(t string, id int) error { // 确认同步数据 func ConfirmSyncUserData(device string, data proto.UserSyncConfirm) error { - - var ids_add []string var err error - for _, v := range data.Add { - ids_add = append(ids_add, strconv.Itoa(int(v.ID))) - } - add_key := device + "_sync_user_ids_add_confirm" - isSuccess := worker.SetRedisSetAddBatchWithExpire(add_key, ids_add, time.Second*30) - if !isSuccess { - err = errors.New("set add confirm error") - return err - } - var ids_update []string - for _, v := range data.Update { - ids_update = append(ids_update, strconv.Itoa(int(v.ID))) - } - update_key := device + "_sync_user_ids_update_confirm" - isSuccess = worker.SetRedisSetAddBatchWithExpire(update_key, ids_update, time.Second*30) - if !isSuccess { - err = errors.New("set update confirm error") - return err + if len(data.Add) > 0 { + var ids_add []string + + for _, v := range data.Add { + ids_add = append(ids_add, strconv.Itoa(int(v.ID))) + } + add_key := device + "_sync_user_ids_add_confirm" + isSuccess := worker.SetRedisSetAddBatchWithExpire(add_key, ids_add, time.Second*30) + if !isSuccess { + err = errors.New("set add confirm error") + return err + } + ids_add_confirm_temp := device + "_sync_user_ids_add_confirm_temp" + //取差集 + add_diff := worker.SetRedisSetDiffAndStore(ids_add_confirm_temp, add_key) + if add_diff == false { + err = errors.New("add diff error") + return err + } } - var ids_delete []string - for _, v := range data.Delete { - ids_delete = append(ids_delete, strconv.Itoa(int(v.ID))) - } - del_key := device + "_sync_user_ids_delete_confirm" - isSuccess = worker.SetRedisSetAddBatchWithExpire(del_key, ids_delete, time.Second*30) - if !isSuccess { - err = errors.New("set del confirm error") - return err + if len(data.Update) > 0 { + + var ids_update []string + for _, v := range data.Update { + ids_update = append(ids_update, strconv.Itoa(int(v.ID))) + } + update_key := device + "_sync_user_ids_update_confirm" + isSuccess := worker.SetRedisSetAddBatchWithExpire(update_key, ids_update, time.Second*30) + if !isSuccess { + err = errors.New("set update confirm error") + return err + } + ids_update_confirm_temp := device + "_sync_user_ids_update_confirm_temp" + + update_diff := worker.SetRedisSetDiffAndStore(ids_update_confirm_temp, update_key) + if update_diff == false { + err = errors.New("update diff error") + return err + } + } - //待确认集合暂存 - ids_add_confirm_temp := device + "_sync_user_ids_add_confirm_temp" - ids_update_confirm_temp := device + "_sync_user_ids_update_confirm_temp" - ids_delete_confirm_temp := device + "_sync_user_ids_delete_confirm_temp" + if len(data.Delete) == 0 { - //取差集 - add_diff := worker.SetRedisSetDiffAndStore(ids_add_confirm_temp, add_key) - update_diff := worker.SetRedisSetDiffAndStore(ids_update_confirm_temp, update_key) - delete_diff := worker.SetRedisSetDiffAndStore(ids_delete_confirm_temp, del_key) - if add_diff != true || update_diff != true || delete_diff != true { - err = errors.New("confirm error") - return err + var ids_delete []string + for _, v := range data.Delete { + ids_delete = append(ids_delete, strconv.Itoa(int(v.ID))) + } + del_key := device + "_sync_user_ids_delete_confirm" + isSuccess := worker.SetRedisSetAddBatchWithExpire(del_key, ids_delete, time.Second*30) + if !isSuccess { + err = errors.New("set del confirm error") + return err + } + + //待确认集合暂存 + ids_delete_confirm_temp := device + "_sync_user_ids_delete_confirm_temp" + delete_diff := worker.SetRedisSetDiffAndStore(ids_delete_confirm_temp, del_key) + if delete_diff == false { + err = errors.New("delete diff error") + return err + } } return err } From 203559ed82ffec8bacdc86d9f08a6706b7df44e5 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sun, 15 Dec 2024 16:26:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=87=8D=E5=86=99=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/userService.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/service/userService.go b/service/userService.go index 10630dc..e38c059 100644 --- a/service/userService.go +++ b/service/userService.go @@ -269,8 +269,7 @@ func ConfirmSyncUserData(device string, data proto.UserSyncConfirm) error { } - if len(data.Delete) == 0 { - + if len(data.Delete) > 0 { var ids_delete []string for _, v := range data.Delete { ids_delete = append(ids_delete, strconv.Itoa(int(v.ID)))