catchAdmin/catch/wechat/repository/WechatReplyRepository.php

69 lines
2.2 KiB
PHP
Raw Normal View History

2020-06-28 11:32:50 +08:00
<?php
// +----------------------------------------------------------------------
// | CatchAdmin [Just Like ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
// +----------------------------------------------------------------------
// | Author: JaguarJack [ njphper@gmail.com ]
// +----------------------------------------------------------------------
2020-06-29 19:51:44 +08:00
namespace catchAdmin\wechat\repository;
use catchAdmin\wechat\model\WechatReply;
use catcher\base\CatchRepository;
2020-06-29 22:04:40 +08:00
use catcher\library\WeChat;
2020-06-29 19:51:44 +08:00
class WechatReplyRepository extends CatchRepository
{
protected $reply;
public function __construct(WechatReply $reply)
{
$this->reply = $reply;
}
public function model()
{
return $this->reply;
}
public function storeBy(array $data)
{
2020-06-29 22:04:40 +08:00
$material = WeChat::officialAccount()->material;
$mediaUrl = $this->getLocalPath($data['media_url'] ?? '');
2020-06-30 07:17:55 +08:00
$imageUrl = $this->getLocalPath($data['image_url'] ?? '');
2020-06-29 22:04:40 +08:00
if ($imageUrl) {
// 音乐
if ($data['type'] == WechatReply::MUSIC) {
$data['media_id'] = $material->uploadThumb($imageUrl)['media_id'];
} else {
$data['media_id'] = $material->uploadImage($imageUrl)['media_id'];
}
}
// 语音
if ($data['type'] == WechatReply::VOICE) {
$data['media_id'] = $material->uploadVoice($mediaUrl)['media_id'];
}
// 视频
if ($data['type'] == WechatReply::VIDEO) {
$data['media_id'] = $material->uploadVideo($mediaUrl, $data['title'], $data['content'])['media_id'];
}
2020-06-29 19:51:44 +08:00
return parent::storeBy($data); // TODO: Change the autogenerated stub
}
2020-06-29 22:04:40 +08:00
/**
* 获取本地地址
*
* @time 2020年06月29日
* @param $url
* @return string
*/
protected function getLocalPath($url)
{
return $url ? '.' . trim(str_replace(config('filesystem.disks.local.domain'), '', $url)) : '';
}
2020-06-29 19:51:44 +08:00
}