Skip to content

services服务

liaofei edited this page Jan 20, 2021 · 1 revision

Services服务

目录结构

├─services
│  │  CacheService.php
│  │  CopyProductService.php
│  │  DownloadImageService.php
│  │  ExpressService.php
│  │  FileService.php
│  │  FormBuilder.php
│  │  GroupDataService.php
│  │  HttpService.php
│  │  MiniProgramService.php
│  │  MysqlBackupService.php
│  │  QrcodeService.php
│  │  SpreadsheetExcelService.php
│  │  SystemConfigService.php
│  │  UpgradeService.php
│  │  UploadService.php
│  │  UtilService.php
│  │  WechatService.php
│  ├─easywechat
│  │  ├─subscribe
│  │  │      ProgramProvider.php
│  │  │      ProgramSubscribe.php
│  │  └─wechatlive
│  │          ProgramProvider.php
│  │          ProgramWechatLive.php
│  ├─printer
│  │  │  AccessToken.php
│  │  │  Printer.php
│  │  └─storage
│  │          YiLianYun.php
│  ├─sms
│  │  │  Sms.php
│  │  │  
│  │  └─storage
│  │          Yunxin.php
│  ├─template
│  │  │  Template.php
│  │  └─storage
│  │          Subscribe.php
│  │          Wechat.php
│  ├─upload
│  │  │  Upload.php
│  │  └─storage
│  │          Cos.php
│  │          Local.php
│  │          Oss.php
│  │          Qiniu.php
│  └─workerman
 
│      │  ChannelService.php
│      │  Response.php
│      │  WorkermanHandle.php
│      │  WorkermanService.php
│      └─chat
│              ChatHandle.php
│              ChatService.php
  • CacheService 缓存类

设置、获取、清除,redis获取其他驱动类型缓存数据 使用:

//引入类
use crmeb\services\CacheService;
//存入
CacheService::set('key', 'value', '过期时间');
//取出
CacheService::set('key');
//redis缓存句柄设置存入
CacheService::redisHandler()->set();
//取出
CacheService::redisHandler()->get();
  • CopyProductService 复制商品类

复制主流商城平台商品,通过商品详情页链接拿到整合结果商品数据结果集 使用:

//引入
use crmeb\services\CopyProductService;
//解析url 得到商品id  获取商铺id
$url_arr = parse_url($url);
//获取商品结果集
CopyProductService::getInfo($type, ['itemid' => $id, 'shopid' => $shopid], $apikey);
  • DownloadImageService图片下载类

获取图片下载保存,或者生成缩略图保存 使用:

//引入
use crmeb\services\DownloadImageService;

//获取下载图片地址
app()->make(DownloadImageService::class)->thumb(true)->downloadImage('图片地址')['path'];
  • ExpressService物流查询

使用:

//引入
use crmeb\services\ExpressService;

//查询
ExpressService::query('物流单号');
  • FileService 文件操作类

文件、目录读取、创建、删除、判断、复制、删除等操作 使用:

//引入
use crmeb\services\FileService;
//读取
FileService::readFile($filepath);
//获取后缀
FileService::getExt($filepath);
//写入
FileService::writeFile('filename','writConten','openmod')
//复制目录
FileService::copyDir(string $surDir, string $toDir)
  • FormBuilder表单生成

设置表单属性、字段,生成表单 详细文档 使用:

//引入在app\services中的使用
use crmeb\services\FormBuilder as Form;

class TestServices
{

    public function createForm(array $formData = [])
    {
        $form[] = Form::select('pid', '父级分类', isset($formData['pid']) ? (string)$formData['pid'] : '')->setOptions($this->getSelectForm())->filterable(true);
        $form[] = Form::input('title', '分类名称', $formData['title'] ?? '');
        $form[] = Form::input('eng_title', '分类字段英文', $formData['eng_title'] ?? '');
        $form[] = Form::frameInput('icon', '图标', $this->url('admin/widget.widgets/icon', ['fodder' => 'icon'], true), $formData['icon'] ?? '')->icon('ios-ionic')->height('435px');
        $form[] = Form::radio('type', '类型', $formData['type'] ?? 0)->options([
          ['value' => 0, 'label' => '系统'],
          ['value' => 3, 'label' => '其它']
        ]);
        $form[] = Form::radio('status', '状态', $formData['status'] ?? 1)->options([['value' => 1, 'label' => '显示'], ['value' => 2, 'label' => '隐藏']]);
        $form[] = Form::number('sort', '排序', (int)($formData['sort'] ?? 0));
        return create_form('表单标题名称', $form, '提交请求地址');
    }

}

  • GroupDataService 组合数据获取

使用:

//引入
use crmeb\services\GroupDataService;

//获取
GroupDataService::getData('config_name');
  • HttpService curl请求

使用:

//引入
use crmeb\services\HttpService;
//get
HttpService::getRequest($url, $data = array(), $header = false, $timeout = 10);
//post
HttpService::postRequest($url, array $data = array(), $header = false, $timeout = 10);
//请求
HttpService::request($url, $method = 'get', $data = array(), $header = false, $timeout = 15);
  • MiniProgramService 小程序相关功能类

配合\crmeb\services\easywechat\下方法,实现获取授权用户信息、素材上传、二维码生成、订阅消息、支付、客服消息、直播、直播商品等功能 使用:

//引入
use crmeb\services\MiniProgramService;

//获取用户信息
MiniProgramService::getUserInfo($code);
//解密用户信息
MiniProgramService::encryptor($session_key, $iv, $encryptedData);
//支付
MiniProgramService::jsPay($openid, $orderId, $price, $successAction, $body);
//直播列表
MiniProgramService::getLiveInfo($start, $limit);
  • MysqlBackupService 数据备份类

使用:

//引入
use crmeb\services\MysqlBackupService;
//获取类实例
$dbBackup = app()->make(MysqlBackupService::class, [[
    //数据库备份卷大小
    'compress' => 1,
    //数据库备份文件是否启用压缩 0不压缩 1 压缩
    'level' => 5,
]]);
//数据表列表
$dbBackup->dataList();
//备份表结构
$dbBackup->backup('table','start');
//设置备份文件并恢复
$dbBackup->setFile($list)->import($start);
  • QrcodeService 二维码类

使用:

//引入
use crmeb\services\QrcodeService;

//获取
QrcodeService::getWechatQrcodePath(string $name, string $link, bool $force = false);
  • SpreadsheetExcelService导出excel类

使用:

//引入
use crmeb\services\SpreadsheetExcelService;

//导出
SpreadsheetExcelService::instance()->setExcelHeader($header)
    ->setExcelTile($title, $name, $info)
    ->setExcelContent($data)
    ->excelSave('文件名','后缀名', '是否保存|直接下载');
  • SystemConfigService 获取系统配置类

使用:

//引入
use crmeb\services\SystemConfigService;

//单个
SystemConfigService::get('config_name');
//多个
SystemConfigService::more(['config_name1','config_name2'...]);
  • UpgradeService 更新升级类

//引入
use crmeb\services\UpgradeService;

//同步信息
UpgradeService::snyweninfo($this->serverweb);
  • UploadService 上传类

驱动\crmeb\services\upload\下类,实现不同存储os上传保存 使用:

//引入
use crmeb\services\UploadService;

//获取不同上传实例 根据配置
$upload = UploadService::init();
//上传
$upload->to('目录地址')->stream('文件内容', '文件名');
  • UtilService 海报、二维码生成

使用:

//引入
use crmeb\services\UtilService;

//生成海报
UtilService::setShareMarketingPoster('data', '目录地址');
//获取二维码
UtilService::getQRCodePath('url', 'name');
  • WechatService 微信相关功能类

授权获取用户信息、粉丝列表、公众号事件监听、模版消息、支付 使用:

//引入
use crmeb\services\WechatService;

//用户信息
WechatService::getUserInfo('openid');
//发送模版消息
WechatService::staffService()->message($message)->to('openid')->send();
  • \easywechat\小程序相关功能具体实现类

从入口类MiniProgramService调用使用

  • \printer\小票打印

小票打印驱动包 使用:

//引用
use crmeb\services\printer\Printer;

//获取打印实例
$printer = new Printer('yi_lian_yun', 'data配置参数');
//打印
$res = $printer->setPrinterContent([
    'name' => '标题',
    'orderInfo' => '订单信息',
    'product' => '商品信息'
])->startPrinter();

  • \sms\短信

短信平台驱动包 使用:

//引用
use crmeb\services\sms\Sms;

//获取驱动实例
$sms = app()->make(Sms::class, [[
    'sms_account' => '短信账号',
    'sms_token' => '短信秘钥',
    'site_url' => '根url路径'
]]);
//发送
$sms->send('phone', 'template_id模版id', 'data发送模版数据');
  • \template\模版消息

微信模版、小程序订阅消息驱动包 使用:

//引用
use crmeb\services\template\Template;

//获取实例
$template = new Template('wechat');
//发送
$template->to('openid')->color($color)->send('模版id', '发送内容');
  • \upload\上传

上传驱动包 使用\services\UploadService.php入口访问,参照上面UploadService使用事例。

  • \workerman\长链接

workerman使用手册

socket长链接、客服聊天、定时任务等服务

Clone this wiki locally