liiistem-miniapp/app/service/ToolService.php

177 lines
No EOL
6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\service;
use app\service\BaseService;
use app\AppCache;
use think\facade\Config;
use AlibabaCloud\SDK\Imageenhan\V20190930\Imageenhan;
use AlibabaCloud\SDK\Imageseg\V20191230\Imageseg;
use \Exception;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config as DaraConfig;
use AlibabaCloud\SDK\Imageenhan\V20190930\Models\ColorizeImageAdvanceRequest;
use AlibabaCloud\SDK\Imageseg\V20191230\Models\SegmentCommonImageAdvanceRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use GuzzleHttp\Psr7\Stream;
class ToolService extends BaseService
{
private $access_key_id = 'LTAI5tE6gkXQqJBbCxFfo4hv';
private $access_secret = 'pziJRQfXlev3vEIY4dHuB6C7E73Uv6';
private $sign_name = '';
private $imgClient = null;
public function __construct() {
parent::__construct('ToolService');
$this->config = new DaraConfig([
"accessKeyId" => $this->access_key_id,
"accessKeySecret" => $this->access_secret,
]);
}
public function tongYongFenGe($imgUrl) {
$this->config->endpoint = "imageseg.cn-shanghai.aliyuncs.com";
$client = new Imageseg($this->config);
$file = fopen($imgUrl, 'rb');
$stream = new Stream($file);
$segmentCommonImageAdvanceRequest = new SegmentCommonImageAdvanceRequest([
"imageURLObject" => $stream,
"returnForm" => "whiteBK"
]);
$runtime = new RuntimeOptions([]);
try {
$resp = $client->segmentCommonImageAdvance($segmentCommonImageAdvanceRequest, $runtime);
# 获取整体结果
$json_str = Utils::toJSONString($resp->body);
$json = c_safe_to_json($json_str);
// return ['code'=>0,$json];
$this->log_notice($json, '照片上色结果', 'tuPianShangSe');
return $json['Data']['ImageURL'] ?? '';
} catch (Exception $exception) {
# 获取整体报错信息
$this->log_error(Utils::toJSONString($exception), '照片上色失败', 'tuPianShangSe');
}
return '';
}
public function tuPianShangSe($imgUrl) {
$this->config->endpoint = "imageenhan.cn-shanghai.aliyuncs.com";
$client = new Imageenhan($this->config);
$file = fopen($imgUrl, 'rb');
//$stream = new Stream($file);
// 场景二使用任意可访问的url
// $file = fopen('http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/imageenhan/ColorizeImage/ColorizeImage1.jpg', 'rb');
$stream = new Stream($file);
$colorizeImageAdvanceRequest = new ColorizeImageAdvanceRequest([
"imageURLObject" => $stream
]);
$runtime = new RuntimeOptions([]);
try {
$resp = $client->colorizeImageAdvance($colorizeImageAdvanceRequest, $runtime);
# 获取整体结果
$json_str = Utils::toJSONString($resp->body);
$json = c_safe_to_json($json_str);
// return ['code'=>0,$json];
$this->log_notice($json, '照片上色结果', 'tuPianShangSe');
return $json['Data']['ImageURL'] ?? '';
} catch (Exception $exception) {
# 获取整体报错信息
$this->log_error(Utils::toJSONString($exception), '照片上色失败', 'tuPianShangSe');
}
return '';
}
// private function base($options_query): bool
// {
// $is_prod = false;
// if (env('app.envName', 'prod') == 'prod') {
// $is_prod = true;
// }
// if (!$is_prod) {
// $this->log_notice($options_query, '', 'base');
// if (!isset($options_query['Test'])) {
// return true;
// }
// }
// $options_query['RegionId'] = 'cn-hangzhou';
// $options_query['SignName'] = $this->sign_name;
// try {
// $result = AlibabaCloud::rpc()
// ->product('Dysmsapi')
// // ->scheme('https') // https | http
// ->version('2017-05-25')
// ->action('SendSms')
// ->method('POST')
// ->host('dysmsapi.aliyuncs.com')
// ->options([
// 'query' => $options_query
// ])
// ->request();
// $this->log_notice(['发送结果:' => $result->toArray(), "发送内容" => $options_query], '短信发送成功', 'base');
// return true;
// } catch (ClientException $e) {
// $this->log_error(['发送结果:' => $e->getErrorMessage(), "发送内容" => $options_query], '短信发送失败', 'base');
// } catch (ServerException $e) {
// $this->log_error(['发送结果:' => $e->getErrorMessage(), "发送内容" => $options_query], '短信发送失败', 'base');
// }
// return false;
// }
// public function sendTest() {
// return $this->base([
// 'Test' => 'test',
// 'TemplateCode' => "SMS_173476256",
// 'PhoneNumbers' => '13873044202',
// 'TemplateParam' => c_json_encode([
// 'OrderNo' => '11111111111111',
// 'CustomerName' => '测试',
// 'ProductName' => c_max_len_3dot('裸心堡红宝石水疗送双人下午茶/每天限量抢购'),
// 'ProductCount' => 2,
// ]),
// ]);
// }
// public function sendSMS($body_arr): bool
// {
// return $this->base($body_arr);
// }
// public function sendBindPhoneVcode($user_id, $phone): string
// {
// $vcode = random_vcode(6);
// $this->base([
// 'TemplateCode' => "SMS_307600272",
// 'PhoneNumbers' => $phone,
// 'TemplateParam' => c_json_encode(['code' => $vcode]),
// ]);
// return $vcode;
// }
public function sendqywx($text, $phone) {
$this->log_notice([$text, $phone], 'sendqywx', 'sendqywx');
return curl_post_https(Config::get('app.order_qywx_webhook'),
json_encode([
'msgtype' => 'text',
'text' => [
'content' => $text,
'mentioned_mobile_list' => [$phone],
],
]),
['header' => ['Content-Type:application/json']]);
}
public function sendqywx_test($text, $phone) {
$this->log_notice([$text, $phone], 'sendqywx_test', 'sendqywx_test');
return curl_post_https(Config::get('app.self_qxwx_alarm_webhook'),
json_encode([
'msgtype' => 'text',
'text' => [
'content' => $text,
'mentioned_mobile_list' => [$phone],
],
]),
['header' => ['Content-Type:application/json']]);
}
}