Merge branch 'develop' into lms
# Conflicts: # app/Helper/helper.php
正在显示
35 个修改的文件
包含
540 行增加
和
168 行删除
| @@ -45,6 +45,11 @@ class ShareUser extends Command | @@ -45,6 +45,11 @@ class ShareUser extends Command | ||
| 45 | $ayr_share_model = new AyrShareModel(); | 45 | $ayr_share_model = new AyrShareModel(); |
| 46 | $ayr_share_list = $ayr_share_model->list(); | 46 | $ayr_share_list = $ayr_share_model->list(); |
| 47 | foreach ($ayr_share_list as $k => $v){ | 47 | foreach ($ayr_share_list as $k => $v){ |
| 48 | + $time = Carbon::now()->modify('-7 days')->toDateString(); | ||
| 49 | + //创建时间小于7天前的当前时间 | ||
| 50 | + if($v['created_at'] > $time){ | ||
| 51 | + continue; | ||
| 52 | + } | ||
| 48 | //查询当前用户是否有未推送的博文 | 53 | //查询当前用户是否有未推送的博文 |
| 49 | $ayr_release = new AyrReleaseModel(); | 54 | $ayr_release = new AyrReleaseModel(); |
| 50 | $release_info = $ayr_release->read(['schedule_date'=>['>',date('Y-m-d H:i:s',time())],'share_id'=>$v['id']]); | 55 | $release_info = $ayr_release->read(['schedule_date'=>['>',date('Y-m-d H:i:s',time())],'share_id'=>$v['id']]); |
| @@ -57,10 +62,11 @@ class ShareUser extends Command | @@ -57,10 +62,11 @@ class ShareUser extends Command | ||
| 57 | $end_at = Carbon::now()->toDateString(); | 62 | $end_at = Carbon::now()->toDateString(); |
| 58 | $release_info = $ayr_release->read(['created_at'=>['between',[$start_at,$end_at]]]); | 63 | $release_info = $ayr_release->read(['created_at'=>['between',[$start_at,$end_at]]]); |
| 59 | //有发送博文,则跳出循环 | 64 | //有发送博文,则跳出循环 |
| 60 | - if($release_info == false){ | 65 | + if($release_info !== false){ |
| 61 | continue; | 66 | continue; |
| 62 | } | 67 | } |
| 63 | //删除用户第三方配置 | 68 | //删除用户第三方配置 |
| 69 | + if(!empty($v['profile_key'])){ | ||
| 64 | $ayr_share_helper = new AyrShareHelper(); | 70 | $ayr_share_helper = new AyrShareHelper(); |
| 65 | $data_profiles = [ | 71 | $data_profiles = [ |
| 66 | 'title'=>$v['title'], | 72 | 'title'=>$v['title'], |
| @@ -71,12 +77,13 @@ class ShareUser extends Command | @@ -71,12 +77,13 @@ class ShareUser extends Command | ||
| 71 | $this->error++; | 77 | $this->error++; |
| 72 | continue; | 78 | continue; |
| 73 | } | 79 | } |
| 80 | + } | ||
| 74 | //更新数据库 | 81 | //更新数据库 |
| 75 | $data = [ | 82 | $data = [ |
| 76 | - 'title'=>null, | ||
| 77 | - 'bind_plat_from'=>null, | ||
| 78 | - 'profile_key'=>null, | ||
| 79 | - 'ref_id'=>null, | 83 | + 'title'=>'', |
| 84 | + 'bind_platforms'=>'', | ||
| 85 | + 'profile_key'=>'', | ||
| 86 | + 'ref_id'=>'', | ||
| 80 | ]; | 87 | ]; |
| 81 | $res = $ayr_share_model->edit($data,['id'=>$v['id']]); | 88 | $res = $ayr_share_model->edit($data,['id'=>$v['id']]); |
| 82 | if($res == false){ | 89 | if($res == false){ |
| @@ -41,8 +41,8 @@ class Yesterday extends Command | @@ -41,8 +41,8 @@ class Yesterday extends Command | ||
| 41 | $yesterday = Carbon::yesterday()->toDateString(); | 41 | $yesterday = Carbon::yesterday()->toDateString(); |
| 42 | foreach ($list as $v){ | 42 | foreach ($list as $v){ |
| 43 | $arr = []; | 43 | $arr = []; |
| 44 | - $arr['yesterday_pv_num'] = DB::table('gl_customer_visit_item')->whereDate('date', $yesterday)->where('domain',$v['test_domain'])->count(); | ||
| 45 | - $arr['yesterday_ip_num'] = DB::table('gl_customer_visit')->whereDate('date', $yesterday)->where('domain',$v['test_domain'])->count(); | 44 | + $arr['pv_num'] = DB::table('gl_customer_visit_item')->whereDate('updated_date', $yesterday)->where('domain',$v['test_domain'])->count(); |
| 45 | + $arr['ip_num'] = DB::table('gl_customer_visit')->whereDate('updated_date', $yesterday)->where('domain',$v['test_domain'])->count(); | ||
| 46 | $inquiry_list = (new FormGlobalsoApi())->getInquiryList($v['test_domain']); | 46 | $inquiry_list = (new FormGlobalsoApi())->getInquiryList($v['test_domain']); |
| 47 | if($inquiry_list['status'] == self::STATUS_ERROR){ | 47 | if($inquiry_list['status'] == self::STATUS_ERROR){ |
| 48 | $arr['inquiry_num'] = 0; | 48 | $arr['inquiry_num'] = 0; |
| @@ -62,6 +62,7 @@ class Yesterday extends Command | @@ -62,6 +62,7 @@ class Yesterday extends Command | ||
| 62 | $arr['updated_at'] = date('Y-m-d H:i:s'); | 62 | $arr['updated_at'] = date('Y-m-d H:i:s'); |
| 63 | $data[] = $arr; | 63 | $data[] = $arr; |
| 64 | } | 64 | } |
| 65 | + //判断数据是否存在 | ||
| 65 | DB::table('gl_count')->insert($data); | 66 | DB::table('gl_count')->insert($data); |
| 66 | echo $this->error; | 67 | echo $this->error; |
| 67 | } | 68 | } |
app/Helper/AliSms.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Helper; | ||
| 4 | + | ||
| 5 | +class AliSms | ||
| 6 | +{ | ||
| 7 | + | ||
| 8 | + private $_msg = array( //状态对照 | ||
| 9 | + 1 => "发送成功", | ||
| 10 | + 0 => "其他系统错误", | ||
| 11 | + -1 => "短信余额不足", | ||
| 12 | + -2 => "资金账户被锁定", | ||
| 13 | + -3 => "用户被锁定", | ||
| 14 | + -4 => "号码在黑名单内", | ||
| 15 | + -5 => "用户名或密码不正确", | ||
| 16 | + -6 => "号码不正确", | ||
| 17 | + -7 => "接口连接失败", | ||
| 18 | + -8 => "号码格式错误", | ||
| 19 | + -9 => "通道编号错误", | ||
| 20 | + -10 => "定时发送时间不正确", | ||
| 21 | + -11 => "没有输入短信内容", | ||
| 22 | + -12 => "短信内容超出长度限制", | ||
| 23 | + -15 => "内容含非法关键字", | ||
| 24 | + -16 => "超出发送时间范围", | ||
| 25 | + -17 => "通道被关闭", | ||
| 26 | + -18 => "短信内容没有签名", | ||
| 27 | + -30 => "手机未认证", | ||
| 28 | + -31 => "身份未认证", | ||
| 29 | + -32 => "请勿重复发送", | ||
| 30 | + -33 => "验证码已过期,请重新获取", | ||
| 31 | + -34 => "手机号码格式不正确", | ||
| 32 | + -35 => "验证码不正确", | ||
| 33 | + ); | ||
| 34 | + // 保存错误信息 | ||
| 35 | + public $error; | ||
| 36 | + public $_code = ""; | ||
| 37 | + public $_name = ""; | ||
| 38 | + public $_key_str = ""; // cache full name. | ||
| 39 | + protected $_expire = 600; // 验证码过期时间(s) | ||
| 40 | + public $_key = [ | ||
| 41 | + ]; | ||
| 42 | + // Access Key ID | ||
| 43 | + private $accessKeyId = ''; | ||
| 44 | + // Access Key Secret | ||
| 45 | + private $accessKeySecret = ''; | ||
| 46 | + // 签名 | ||
| 47 | + private $signName = ''; | ||
| 48 | + // 模版ID | ||
| 49 | + public $templateCode = ''; | ||
| 50 | + | ||
| 51 | + public function __construct($config = array()) | ||
| 52 | + { | ||
| 53 | + $config = array( | ||
| 54 | + 'accessKeyId' => config('aliyunsms.access_key'), | ||
| 55 | + 'accessKeySecret' => config('aliyunsms.access_secret'), | ||
| 56 | + 'signName' => config('aliyunsms.sign_name'), | ||
| 57 | + 'templateCode' => config('aliyunsms.login_sms_temp'), | ||
| 58 | + ); | ||
| 59 | + // 配置参数 | ||
| 60 | + $this->accessKeyId = $config['accessKeyId']; | ||
| 61 | + $this->accessKeySecret = $config['accessKeySecret']; | ||
| 62 | + $this->signName = $config['signName']; | ||
| 63 | + $this->templateCode = $config['templateCode']; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + /** | ||
| 67 | + * 规范化字符串以符合阿里云短信接口 | ||
| 68 | + * @param $string | ||
| 69 | + * @return mixed|string | ||
| 70 | + */ | ||
| 71 | + private function percentEncode($string) | ||
| 72 | + { | ||
| 73 | + $string = urlencode($string); | ||
| 74 | + $string = preg_replace('/\+/', '%20', $string); | ||
| 75 | + $string = preg_replace('/\*/', '%2A', $string); | ||
| 76 | + $string = preg_replace('/%7E/', '~', $string); | ||
| 77 | + return $string; | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + /** | ||
| 81 | + * 签名 | ||
| 82 | + * | ||
| 83 | + * @param unknown $parameters | ||
| 84 | + * @param unknown $accessKeySecret | ||
| 85 | + * @return string | ||
| 86 | + */ | ||
| 87 | + private function computeSignature($parameters, $accessKeySecret) | ||
| 88 | + { | ||
| 89 | + ksort($parameters); | ||
| 90 | + $canonicalizedQueryString = ''; | ||
| 91 | + foreach ($parameters as $key => $value) { | ||
| 92 | + $canonicalizedQueryString .= '&' . $this->percentEncode($key) . '=' . $this->percentEncode($value); | ||
| 93 | + } | ||
| 94 | + $stringToSign = 'GET&%2F&' . $this->percentencode(substr($canonicalizedQueryString, 1)); | ||
| 95 | + $signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret . '&', true)); | ||
| 96 | + return $signature; | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + /** | ||
| 100 | + * 发送验证码 https://help.aliyun.com/document_detail/44364.html?spm=5176.doc44368.6.126.gSngXV | ||
| 101 | + * | ||
| 102 | + * @param unknown $mobile | ||
| 103 | + * @param unknown $verify_code | ||
| 104 | + * | ||
| 105 | + */ | ||
| 106 | + public function send_sms($mobile, $paramstring) | ||
| 107 | + { | ||
| 108 | + $params = array( | ||
| 109 | + // 公共参数 | ||
| 110 | + 'SignName' => $this->signName, | ||
| 111 | + 'Format' => 'JSON', | ||
| 112 | + 'Version' => '2016-09-27', | ||
| 113 | + 'AccessKeyId' => $this->accessKeyId, | ||
| 114 | + 'SignatureVersion' => '1.0', | ||
| 115 | + 'SignatureMethod' => 'HMAC-SHA1', | ||
| 116 | + 'SignatureNonce' => uniqid(), | ||
| 117 | + 'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'), | ||
| 118 | + // 接口参数 | ||
| 119 | + 'Action' => 'SingleSendSms', | ||
| 120 | + 'TemplateCode' => $this->templateCode, | ||
| 121 | + 'RecNum' => $mobile, | ||
| 122 | + 'ParamString' => $paramstring, | ||
| 123 | + ); | ||
| 124 | + // 计算签名并把签名结果加入请求参数 | ||
| 125 | + $params['Signature'] = $this->computeSignature($params, $this->accessKeySecret); | ||
| 126 | + | ||
| 127 | + // 发送请求 | ||
| 128 | + $url = 'https://sms.aliyuncs.com/?' . http_build_query($params); | ||
| 129 | + $result = http_get($url); //TODO:上线前打开 | ||
| 130 | + if (isset($result['Code'])) { | ||
| 131 | + $this->error = $this->getErrorMessage($result['Code']); | ||
| 132 | + return false; | ||
| 133 | + } | ||
| 134 | + return true; | ||
| 135 | + } | ||
| 136 | + | ||
| 137 | + /** | ||
| 138 | + * 发送验证码 https://help.aliyun.com/document_detail/44364.html?spm=5176.doc44368.6.126.gSngXV | ||
| 139 | + * | ||
| 140 | + * @param unknown $mobile | ||
| 141 | + * @param unknown $verify_code | ||
| 142 | + * | ||
| 143 | + */ | ||
| 144 | + public function send_verify($mobile) | ||
| 145 | + { | ||
| 146 | + if ($this->checkMobile($mobile) === false) { | ||
| 147 | + $this->error = $this->_msg[-34]; | ||
| 148 | + return -34; | ||
| 149 | + } | ||
| 150 | + $session = cache($this->_key_str . $mobile); | ||
| 151 | + if ($session && time() - $session['time'] < 60) { | ||
| 152 | + if ($session['code'] == null) { | ||
| 153 | + return true; | ||
| 154 | + } else { | ||
| 155 | + $this->error = $this->_msg[-32]; | ||
| 156 | + return -32; | ||
| 157 | + } | ||
| 158 | + } | ||
| 159 | + $this->_code = rand(1000, 9999); | ||
| 160 | + $params = array( | ||
| 161 | + // 公共参数 | ||
| 162 | + 'SignName' => $this->signName, | ||
| 163 | + 'Format' => 'JSON', | ||
| 164 | + 'Version' => '2016-09-27', | ||
| 165 | + 'AccessKeyId' => $this->accessKeyId, | ||
| 166 | + 'SignatureVersion' => '1.0', | ||
| 167 | + 'SignatureMethod' => 'HMAC-SHA1', | ||
| 168 | + 'SignatureNonce' => uniqid(), | ||
| 169 | + 'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'), | ||
| 170 | + // 接口参数 | ||
| 171 | + 'Action' => 'SingleSendSms', | ||
| 172 | + 'TemplateCode' => $this->templateCode, | ||
| 173 | + 'RecNum' => $mobile, | ||
| 174 | + 'ParamString' => '{"msgcode":"' . $this->_code . '"}', | ||
| 175 | + ); | ||
| 176 | + // 计算签名并把签名结果加入请求参数 | ||
| 177 | + $params['Signature'] = $this->computeSignature($params, $this->accessKeySecret); | ||
| 178 | + // 发送请求 | ||
| 179 | + $url = 'https://sms.aliyuncs.com/?' . http_build_query($params); | ||
| 180 | + $result = http_get($url); //TODO:上线前打开 | ||
| 181 | + // $result =1; | ||
| 182 | + if ($result) { | ||
| 183 | + $session = array(); | ||
| 184 | + $session['code'] = $this->_code; // 把校验码保存到session | ||
| 185 | + $session['time'] = time(); // 验证码创建时间 | ||
| 186 | + cache($this->_key_str . $mobile, $session, $this->_expire); | ||
| 187 | + } else { | ||
| 188 | + return $this->error = $this->_msg[0]; | ||
| 189 | + } | ||
| 190 | + if (isset($result['Code'])) { | ||
| 191 | + $this->error = $this->getErrorMessage($result['Code']); | ||
| 192 | + return false; | ||
| 193 | + } | ||
| 194 | + return true; | ||
| 195 | + } | ||
| 196 | + /** | ||
| 197 | + * 验证手机号码 | ||
| 198 | + */ | ||
| 199 | + public function checkMobile($tel) | ||
| 200 | + { | ||
| 201 | + if (preg_match("/^1[3,4,6,5,8,7,9][0-9]{1}[0-9]{8}$/", $tel)) { | ||
| 202 | + //验证通过 | ||
| 203 | + return true; | ||
| 204 | + } else { | ||
| 205 | + $this->error = $this->_msg[-34]; | ||
| 206 | + //手机号码格式不对 | ||
| 207 | + return false; | ||
| 208 | + } | ||
| 209 | + } | ||
| 210 | + | ||
| 211 | + /** | ||
| 212 | + * 验证码是否正确 | ||
| 213 | + * @param string $key 手机号码 | ||
| 214 | + * @param int|string $code 验证码 | ||
| 215 | + * @param int|string $type 类型 reg-注册时获取 sms-快速登录时 pwd-修改密码时 bind-绑定手机时 unbind-解绑时 | ||
| 216 | + * @return boolean 验证短信验证码是否正确 | ||
| 217 | + */ | ||
| 218 | + public function check($key, $code, $type = 'reg') | ||
| 219 | + { | ||
| 220 | + $this->_key_str = $type . '_' . $key; | ||
| 221 | + $session = cache($this->_key_str); | ||
| 222 | + if (empty($code) || empty($session)) { | ||
| 223 | + $this->error = $this->_msg[-33] . $this->_key_str; | ||
| 224 | + return false; | ||
| 225 | + } | ||
| 226 | + if (time() - $session['time'] > $this->_expire) { | ||
| 227 | + cache($this->_key_str, null); | ||
| 228 | + $this->error = $this->_msg[-33] . $this->_key_str; | ||
| 229 | + return false; | ||
| 230 | + } | ||
| 231 | + if ($code == $session['code']) { | ||
| 232 | + return true; | ||
| 233 | + } | ||
| 234 | + $this->error = $this->_msg[-35] . $this->_key_str; | ||
| 235 | + return false; | ||
| 236 | + } | ||
| 237 | + | ||
| 238 | + /** | ||
| 239 | + * 验证成功后调用清空验证码 | ||
| 240 | + */ | ||
| 241 | + public function afterCheck() | ||
| 242 | + { | ||
| 243 | + cache($this->_key_str, null); | ||
| 244 | + } | ||
| 245 | + | ||
| 246 | + /** | ||
| 247 | + * 获取详细错误信息 | ||
| 248 | + * | ||
| 249 | + * @param unknown $status | ||
| 250 | + */ | ||
| 251 | + public function getErrorMessage($status) | ||
| 252 | + { | ||
| 253 | + | ||
| 254 | + $message = array( | ||
| 255 | + 'InvalidDayuStatus.Malformed' => '账户短信开通状态不正确', | ||
| 256 | + 'InvalidSignName.Malformed' => '短信签名不正确或签名状态不正确', | ||
| 257 | + 'InvalidTemplateCode.MalFormed' => '短信模板Code不正确或者模板状态不正确', | ||
| 258 | + 'InvalidRecNum.Malformed' => '目标手机号不正确,单次发送数量不能超过100', | ||
| 259 | + 'InvalidParamString.MalFormed' => '短信模板中变量不是json格式', | ||
| 260 | + 'InvalidParamStringTemplate.Malformed' => '短信模板中变量与模板内容不匹配', | ||
| 261 | + 'InvalidSendSms' => '1小时只能请求7次,谢谢', | ||
| 262 | + 'InvalidDayu.Malformed' => '变量不能是url,可以将变量固化在模板中', | ||
| 263 | + ); | ||
| 264 | + if (isset($message[$status])) { | ||
| 265 | + return $message[$status]; | ||
| 266 | + } | ||
| 267 | + return $status; | ||
| 268 | + } | ||
| 269 | + | ||
| 270 | + private function _addlog($name, $title) | ||
| 271 | + { | ||
| 272 | + $this->_keys["code"] = $this->_code; | ||
| 273 | +// addlog($this->_keys, $title, 1, $this->_url); | ||
| 274 | + } | ||
| 275 | +} |
| @@ -85,7 +85,7 @@ zFePUMXy1bFghAfzNKlrc5XgH4ixeeMh3cDtU97K | @@ -85,7 +85,7 @@ zFePUMXy1bFghAfzNKlrc5XgH4ixeeMh3cDtU97K | ||
| 85 | 'domain'=>$domain, | 85 | 'domain'=>$domain, |
| 86 | 'privateKey'=>$this->private_key, | 86 | 'privateKey'=>$this->private_key, |
| 87 | 'profileKey'=>$data['profileKey'], | 87 | 'profileKey'=>$data['profileKey'], |
| 88 | -// 'logout'=>true | 88 | + 'logout'=>true |
| 89 | ]; | 89 | ]; |
| 90 | $url = $this->path.'/api/profiles/generateJWT'; | 90 | $url = $this->path.'/api/profiles/generateJWT'; |
| 91 | return $this->http_click('post',$url,$param); | 91 | return $this->http_click('post',$url,$param); |
| @@ -67,7 +67,7 @@ if (!function_exists('http_post')) { | @@ -67,7 +67,7 @@ if (!function_exists('http_post')) { | ||
| 67 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | 67 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
| 68 | $res = curl_exec($ch); | 68 | $res = curl_exec($ch); |
| 69 | if (curl_errno($ch)) { | 69 | if (curl_errno($ch)) { |
| 70 | - \Illuminate\Support\Facades\Log::write(print_r(curl_errno($ch), 1), 'debug---1'); | 70 | + \Illuminate\Support\Facades\Log::info(print_r(curl_errno($ch),1),'debug---1'); |
| 71 | } | 71 | } |
| 72 | curl_close($ch); | 72 | curl_close($ch); |
| 73 | return json_decode($res, true); | 73 | return json_decode($res, true); |
| @@ -95,6 +95,7 @@ if (!function_exists('http_get')) { | @@ -95,6 +95,7 @@ if (!function_exists('http_get')) { | ||
| 95 | curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false); | 95 | curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false); |
| 96 | curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, false); | 96 | curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, false); |
| 97 | $access_txt = curl_exec($ch1); | 97 | $access_txt = curl_exec($ch1); |
| 98 | + \Illuminate\Support\Facades\Log::info($access_txt); | ||
| 98 | curl_close($ch1); | 99 | curl_close($ch1); |
| 99 | return json_decode($access_txt, true); | 100 | return json_decode($access_txt, true); |
| 100 | } | 101 | } |
| @@ -14,7 +14,6 @@ class AiCommandController extends BaseController | @@ -14,7 +14,6 @@ class AiCommandController extends BaseController | ||
| 14 | public $chat_url = 'v2/openai_chat'; | 14 | public $chat_url = 'v2/openai_chat'; |
| 15 | /** | 15 | /** |
| 16 | * @name :ai生成 | 16 | * @name :ai生成 |
| 17 | - * @return void | ||
| 18 | * @author :liyuhang | 17 | * @author :liyuhang |
| 19 | * @method | 18 | * @method |
| 20 | */ | 19 | */ |
| @@ -38,8 +37,7 @@ class AiCommandController extends BaseController | @@ -38,8 +37,7 @@ class AiCommandController extends BaseController | ||
| 38 | } | 37 | } |
| 39 | 38 | ||
| 40 | /** | 39 | /** |
| 41 | - * @name :写入日志 | ||
| 42 | - * @return void | 40 | + * @name :写入日志 |
| 43 | * @author :liyuhang | 41 | * @author :liyuhang |
| 44 | * @method | 42 | * @method |
| 45 | */ | 43 | */ |
| @@ -24,7 +24,7 @@ class AyrShareController extends BaseController | @@ -24,7 +24,7 @@ class AyrShareController extends BaseController | ||
| 24 | */ | 24 | */ |
| 25 | public function lists(AyrShareModel $ayrShareModel,AyrShareLogic $ayrShareLogic){ | 25 | public function lists(AyrShareModel $ayrShareModel,AyrShareLogic $ayrShareLogic){ |
| 26 | //授权配置列表 | 26 | //授权配置列表 |
| 27 | - $share_list = $ayrShareModel->platforms; | 27 | + $share_list = $ayrShareModel->iconImage(); |
| 28 | $lists = $ayrShareModel->lists($this->map,$this->page,$this->row,'id',['id','name','title','profile_key','bind_platforms','operator_id','created_at','updated_at']); | 28 | $lists = $ayrShareModel->lists($this->map,$this->page,$this->row,'id',['id','name','title','profile_key','bind_platforms','operator_id','created_at','updated_at']); |
| 29 | foreach ($lists['list'] as $k => $v){ | 29 | foreach ($lists['list'] as $k => $v){ |
| 30 | if(!empty($v['profile_key'])){ | 30 | if(!empty($v['profile_key'])){ |
| @@ -68,8 +68,11 @@ class AyrShareController extends BaseController | @@ -68,8 +68,11 @@ class AyrShareController extends BaseController | ||
| 68 | $res = false; | 68 | $res = false; |
| 69 | } | 69 | } |
| 70 | }else{ | 70 | }else{ |
| 71 | + if(!empty($info['bind_platforms'])){ | ||
| 71 | $ayrShareLogic->ayr_share_edit(['bind_platforms'=>''],$this->param['id']); | 72 | $ayrShareLogic->ayr_share_edit(['bind_platforms'=>''],$this->param['id']); |
| 72 | - $res = true; | 73 | + return true; |
| 74 | + } | ||
| 75 | + $res = false; | ||
| 73 | } | 76 | } |
| 74 | $this->response('success',Code::SUCCESS,['is_true'=>$res]); | 77 | $this->response('success',Code::SUCCESS,['is_true'=>$res]); |
| 75 | } | 78 | } |
| @@ -81,6 +84,8 @@ class AyrShareController extends BaseController | @@ -81,6 +84,8 @@ class AyrShareController extends BaseController | ||
| 81 | */ | 84 | */ |
| 82 | public function create_account(AyrShareRequest $ayrShareRequest,AyrShareLogic $ayrShareLogic){ | 85 | public function create_account(AyrShareRequest $ayrShareRequest,AyrShareLogic $ayrShareLogic){ |
| 83 | $ayrShareRequest->validated(); | 86 | $ayrShareRequest->validated(); |
| 87 | + //验证参数及 | ||
| 88 | + $ayrShareLogic->AyrVerify(); | ||
| 84 | $param = [ | 89 | $param = [ |
| 85 | 'title'=>self::TITLE . ':' . $this->user['project_id'] . '-' . $this->param['name'], | 90 | 'title'=>self::TITLE . ':' . $this->user['project_id'] . '-' . $this->param['name'], |
| 86 | ]; | 91 | ]; |
| @@ -91,7 +96,7 @@ class AyrShareController extends BaseController | @@ -91,7 +96,7 @@ class AyrShareController extends BaseController | ||
| 91 | $this->response('同步绑定失败'); | 96 | $this->response('同步绑定失败'); |
| 92 | } | 97 | } |
| 93 | //执行数据库操作 | 98 | //执行数据库操作 |
| 94 | - $ayrShareLogic->ayr_share_add($res); | 99 | + $ayrShareLogic->ayr_share_save($res); |
| 95 | $this->response('success'); | 100 | $this->response('success'); |
| 96 | } | 101 | } |
| 97 | 102 | ||
| @@ -108,6 +113,7 @@ class AyrShareController extends BaseController | @@ -108,6 +113,7 @@ class AyrShareController extends BaseController | ||
| 108 | 'id.required' => 'ID不能为空' | 113 | 'id.required' => 'ID不能为空' |
| 109 | ]); | 114 | ]); |
| 110 | $info = $ayrShareLogic->ayr_share_info(); | 115 | $info = $ayrShareLogic->ayr_share_info(); |
| 116 | + if(!empty($info['title'])){ | ||
| 111 | $data = [ | 117 | $data = [ |
| 112 | // 'title'=>$info['title'], | 118 | // 'title'=>$info['title'], |
| 113 | 'profileKey'=>$info['profile_key'] | 119 | 'profileKey'=>$info['profile_key'] |
| @@ -118,6 +124,7 @@ class AyrShareController extends BaseController | @@ -118,6 +124,7 @@ class AyrShareController extends BaseController | ||
| 118 | if($res['status'] == 'fail'){ | 124 | if($res['status'] == 'fail'){ |
| 119 | $this->response('同步删除失败'); | 125 | $this->response('同步删除失败'); |
| 120 | } | 126 | } |
| 127 | + } | ||
| 121 | $ayrShareLogic->ayr_share_del(); | 128 | $ayrShareLogic->ayr_share_del(); |
| 122 | $this->response('success'); | 129 | $this->response('success'); |
| 123 | } | 130 | } |
| @@ -7,6 +7,8 @@ use App\Helper\Common; | @@ -7,6 +7,8 @@ use App\Helper\Common; | ||
| 7 | use App\Http\Controllers\Controller; | 7 | use App\Http\Controllers\Controller; |
| 8 | use App\Http\Requests\Bside\Nav\NavRequest; | 8 | use App\Http\Requests\Bside\Nav\NavRequest; |
| 9 | use App\Http\Requests\Scene; | 9 | use App\Http\Requests\Scene; |
| 10 | +use App\Models\Project\DeployBuild; | ||
| 11 | +use App\Models\Project\DeployOptimize; | ||
| 10 | use App\Models\User\User as UserModel; | 12 | use App\Models\User\User as UserModel; |
| 11 | use Illuminate\Http\JsonResponse; | 13 | use Illuminate\Http\JsonResponse; |
| 12 | use Illuminate\Http\Request; | 14 | use Illuminate\Http\Request; |
| @@ -45,8 +47,7 @@ class BaseController extends Controller | @@ -45,8 +47,7 @@ class BaseController extends Controller | ||
| 45 | } | 47 | } |
| 46 | } | 48 | } |
| 47 | /** | 49 | /** |
| 48 | - * @name 参数过滤 | ||
| 49 | - * @return void | 50 | + * @name :参数过滤 |
| 50 | * @author :liyuhang | 51 | * @author :liyuhang |
| 51 | * @method | 52 | * @method |
| 52 | */ | 53 | */ |
| @@ -209,5 +210,16 @@ class BaseController extends Controller | @@ -209,5 +210,16 @@ class BaseController extends Controller | ||
| 209 | return \Illuminate\Support\Facades\Request::isMethod('post'); | 210 | return \Illuminate\Support\Facades\Request::isMethod('post'); |
| 210 | } | 211 | } |
| 211 | 212 | ||
| 212 | - | 213 | + /** |
| 214 | + * @name :(获取当前登录用户域名并通知更新)projectUrl | ||
| 215 | + * @author :lyh | ||
| 216 | + * @method :post | ||
| 217 | + * @time :2023/6/6 14:09 | ||
| 218 | + */ | ||
| 219 | + public function projectUrlNotify($param){ | ||
| 220 | + $deployBuildModel = new DeployBuild(); | ||
| 221 | + $info = $deployBuildModel->read(['project_id'=>1]); | ||
| 222 | + $url = $info['test_domain'].'api/updateHtmlNotify?model='.$param; | ||
| 223 | + return http_get($url); | ||
| 224 | + } | ||
| 213 | } | 225 | } |
| @@ -13,7 +13,6 @@ class BlogCategoryController extends BaseController | @@ -13,7 +13,6 @@ class BlogCategoryController extends BaseController | ||
| 13 | { | 13 | { |
| 14 | /** | 14 | /** |
| 15 | * @name :博客分类列表 | 15 | * @name :博客分类列表 |
| 16 | - * @return json | ||
| 17 | * @author :liyuhang | 16 | * @author :liyuhang |
| 18 | * @method | 17 | * @method |
| 19 | */ | 18 | */ |
| @@ -34,7 +33,6 @@ class BlogCategoryController extends BaseController | @@ -34,7 +33,6 @@ class BlogCategoryController extends BaseController | ||
| 34 | 33 | ||
| 35 | /** | 34 | /** |
| 36 | * @name :获取当前分类详情 | 35 | * @name :获取当前分类详情 |
| 37 | - * @return void | ||
| 38 | * @author :liyuhang | 36 | * @author :liyuhang |
| 39 | * @method | 37 | * @method |
| 40 | */ | 38 | */ |
| @@ -49,7 +47,6 @@ class BlogCategoryController extends BaseController | @@ -49,7 +47,6 @@ class BlogCategoryController extends BaseController | ||
| 49 | } | 47 | } |
| 50 | /** | 48 | /** |
| 51 | * @name :添加分类 | 49 | * @name :添加分类 |
| 52 | - * @return json | ||
| 53 | * @author :liyuhang | 50 | * @author :liyuhang |
| 54 | * @method | 51 | * @method |
| 55 | */ | 52 | */ |
| @@ -62,7 +59,6 @@ class BlogCategoryController extends BaseController | @@ -62,7 +59,6 @@ class BlogCategoryController extends BaseController | ||
| 62 | 59 | ||
| 63 | /** | 60 | /** |
| 64 | * @name :编辑分类 | 61 | * @name :编辑分类 |
| 65 | - * @return void | ||
| 66 | * @author :liyuhang | 62 | * @author :liyuhang |
| 67 | * @method | 63 | * @method |
| 68 | */ | 64 | */ |
| @@ -79,7 +75,6 @@ class BlogCategoryController extends BaseController | @@ -79,7 +75,6 @@ class BlogCategoryController extends BaseController | ||
| 79 | 75 | ||
| 80 | /** | 76 | /** |
| 81 | * @name :编辑状态/与排序 | 77 | * @name :编辑状态/与排序 |
| 82 | - * @return void | ||
| 83 | * @author :liyuhang | 78 | * @author :liyuhang |
| 84 | * @method | 79 | * @method |
| 85 | */ | 80 | */ |
| @@ -95,7 +90,6 @@ class BlogCategoryController extends BaseController | @@ -95,7 +90,6 @@ class BlogCategoryController extends BaseController | ||
| 95 | 90 | ||
| 96 | /** | 91 | /** |
| 97 | * @name :删除分类 | 92 | * @name :删除分类 |
| 98 | - * @return void | ||
| 99 | * @author :liyuhang | 93 | * @author :liyuhang |
| 100 | * @method | 94 | * @method |
| 101 | */ | 95 | */ |
| @@ -12,9 +12,10 @@ use App\Models\Blog\Blog as BlogModel; | @@ -12,9 +12,10 @@ use App\Models\Blog\Blog as BlogModel; | ||
| 12 | 12 | ||
| 13 | class BlogController extends BaseController | 13 | class BlogController extends BaseController |
| 14 | { | 14 | { |
| 15 | + //通知别名 | ||
| 16 | + public $updateModelView = 'blog'; | ||
| 15 | /** | 17 | /** |
| 16 | * @name :博客列表 | 18 | * @name :博客列表 |
| 17 | - * @return json | ||
| 18 | * @author :liyuhang | 19 | * @author :liyuhang |
| 19 | * @method | 20 | * @method |
| 20 | */ | 21 | */ |
| @@ -37,7 +38,6 @@ class BlogController extends BaseController | @@ -37,7 +38,6 @@ class BlogController extends BaseController | ||
| 37 | 38 | ||
| 38 | /** | 39 | /** |
| 39 | * @name :获取分页列表 | 40 | * @name :获取分页列表 |
| 40 | - * @return void | ||
| 41 | * @throws \App\Exceptions\BsideGlobalException | 41 | * @throws \App\Exceptions\BsideGlobalException |
| 42 | * @author :liyuhang | 42 | * @author :liyuhang |
| 43 | * @method | 43 | * @method |
| @@ -48,7 +48,6 @@ class BlogController extends BaseController | @@ -48,7 +48,6 @@ class BlogController extends BaseController | ||
| 48 | } | 48 | } |
| 49 | /** | 49 | /** |
| 50 | * @name :获取当前博客详情 | 50 | * @name :获取当前博客详情 |
| 51 | - * @return json | ||
| 52 | * @author :liyuhang | 51 | * @author :liyuhang |
| 53 | * @method | 52 | * @method |
| 54 | */ | 53 | */ |
| @@ -63,20 +62,19 @@ class BlogController extends BaseController | @@ -63,20 +62,19 @@ class BlogController extends BaseController | ||
| 63 | } | 62 | } |
| 64 | /** | 63 | /** |
| 65 | * @name :添加博客 | 64 | * @name :添加博客 |
| 66 | - * @return void | ||
| 67 | * @author :liyuhang | 65 | * @author :liyuhang |
| 68 | * @method | 66 | * @method |
| 69 | */ | 67 | */ |
| 70 | public function add(BlogRequest $request,BlogLogic $blogLogic){ | 68 | public function add(BlogRequest $request,BlogLogic $blogLogic){ |
| 71 | $request->validated(); | 69 | $request->validated(); |
| 72 | $blogLogic->blog_add(); | 70 | $blogLogic->blog_add(); |
| 73 | - //TODO::写入日志 | 71 | + //TODO::通知网站更新 |
| 72 | + $this->projectUrlNotify($this->updateModelView); | ||
| 74 | $this->response('success'); | 73 | $this->response('success'); |
| 75 | } | 74 | } |
| 76 | 75 | ||
| 77 | /** | 76 | /** |
| 78 | * @name :编辑博客 | 77 | * @name :编辑博客 |
| 79 | - * @return void | ||
| 80 | * @author :liyuhang | 78 | * @author :liyuhang |
| 81 | * @method | 79 | * @method |
| 82 | */ | 80 | */ |
| @@ -87,13 +85,13 @@ class BlogController extends BaseController | @@ -87,13 +85,13 @@ class BlogController extends BaseController | ||
| 87 | 'id.required' => 'ID不能为空' | 85 | 'id.required' => 'ID不能为空' |
| 88 | ]); | 86 | ]); |
| 89 | $blogLogic->blog_edit(); | 87 | $blogLogic->blog_edit(); |
| 90 | - //TODO::写入日志 | 88 | + //TODO::通知网站更新 |
| 89 | + $this->projectUrlNotify($this->updateModelView); | ||
| 91 | $this->response('success'); | 90 | $this->response('success'); |
| 92 | } | 91 | } |
| 93 | 92 | ||
| 94 | /** | 93 | /** |
| 95 | * @name :编辑新闻seo | 94 | * @name :编辑新闻seo |
| 96 | - * @return void | ||
| 97 | * @author :liyuhang | 95 | * @author :liyuhang |
| 98 | * @method | 96 | * @method |
| 99 | */ | 97 | */ |
| @@ -114,7 +112,6 @@ class BlogController extends BaseController | @@ -114,7 +112,6 @@ class BlogController extends BaseController | ||
| 114 | } | 112 | } |
| 115 | /** | 113 | /** |
| 116 | * @name :编辑博客状态/排序 | 114 | * @name :编辑博客状态/排序 |
| 117 | - * @return void | ||
| 118 | * @author :liyuhang | 115 | * @author :liyuhang |
| 119 | * @method | 116 | * @method |
| 120 | */ | 117 | */ |
| @@ -132,7 +129,6 @@ class BlogController extends BaseController | @@ -132,7 +129,6 @@ class BlogController extends BaseController | ||
| 132 | 129 | ||
| 133 | /** | 130 | /** |
| 134 | * @name :删除博客(批量逻辑删除) | 131 | * @name :删除博客(批量逻辑删除) |
| 135 | - * @return void | ||
| 136 | * @author :liyuhang | 132 | * @author :liyuhang |
| 137 | * @method | 133 | * @method |
| 138 | */ | 134 | */ |
| @@ -13,7 +13,6 @@ class BlogLabelController extends BaseController | @@ -13,7 +13,6 @@ class BlogLabelController extends BaseController | ||
| 13 | { | 13 | { |
| 14 | /** | 14 | /** |
| 15 | * @name :博客标签列表 | 15 | * @name :博客标签列表 |
| 16 | - * @return json | ||
| 17 | * @author :liyuhang | 16 | * @author :liyuhang |
| 18 | * @method | 17 | * @method |
| 19 | */ | 18 | */ |
| @@ -38,7 +37,6 @@ class BlogLabelController extends BaseController | @@ -38,7 +37,6 @@ class BlogLabelController extends BaseController | ||
| 38 | 37 | ||
| 39 | /** | 38 | /** |
| 40 | * @name :编辑标签 | 39 | * @name :编辑标签 |
| 41 | - * @return void | ||
| 42 | * @author :liyuhang | 40 | * @author :liyuhang |
| 43 | * @method | 41 | * @method |
| 44 | */ | 42 | */ |
| @@ -55,7 +53,6 @@ class BlogLabelController extends BaseController | @@ -55,7 +53,6 @@ class BlogLabelController extends BaseController | ||
| 55 | 53 | ||
| 56 | /** | 54 | /** |
| 57 | * @name :编辑标签状态/排序 | 55 | * @name :编辑标签状态/排序 |
| 58 | - * @return void | ||
| 59 | * @author :liyuhang | 56 | * @author :liyuhang |
| 60 | * @method | 57 | * @method |
| 61 | */ | 58 | */ |
| @@ -72,7 +69,6 @@ class BlogLabelController extends BaseController | @@ -72,7 +69,6 @@ class BlogLabelController extends BaseController | ||
| 72 | 69 | ||
| 73 | /** | 70 | /** |
| 74 | * @name :删除标签(批量删除) | 71 | * @name :删除标签(批量删除) |
| 75 | - * @return void | ||
| 76 | * @author :liyuhang | 72 | * @author :liyuhang |
| 77 | * @method | 73 | * @method |
| 78 | */ | 74 | */ |
| @@ -4,19 +4,22 @@ namespace App\Http\Controllers\Bside; | @@ -4,19 +4,22 @@ namespace App\Http\Controllers\Bside; | ||
| 4 | 4 | ||
| 5 | use App\Enums\Common\Code; | 5 | use App\Enums\Common\Code; |
| 6 | use App\Helper\AyrShare as AyrShareHelper; | 6 | use App\Helper\AyrShare as AyrShareHelper; |
| 7 | -use App\Helper\Country; | 7 | +use App\Helper\Common; |
| 8 | +use App\Helper\FormGlobalsoApi; | ||
| 8 | use App\Models\AyrShare\AyrRelease as AyrReleaseModel; | 9 | use App\Models\AyrShare\AyrRelease as AyrReleaseModel; |
| 9 | use App\Models\AyrShare\AyrShare as AyrShareModel; | 10 | use App\Models\AyrShare\AyrShare as AyrShareModel; |
| 11 | +use App\Models\Project\DeployBuild; | ||
| 10 | use App\Models\Project\Project; | 12 | use App\Models\Project\Project; |
| 11 | use App\Models\Project\Project as ProjectModel; | 13 | use App\Models\Project\Project as ProjectModel; |
| 12 | use App\Models\SmsLog; | 14 | use App\Models\SmsLog; |
| 13 | use App\Models\User\ProjectMenu as ProjectMenuModel; | 15 | use App\Models\User\ProjectMenu as ProjectMenuModel; |
| 14 | use App\Models\User\ProjectRole as ProjectRoleModel; | 16 | use App\Models\User\ProjectRole as ProjectRoleModel; |
| 15 | use App\Models\User\User as UserModel; | 17 | use App\Models\User\User as UserModel; |
| 16 | -use App\Models\User\User; | ||
| 17 | use Carbon\Carbon; | 18 | use Carbon\Carbon; |
| 18 | use Illuminate\Http\Request; | 19 | use Illuminate\Http\Request; |
| 19 | use Illuminate\Support\Facades\Cache; | 20 | use Illuminate\Support\Facades\Cache; |
| 21 | +use Illuminate\Support\Facades\DB; | ||
| 22 | +use Mrgoon\AliSms\AliSms; | ||
| 20 | 23 | ||
| 21 | /*** | 24 | /*** |
| 22 | * 当前为公共类 所有方法均不需要验证登录token | 25 | * 当前为公共类 所有方法均不需要验证登录token |
| @@ -25,7 +28,6 @@ class ComController extends BaseController | @@ -25,7 +28,6 @@ class ComController extends BaseController | ||
| 25 | { | 28 | { |
| 26 | /** | 29 | /** |
| 27 | * @name :管理员登录 | 30 | * @name :管理员登录 |
| 28 | - * @return void | ||
| 29 | * @author :liyuhang | 31 | * @author :liyuhang |
| 30 | * @method | 32 | * @method |
| 31 | */ | 33 | */ |
| @@ -48,7 +50,6 @@ class ComController extends BaseController | @@ -48,7 +50,6 @@ class ComController extends BaseController | ||
| 48 | 50 | ||
| 49 | /** | 51 | /** |
| 50 | * @name :获取当前用户权限菜单列表 | 52 | * @name :获取当前用户权限菜单列表 |
| 51 | - * @return void | ||
| 52 | * @author :liyuhang | 53 | * @author :liyuhang |
| 53 | * @method | 54 | * @method |
| 54 | */ | 55 | */ |
| @@ -73,7 +74,6 @@ class ComController extends BaseController | @@ -73,7 +74,6 @@ class ComController extends BaseController | ||
| 73 | 74 | ||
| 74 | /** | 75 | /** |
| 75 | * @name :获取当前项目详情 | 76 | * @name :获取当前项目详情 |
| 76 | - * @return void | ||
| 77 | * @author :liyuhang | 77 | * @author :liyuhang |
| 78 | * @method | 78 | * @method |
| 79 | */ | 79 | */ |
| @@ -87,7 +87,6 @@ class ComController extends BaseController | @@ -87,7 +87,6 @@ class ComController extends BaseController | ||
| 87 | 87 | ||
| 88 | /** | 88 | /** |
| 89 | * @name :登录用户编辑资料/修改密码 | 89 | * @name :登录用户编辑资料/修改密码 |
| 90 | - * @return void | ||
| 91 | * @author :liyuhang | 90 | * @author :liyuhang |
| 92 | * @method | 91 | * @method |
| 93 | */ | 92 | */ |
| @@ -136,7 +135,7 @@ class ComController extends BaseController | @@ -136,7 +135,7 @@ class ComController extends BaseController | ||
| 136 | 'mobile.regex' => '请输入正确的手机号码', | 135 | 'mobile.regex' => '请输入正确的手机号码', |
| 137 | ]); | 136 | ]); |
| 138 | $mobile = $request->input('mobile'); | 137 | $mobile = $request->input('mobile'); |
| 139 | - $user = User::where(['mobile' => $mobile])->first(); | 138 | + $user = UserModel::where(['mobile' => $mobile])->first(); |
| 140 | if (empty($user)) { | 139 | if (empty($user)) { |
| 141 | return $this->response('请输入正确的手机号码!', Code::USER_LOGIN_ERROE); | 140 | return $this->response('请输入正确的手机号码!', Code::USER_LOGIN_ERROE); |
| 142 | } | 141 | } |
| @@ -144,7 +143,7 @@ class ComController extends BaseController | @@ -144,7 +143,7 @@ class ComController extends BaseController | ||
| 144 | if ($last_sms && $last_sms->use = SmsLog::USE_USABLE && time() - strtotime($last_sms->created_at) < 60) { | 143 | if ($last_sms && $last_sms->use = SmsLog::USE_USABLE && time() - strtotime($last_sms->created_at) < 60) { |
| 145 | return $this->response('请不要重复发送短信!', Code::USER_LOGIN_ERROE); | 144 | return $this->response('请不要重复发送短信!', Code::USER_LOGIN_ERROE); |
| 146 | } | 145 | } |
| 147 | - $template = config('alisms.login_sms_temp'); | 146 | + $template = config('aliyunsms.login_sms_temp'); |
| 148 | $code['code'] = rand(100000,999999); | 147 | $code['code'] = rand(100000,999999); |
| 149 | $ali_sms = new AliSms(); | 148 | $ali_sms = new AliSms(); |
| 150 | $send = $ali_sms->sendSms(strval($mobile), $template, $code); | 149 | $send = $ali_sms->sendSms(strval($mobile), $template, $code); |
| @@ -155,4 +154,22 @@ class ComController extends BaseController | @@ -155,4 +154,22 @@ class ComController extends BaseController | ||
| 155 | return $this->response('success'); | 154 | return $this->response('success'); |
| 156 | } | 155 | } |
| 157 | 156 | ||
| 157 | + public function ceshi(){ | ||
| 158 | + $data = []; | ||
| 159 | + for ($i = 30;$i >= 1 ;$i--){ | ||
| 160 | + $start_time = Carbon::now()->modify('-'.$i.' days')->toDateString(); | ||
| 161 | + $data[] = [ | ||
| 162 | + 'project_id'=>1, | ||
| 163 | + 'pv_num'=>$i*(rand(10,1000)), | ||
| 164 | + 'ip_num'=>$i*(rand(10,1000)), | ||
| 165 | + 'inquiry_num'=>$i*(rand(10,1000)), | ||
| 166 | + 'date'=>$start_time, | ||
| 167 | + 'compliance_day'=>2351, | ||
| 168 | + 'service_day'=>1233, | ||
| 169 | + 'created_at'=>$start_time.' 00:00:00', | ||
| 170 | + 'updated_at'=>$start_time.' 00:00:00', | ||
| 171 | + ]; | ||
| 172 | + } | ||
| 173 | + DB::table('gl_count')->insert($data); | ||
| 174 | + } | ||
| 158 | } | 175 | } |
| @@ -30,9 +30,14 @@ class CustomController extends BaseController | @@ -30,9 +30,14 @@ class CustomController extends BaseController | ||
| 30 | // 每页数量 | 30 | // 每页数量 |
| 31 | $limit = intval($this->param['limit']??20); | 31 | $limit = intval($this->param['limit']??20); |
| 32 | 32 | ||
| 33 | + $name = request()->get('name'); | ||
| 34 | + $map = []; | ||
| 35 | + if($name){ | ||
| 36 | + $map[] = ['name','like','%'.htmlspecialchars($name).'%']; | ||
| 37 | + } | ||
| 33 | 38 | ||
| 34 | $lists = CustomLogic::instance()->getList( | 39 | $lists = CustomLogic::instance()->getList( |
| 35 | - [], | 40 | + $map, |
| 36 | [], | 41 | [], |
| 37 | ['id','name','title','status','url','keywords','description','created_at','updated_at'], | 42 | ['id','name','title','status','url','keywords','description','created_at','updated_at'], |
| 38 | $limit | 43 | $limit |
| @@ -14,7 +14,6 @@ class MailController extends BaseController | @@ -14,7 +14,6 @@ class MailController extends BaseController | ||
| 14 | const STATUS_ONE = 1; //状态为已读状态 | 14 | const STATUS_ONE = 1; //状态为已读状态 |
| 15 | /** | 15 | /** |
| 16 | * @name :当前用户站内信列表 | 16 | * @name :当前用户站内信列表 |
| 17 | - * @return void | ||
| 18 | * @author :liyuhang | 17 | * @author :liyuhang |
| 19 | * @method | 18 | * @method |
| 20 | */ | 19 | */ |
| @@ -42,7 +41,6 @@ class MailController extends BaseController | @@ -42,7 +41,6 @@ class MailController extends BaseController | ||
| 42 | 41 | ||
| 43 | /** | 42 | /** |
| 44 | * @name :获取站内信详情 | 43 | * @name :获取站内信详情 |
| 45 | - * @return void | ||
| 46 | * @author :liyuhang | 44 | * @author :liyuhang |
| 47 | * @method | 45 | * @method |
| 48 | */ | 46 | */ |
| @@ -83,16 +83,24 @@ class NavController extends BaseController | @@ -83,16 +83,24 @@ class NavController extends BaseController | ||
| 83 | 'name' => '首页' | 83 | 'name' => '首页' |
| 84 | ], | 84 | ], |
| 85 | [ | 85 | [ |
| 86 | - 'url' => '/list', | ||
| 87 | - 'name' => '列表' | 86 | + 'url' => '/news', |
| 87 | + 'name' => '新闻' | ||
| 88 | ], | 88 | ], |
| 89 | [ | 89 | [ |
| 90 | - 'url' => '/page', | ||
| 91 | - 'name' => '单页' | 90 | + 'url' => '/products', |
| 91 | + 'name' => '产品' | ||
| 92 | ], | 92 | ], |
| 93 | [ | 93 | [ |
| 94 | - 'url' => '/goods', | ||
| 95 | - 'name' => '商品' | 94 | + 'url' => '/search', |
| 95 | + 'name' => '搜索页' | ||
| 96 | + ], | ||
| 97 | + [ | ||
| 98 | + 'url' => '/blog', | ||
| 99 | + 'name' => '博客' | ||
| 100 | + ], | ||
| 101 | + [ | ||
| 102 | + 'url' => '', | ||
| 103 | + 'name' => '自定义' | ||
| 96 | ], | 104 | ], |
| 97 | ]); | 105 | ]); |
| 98 | } | 106 | } |
| @@ -13,7 +13,6 @@ class NewsCategoryController extends BaseController | @@ -13,7 +13,6 @@ class NewsCategoryController extends BaseController | ||
| 13 | { | 13 | { |
| 14 | /** | 14 | /** |
| 15 | * @name :新闻分类列表 | 15 | * @name :新闻分类列表 |
| 16 | - * @return json | ||
| 17 | * @author :liyuhang | 16 | * @author :liyuhang |
| 18 | * @method | 17 | * @method |
| 19 | */ | 18 | */ |
| @@ -34,7 +33,6 @@ class NewsCategoryController extends BaseController | @@ -34,7 +33,6 @@ class NewsCategoryController extends BaseController | ||
| 34 | 33 | ||
| 35 | /** | 34 | /** |
| 36 | * @name :获取当前分类详情 | 35 | * @name :获取当前分类详情 |
| 37 | - * @return void | ||
| 38 | * @author :liyuhang | 36 | * @author :liyuhang |
| 39 | * @method | 37 | * @method |
| 40 | */ | 38 | */ |
| @@ -49,7 +47,6 @@ class NewsCategoryController extends BaseController | @@ -49,7 +47,6 @@ class NewsCategoryController extends BaseController | ||
| 49 | } | 47 | } |
| 50 | /** | 48 | /** |
| 51 | * @name :添加分类 | 49 | * @name :添加分类 |
| 52 | - * @return json | ||
| 53 | * @author :liyuhang | 50 | * @author :liyuhang |
| 54 | * @method | 51 | * @method |
| 55 | */ | 52 | */ |
| @@ -62,7 +59,6 @@ class NewsCategoryController extends BaseController | @@ -62,7 +59,6 @@ class NewsCategoryController extends BaseController | ||
| 62 | 59 | ||
| 63 | /** | 60 | /** |
| 64 | * @name :编辑分类 | 61 | * @name :编辑分类 |
| 65 | - * @return void | ||
| 66 | * @author :liyuhang | 62 | * @author :liyuhang |
| 67 | * @method | 63 | * @method |
| 68 | */ | 64 | */ |
| @@ -78,7 +74,6 @@ class NewsCategoryController extends BaseController | @@ -78,7 +74,6 @@ class NewsCategoryController extends BaseController | ||
| 78 | 74 | ||
| 79 | /** | 75 | /** |
| 80 | * @name :编辑状态/排序 | 76 | * @name :编辑状态/排序 |
| 81 | - * @return void | ||
| 82 | * @author :liyuhang | 77 | * @author :liyuhang |
| 83 | * @method | 78 | * @method |
| 84 | */ | 79 | */ |
| @@ -94,7 +89,6 @@ class NewsCategoryController extends BaseController | @@ -94,7 +89,6 @@ class NewsCategoryController extends BaseController | ||
| 94 | 89 | ||
| 95 | /** | 90 | /** |
| 96 | * @name :删除分类 | 91 | * @name :删除分类 |
| 97 | - * @return void | ||
| 98 | * @author :liyuhang | 92 | * @author :liyuhang |
| 99 | * @method | 93 | * @method |
| 100 | */ | 94 | */ |
| @@ -3,23 +3,21 @@ | @@ -3,23 +3,21 @@ | ||
| 3 | namespace App\Http\Controllers\Bside\News; | 3 | namespace App\Http\Controllers\Bside\News; |
| 4 | 4 | ||
| 5 | use App\Enums\Common\Code; | 5 | use App\Enums\Common\Code; |
| 6 | -use App\Helper\Common; | ||
| 7 | use App\Http\Controllers\Bside\BaseController; | 6 | use App\Http\Controllers\Bside\BaseController; |
| 8 | use App\Http\Logic\Bside\News\NewsCategoryLogic; | 7 | use App\Http\Logic\Bside\News\NewsCategoryLogic; |
| 9 | use App\Http\Logic\Bside\News\NewsLogic; | 8 | use App\Http\Logic\Bside\News\NewsLogic; |
| 10 | use App\Http\Requests\Bside\News\NewsRequest; | 9 | use App\Http\Requests\Bside\News\NewsRequest; |
| 11 | use App\Models\News\News as NewsModel; | 10 | use App\Models\News\News as NewsModel; |
| 12 | -use Illuminate\Http\Request; | ||
| 13 | -use Illuminate\Support\Facades\DB; | 11 | + |
| 14 | 12 | ||
| 15 | /** | 13 | /** |
| 16 | * @name:新闻管理 | 14 | * @name:新闻管理 |
| 17 | */ | 15 | */ |
| 18 | class NewsController extends BaseController | 16 | class NewsController extends BaseController |
| 19 | { | 17 | { |
| 18 | + public $updateModelView = 'news'; | ||
| 20 | /** | 19 | /** |
| 21 | * @name :获取新闻列表 | 20 | * @name :获取新闻列表 |
| 22 | - * @return json | ||
| 23 | * @author :liyuhang | 21 | * @author :liyuhang |
| 24 | * @method | 22 | * @method |
| 25 | */ | 23 | */ |
| @@ -38,7 +36,6 @@ class NewsController extends BaseController | @@ -38,7 +36,6 @@ class NewsController extends BaseController | ||
| 38 | 36 | ||
| 39 | /** | 37 | /** |
| 40 | * @name :添加新闻时获取分类列表 | 38 | * @name :添加新闻时获取分类列表 |
| 41 | - * @return void | ||
| 42 | * @author :liyuhang | 39 | * @author :liyuhang |
| 43 | * @method | 40 | * @method |
| 44 | */ | 41 | */ |
| @@ -48,7 +45,6 @@ class NewsController extends BaseController | @@ -48,7 +45,6 @@ class NewsController extends BaseController | ||
| 48 | } | 45 | } |
| 49 | /** | 46 | /** |
| 50 | * @name :获取详情 | 47 | * @name :获取详情 |
| 51 | - * @return void | ||
| 52 | * @author :liyuhang | 48 | * @author :liyuhang |
| 53 | * @method | 49 | * @method |
| 54 | */ | 50 | */ |
| @@ -70,12 +66,13 @@ class NewsController extends BaseController | @@ -70,12 +66,13 @@ class NewsController extends BaseController | ||
| 70 | public function add(NewsRequest $newsRequest,NewsLogic $newsLogic){ | 66 | public function add(NewsRequest $newsRequest,NewsLogic $newsLogic){ |
| 71 | $newsRequest->validated(); | 67 | $newsRequest->validated(); |
| 72 | $newsLogic->news_add(); | 68 | $newsLogic->news_add(); |
| 73 | - $this->response('success'); | 69 | + //TODO::通知网站更新 |
| 70 | + $res = $this->projectUrlNotify($this->updateModelView); | ||
| 71 | + $this->response('success',Code::SUCCESS,$res); | ||
| 74 | } | 72 | } |
| 75 | 73 | ||
| 76 | /** | 74 | /** |
| 77 | * @name :编辑 | 75 | * @name :编辑 |
| 78 | - * @return void | ||
| 79 | * @author :liyuhang | 76 | * @author :liyuhang |
| 80 | * @method | 77 | * @method |
| 81 | */ | 78 | */ |
| @@ -86,12 +83,13 @@ class NewsController extends BaseController | @@ -86,12 +83,13 @@ class NewsController extends BaseController | ||
| 86 | 'id.required' => 'ID不能为空', | 83 | 'id.required' => 'ID不能为空', |
| 87 | ]); | 84 | ]); |
| 88 | $newsLogic->news_edit(); | 85 | $newsLogic->news_edit(); |
| 89 | - $this->response('success'); | 86 | + //TODO::通知网站更新 |
| 87 | + $res = $this->projectUrlNotify($this->updateModelView); | ||
| 88 | + $this->response('success',Code::SUCCESS,$res); | ||
| 90 | } | 89 | } |
| 91 | 90 | ||
| 92 | /** | 91 | /** |
| 93 | * @name :编辑新闻seo | 92 | * @name :编辑新闻seo |
| 94 | - * @return void | ||
| 95 | * @author :liyuhang | 93 | * @author :liyuhang |
| 96 | * @method | 94 | * @method |
| 97 | */ | 95 | */ |
| @@ -113,7 +111,6 @@ class NewsController extends BaseController | @@ -113,7 +111,6 @@ class NewsController extends BaseController | ||
| 113 | 111 | ||
| 114 | /** | 112 | /** |
| 115 | * @name :编辑状态/与排序 | 113 | * @name :编辑状态/与排序 |
| 116 | - * @return void | ||
| 117 | * @author :liyuhang | 114 | * @author :liyuhang |
| 118 | * @method | 115 | * @method |
| 119 | */ | 116 | */ |
| @@ -130,7 +127,6 @@ class NewsController extends BaseController | @@ -130,7 +127,6 @@ class NewsController extends BaseController | ||
| 130 | } | 127 | } |
| 131 | /** | 128 | /** |
| 132 | * @name :删除新闻(逻辑删除) | 129 | * @name :删除新闻(逻辑删除) |
| 133 | - * @return void | ||
| 134 | * @author :liyuhang | 130 | * @author :liyuhang |
| 135 | * @method | 131 | * @method |
| 136 | */ | 132 | */ |
| @@ -73,6 +73,8 @@ class ProductController extends BaseController | @@ -73,6 +73,8 @@ class ProductController extends BaseController | ||
| 73 | public function save(ProductRequest $request, ProductLogic $logic) | 73 | public function save(ProductRequest $request, ProductLogic $logic) |
| 74 | { | 74 | { |
| 75 | $data = $logic->save($this->param); | 75 | $data = $logic->save($this->param); |
| 76 | + //通知更新界面 | ||
| 77 | + $this->projectUrlNotify('product'); | ||
| 76 | return $this->success($data); | 78 | return $this->success($data); |
| 77 | } | 79 | } |
| 78 | 80 |
| @@ -123,7 +123,8 @@ class TemplateController extends BaseController | @@ -123,7 +123,8 @@ class TemplateController extends BaseController | ||
| 123 | $data = TemplateLogic::instance()->first($source,$source_id); | 123 | $data = TemplateLogic::instance()->first($source,$source_id); |
| 124 | $res = [ | 124 | $res = [ |
| 125 | 'html' => $data['html']??'', | 125 | 'html' => $data['html']??'', |
| 126 | - 'name' => 'example' | 126 | + 'section_list_id' => $data['section_list_id']??'', |
| 127 | + 'name' => 'example', | ||
| 127 | ]; | 128 | ]; |
| 128 | return $this->response('',Code::SUCCESS,$res); | 129 | return $this->response('',Code::SUCCESS,$res); |
| 129 | 130 | ||
| @@ -139,10 +140,6 @@ class TemplateController extends BaseController | @@ -139,10 +140,6 @@ class TemplateController extends BaseController | ||
| 139 | $data = $request->validated(); | 140 | $data = $request->validated(); |
| 140 | $data['data_source'] = $data['source']; | 141 | $data['data_source'] = $data['source']; |
| 141 | $data['data_source_id'] = $data['source_id']; | 142 | $data['data_source_id'] = $data['source_id']; |
| 142 | - unset($data['source']); | ||
| 143 | - unset($data['source_id']); | ||
| 144 | - TemplateLogic::instance()->save($data); | ||
| 145 | - return $this->response('保存成功'); | ||
| 146 | 143 | ||
| 147 | // 不需要数据id | 144 | // 不需要数据id |
| 148 | if(in_array($data['data_source'],['index'])){ | 145 | if(in_array($data['data_source'],['index'])){ |
| @@ -14,7 +14,6 @@ class ProjectRoleController extends BaseController | @@ -14,7 +14,6 @@ class ProjectRoleController extends BaseController | ||
| 14 | { | 14 | { |
| 15 | /** | 15 | /** |
| 16 | * @name :用户角色列表() | 16 | * @name :用户角色列表() |
| 17 | - * @return json | ||
| 18 | * @author :liyuhang | 17 | * @author :liyuhang |
| 19 | * @method | 18 | * @method |
| 20 | */ | 19 | */ |
| @@ -30,7 +29,6 @@ class ProjectRoleController extends BaseController | @@ -30,7 +29,6 @@ class ProjectRoleController extends BaseController | ||
| 30 | 29 | ||
| 31 | /** | 30 | /** |
| 32 | * @name :根据角色获取会员列表 | 31 | * @name :根据角色获取会员列表 |
| 33 | - * @return void | ||
| 34 | * @author :liyuhang | 32 | * @author :liyuhang |
| 35 | * @method | 33 | * @method |
| 36 | */ | 34 | */ |
| @@ -41,7 +39,6 @@ class ProjectRoleController extends BaseController | @@ -41,7 +39,6 @@ class ProjectRoleController extends BaseController | ||
| 41 | } | 39 | } |
| 42 | /** | 40 | /** |
| 43 | * @name :详情 | 41 | * @name :详情 |
| 44 | - * @return json | ||
| 45 | * @author :liyuhang | 42 | * @author :liyuhang |
| 46 | * @method | 43 | * @method |
| 47 | */ | 44 | */ |
| @@ -56,7 +53,6 @@ class ProjectRoleController extends BaseController | @@ -56,7 +53,6 @@ class ProjectRoleController extends BaseController | ||
| 56 | } | 53 | } |
| 57 | /** | 54 | /** |
| 58 | * @name :添加/编辑角色时获取菜单列表 | 55 | * @name :添加/编辑角色时获取菜单列表 |
| 59 | - * @return void | ||
| 60 | * @author :liyuhang | 56 | * @author :liyuhang |
| 61 | * @method | 57 | * @method |
| 62 | */ | 58 | */ |
| @@ -66,7 +62,6 @@ class ProjectRoleController extends BaseController | @@ -66,7 +62,6 @@ class ProjectRoleController extends BaseController | ||
| 66 | } | 62 | } |
| 67 | /** | 63 | /** |
| 68 | * @name :添加角色 | 64 | * @name :添加角色 |
| 69 | - * @return void | ||
| 70 | * @author :liyuhang | 65 | * @author :liyuhang |
| 71 | * @method | 66 | * @method |
| 72 | */ | 67 | */ |
| @@ -78,7 +73,6 @@ class ProjectRoleController extends BaseController | @@ -78,7 +73,6 @@ class ProjectRoleController extends BaseController | ||
| 78 | 73 | ||
| 79 | /** | 74 | /** |
| 80 | * @name :编辑角色 | 75 | * @name :编辑角色 |
| 81 | - * @return void | ||
| 82 | * @author :liyuhang | 76 | * @author :liyuhang |
| 83 | * @method | 77 | * @method |
| 84 | */ | 78 | */ |
| @@ -94,7 +88,6 @@ class ProjectRoleController extends BaseController | @@ -94,7 +88,6 @@ class ProjectRoleController extends BaseController | ||
| 94 | 88 | ||
| 95 | /** | 89 | /** |
| 96 | * @name :修改用户状态 | 90 | * @name :修改用户状态 |
| 97 | - * @return void | ||
| 98 | * @author :liyuhang | 91 | * @author :liyuhang |
| 99 | * @method | 92 | * @method |
| 100 | */ | 93 | */ |
| @@ -110,7 +103,6 @@ class ProjectRoleController extends BaseController | @@ -110,7 +103,6 @@ class ProjectRoleController extends BaseController | ||
| 110 | 103 | ||
| 111 | /** | 104 | /** |
| 112 | * @name :删除角色 | 105 | * @name :删除角色 |
| 113 | - * @return void | ||
| 114 | * @author :liyuhang | 106 | * @author :liyuhang |
| 115 | * @method | 107 | * @method |
| 116 | */ | 108 | */ |
| @@ -17,7 +17,6 @@ class UserController extends BaseController | @@ -17,7 +17,6 @@ class UserController extends BaseController | ||
| 17 | { | 17 | { |
| 18 | /** | 18 | /** |
| 19 | * @name :name | 19 | * @name :name |
| 20 | - * @return void | ||
| 21 | * @author :liyuhang | 20 | * @author :liyuhang |
| 22 | * @method | 21 | * @method |
| 23 | */ | 22 | */ |
| @@ -41,7 +40,6 @@ class UserController extends BaseController | @@ -41,7 +40,6 @@ class UserController extends BaseController | ||
| 41 | 40 | ||
| 42 | /** | 41 | /** |
| 43 | * @name :添加管理员 | 42 | * @name :添加管理员 |
| 44 | - * @return void | ||
| 45 | * @author :liyuhang | 43 | * @author :liyuhang |
| 46 | * @method | 44 | * @method |
| 47 | */ | 45 | */ |
| @@ -53,7 +51,6 @@ class UserController extends BaseController | @@ -53,7 +51,6 @@ class UserController extends BaseController | ||
| 53 | 51 | ||
| 54 | /** | 52 | /** |
| 55 | * @name : 编辑管理员 | 53 | * @name : 编辑管理员 |
| 56 | - * @return void | ||
| 57 | * @author :liyuhang | 54 | * @author :liyuhang |
| 58 | * @method | 55 | * @method |
| 59 | */ | 56 | */ |
| @@ -69,7 +66,6 @@ class UserController extends BaseController | @@ -69,7 +66,6 @@ class UserController extends BaseController | ||
| 69 | 66 | ||
| 70 | /** | 67 | /** |
| 71 | * @name :修改当前用户状态 | 68 | * @name :修改当前用户状态 |
| 72 | - * @return void | ||
| 73 | * @author :liyuhang | 69 | * @author :liyuhang |
| 74 | * @method | 70 | * @method |
| 75 | */ | 71 | */ |
| @@ -85,7 +81,6 @@ class UserController extends BaseController | @@ -85,7 +81,6 @@ class UserController extends BaseController | ||
| 85 | 81 | ||
| 86 | /** | 82 | /** |
| 87 | * @name :详情 | 83 | * @name :详情 |
| 88 | - * @return json | ||
| 89 | * @author :liyuhang | 84 | * @author :liyuhang |
| 90 | * @method | 85 | * @method |
| 91 | */ | 86 | */ |
| @@ -100,7 +95,6 @@ class UserController extends BaseController | @@ -100,7 +95,6 @@ class UserController extends BaseController | ||
| 100 | } | 95 | } |
| 101 | /** | 96 | /** |
| 102 | * @name :删除管理员 | 97 | * @name :删除管理员 |
| 103 | - * @return json | ||
| 104 | * @author :liyuhang | 98 | * @author :liyuhang |
| 105 | * @method | 99 | * @method |
| 106 | */ | 100 | */ |
| @@ -30,7 +30,9 @@ class AyrShareLogic extends BaseLogic | @@ -30,7 +30,9 @@ class AyrShareLogic extends BaseLogic | ||
| 30 | 'reddit'=>1, | 30 | 'reddit'=>1, |
| 31 | 'pinterest'=>1, | 31 | 'pinterest'=>1, |
| 32 | 'telegram'=>1, | 32 | 'telegram'=>1, |
| 33 | - 'Twitter'=>1, | 33 | + 'twitter'=>1, |
| 34 | + 'tiktok'=>1, | ||
| 35 | + 'youtube'=>1, | ||
| 34 | ]; | 36 | ]; |
| 35 | 37 | ||
| 36 | public function __construct() | 38 | public function __construct() |
| @@ -41,12 +43,33 @@ class AyrShareLogic extends BaseLogic | @@ -41,12 +43,33 @@ class AyrShareLogic extends BaseLogic | ||
| 41 | } | 43 | } |
| 42 | 44 | ||
| 43 | /** | 45 | /** |
| 46 | + * @name :AyrVerify(验证参数) | ||
| 47 | + * @author :lyh | ||
| 48 | + * @method :post | ||
| 49 | + * @time :2023/6/7 11:52 | ||
| 50 | + */ | ||
| 51 | + public function AyrVerify(){ | ||
| 52 | + if(isset($this->param['id'])){ | ||
| 53 | + $info = $this->model->read(['name'=>$this->param['name'],'id'=>['!=',$this->param['id']]]); | ||
| 54 | + if($info !== false){ | ||
| 55 | + $this->fail('当前名称已存在'); | ||
| 56 | + } | ||
| 57 | + }else{ | ||
| 58 | + $count = $this->model->where(['project_id'=>$this->user['project_id']])->count(); | ||
| 59 | + if($count > $this->model::COUNT){ | ||
| 60 | + $this->fail('当前账户只允许添加3个账号'); | ||
| 61 | + } | ||
| 62 | + } | ||
| 63 | + return $this->success(); | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + /** | ||
| 44 | * @name :(创建账号并绑定写入数据库)ayr_add | 67 | * @name :(创建账号并绑定写入数据库)ayr_add |
| 45 | * @author :lyh | 68 | * @author :lyh |
| 46 | * @method :post | 69 | * @method :post |
| 47 | * @time :2023/5/6 9:19 | 70 | * @time :2023/5/6 9:19 |
| 48 | */ | 71 | */ |
| 49 | - public function ayr_share_add($res){ | 72 | + public function ayr_share_save($res){ |
| 50 | //插入数据库 | 73 | //插入数据库 |
| 51 | $param = [ | 74 | $param = [ |
| 52 | 'title'=>$res['title'], | 75 | 'title'=>$res['title'], |
| @@ -56,7 +79,11 @@ class AyrShareLogic extends BaseLogic | @@ -56,7 +79,11 @@ class AyrShareLogic extends BaseLogic | ||
| 56 | 'project_id'=>$this->user['project_id'], | 79 | 'project_id'=>$this->user['project_id'], |
| 57 | 'name'=>$this->param['name'], | 80 | 'name'=>$this->param['name'], |
| 58 | ]; | 81 | ]; |
| 82 | + if(isset($this->param['id'])){ | ||
| 83 | + $rs = $this->model->edit($param,['id'=>$this->param['id']]); | ||
| 84 | + }else{ | ||
| 59 | $rs = $this->model->add($param); | 85 | $rs = $this->model->add($param); |
| 86 | + } | ||
| 60 | if($rs === false){ | 87 | if($rs === false){ |
| 61 | $this->fail('error'); | 88 | $this->fail('error'); |
| 62 | } | 89 | } |
| @@ -107,36 +134,6 @@ class AyrShareLogic extends BaseLogic | @@ -107,36 +134,6 @@ class AyrShareLogic extends BaseLogic | ||
| 107 | return $this->success(); | 134 | return $this->success(); |
| 108 | } | 135 | } |
| 109 | /** | 136 | /** |
| 110 | - * @name :(根据hash获取图片详情)save_info_info | ||
| 111 | - * @author :lyh | ||
| 112 | - * @method :post | ||
| 113 | - * @time :2023/5/10 15:01 | ||
| 114 | - */ | ||
| 115 | - public function save_img_info($hash){ | ||
| 116 | - $imageModel = new ImageModel(); | ||
| 117 | - $info = $imageModel->read(['hash'=>$hash]); | ||
| 118 | - if($info === false){ | ||
| 119 | - $this->fail('error'); | ||
| 120 | - } | ||
| 121 | - return $this->success($info); | ||
| 122 | - } | ||
| 123 | - | ||
| 124 | - /** | ||
| 125 | - * @name :(根据hash视频详情)save_info_info | ||
| 126 | - * @author :lyh | ||
| 127 | - * @method :post | ||
| 128 | - * @time :2023/5/10 15:01 | ||
| 129 | - */ | ||
| 130 | - public function save_file_info($hash){ | ||
| 131 | - $fileModel = new FileModel(); | ||
| 132 | - $info = $fileModel->read(['hash'=>$hash]); | ||
| 133 | - if($info === false){ | ||
| 134 | - $this->fail('error'); | ||
| 135 | - } | ||
| 136 | - return $this->success($info); | ||
| 137 | - } | ||
| 138 | - | ||
| 139 | - /** | ||
| 140 | * @name :(更新图片库)save_img | 137 | * @name :(更新图片库)save_img |
| 141 | * @author :lyh | 138 | * @author :lyh |
| 142 | * @method :post | 139 | * @method :post |
| @@ -209,21 +206,27 @@ class AyrShareLogic extends BaseLogic | @@ -209,21 +206,27 @@ class AyrShareLogic extends BaseLogic | ||
| 209 | if(!in_array($v,json_decode($info['bind_platforms']))){ | 206 | if(!in_array($v,json_decode($info['bind_platforms']))){ |
| 210 | $this->fail('未绑定平台'); | 207 | $this->fail('未绑定平台'); |
| 211 | } | 208 | } |
| 212 | - if($v == 'reddit' && isset($this->param['video'])){ | ||
| 213 | - $this->fail('不支持视频'); | 209 | + switch ($v){ |
| 210 | + case 'tiktok': | ||
| 211 | + if(isset($this->param['images']) && !empty($this->param['images'])){ | ||
| 212 | + $this->fail($v.'不支持发布图片'); | ||
| 213 | + } | ||
| 214 | + break; | ||
| 215 | + case 'reddit': | ||
| 216 | + if(isset($this->param['video']) && !empty($this->param['video'])){ | ||
| 217 | + $this->fail($v.'不支持视频'); | ||
| 218 | + } | ||
| 219 | + break; | ||
| 214 | } | 220 | } |
| 215 | //验证图片数 | 221 | //验证图片数 |
| 216 | if(isset($this->param['images']) && !empty($this->param['images'])){ | 222 | if(isset($this->param['images']) && !empty($this->param['images'])){ |
| 223 | + if(isset($this->send_num[$v])){ | ||
| 217 | $img_num = count($this->param['images']); | 224 | $img_num = count($this->param['images']); |
| 218 | if($img_num > $this->send_num[$v]){ | 225 | if($img_num > $this->send_num[$v]){ |
| 219 | $this->fail('发布图片数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'张图'); | 226 | $this->fail('发布图片数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'张图'); |
| 220 | } | 227 | } |
| 221 | } | 228 | } |
| 222 | - //验证图片数 | ||
| 223 | -// $img_num = count($this->param['video']); | ||
| 224 | -// if($img_num > 1){ | ||
| 225 | -// $this->fail('发布视频数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'个视频'); | ||
| 226 | -// } | 229 | + } |
| 227 | } | 230 | } |
| 228 | return $this->success(); | 231 | return $this->success(); |
| 229 | } | 232 | } |
| @@ -118,7 +118,7 @@ class CountLogic extends BaseLogic | @@ -118,7 +118,7 @@ class CountLogic extends BaseLogic | ||
| 118 | 'date' => ['between',[now()->subDays(30)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]], | 118 | 'date' => ['between',[now()->subDays(30)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]], |
| 119 | 'project_id' => $this->user['project_id'] | 119 | 'project_id' => $this->user['project_id'] |
| 120 | ]; | 120 | ]; |
| 121 | - $data = $this->model->list($param,'id',['id','pv_num','ip_num','date']); | 121 | + $data = $this->model->list($param,'date',['id','pv_num','ip_num','date']); |
| 122 | return $this->success($data); | 122 | return $this->success($data); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| @@ -131,7 +131,7 @@ class CountLogic extends BaseLogic | @@ -131,7 +131,7 @@ class CountLogic extends BaseLogic | ||
| 131 | public function inquiry_country_count(){ | 131 | public function inquiry_country_count(){ |
| 132 | $data = DB::table('gl_inquiry_record') | 132 | $data = DB::table('gl_inquiry_record') |
| 133 | ->select('ip_area', DB::raw('COUNT(ip_area) as count')) | 133 | ->select('ip_area', DB::raw('COUNT(ip_area) as count')) |
| 134 | - ->groupBy('ip_area')->orderBy('count','desc')->limit(20)->get()->toArray(); | 134 | + ->groupBy('ip_area')->orderBy('count','desc')->limit(10)->get()->toArray(); |
| 135 | $data = object_to_array($data); | 135 | $data = object_to_array($data); |
| 136 | $total = DB::table('gl_inquiry_record')->count(); | 136 | $total = DB::table('gl_inquiry_record')->count(); |
| 137 | foreach ($data as $k=>$v){ | 137 | foreach ($data as $k=>$v){ |
| @@ -23,17 +23,17 @@ class LoginAuthMiddleware | @@ -23,17 +23,17 @@ class LoginAuthMiddleware | ||
| 23 | { | 23 | { |
| 24 | $token = $request->header('token'); | 24 | $token = $request->header('token'); |
| 25 | if(!isset($token) || empty($token)){ | 25 | if(!isset($token) || empty($token)){ |
| 26 | - return response(['code'=>Code::USER_ERROR,'msg'=>'当前用户未登录']); | 26 | + return response(['code'=>Code::USER_LOGIN_ERROE,'msg'=>'当前用户未登录']); |
| 27 | } | 27 | } |
| 28 | $info = Cache::get($token); | 28 | $info = Cache::get($token); |
| 29 | if(empty($info)){ | 29 | if(empty($info)){ |
| 30 | - return response(['code'=>Code::USER_ERROR,'msg'=>'当前用户未登录']); | 30 | + return response(['code'=>Code::USER_LOGIN_ERROE,'msg'=>'当前用户未登录']); |
| 31 | } | 31 | } |
| 32 | // 设置数据信息 | 32 | // 设置数据信息 |
| 33 | -// $project = ProjectServer::useProject($info['project_id']); | ||
| 34 | -// if(empty($project)){ | ||
| 35 | -// return response(['code'=>Code::USER_ERROR,'msg'=>'数据库未配置']); | ||
| 36 | -// } | 33 | + $project = ProjectServer::useProject($info['project_id']); |
| 34 | + if(empty($project)){ | ||
| 35 | + return response(['code'=>Code::USER_LOGIN_ERROE,'msg'=>'数据库未配置']); | ||
| 36 | + } | ||
| 37 | //操作权限设置 | 37 | //操作权限设置 |
| 38 | $projectRoleModel = new ProjectRoleModel(); | 38 | $projectRoleModel = new ProjectRoleModel(); |
| 39 | $role_info = $projectRoleModel->read(['id'=>$info['role_id']]); | 39 | $role_info = $projectRoleModel->read(['id'=>$info['role_id']]); |
| @@ -44,7 +44,7 @@ class LoginAuthMiddleware | @@ -44,7 +44,7 @@ class LoginAuthMiddleware | ||
| 44 | $menu_id = $projectMenuModel->read(['action'=>$action['as']],['id']); | 44 | $menu_id = $projectMenuModel->read(['action'=>$action['as']],['id']); |
| 45 | if($menu_id !== false){ | 45 | if($menu_id !== false){ |
| 46 | if(strpos($role_info['role_menu'], $menu_id['id']) < 0){ | 46 | if(strpos($role_info['role_menu'], $menu_id['id']) < 0){ |
| 47 | - return response(['code'=>Code::USER_ERROR,'msg'=>'当前用户没有权限']); | 47 | + return response(['code'=>Code::USER_LOGIN_ERROE,'msg'=>'当前用户没有权限']); |
| 48 | } | 48 | } |
| 49 | } | 49 | } |
| 50 | return $next($request); | 50 | return $next($request); |
| @@ -23,7 +23,7 @@ class AyrShareRequest extends FormRequest | @@ -23,7 +23,7 @@ class AyrShareRequest extends FormRequest | ||
| 23 | public function rules() | 23 | public function rules() |
| 24 | { | 24 | { |
| 25 | return [ | 25 | return [ |
| 26 | - 'name'=>'required|unique:gl_ayr_share,name', | 26 | + 'name'=>'required', |
| 27 | ]; | 27 | ]; |
| 28 | } | 28 | } |
| 29 | 29 |
| @@ -27,7 +27,7 @@ class BlogRequest extends FormRequest | @@ -27,7 +27,7 @@ class BlogRequest extends FormRequest | ||
| 27 | 'name'=>'required|max:100', | 27 | 'name'=>'required|max:100', |
| 28 | 'url'=>'required', | 28 | 'url'=>'required', |
| 29 | 'label_id'=>'required', | 29 | 'label_id'=>'required', |
| 30 | - 'remark'=>'required|max:100', | 30 | + 'remark'=>'required|max:255', |
| 31 | 'text'=>'required|min:10', | 31 | 'text'=>'required|min:10', |
| 32 | 'url'=>'required', | 32 | 'url'=>'required', |
| 33 | ]; | 33 | ]; |
| @@ -32,9 +32,9 @@ class CustomRequest extends FormRequest | @@ -32,9 +32,9 @@ class CustomRequest extends FormRequest | ||
| 32 | { | 32 | { |
| 33 | $rule = [ | 33 | $rule = [ |
| 34 | 'name' => ['required','max:100'], | 34 | 'name' => ['required','max:100'], |
| 35 | - 'title' => ['required','max:200'], | ||
| 36 | - 'keywords' => ['required','max:200'], | ||
| 37 | - 'description' => ['required','max:250'], | 35 | + 'title' => [],//'required','max:200' |
| 36 | + 'keywords' => [],//'required','max:200' | ||
| 37 | + 'description' => [],//'required','max:250' | ||
| 38 | // 'html' => ['required'], | 38 | // 'html' => ['required'], |
| 39 | 'url' => ['required','max:200','url'], | 39 | 'url' => ['required','max:200','url'], |
| 40 | 'status' => ['required','in:0,1'], | 40 | 'status' => ['required','in:0,1'], |
| @@ -39,7 +39,7 @@ class NewsRequest extends FormRequest | @@ -39,7 +39,7 @@ class NewsRequest extends FormRequest | ||
| 39 | 'text.required'=>'内容不能为空', | 39 | 'text.required'=>'内容不能为空', |
| 40 | 'name.max'=>'名称最大100字', | 40 | 'name.max'=>'名称最大100字', |
| 41 | 'remark.max'=>'简介最大100字', | 41 | 'remark.max'=>'简介最大100字', |
| 42 | - 'text.max'=>'内容最小100字', | 42 | + 'text.mix'=>'内容最小10字', |
| 43 | 'category_id.required'=>'分类不能为空', | 43 | 'category_id.required'=>'分类不能为空', |
| 44 | ]; | 44 | ]; |
| 45 | } | 45 | } |
| @@ -38,7 +38,8 @@ class TemplateRequest extends FormRequest | @@ -38,7 +38,8 @@ class TemplateRequest extends FormRequest | ||
| 38 | 'html' => ['required'], | 38 | 'html' => ['required'], |
| 39 | 'source' => ['required',Rule::in(array_column(ATemplateHtml::$sourceMap,'template'))], | 39 | 'source' => ['required',Rule::in(array_column(ATemplateHtml::$sourceMap,'template'))], |
| 40 | 'source_id' => ['required','integer','gte:0'], | 40 | 'source_id' => ['required','integer','gte:0'], |
| 41 | - 'status' => ['required',Rule::in([0,1])] | 41 | + 'status' => ['required',Rule::in([0,1])], |
| 42 | + 'section_list_id' => ['required'] | ||
| 42 | ]; | 43 | ]; |
| 43 | 44 | ||
| 44 | 45 | ||
| @@ -69,6 +70,8 @@ class TemplateRequest extends FormRequest | @@ -69,6 +70,8 @@ class TemplateRequest extends FormRequest | ||
| 69 | 'status.required' => '状态错误', | 70 | 'status.required' => '状态错误', |
| 70 | 'status.in' => '状态错误', | 71 | 'status.in' => '状态错误', |
| 71 | 72 | ||
| 73 | +// 'section_list_id.required' => '必须填写', | ||
| 74 | + | ||
| 72 | ]; | 75 | ]; |
| 73 | } | 76 | } |
| 74 | 77 |
app/Listeners/QueryListener.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Listeners; | ||
| 4 | + | ||
| 5 | +use Illuminate\Contracts\Queue\ShouldQueue; | ||
| 6 | +use Illuminate\Database\Events\QueryExecuted; | ||
| 7 | +use Illuminate\Queue\InteractsWithQueue; | ||
| 8 | +use Illuminate\Support\Facades\Log; | ||
| 9 | +use Illuminate\Support\Facades\Redis; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 监听数据库sql执行事件 | ||
| 13 | + */ | ||
| 14 | +class QueryListener | ||
| 15 | +{ | ||
| 16 | + /** | ||
| 17 | + * Create the event listener. | ||
| 18 | + * | ||
| 19 | + * @return void | ||
| 20 | + */ | ||
| 21 | + public function __construct() | ||
| 22 | + { | ||
| 23 | + // | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * Handle the event. | ||
| 28 | + * | ||
| 29 | + * @param QueryExecuted $event | ||
| 30 | + * @return void | ||
| 31 | + */ | ||
| 32 | + public function handle(QueryExecuted $event) | ||
| 33 | + { | ||
| 34 | + try{ | ||
| 35 | + if (env('APP_DEBUG') == true) { | ||
| 36 | + $sql = str_replace("?", "'%s'", $event->sql); | ||
| 37 | + foreach ($event->bindings as $i => $binding) { | ||
| 38 | + if ($binding instanceof \DateTime) { | ||
| 39 | + $event->bindings[$i] = $binding->format('\'Y-m-d H:i:s\''); | ||
| 40 | + } else { | ||
| 41 | + if (is_string($binding)) { | ||
| 42 | + $event->bindings[$i] = "$binding"; | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | + $log = vsprintf($sql, $event->bindings); | ||
| 47 | + $log = $log.' [ RunTime:'.$event->time.'ms ] '; | ||
| 48 | + Log::debug($log); | ||
| 49 | + } | ||
| 50 | + }catch (\Exception $exception){ | ||
| 51 | + Log::error('log sql error:'.$exception->getMessage()); | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} |
| @@ -8,33 +8,49 @@ class AyrShare extends Base | @@ -8,33 +8,49 @@ class AyrShare extends Base | ||
| 8 | { | 8 | { |
| 9 | protected $table = 'gl_ayr_share'; | 9 | protected $table = 'gl_ayr_share'; |
| 10 | 10 | ||
| 11 | - const TYPE_FACEBOOK = 1; | ||
| 12 | - const TYPE_TWITTER = 2; | ||
| 13 | - const TYPE_LINKEDIN = 3; | ||
| 14 | - const TYPE_INSTAGRAM = 4; | ||
| 15 | - const TYPE_YOUTUBE = 5; | ||
| 16 | - const TYPE_REDDIT = 6; | ||
| 17 | - const TYPE_TELEGRAM = 7; | ||
| 18 | - const TYPE_GMB = 8; | ||
| 19 | - const TYPE_PINTEREST = 9; | ||
| 20 | - const TYPE_TIKTOK = 10; | 11 | + const COUNT = 3; |
| 12 | + | ||
| 13 | + const TYPE_FACEBOOK = 'facebook'; | ||
| 14 | + const TYPE_TWITTER = 'twitter'; | ||
| 15 | + const TYPE_LINKEDIN = 'linkedin'; | ||
| 16 | + const TYPE_INSTAGRAM = 'instagram'; | ||
| 17 | + const TYPE_YOUTUBE = 'youtube'; | ||
| 18 | + const TYPE_REDDIT = 'reddit'; | ||
| 19 | + const TYPE_TELEGRAM = 'telegram'; | ||
| 20 | + const TYPE_GMB = 'google'; | ||
| 21 | + const TYPE_PINTEREST = 'pinterest'; | ||
| 22 | + const TYPE_TIKTOK = 'tiktok'; | ||
| 21 | /** | 23 | /** |
| 22 | * @var :授权列表 | 24 | * @var :授权列表 |
| 23 | */ | 25 | */ |
| 24 | public $platforms = [ | 26 | public $platforms = [ |
| 25 | - self::TYPE_FACEBOOK => 'Facebook', | ||
| 26 | - self::TYPE_TWITTER => 'Twitter', | ||
| 27 | - self::TYPE_LINKEDIN => 'LinkedIn', | ||
| 28 | - self::TYPE_INSTAGRAM => 'Instagram', | ||
| 29 | - self::TYPE_YOUTUBE => 'YouTube', | ||
| 30 | - self::TYPE_REDDIT => 'Reddit', | ||
| 31 | - self::TYPE_TELEGRAM => 'Telegram', | ||
| 32 | - self::TYPE_GMB => 'Google', | ||
| 33 | - self::TYPE_PINTEREST => 'Pinterest', | ||
| 34 | - self::TYPE_TIKTOK => 'TikTok', | 27 | + self::TYPE_FACEBOOK => 'facebook.png', |
| 28 | + self::TYPE_TWITTER => 'twitter.jpg', | ||
| 29 | + self::TYPE_LINKEDIN => 'linkin.png', | ||
| 30 | + self::TYPE_INSTAGRAM => 'ins.png', | ||
| 31 | + self::TYPE_YOUTUBE => 'youtube.jpg', | ||
| 32 | + self::TYPE_REDDIT => 'reddit.png', | ||
| 33 | + self::TYPE_TELEGRAM => 'tel.png', | ||
| 34 | + self::TYPE_GMB => 'google.png', | ||
| 35 | + self::TYPE_PINTEREST => 'pinterest.png', | ||
| 36 | + self::TYPE_TIKTOK => 'tiktok.jpg', | ||
| 35 | ]; | 37 | ]; |
| 36 | 38 | ||
| 37 | /** | 39 | /** |
| 40 | + * @name :(获取图标iconImage | ||
| 41 | + * @author :lyh | ||
| 42 | + * @method :post | ||
| 43 | + * @time :2023/6/8 9:21 | ||
| 44 | + */ | ||
| 45 | + public function iconImage(){ | ||
| 46 | + $image_link = []; | ||
| 47 | + foreach ($this->platforms as $k => $v){ | ||
| 48 | + $image_link[$k] = url('upload/icon').'/'.$v; | ||
| 49 | + } | ||
| 50 | + return $image_link; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + /** | ||
| 38 | * @var :发布图片数量 | 54 | * @var :发布图片数量 |
| 39 | */ | 55 | */ |
| 40 | public $image = [ | 56 | public $image = [ |
| @@ -49,4 +65,5 @@ class AyrShare extends Base | @@ -49,4 +65,5 @@ class AyrShare extends Base | ||
| 49 | self::TYPE_PINTEREST => 1, | 65 | self::TYPE_PINTEREST => 1, |
| 50 | self::TYPE_TIKTOK => 1, | 66 | self::TYPE_TIKTOK => 1, |
| 51 | ]; | 67 | ]; |
| 68 | + | ||
| 52 | } | 69 | } |
| @@ -18,6 +18,10 @@ class EventServiceProvider extends ServiceProvider | @@ -18,6 +18,10 @@ class EventServiceProvider extends ServiceProvider | ||
| 18 | Registered::class => [ | 18 | Registered::class => [ |
| 19 | SendEmailVerificationNotification::class, | 19 | SendEmailVerificationNotification::class, |
| 20 | ], | 20 | ], |
| 21 | + // 监听sql查询事件 | ||
| 22 | + 'Illuminate\Database\Events\QueryExecuted' => [ | ||
| 23 | + 'App\Listeners\QueryListener', | ||
| 24 | + ], | ||
| 21 | ]; | 25 | ]; |
| 22 | 26 | ||
| 23 | /** | 27 | /** |
| @@ -277,6 +277,7 @@ Route::middleware(['bloginauth'])->group(function () { | @@ -277,6 +277,7 @@ Route::middleware(['bloginauth'])->group(function () { | ||
| 277 | Route::post('/create', [\App\Http\Controllers\Bside\NavController::class, 'save'])->name('bside_nav_create'); | 277 | Route::post('/create', [\App\Http\Controllers\Bside\NavController::class, 'save'])->name('bside_nav_create'); |
| 278 | Route::post('/update', [\App\Http\Controllers\Bside\NavController::class, 'save'])->name('bside_nav_update'); | 278 | Route::post('/update', [\App\Http\Controllers\Bside\NavController::class, 'save'])->name('bside_nav_update'); |
| 279 | Route::delete('/delete', [\App\Http\Controllers\Bside\NavController::class, 'delete'])->name('bside_nav_delete'); | 279 | Route::delete('/delete', [\App\Http\Controllers\Bside\NavController::class, 'delete'])->name('bside_nav_delete'); |
| 280 | + Route::get('/default-urls', [\App\Http\Controllers\Bside\NavController::class, 'urls'])->name('bside_nav_default-urls'); | ||
| 280 | }); | 281 | }); |
| 281 | 282 | ||
| 282 | //排名数据 | 283 | //排名数据 |
| @@ -306,6 +307,7 @@ Route::middleware(['bloginauth'])->group(function () { | @@ -306,6 +307,7 @@ Route::middleware(['bloginauth'])->group(function () { | ||
| 306 | //无需登录验证的路由组 | 307 | //无需登录验证的路由组 |
| 307 | Route::group([], function () { | 308 | Route::group([], function () { |
| 308 | Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login'); | 309 | Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login'); |
| 310 | + Route::any('/ceshi', [\App\Http\Controllers\Bside\ComController::class, 'ceshi'])->name('ceshi'); | ||
| 309 | Route::any('/sendLoginSms', [\App\Http\Controllers\Bside\ComController::class, 'sendLoginSms'])->name('sendLoginSms'); | 311 | Route::any('/sendLoginSms', [\App\Http\Controllers\Bside\ComController::class, 'sendLoginSms'])->name('sendLoginSms'); |
| 310 | Route::get('/file/download', [\App\Http\Controllers\Bside\FileController::class, 'download'])->name('file_download'); | 312 | Route::get('/file/download', [\App\Http\Controllers\Bside\FileController::class, 'download'])->name('file_download'); |
| 311 | Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\File\ImageController::class, 'index'])->name('image_show'); | 313 | Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\File\ImageController::class, 'index'])->name('image_show'); |
-
请 注册 或 登录 后发表评论