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'] ?? '');
|
|
|
|
|
$imageUrl = $this->getLocalPath($data['imageUrl'] ?? '');
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|