工作中遇到我们开发的A站,是B公司旗下子网站。
可以用B站的会员账号直接登录注册。
当用户注销了B站的会员,
A站的账号依旧存在。
但是无法登录了。
如果注册时用户勾选了接收A站的广告邮件。
也就会持续收到A网站发送的邮件。
下一次邮件发送就在两天后,
B站提供了一个excel,里面是两百人左右的注销用户的信息,
要求我们尽快将这些账号软删除,避免邮件发送。
我的处理方法是
1. 整理excel表中的注销用户信息。用concat拼接id和email备用,再把c列复制到编辑器,外层加个方括号,就成php二维数组了。
2. 写接口批量修改delete字段实现软删除。
public function memberWithdraw()
{
// 定义刚刚整理出的user数组
$userList = [
[1033,'aaa@163.com'],
[1045,'aaa@164.com'],
[1057,'aaa@165.com'],
[1069,'aaa@166.com'],
];
// 取得数组长度
$userAmount = count($userList);
// 定义未删除成功的user数组
$notDelList = [];
// 遍历数组修改user的deleted字段进行软删除
for($i=0;$i<$userAmount;$i++){
$member = Member::where('id',$userList[$i][0])->where('email',$userList[$i][1])->first();
if (!$member) {
array_push($notDelList,$userList[$i]);
}else{
// 删除时间是B站的人指定的
$member->deleted = '2022-05-30 00:00:00';
$member->save();
}
}
$response = [
'status_code' => '00',
'error_message' => '',
'not_del_list' => $notDelList,
];
return response()->json($response, 200);
}
以上。