重写确认部分

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,52 +225,70 @@ 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
for _, v := range data.Add { if len(data.Add) > 0 {
ids_add = append(ids_add, strconv.Itoa(int(v.ID))) var ids_add []string
}
add_key := device + "_sync_user_ids_add_confirm" for _, v := range data.Add {
isSuccess := worker.SetRedisSetAddBatchWithExpire(add_key, ids_add, time.Second*30) ids_add = append(ids_add, strconv.Itoa(int(v.ID)))
if !isSuccess { }
err = errors.New("set add confirm error") add_key := device + "_sync_user_ids_add_confirm"
return err isSuccess := worker.SetRedisSetAddBatchWithExpire(add_key, ids_add, time.Second*30)
} if !isSuccess {
var ids_update []string err = errors.New("set add confirm error")
for _, v := range data.Update { return err
ids_update = append(ids_update, strconv.Itoa(int(v.ID))) }
} ids_add_confirm_temp := device + "_sync_user_ids_add_confirm_temp"
update_key := device + "_sync_user_ids_update_confirm" //取差集
isSuccess = worker.SetRedisSetAddBatchWithExpire(update_key, ids_update, time.Second*30) add_diff := worker.SetRedisSetDiffAndStore(ids_add_confirm_temp, add_key)
if !isSuccess { if add_diff == false {
err = errors.New("set update confirm error") err = errors.New("add diff error")
return err return err
}
} }
var ids_delete []string if len(data.Update) > 0 {
for _, v := range data.Delete {
ids_delete = append(ids_delete, strconv.Itoa(int(v.ID))) var ids_update []string
} for _, v := range data.Update {
del_key := device + "_sync_user_ids_delete_confirm" ids_update = append(ids_update, strconv.Itoa(int(v.ID)))
isSuccess = worker.SetRedisSetAddBatchWithExpire(del_key, ids_delete, time.Second*30) }
if !isSuccess { update_key := device + "_sync_user_ids_update_confirm"
err = errors.New("set del confirm error") isSuccess := worker.SetRedisSetAddBatchWithExpire(update_key, ids_update, time.Second*30)
return err 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
}
} }
//待确认集合暂存 if len(data.Delete) == 0 {
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"
//取差集 var ids_delete []string
add_diff := worker.SetRedisSetDiffAndStore(ids_add_confirm_temp, add_key) for _, v := range data.Delete {
update_diff := worker.SetRedisSetDiffAndStore(ids_update_confirm_temp, update_key) ids_delete = append(ids_delete, strconv.Itoa(int(v.ID)))
delete_diff := worker.SetRedisSetDiffAndStore(ids_delete_confirm_temp, del_key) }
if add_diff != true || update_diff != true || delete_diff != true { del_key := device + "_sync_user_ids_delete_confirm"
err = errors.New("confirm error") isSuccess := worker.SetRedisSetAddBatchWithExpire(del_key, ids_delete, time.Second*30)
return err 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 return err
} }