'admin_editor_text_content', '2'=>'admin_editor_text_like_up_log', '3'=>'admin_notice_banner', '4'=>'admin_business_cooperation' ]; protected $page_num = 10; // 加 bcadd(,,20) // 减 bcsub(,,20) // 乘 bcmul(,,20) // 除 bcdiv(,,20) ################################################################接口################################################################ ################################################################接口################################################################ ################################################################接口################################################################ // 获取板块,及板块下类型标签 public function get_sector_label_msg($data = ['token'=>'6441bf7dabea7b3360a30240d3b19fc5']){ try { $data = input('post.'); if(!array_key_exists('token', $data)){ return $this->msg(10001); } if(!$this->verify_data_is_ok($data['token'],'str')){ return $this->msg(10005); } $return_data = $this->get_sector_label_msg_action($data); return $return_data; } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log([], $logContent, null); return $this->msg(99999); } } // 获取板块下信息 public function get_sector_content_msg($data = ['token'=>'6441bf7dabea7b3360a30240d3b19fc5','sector_id'=>1,'type'=>0,'page'=>1]){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data) || !array_key_exists('sector_id', $data) || !array_key_exists('type', $data) || !array_key_exists('page', $data)){ return $this->msg(10001); } if(!$this->verify_data_is_ok($data['token'],'str')){ return $this->msg(10005); } if(!$this->verify_data_is_ok($data['sector_id'],'intnum')){ return $this->msg(10005); } if(!$this->verify_data_is_ok($data['type'],'intnum')){ return $this->msg(10005); } if(!$this->verify_data_is_ok($data['page'],'intnum')){ return $this->msg(10005); }else{ if($data['page'] < 1){ return $this->msg(10005,'页码不能小于1'); } } $return_data = $this->get_sector_content_msg_action($data); // 成功 $this->record_api_log($data, null, $return_data); return $return_data; } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 资讯点赞 public function user_like_it($data = ['token'=>'0dafb98a10995c98b5a33b7d59d986ca','id'=>'44']){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('id', $data) || !array_key_exists('token', $data)){ return $this->msg(10001); } if(!$this->verify_data_is_ok($data['token'],'str')){ return $this->msg(10005); } if(!$this->verify_data_is_ok($data['id'],'intnum')){ return $this->msg(10005); } $return_data = $this->user_like_it_action($data); // 成功 $this->record_api_log($data, null, $return_data); return $return_data; } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 获取公告文章信息列表&banner public function get_recommend_information($data=['token'=>'6441bf7dabea7b3360a30240d3b19fc5']){ try { if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data)){ $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); return $this->msg(10001); } if(!$this->verify_data_is_ok($data['token'],'str')){ return $this->msg(10005); } $return_result = $this->get_recommend_information_action($data); $this->record_api_log($data, null, $return_result); return $return_result; } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 获取商务合作链接 public function get_business_cooperation_url(){ try { $business_cooperation_data = Db::table($this->msginformation_use_db_name['4'])->where(['is_del'=>0])->field('title,data_url as url')->select(); $this->record_api_log([], null, $business_cooperation_data); return $this->msg($business_cooperation_data); } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log([], $logContent, null); return $this->msg(99999); } } // 删除掉所有已经读过的文章记录 public function del_all_read_log($data=['token'=>'6441bf7dabea7b3360a30240d3b19fc5']){ try { if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data)){ $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); return $this->msg(10001); } if(!$this->verify_data_is_ok($data['token'],'str')){ return $this->msg(10005); } $is_ok = Db::table($this->msginformation_use_db_name['2'])->where(['token'=>$data['token']])->delete(); if($is_ok){ echo '删除成功'; }else{ echo '删除失败'; } } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 给微信使用的中间页(拉起微信) // public function open_wechat_content($data=['id'=>8]){ public function open_wechat_content(){ try { $data = input(); if(!array_key_exists('id', $data)){ $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); return $this->msg(10001); } $url = Db::table('admin_notice_banner')->where(['id'=>$data['id']])->field('type,jump_url')->find(); if(!$url['type'] || $url['type'] != 2){ echo '
页面跑丢了... =。=!
'; die; } header('Location: '.$url['jump_url']); } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } ################################################################业务################################################################ ################################################################get_sector_label_msg public function get_sector_label_msg_action($data){ $Template_arr = [ 1=>[ 'id'=>'1', 'name'=>'推荐', 'loop_data'=>[], 'list'=>[ ['id'=>0,'name'=>'全部'], ['id'=>1,'name'=>'身高管理'], ['id'=>2,'name'=>'体重管理'], ['id'=>3,'name'=>'肺活训练'], ['id'=>4,'name'=>'跳绳训练'], ['id'=>5,'name'=>'中考体测'], ] ], ]; // 获取需要版块id start $sector = Db::query(" SELECT sector FROM ".$this->msginformation_use_db_name['1']." group by sector "); $sector_all = []; foreach ($sector as $key => $value) { foreach (explode(',', $value['sector']) as $k => $v) { if(!in_array($v, $sector_all)){ array_push($sector_all, $v); } } } // 获取需要版块id end // 填充进去版块的轮播start $return_data = []; foreach ($sector_all as $key => $value) { $loop_result = Db::query(" SELECT id, title, CONCAT('https://tc.pcxbc.com/', cover_image) AS cover_image FROM ".$this->msginformation_use_db_name['1']." WHERE is_del = 0 AND loop_img > 0 AND sector LIKE '%".$value."%' ORDER BY loop_img desc "); if(count($loop_result) > 0){ foreach ($loop_result as $k => $v) { // $loop_result[$key]['jump_url'] = "https://tc.pcxbc.com/editortext/model_content?id=".$v['id']."&token=".$data['token']; $loop_result[$key]['jump_url'] = "https://tc.pcxbc.com/editortext/model_content"; } } $Template_arr[$value]['loop_data'] = $loop_result; array_push($return_data, $Template_arr[$value]); } // 填充进去版块的轮播end return $this->msg($return_data); } ################################################################get_sector_content_msg public function get_sector_content_msg_action($data){ $return_result = [ 'page_now'=>$data['page'], 'page_num'=>$this->page_num, 'content_data'=>[] ]; // return $this->msg($return_result); if($data['type'] != 0){ $type_str = " AND type LIKE '%".$data['type']."%'"; }else{ $type_str = ""; } $content_result = Db::query(" SELECT id, title, create_time, i_like, reading, CONCAT('https://tc.pcxbc.com/', cover_image) AS cover_image, top_up FROM ".$this->msginformation_use_db_name['1']." WHERE is_del = 0 AND sector LIKE '%".$data['sector_id']."%'".$type_str." ORDER BY top_up desc,id OFFSET (".$data['page']." - 1) * ".$this->page_num." ROWS FETCH NEXT ".$this->page_num." ROWS ONLY "); if(count($content_result) > 0){ foreach ($content_result as $key => $value) { // $content_result[$key]['jump_url'] = "https://tc.pcxbc.com/editortext/model_content?id=".$value['id']."&token=".$data['token']; $content_result[$key]['jump_url'] = "https://tc.pcxbc.com/editortext/model_content"; } } $return_result['content_data'] = $content_result; $user_like = Db::table($this->msginformation_use_db_name['2'])->where(['token'=>$data['token']])->column('aetc_id'); foreach ($return_result['content_data'] as $key => $value) { if(array_key_exists($value['id'], $user_like)){ $return_result['content_data'][$key]['is_like'] = 1; }else{ $return_result['content_data'][$key]['is_like'] = 0; } } return $this->msg($return_result); } ################################################################user_like_it public function user_like_it_action($data){ $user_like_data = Db::table($this->msginformation_use_db_name['2'])->where(['token'=>$data['token'],'aetc_id'=>$data['id']])->find(); if($user_like_data){ // 如果找到有点赞记录 if($user_like_data['is_like'] == 1){ // 如果已经点了 // 启动事务 Db::startTrans(); try{ Db::table($this->msginformation_use_db_name['1'])->where(['id'=>$data['id']])->setDec('i_like'); Db::table($this->msginformation_use_db_name['2'])->where(['aetc_id'=>$data['id'],'token'=>$data['token']])->update(['is_like'=>0,'update_time'=>date('Y-m-d H:i:s')]); // 提交事务 Db::commit(); return $this->msg(['user_like'=>0]); } catch (\Exception $e) { // 回滚事务 Db::rollback(); return $this->msg(10002); } }else{ // 如果之前点过又取消了 // 启动事务 Db::startTrans(); try{ Db::table($this->msginformation_use_db_name['1'])->where(['id'=>$data['id']])->setInc('i_like'); Db::table($this->msginformation_use_db_name['2'])->where(['aetc_id'=>$data['id'],'token'=>$data['token']])->update(['is_like'=>1,'update_time'=>date('Y-m-d H:i:s')]); // 提交事务 Db::commit(); return $this->msg(['user_like'=>1]); } catch (\Exception $e) { // 回滚事务 Db::rollback(); return $this->msg(10002); } } }else{ // 如果没有记录 // 启动事务 Db::startTrans(); try{ Db::table($this->msginformation_use_db_name['1'])->where(['id'=>$data['id']])->setInc('i_like'); Db::table($this->msginformation_use_db_name['2'])->insert([ 'aetc_id'=>$data['id'], 'token'=>$data['token'], 'is_like'=>1, 'create_time'=>date('Y-m-d H:i:s'), 'update_time'=>date('Y-m-d H:i:s') ]); // 提交事务 Db::commit(); return $this->msg(['user_like'=>1]); } catch (\Exception $e) { // 回滚事务 Db::rollback(); return $this->msg(10002); } } } ################################################################get_recommend_information public function get_recommend_information_action($data){ $return_data = [ 'pop'=>[], 'notice'=>[], 'banner'=>[] ]; // return $this->msg($return_data); // 所有可用记录. $all_data = Db::table($this->msginformation_use_db_name['3'])->where("is_del = 0 AND scene_data IN (1,2,3)")->select(); // 用户阅读记录 $user_read_log = Db::table($this->msginformation_use_db_name['2'])->where(['token'=>$data['token']])->field('aetc_id')->select(); $user_read_data = []; // 先过滤一遍用户已经看过的文章记录 foreach ($user_read_log as $key => $value) { array_push($user_read_data,$value['aetc_id']); } // 删掉已经读过的信息 foreach ($all_data as $key => $value) { if($value['type'] == '1'){ if(in_array($value['parameter_data'], $user_read_data)){ if($value['scene_data'] != 3){ unset($all_data[$key]); }else{ // $all_data[$key]['jump_url'] = $all_data[$key]['jump_url']."&token=".$data['token']; $all_data[$key]['jump_url'] = $all_data[$key]['jump_url']; $all_data[$key]['type'] = 'h5'; $all_data[$key]['id'] = $value['parameter_data']; } }else{ // $all_data[$key]['jump_url'] = $all_data[$key]['jump_url']."&token=".$data['token']; $all_data[$key]['jump_url'] = $all_data[$key]['jump_url']; $all_data[$key]['type'] = 'h5'; $all_data[$key]['id'] = $value['parameter_data']; } }else{ $all_data[$key]['type'] = 'wechat'; // 提取查询字符串部分(?后面的部分) $queryString = substr($all_data[$key]['jump_url'], strpos($all_data[$key]['jump_url'], '?') + 1); // 使用parse_str解析查询字符串 $params = []; parse_str($queryString, $params); // 提取appid和path的值 $appid = isset($params['appid']) ? $params['appid'] : null; $path = isset($params['path']) ? $params['path'] : null; $all_data[$key]['appid'] = $appid; $all_data[$key]['path'] = $path; // 重新定义跳转链接为中间页 $all_data[$key]['jump_url'] = "https://tc.pcxbc.com/open_wechat_content"; } // $all_data[$key]['id'] = $all_data[$key]['parameter_data']; unset($all_data[$key]['parameter_data']); unset($all_data[$key]['is_del']); unset($all_data[$key]['ROW_NUMBER']); } // 分类信息 foreach ($all_data as $key => $value) { // 1:首屏弹窗,2:滚动公告,3:banner if($value['scene_data'] == '1'){ array_push($return_data['pop'],$value); }else if($value['scene_data'] == '2'){ array_push($return_data['notice'],$value); }else if($value['scene_data'] == '3'){ array_push($return_data['banner'],$value); } } // 设置pop当中只有一个数据 if(count($return_data['pop'])>0){ $return_data['pop'] = [$return_data['pop'][0]]; } return $this->msg($return_data); } }