重写确认部分

This commit is contained in:
junleea 2024-12-15 16:20:55 +08:00
parent 8187c36585
commit 36b0862db7
1 changed files with 58 additions and 40 deletions

View File

@ -225,9 +225,10 @@ func setSyncUserDataSet(t string, id int) error {
// 确认同步数据 // 确认同步数据
func ConfirmSyncUserData(device string, data proto.UserSyncConfirm) error { func ConfirmSyncUserData(device string, data proto.UserSyncConfirm) error {
var ids_add []string
var err error var err error
if len(data.Add) > 0 {
var ids_add []string
for _, v := range data.Add { for _, v := range data.Add {
ids_add = append(ids_add, strconv.Itoa(int(v.ID))) ids_add = append(ids_add, strconv.Itoa(int(v.ID)))
} }
@ -237,40 +238,57 @@ func ConfirmSyncUserData(device string, data proto.UserSyncConfirm) error {
err = errors.New("set add confirm error") err = errors.New("set add confirm error")
return err 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
}
}
if len(data.Update) > 0 {
var ids_update []string var ids_update []string
for _, v := range data.Update { for _, v := range data.Update {
ids_update = append(ids_update, strconv.Itoa(int(v.ID))) ids_update = append(ids_update, strconv.Itoa(int(v.ID)))
} }
update_key := device + "_sync_user_ids_update_confirm" update_key := device + "_sync_user_ids_update_confirm"
isSuccess = worker.SetRedisSetAddBatchWithExpire(update_key, ids_update, time.Second*30) isSuccess := worker.SetRedisSetAddBatchWithExpire(update_key, ids_update, time.Second*30)
if !isSuccess { if !isSuccess {
err = errors.New("set update confirm error") err = errors.New("set update confirm error")
return err 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
}
}
if len(data.Delete) == 0 {
var ids_delete []string var ids_delete []string
for _, v := range data.Delete { for _, v := range data.Delete {
ids_delete = append(ids_delete, strconv.Itoa(int(v.ID))) ids_delete = append(ids_delete, strconv.Itoa(int(v.ID)))
} }
del_key := device + "_sync_user_ids_delete_confirm" del_key := device + "_sync_user_ids_delete_confirm"
isSuccess = worker.SetRedisSetAddBatchWithExpire(del_key, ids_delete, time.Second*30) isSuccess := worker.SetRedisSetAddBatchWithExpire(del_key, ids_delete, time.Second*30)
if !isSuccess { if !isSuccess {
err = errors.New("set del confirm error") err = errors.New("set del confirm error")
return err 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" ids_delete_confirm_temp := device + "_sync_user_ids_delete_confirm_temp"
//取差集
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) delete_diff := worker.SetRedisSetDiffAndStore(ids_delete_confirm_temp, del_key)
if add_diff != true || update_diff != true || delete_diff != true { if delete_diff == false {
err = errors.New("confirm error") err = errors.New("delete diff error")
return err return err
} }
}
return err return err
} }