laravel导入

荆轲刺秦王

public function storeGroupImport( Request $request , StoreGroupDao $storeGroupDao )
    {
        $nodeId = txt_filter($request -> get('node_id'));
        $brandId = txt_filter($request -> get('brand_id'));
        $file = $request->file('store_group_file');
        if( empty( $nodeId ) || empty( $brandId ) || empty( $file ) ) S::error( 40001 );
        Log::log_write('门店分组上传文件:'.print_r($file,1));
        $fileData = $storeGroupDao -> parsingFile( $file, $brandId );
        if ( empty($fileData) ) S::error( 40005 );
        $sendParam = [];
        foreach( $fileData as $key=>$value ){
            $arr = explode(',',$value);
            $sendParam[] = [
                'group_id' => $arr[0],
                'store_id' => $arr[1],
            ];
        }

        $modelData = StoreGroupInfoTest::select()->get()->toArray();

        //去重
        $serializeArrs = array_map('serialize',$sendParam);
        $uniqueArrs = array_unique($serializeArrs);
        $sendParamUnique = array_map('unserialize',$uniqueArrs);

        //数据库没有 列表有
        $paramDiffArr = array_filter( $sendParamUnique, function ($i) use ($modelData){
            return !in_array( $i['group_id'], array_column( $modelData,'group_id' )) &&
                !in_array( $i['store_id'], array_column( $modelData,'store_id' ));
        } );

        //数据库没有 列表有  插入
        if( !empty( $paramDiffArr ) ){
            try
            {
                foreach ( $paramDiffArr as $k=> $v )
                {
                    $sendParamUnique[$k]['store_id'] = strval($v['store_id']);
                }
                StoreGroupInfoTest::insert( $paramDiffArr );
                return S::jsonReturn( ['success'=> '数据修改成功'] );
            }
            catch ( \Exception $e ){
                log_write( '数据修改失败'.print_r( $e-> getMessage() ));
                S::error( 50001 );
            }
        }
        return S::jsonReturn( ['success'=> '数据库已存在,未修改'] );
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值