PHP 批量软删除excel表中用户

这篇博客介绍了如何处理B站用户注销后,其在A站账号的软删除问题。作者通过整理Excel数据并编写接口实现了批量修改用户状态,避免已注销用户继续收到邮件。在处理过程中,遇到的问题和解决方案被详细阐述,包括如何将Excel数据转化为PHP二维数组,并使用for循环遍历执行软删除操作。
摘要由CSDN通过智能技术生成

工作中遇到我们开发的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);
    }

以上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值