此包已被废弃且不再维护。未建议替代包。
关于此包最新版本(v1.7.4)的许可证信息不可用。

快牛集团导入文件组件

安装: 617

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

v1.7.4 2021-06-07 03:06 UTC

This package is auto-updated.

Last update: 2022-04-20 09:28:27 UTC


README

目录

1.目录结构

├── examples                                       案列目录
│   ├── filter                                     filter过滤目录
│   │    └── DemoFilter.php                        filterdemo文件
│   ├── formatter                                  格式化类目录
│   |    └── ExamplesDataDataFormatterBehavior.php demo文件
│   ├── listener                                   事件监听目录(事件回调后执行的程序)
│   |    └── OssListener.php                       事件回调类
│   ├── model                                      数据导入类目录
│   |    └── ChannelReconci.php                    demo文件
│   ├── oss                                        oss目录
│   |    └── LocalAdapter.php                      demo文件
│   ├── task                                       oss目录
│   |    └── ImportCsvTaskHandler.php              导入TASK
│   |    └── CleanCsvTaskHandler.php               清理数据TASK
│   ├── template.json                              kv配置        
├── src                                            组件目录
│   ├── behaviors                                  行为类目录
│   │    ├── ImportDataFormatterBehavior.php       格式化数据类                  
│   └── controllers   
│   │    ├── ImportDataFormatterBehavior.php       导入控制器                
│   └── event   
│   │    ├── OssEvent.php                          Oss事件类  
│   └── interfaces   
│   │    ├── InterfaceFileSystem.php               文件OSS资源接口
│   │    ├── InterfaceFilter.php                   数据过滤接口
│   │    ├── InterfaceImportService.php            导入服务接口
│   └── kernel   
│   └──────── db 
│   │         ├── QueryBuilder.php                 QueryBuilder                   
│   └──────── phpoffice  
│   │         ├── ReadFilter.php                   ReadFilter                      
│   │         ├── Row.php                          Row                          
│   └──────── response
│   │         ├── ImportResponse.php               导入结果响应类                            
│   └── messages                                   语言包
│   │    ├── en                                    英文
│   │    ├── zh-CN                                 中文
│   └── models   
│   │    ├── BizOssFile.php                        BizOssFile
│   │    ├── ImportCsv.php                         ImportCsv  
│   │    ├── ImportCsvSearch.php                   ImportCsvSearch
│   └── services   
│   │    ├── ImportService.php                     导入服务service
│   └── views   
│   └──────── import 
│   │         ├── _search.php                      搜索视图
│   │         ├── csv.php                          导入视图
│   │         ├── index.php                        列表
│   └── Module.php
├── test  
├── composer.json                                  包管理工具
└── README.MD                                      文档说明

2.在config配置模块

use import\models\BizOssFile;
Use yii\base\Event;
use common\models\KeyValue;
use import\examples\listener\TestOssListener;
'modules'         => [
        'import'     => [
            'class'                            => \import\Module::class,
            'on ' . \import\Module::EVENT_INIT => function ($event) {
                ImportCsv::$config = KeyValue::take('channel_reconci_template');
                 
                 //事件handler
                $importHandler = function (Event $event) {
                    $listener = new TestOssListener();
                    $listener->process($event);
                };
                //创建导入task
                Event::on(BizOssFile::class, BizOssFile::EVENT_AFTER_INSERT, $importHandler);
                //重新导入
                Event::on(BizOssFile::class, BizOssFile::EVENT_AFTER_UPDATE, $importHandler);
                //上传文件
                Event::on(BizOssFile::class, BizOssFile::EVENT_BEFORE_INSERT, $importHandler);
                //删除
                Event::on(BizOssFile::class, BizOssFile::EVENT_AFTER_DELETE, $importHandler);
                //下载
                Event::on(BizOssFile::class, BizOssFile::EVENT_DOWNLOAD, $importHandler);
            },
        ],
    ]

3.配置每个功能的回调事件(具体根据场景来实现)

 protected function clean(ImportCsv $csv): void;
 protected function import(ImportCsv $csv): void
 protected function delete(ImportCsv $csv): void
 protected function download(ImportCsv $csv): void
 protected function upload(ImportCsv $csv): void

4.重要文件说明

ImportService.php  
如果用户需要实现脱敏服务,需要注册self::EVENT_DESENSITISE脱敏事件.
 /**
     * @param array $data
     *
     * @return int
     * @throws InvalidConfigException|\yii\db\Exception|UserException
     */
    protected function batchWrite(array $data): int
    {
        if (empty($data)) {
            return 0;
        }

        $event = new Event();

        $event->data = $data;
        $this->trigger(self::EVENT_DESENSITISE, $event);

        return $this->upsert($event->data);
    }

5.备注

examples目录中的task均实现了分段读取文件的task,可以结合业务场景参考代码实现自己的逻辑.

6.使用建议

暂无