作者 李美松

Merge branch 'develop' into lms

# Conflicts:
#	app/Helper/helper.php
正在显示 35 个修改的文件 包含 562 行增加190 行删除
@@ -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,26 +62,28 @@ class ShareUser extends Command @@ -57,26 +62,28 @@ 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 //删除用户第三方配置
64 - $ayr_share_helper = new AyrShareHelper();  
65 - $data_profiles = [  
66 - 'title'=>$v['title'],  
67 - 'profileKey'=>$v['profile_key']  
68 - ];  
69 - $res = $ayr_share_helper->deleted_profiles($data_profiles);  
70 - if($res['status'] == 'fail'){  
71 - $this->error++;  
72 - continue; 69 + if(!empty($v['profile_key'])){
  70 + $ayr_share_helper = new AyrShareHelper();
  71 + $data_profiles = [
  72 + 'title'=>$v['title'],
  73 + 'profileKey'=>$v['profile_key']
  74 + ];
  75 + $res = $ayr_share_helper->deleted_profiles($data_profiles);
  76 + if($res['status'] == 'fail'){
  77 + $this->error++;
  78 + continue;
  79 + }
73 } 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 }
  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 - $ayrShareLogic->ayr_share_edit(['bind_platforms'=>''],$this->param['id']);  
72 - $res = true; 71 + if(!empty($info['bind_platforms'])){
  72 + $ayrShareLogic->ayr_share_edit(['bind_platforms'=>''],$this->param['id']);
  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,15 +113,17 @@ class AyrShareController extends BaseController @@ -108,15 +113,17 @@ 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();
111 - $data = [ 116 + if(!empty($info['title'])){
  117 + $data = [
112 // 'title'=>$info['title'], 118 // 'title'=>$info['title'],
113 - 'profileKey'=>$info['profile_key']  
114 - ];  
115 - //发送请求删除社交用户  
116 - $ayrShareHelper = new AyrShareHelper();  
117 - $res = $ayrShareHelper->deleted_profiles($data);  
118 - if($res['status'] == 'fail'){  
119 - $this->response('同步删除失败'); 119 + 'profileKey'=>$info['profile_key']
  120 + ];
  121 + //发送请求删除社交用户
  122 + $ayrShareHelper = new AyrShareHelper();
  123 + $res = $ayrShareHelper->deleted_profiles($data);
  124 + if($res['status'] == 'fail'){
  125 + $this->response('同步删除失败');
  126 + }
120 } 127 }
121 $ayrShareLogic->ayr_share_del(); 128 $ayrShareLogic->ayr_share_del();
122 $this->response('success'); 129 $this->response('success');
@@ -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'])){
@@ -11,7 +11,6 @@ class DeptUserController extends BaseController @@ -11,7 +11,6 @@ class DeptUserController extends BaseController
11 { 11 {
12 /** 12 /**
13 * @name :name 13 * @name :name
14 - * @return void  
15 * @author :liyuhang 14 * @author :liyuhang
16 * @method 15 * @method
17 */ 16 */
@@ -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 ];
59 - $rs = $this->model->add($param); 82 + if(isset($this->param['id'])){
  83 + $rs = $this->model->edit($param,['id'=>$this->param['id']]);
  84 + }else{
  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'])){
217 - $img_num = count($this->param['images']);  
218 - if($img_num > $this->send_num[$v]){  
219 - $this->fail('发布图片数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'张图'); 223 + if(isset($this->send_num[$v])){
  224 + $img_num = count($this->param['images']);
  225 + if($img_num > $this->send_num[$v]){
  226 + $this->fail('发布图片数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'张图');
  227 + }
220 } 228 }
221 } 229 }
222 - //验证图片数  
223 -// $img_num = count($this->param['video']);  
224 -// if($img_num > 1){  
225 -// $this->fail('发布视频数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'个视频');  
226 -// }  
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
  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');