renderError('掌上信息已关闭'); } #1、参数获取 $page = $_GPC['page'] ? $_GPC['page'] : 1; $page_index = $_GPC['page_index'] ? $_GPC['page_index'] : 10; $page_start = $page * $page_index - $page_index; $set = Setting::agentsetting_read("pluginlist"); #2、生成基本查询条件 $where = " (a.aid = {$_W['aid']} OR a.fullchnnel > 0) AND a.uniacid = {$_W['uniacid']} AND a.status = 0 "; #3、生成排序条件 switch ($set['tcsort']) { case 1:$order = " ORDER BY a.refreshtime DESC";break;//发帖时间 case 2:$order = " ORDER BY a.look DESC ";break;//浏览人气 case 3:$order = " ORDER BY a.share DESC ";break;//分享数量 case 4:$order = " ORDER BY a.likenum DESC ";break;//点赞数量 case 5:$order = " ORDER BY a.replytime DESC ";break;//回复时间 } #4、获取商品列表 $field = " a.top,a.img,a.id,a.avatar,a.address_info,a.nickname,a.mid,b.title as one_name,c.title as two_name,a.phone,a.createtime,a.content,a.content_json,a.look,a.likenum "; $sql = "SELECT {$field} FROM " .tablename(PDO_NAME . "pocket_informations") ." as a LEFT JOIN ".tablename(PDO_NAME."pocket_type") ." as b ON a.onetype = b.id LEFT JOIN ".tablename(PDO_NAME."pocket_type") ." as c ON a.type = c.id " ." WHERE {$where}{$order}"." LIMIT {$page_start},{$page_index} "; $info = pdo_fetchall($sql); #6、循环处理信息 foreach ($info as $key => &$val) { //生成链接信息 $val['url'] = h5_url('pages/subPages/postDetails/postDetails',['id'=>$val['id']]); $val['createtime'] = date("m-d",$val['createtime']); //图片信息处理 $imgArr = unserialize($val['img']); if(is_array($imgArr) && count($imgArr) > 0) { foreach($imgArr as $imgK => $imgV){ if(empty($imgV)){ unset($imgArr[$imgK]); }else{ $val['img_list'][] = tomedia($imgV); } } } unset($val['img']); $val['content'] = htmlspecialchars_decode($val['content']); if (!empty($val['content_json'])) $val['content'] = json_decode($val['content_json']); Member::getMemberInfo($val,$val['mid']); } $this->renderSuccess('掌上信息列表',$info); } /** * Comment: 掌上信息首页信息 * Author: zzw * Date: 2019/8/21 14:18 */ public function homeInfo(){ global $_W,$_GPC; #1、设置信息获取 $set = Setting::agentsetting_read('pocket'); if(empty($set['status'])){ $this->renderError('掌上信息已关闭'); } #2、幻灯片信息获取 $adv = pdo_getall(PDO_NAME."pocket_slide" ,['aid'=>$_W['aid'],'uniacid'=>$_W['uniacid'],'status'=>1] ,['img','url'],'','sort DESC'); if(is_array($adv) && count($adv) > 0){ foreach($adv as $advK => &$advV){ $advV['img'] = tomedia($advV['img']); } } #3、获取统计信息 $look = $set['look'] > 0 ? intval($set['look']) : 0;//浏览量 $total = $set['fabu'] > 0 ? intval($set['fabu']) : 0;//发布数 $share = $set['share'] > 0 ? intval($set['share']) : 0;//分享数 $info = pdo_fetch("SELECT (IFNULL(SUM(look),0) + {$look}) AS look,(IFNULL(COUNT(*),0) + {$total}) as total,(IFNULL(SUM(share),0) + {$share})AS share FROM " .tablename(PDO_NAME."pocket_informations") ." WHERE status = 0 AND aid = {$_W['aid']} AND uniacid = {$_W['uniacid']} "); #4、获取分类列表信息 $cateList = pdo_getall(PDO_NAME."pocket_type" ,['aid'=>$_W['aid'],'uniacid'=>$_W['uniacid'],'status'=>1,'type'=>0] ,['id','title','img','color','isnav','url','adv'],'','sort DESC'); foreach($cateList as $key => &$val){ $val['img'] = tomedia($val['img']); //幻灯片信息处理 if($val['adv']){ $val['adv'] = unserialize($val['adv']); foreach($val['adv'] as &$advImage){ $advImage = tomedia($advImage); } }else{ $val['adv'] = []; } } #5、获取最新发布信息列表 $releaseList = pdo_fetchall("SELECT FROM_UNIXTIME(a.createtime,'%y-%m-%d') as createtime,a.nickname,b.title,a.id,a.mid,a.address_info FROM " .tablename(PDO_NAME."pocket_informations") ." as a RIGHT JOIN ".tablename(PDO_NAME."pocket_type") ." as b ON a.onetype = b.id WHERE a.status = 0 AND a.aid = {$_W['aid']} AND a.uniacid = {$_W['uniacid']} AND a.onetype > 0 ORDER BY createtime DESC LIMIT 10 "); foreach ($releaseList as &$value) { Member::getMemberInfo($value,$value['mid']); } #6、数据拼装 $data['adv'] = $adv;//幻灯片 $data['info'] = $info;//统计信息 $data['cate_list'] = $cateList;//分类列表 $data['release_list'] = $releaseList;//最新发布信息列表 $data['set'] = [ 'text'=>$set['pocketname'], 'status'=>$set['status'] ];//设置信息 $this->renderSuccess('掌上信息首页信息',$data); } /** * Comment: 获取分类列表 * Author: zzw * Date: 2019/8/21 16:37 */ public function classList(){ global $_W,$_GPC; #1、参数获取 $is_two = $_GPC['is_two'] ? : 0;//0=不获取二级分类;1=获取二级分类 $is_set = $_GPC['is_set'] ? : 0;//0=不获取设置信息;1=获取设置信息 $is_ios = $_GPC['is_ios'] ? : 0;//0=安卓 1=IOS $areaid = $_GPC['areaid'] ? : 0;//0=默认 地区参数 $aid = $_W['aid']; if($areaid > 0 ){ $aid = pdo_getcolumn(PDO_NAME.'oparea',array('uniacid'=>$_W['uniacid'],'status'=>1,'areaid' => $areaid),'aid'); if(empty($aid)){ $this->renderSuccess('无信息',[]); } } #2、基本信息配置 $vipflag = WeliamWeChat::VipVerification($_W['mid'],true); $table = PDO_NAME."pocket_type"; $where = ['aid'=>$aid,'uniacid'=>$_W['uniacid'],'status'=>1,'type'=>0,'isnav'=>0];//启用、一级分类、普通分类(不为导航标签) if($is_ios > 0 && $_W['wlsetting']['base']['payclose'] > 0){ $where['price <'] = '0.01'; } $filed = ['id','title','img','price','vipstatus','vipprice']; $sort = 'sort DESC'; #3、获取一级分类列表 $list = pdo_getall($table,$where ,$filed,'',$sort); #4、循环获取二级分类信息 foreach($list as $key => &$val){ //一级分类数据处理 $val['img'] = tomedia($val['img']); //获取二级分类 if($val['vipstatus'] == 2 && empty($vipflag)){ $val['noflag'] = 1; } if($is_two == 1){ $where['type'] = $val['id']; $val['list'] = pdo_getall($table,$where ,$filed,'',$sort); foreach($val['list'] as $st){ if($st['vipstatus'] == 2 && empty($vipflag)){ $st['noflag'] = 1; } } } } #5、获取设置信息 if($is_set == 1){ $set = Setting::agentsetting_read('pocket'); $data['set'] = [ 'statement'=>$set['statement'], ]; } #5、数据拼装 $data['list'] = $list; $this->renderSuccess('掌上信息分类列表',$data); } /** * Comment: 信息列表获取(信息中心) * Author: zzw * Date: 2019/8/21 15:25 */ public function infoList(){ global $_W,$_GPC; $set = Setting::agentsetting_read('pocket'); $pluset = Setting::agentsetting_read("pluginlist"); #1、参数接收 $id = $_GPC['id'] ? : 0;//一级分类id 0=全部 $twoId = $_GPC['two_id'] ? : 0;//二级分类id 0=全部 $page = $_GPC['page'] ? : 1; $pageIndex = $_GPC['page_index'] ? : 10; $pageStart = $page * $pageIndex - $pageIndex; $sort = $_GPC['sort'] ? : 0;//排序方式 $regionId = $_GPC['region_id'] ? : 0; $keyWord = trim($_GPC['keyword']) ? : ''; if($regionId > 0){ $getAidinfo = pdo_get(PDO_NAME."oparea",['areaid'=>$regionId,'status'=>1,'uniacid'=>$_W['uniacid']]); if(empty($getAidinfo)){ $aid = -1; }else{ $aid = $getAidinfo['aid']; } }else{ $aid = $_W['aid']; } //判断会员权限 if($set['vip_show'] > 0){ $vip_level = unserialize($set['vip_level']); $userhalfcard = WeliamWeChat::VipVerification($_W['mid']); if(empty($userhalfcard)){ $noVip = 1; }else if(!empty($vip_level) && !in_array($userhalfcard['levelid'],$vip_level)){ $noVip = 1; } } #2、生成查询条件 $where = " WHERE (aid = {$aid} OR fullchnnel > 0) AND uniacid = {$_W['uniacid']} AND status = 0 "; if($id > 0 ) $where .= " AND onetype IN (0,{$id}) "; if($twoId > 0) $where .= " AND type = {$twoId} "; if(!empty($keyWord)) $where .= " AND (keyword LIKE '%{$keyWord}%' OR content LIKE '%{$keyWord}%') "; #3、获取排序方式 0=发帖时间;1=浏览数量;2=分享数量;3=点赞数量; //首页标记 if(!empty($_GPC['homeflag'])){ $sort = $set['listorder']; }else if(empty($sort)){ switch ($pluset['tcsort']){ case 1: $sort = 0; break; case 2: $sort = 1; break; case 3: $sort = 2; break; case 4: $sort = 3; break; case 5: $sort = 4; break; } } switch ($sort){ case 0:$order = " ORDER BY top DESC,refreshtime DESC ";break;//发帖时间 case 1:$order = " ORDER BY top DESC,look DESC ";break;//浏览数量 case 2:$order = " ORDER BY top DESC,share DESC ";break;//分享数量 case 3:$order = " ORDER BY top DESC,likenum DESC ";break;//点赞数量 case 4:$order = " ORDER BY top DESC,replytime DESC ";break;//回复时间 } #4、查询符合条件的信息列表 $total = pdo_fetchcolumn("SELECT count(*) FROM " .tablename(PDO_NAME."pocket_informations") .$where.$order); $data['total'] = ceil($total / $pageIndex); $data['list'] = pdo_fetchall("SELECT id,avatar,mid,nickname,top,address_info,FROM_UNIXTIME(createtime,'%Y-%m-%d %H:%i') as createtime,img, phone,content,content_json,video_link,video_img_link,look,share,package,likeids,onetype,`type`,keyword,videoprice FROM " .tablename(PDO_NAME."pocket_informations") .$where.$order." LIMIT {$pageStart},{$pageIndex} "); #4、循环进行信息的处理 if(is_array($data['list']) && count($data['list']) > 0){ foreach($data['list'] as $key => &$val){ $fabulous = unserialize($val['likeids']); $val['content'] = htmlspecialchars_decode($val['content']); if (!empty($val['content_json'])) $val['content'] = json_decode($val['content_json']); //隐藏视频 if($val['videoprice'] > 0){ $val['video_link'] = ''; $val['video_img_link'] = ''; }else{ //$videoInfo = UploadFile::videoInfoHandle($val['video_link']); $val['video_link'] = tomedia($val['video_link']); $val['video_img_link'] = tomedia($val['video_img_link']); } //获取点赞数量 $val['fabulous_num'] = is_array($fabulous) ? count($fabulous) : 0; //判断当前用户是否已经点赞 0=未点赞 1=已点赞 if(is_array($fabulous) && in_array($_W['mid'],$fabulous)) $val['is_fabulous'] = 1; else $val['is_fabulous'] = 0; //获取点赞用户的头像 $val['fabulous_avatar'] = []; if($val['fabulous_num'] > 0){ foreach($fabulous as $item){ $val['fabulous_avatar'][] = pdo_getcolumn(PDO_NAME."member",['id'=>$item],'avatar'); } } //从新定义头像链接 if($val['mid'] > 0){ Member::getMemberInfo($val,$val['mid']); $val['identity_id'] = pdo_getcolumn(PDO_NAME.'member',['id' => $val['mid']],'identity_id'); // $meminfo = pdo_get('wlmerchant_member',array('id' => $val['mid']),array('nickname','avatar')); // if(empty($val['avatar'])){ // $val['avatar'] = $meminfo['avatar']; // } // if(empty($val['nickname'])){ // $val['nickname'] = $meminfo['nickname']; // } } $val['avatar'] = tomedia($val['avatar']); //图片处理 $val['img'] = is_array(unserialize($val['img'])) ? unserialize($val['img']) : []; $img = []; if(is_array($val['img']) && count($val['img']) > 0){ $i = 0; foreach ($val['img'] as $imgK => &$imgV){ if(empty($imgV)){ unset($val['img'][$imgK]); }else{ $img[$i] = tomedia($imgV); $i++; } } } $val['img'] = $img; //处理标签 $val['keyword'] = unserialize($val['keyword']); //分类获取 if($val['onetype'] > 0) $val['onetype'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$val['onetype']],'title'); else $val['onetype'] = ''; if($val['type'] > 0) $val['type'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$val['type']],'title'); else{$val['type'] = '官方公告';$val['onetype'] = '官方公告';} //评论获取 获取三条 $val['comment_list'] = Pocket::getComment(1,3,$val['id']); unset($val['likeids']); //修改首页加载时的浏览量 if(!empty($_GPC['homeflag'])){ $addLook = rand(intval($set['minup']),intval($set['maxup'])); if($addLook<1){ $addLook = 1; } pdo_update(PDO_NAME."pocket_informations",['look'=>$val['look']+$addLook],['id'=>$val['id']]); } //查询认证和保证金 if(p('attestation')){ $val['attestation'] = Attestation::checkAttestation(1,$val['mid']); }else{ $val['attestation'] = 0; } //查阅权限 if($noVip > 0 || empty($val['phone'])){ unset($val['phone']); } // 是否关注 $interest = pdo_get(PDO_NAME . 'member_interest',['mid' => $_W['mid'],'interest_mid' => $val['mid']],['id']); $val['is_interest'] = $interest ? true : false; $val['is_it_mine'] = $_W['mid'] == $val['mid'] ? true : false; // 是否是当前用户的帖子 是不显示关注按钮 } } //获取一级分类的子分类 if(Customized::init('pocket140') > 0){ if($id > 0 && empty($twoId)){ $children_cates = pdo_getall('wlmerchant_pocket_type',array('uniacid' => $_W['uniacid'],'type' => $id,'status' => 1,'aid' => $_W['aid']),array('title','id')); }else if(empty($id)){ $children_cates = pdo_getall('wlmerchant_pocket_type',array('uniacid' => $_W['uniacid'],'type' => 0,'status' => 1,'aid' => $_W['aid']),array('title','id')); } if(!empty($children_cates)){ $all = [ 'id' => 0, 'title' => '全部' ]; array_unshift($children_cates,$all); $data['children'] = $children_cates; } } $this->renderSuccess('信息列表',$data); } /** * Comment: 获取帖子详细信息 * Author: zzw * Date: 2019/8/21 17:51 */ public function detail(){ global $_W,$_GPC; $set = Setting::agentsetting_read('pocket'); if(empty($set['status'])){ $this->renderError('掌上信息已关闭'); } #1、参数获取 $_GPC['id'] > 0 ? $id = $_GPC['id'] : $this->renderError('缺少参数:id') ; $lng = $_GPC['lng'] ? : 0;//经度 $lat = $_GPC['lat'] ? : 0;//纬度 $set = Setting::agentsetting_read('pocket'); #2、获取帖子基本信息 $info = pdo_get(PDO_NAME."pocket_informations" ,['id'=>$id] ,['avatar','nickname','status','onetype','type','createtime','redpack','keyword','content','content_json','img','address','address_info','location','locastatus','aid' ,'look','share','likenum','likeids','phone','share_title','top','mid','video_link','video_img_link','videoprice']); if($info['status'] > 0 && $_W['mid'] != $info['mid']){ if($_GPC['examine'] > 0){ $agentuser = pdo_get('wlmerchant_agentadmin', array('uniacid' => $_W['uniacid'],'aid' => $info['aid'],'mid' => $_W['mid'], 'notice' => 1), array('noticeauthority')); $noticeauthority = unserialize($agentuser['noticeauthority']); if(empty($noticeauthority)) $noticeauthority = []; if(in_array('pocketfabu',$noticeauthority) || empty($noticeauthority)) { $info['examineflag'] = 1; } } if(empty($info['examineflag'])){ $this->renderError('帖子未通过审核或已删除'); } } $info['content'] = htmlspecialchars_decode($info['content']); if (!empty($info['content_json'])) $info['content'] = json_decode($info['content_json']); //$memberinfo = pdo_get('wlmerchant_member',array('id' => $info['mid']),array('avatar','nickname')); Member::getMemberInfo($info,$info['mid']); // 获取用户头像和昵称 $info['identity_id'] = pdo_getcolumn(PDO_NAME.'member',['id' => $info['mid']],'identity_id'); $set = Setting::agentsetting_read('pocket'); #3、处理基本统计信息 $info['look'] = ($info['look'] ? : 0);//浏览量 $info['likenum'] = $info['likenum'] ? : 0;//点赞数 $info['share'] = $info['share'] ? : 0;//分享数 // $info['nickname'] = $memberinfo['nickname'];//$info['nickname'] ? : $memberinfo['nickname']; // $info['avatar'] = $memberinfo['avatar'];//$info['avatar'] ? : $memberinfo['avatar']; $info['avatar'] = tomedia($info['avatar']); //$videoInfo = UploadFile::videoInfoHandle($info['video_link']); $info['video_link'] = tomedia($info['video_link']); $info['video_img_link'] = tomedia($info['video_img_link']); $info['createtime'] = date("Y-m-d H:i",$info['createtime']); $info['keyword'] = is_array(unserialize($info['keyword'])) ? unserialize($info['keyword']) : []; $info['location'] = is_array(unserialize($info['location'])) ? unserialize($info['location']) : []; //获取认证信息 if(p('attestation')){ $info['attestation'] = Attestation::checkAttestation(1,$info['mid']); }else{ $info['attestation'] = 0; } //当前帖子浏览量增加 $addLook = 1; if(intval($set['maxup']) > 0 ){ $addLook = rand(intval($set['minup']),intval($set['maxup'])); } $info['look'] = intval($info['look']) + intval($addLook);//浏览量 pdo_update(PDO_NAME."pocket_informations",['look'=>$info['look']],['id'=>$id]); #4、处理图片信息 $info['img'] = is_array(unserialize($info['img'])) ? unserialize($info['img']) : []; if(is_array($info['img']) && count($info['img']) > 0){ $img_arr = []; foreach($info['img'] as $imgV){ if(empty($imgV)) continue; $img_arr[] = tomedia($imgV); } $info['img'] = $img_arr; } //判断视频是否显示 if(!empty($info['video_link']) && $info['videoprice'] > 0){ $videoflag = pdo_getcolumn(PDO_NAME.'pocket_payvideo',array('pocketid'=>$id,'mid'=>$_W['mid']),'id'); if(empty($videoflag)){ $info['hidevideo'] = 1; } } $info['hidevideo'] = $info['hidevideo'] ? : 0; #5、处理分类信息 if($info['onetype'] > 0) $info['one_name'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$info['onetype']],'title'); else $info['one_name'] = ''; if($info['type'] > 0) $info['two_name'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$info['type']],'title'); else $info['two_name'] = ''; unset($info['onetype']); unset($info['type']); #6、处理点赞信息 $info['likeids'] = is_array(unserialize($info['likeids'])) ? unserialize($info['likeids']) : []; if(is_array($info['likeids']) && count($info['likeids']) > 0){ //判断当前用户是否已经点赞 0=未点赞;1=已点赞 if(in_array($_W['mid'],$info['likeids'])) $info['is_fabulous'] = 1; else $info['is_fabulous'] = 0; //循环获取点赞用户的头像信息 foreach ($info['likeids'] as $idK => &$idV){ $idV = pdo_getcolumn(PDO_NAME."member",['id'=>$idV],'avatar'); } $info['likeids'] = array_values($info['likeids']); } $info['fabulous_num'] = is_array($info['likeids']) ? count($info['likeids']) : 0; #7、距离计算 $distance = Store::getdistance($lng, $lat, $info['location']['lng'], $info['location']['lat']); if ($distance) { if ($distance > 1000) { $info['distance'] = (floor(($distance / 1000) * 10) / 10) . "km"; } else { $info['distance'] = round($distance) . "m"; } } #8、获取当前用户一共发送的帖子数量 $info['info_total'] = pdo_fetchcolumn("SELECT COUNT(*) FROM ".tablename(PDO_NAME."pocket_informations") ." WHERE `mid` = {$info['mid']}"); #9、获取当前帖子的评论总数量 $info['comment_total'] = pdo_fetchcolumn("SELECT count(*) FROM ".tablename(PDO_NAME."pocket_comment")." WHERE `tid` = {$id} and (`status` = 1 or (`status` = 0 and `mid` = {$_W['mid']}))"); #10、判断当前用户是否领取红包.0=无红包,1=有红包未领取;2=有红包已领取(有红包未领取但是红包已发放完毕) $info['res_status'] = 0;//默认无红包 if($info['redpack'] > 0){ //默认有红包未领取 $info['res_status'] = 1; //判断是否领取红包 $isGet = pdo_getcolumn(PDO_NAME."red_envelope",['pid'=>$id,'mid'=>$_W['mid']],'id'); if($isGet > 0) { //有红包已领取 $info['res_status'] = 2; }else{ //有红包未领取但是红包已发放完毕 $haveReceived = pdo_fetchcolumn("SELECT SUM(money) FROM ".tablename(PDO_NAME."red_envelope")." WHERE pid = {$id} ") ? : 0; if($info['redpack'] <= $haveReceived){ $info['res_status'] = 2; } } } #11、获取当前用户是否收藏当前帖子 $info['is_collection'] = pdo_getcolumn(PDO_NAME."pocket_collection",['tid'=>$id,'mid'=>$_W['mid']],'id') ? : 0; //判断会员权限 if($set['vip_show'] > 0){ $vip_level = unserialize($set['vip_level']); $userhalfcard = WeliamWeChat::VipVerification($_W['mid']); if(empty($userhalfcard)){ if(!empty($info['phone'])){ $info['tipsflag'] = 1; } }else if(!empty($vip_level) && !in_array($userhalfcard['levelid'],$vip_level)){ if(!empty($info['phone'])){ $info['tipsflag'] = 1; } } } # 是否关注 $interest = pdo_get(PDO_NAME . 'member_interest',['mid' => $_W['mid'],'interest_mid' => $info['mid']],['id']); $info['is_interest'] = $interest ? true : false; $info['is_it_mine'] = $_W['mid'] == $info['mid'] ? true : false; // 是否是当前用户的帖子 是不显示关注按钮 //获取平台备注 $set = Setting::agentsetting_read('pocket'); $info['remark'] = $set['remark']; $info['remarkcolor'] = $set['remarkcolor']; $this->renderSuccess('帖子详情',$info); } /** * Comment: 获取帖子的评论/回复信息 * Author: zzw * Date: 2019/8/21 18:27 */ public function commentList(){ global $_W,$_GPC; #1、参数信息获取 $_GPC['id'] > 0 ? $id = $_GPC['id'] : $this->renderError('缺少参数:id') ; $page = $_GPC['page'] ? : 1; $pageIndex = $_GPC['page_index'] ? : 5; #2、获取评论信息列表 $list = Pocket::getComment($page,$pageIndex,$id); $this->renderSuccess('帖子的评论/回复信息',$list); } /** * Comment: 帖子点赞操作 * Author: zzw * Date: 2019/8/22 9:45 */ public function fabulous(){ global $_W,$_GPC; #1、参数接收 $_GPC['id'] > 0 ? $id = $_GPC['id'] : $this->renderError('缺少参数:id') ;//帖子id #2、获取帖子的点赞信息 $info = pdo_get(PDO_NAME."pocket_informations",['id'=>$id],['likeids','likenum']); $ids = unserialize($info['likeids']); $num = count($ids); #3、判断是否为重复操作 if(is_array($ids) && $num > 0){ if(in_array($_W['mid'],$ids)){ #4、取消点赞的操作 $ids = array_flip($ids); unset($ids[$_W['mid']]); $ids = array_flip($ids); $likenum = $info['likenum'] - 1; }else{ $ids = array_values($ids);//初始化数组 重新生成键值 从0开始 $ids[$num] = $_W['mid']; $likenum = $info['likenum'] + 1; } }else{ $ids[$num] = $_W['mid']; $likenum = $info['likenum'] + 1; } #5、点赞成功的操作 $res = pdo_update(PDO_NAME."pocket_informations",['likeids'=>serialize($ids),'likenum'=>$likenum],['id'=>$id]); if($res) $this->renderSuccess("操作成功"); $this->renderError('操作失败'); } /** * Comment: 帖子评论 * Author: zzw * Date: 2019/8/22 10:05 */ public function comment(){ global $_W,$_GPC; //判断是否绑定手机 $mastmobile = unserialize($_W['wlsetting']['userset']['plugin']); if (empty($_W['wlmember']['mobile']) && in_array('private',$mastmobile)){ $this->renderError('未绑定手机号'); } #1、参数接收 $id = $_GPC['id'] OR $this->renderError('缺少参数:id') ;//帖子id $text = $_GPC['text'] OR $this->renderError('请输入评论内容!') ;//评论内容 //判断文本内容是否非法 $textRes = Filter::init($text,$_W['source'],1); if($textRes['errno'] == 0){ $this->renderError($textRes['message']); } #2、判断用户是否为黑名单用户 $this->checkBlack(); #3、评论信息拼装 $data['uniacid'] = $_W['uniacid']; $data['aid'] = $_W['aid']; $data['tid'] = $id; $data['content'] = base64_encode($text); $data['mid'] = $_W['mid']; $data['createtime'] = time(); //判断是否需要审核 $set = Setting::agentsetting_read('pocket'); if($set['comment_reply'] == 1) $data['status'] = 0; #4、保存评论内容 $res = pdo_insert(PDO_NAME."pocket_comment",$data); if($res){ $cid = pdo_insertid(); //修改帖子回复时间 if(empty($set['comment_reply'])){ pdo_update('wlmerchant_pocket_informations',array('replytime' => time()),array('id' => $id)); } if($set['comment_reply'] != 1) Pocket::setModelInfo($id,$cid,$_W['source']); $this->renderSuccess('评论成功',['cid' => $cid,'amid' => $data['mid']]); } else { $this->renderError('评论失败,请稍后重试'); } } /** * Comment: 编辑或删除评论信息 * Author: wlf * Date: 2022/02/09 11:25 */ public function changeComment(){ global $_W,$_GPC; $this->checkBlack(); $id = $_GPC['id'] OR $this->renderError('缺少参数:id');//评论id $type = $_GPC['type'] ? : 0; // 1修改 0删除 if($type > 0){ $text = $_GPC['text'] OR $this->renderError('请输入修改内容!');//评论内容 //判断文本内容是否非法 $textRes = Filter::init($text,$_W['source'],1); if($textRes['errno'] == 0){ $this->renderError($textRes['message']); } $data['content'] = base64_encode($text); //判断是否需要审核 $set = Setting::agentsetting_read('pocket'); if($set['comment_reply'] == 1) $data['status'] = 0; $res = pdo_update('wlmerchant_pocket_comment',$data,['id' => $id]); }else{ $res = pdo_delete('wlmerchant_pocket_comment',array('id'=>$id)); } if($res > 0){ $this->renderSuccess('操作成功'); }else{ $this->renderError('操作失败,请稍后重试'); } } /** * Comment: 回复评论信息 * Author: zzw * Date: 2019/8/22 10:37 */ public function reply(){ global $_W,$_GPC; //判断是否绑定手机 $mastmobile = unserialize($_W['wlsetting']['userset']['plugin']); if (empty($_W['wlmember']['mobile']) && in_array('private',$mastmobile)){ $this->renderError('未绑定手机号'); } $this->checkBlack(); #1、参数接收 $id = $_GPC['id'] OR $this->renderError('缺少参数:id');//帖子id $cid = $_GPC['cid'] OR $this->renderError('缺少参数:cid');//评论id $amid = $_GPC['amid'] OR $this->renderError('缺少参数:amid');//接收回复信息的用户的id $text = $_GPC['text'] OR $this->renderError('请输入回复内容!');//回复内容 //判断文本内容是否非法 $textRes = Filter::init($text,$_W['source'],1); if($textRes['errno'] == 0){ $this->renderError($textRes['message']); } #2、判断用户是否为黑名单用户 if(Pocket::is_black($id)) $this->renderError('对不起,您暂无回复权限!'); #3、评论信息拼装 $data['uniacid'] = $_W['uniacid']; $data['aid'] = $_W['aid']; $data['tid'] = $id; $data['cid'] = $cid; $data['smid'] = $_W['mid'];//回复人 $data['amid'] = $amid;//被回复人,接收消息的用户 $data['content'] = base64_encode($text); $data['createtime'] = time(); //判断是否需要审核 $set = Setting::agentsetting_read('pocket'); if($set['comment_reply'] == 1) $data['status'] = 0; #4、保存评论内容 $res = pdo_insert(PDO_NAME."pocket_reply",$data); if($res) { $rid = pdo_insertid(); //修改帖子回复时间 if(empty($set['comment_reply'])){ pdo_update('wlmerchant_pocket_informations',array('replytime' => time()),array('id' => $id)); } if($set['comment_reply'] != 1) Pocket::setReplyModelInfo($id,$rid,$data['smid'],$data['amid'],$_W['source']); $this->renderSuccess('回复成功',$rid); } else{ $this->renderError('回复失败,请稍后重试'); } } /** * Comment: 编辑或删除回复信息 * Author: wlf * Date: 2022/02/09 11:15 */ public function changeReply(){ global $_W,$_GPC; $this->checkBlack(); $id = $_GPC['id'] OR $this->renderError('缺少参数:id');//回复id $type = $_GPC['type'] ? : 0; // 1修改 0删除 if($type > 0){ $text = $_GPC['text'] OR $this->renderError('请输入修改内容!');//回复内容 //判断文本内容是否非法 $textRes = Filter::init($text,$_W['source'],1); if($textRes['errno'] == 0){ $this->renderError($textRes['message']); } $data['content'] = base64_encode($text); //判断是否需要审核 $set = Setting::agentsetting_read('pocket'); if($set['comment_reply'] == 1) $data['status'] = 0; $res = pdo_update(PDO_NAME."pocket_reply",$data,['id' => $id]); }else{ $res = pdo_delete(PDO_NAME."pocket_reply",array('id'=>$id)); } if($res > 0){ $this->renderSuccess('操作成功'); }else{ $this->renderError('操作失败,请稍后重试'); } } /** * Comment: 点赞评论 * Author: wlj * Date: 2023/03/28 13:58 */ public function fabulousReply(){ global $_W,$_GPC; #1、参数接收 $id = $_GPC['id']; if (empty($id) || !is_numeric($id)) $this->renderError('缺少参数:id') ; #2、获取评论的点赞信息 $info = pdo_get(PDO_NAME."pocket_comment",['id'=>$id],['likeids','likenum']); $ids = unserialize($info['likeids']); $num = count($ids); #3、判断是否为重复操作 if(is_array($ids) && $num > 0){ if(in_array($_W['mid'],$ids)){ #4、取消点赞的操作 $ids = array_flip($ids); unset($ids[$_W['mid']]); $ids = array_flip($ids); $likenum = $info['likenum'] - 1; }else{ $ids = array_values($ids);//初始化数组 重新生成键值 从0开始 $ids[$num] = $_W['mid']; $likenum = $info['likenum'] + 1; } }else{ $ids[$num] = $_W['mid']; $likenum = $info['likenum'] + 1; } #5、点赞成功的操作 $res = pdo_update(PDO_NAME."pocket_comment",['likeids'=>serialize($ids),'likenum'=>$likenum],['id'=>$id]); if($res) $this->renderSuccess("操作成功"); $this->renderError('操作失败'); } /** * Comment: 获取我的帖子列表 * Author: zzw * Date: 2019/8/22 11:48 */ public function userList($message = ''){ global $_W,$_GPC; #1、参数接收 $status = $_GPC['status'];//-1=全部;0=显示;1=审核中;2=不显示(未通过);3=已删除;5=未支付 $page = $_GPC['page'] ? : 1; $pageIndex = $_GPC['page_index'] ? : 10; $pageStart = $page * $pageIndex - $pageIndex; $mid = $_GPC['mid'] ? : $_W['mid']; #2、生成查询条件 $where = " WHERE uniacid = {$_W['uniacid']} AND mid = {$mid} "; if($status > -1) $where .= " AND status = {$status} "; else $where .= " AND status IN (0,1,2,5) "; #3、获取列表信息 $sql = "SELECT id,avatar,nickname,mid,top,FROM_UNIXTIME(createtime,'%Y-%m-%d %H-%i') as createtime,img, phone,content,content_json,look,video_link,video_img_link,share,package,likeids,onetype,type,keyword,share_title,status,reason,fullchnnel,redpackstatus FROM " .tablename(PDO_NAME."pocket_informations") .$where." ORDER BY top DESC,refreshtime DESC LIMIT {$pageStart},{$pageIndex} "; $total = pdo_fetchcolumn("SELECT COUNT(*) FROM ".tablename(PDO_NAME."pocket_informations").$where); $list = pdo_fetchall($sql); //判断会员权限 $set = Setting::agentsetting_read('pocket'); if($set['vip_show'] > 0){ $vip_level = unserialize($set['vip_level']); $userhalfcard = WeliamWeChat::VipVerification($mid); if(empty($userhalfcard)){ $noVip = 1; }else if(!empty($vip_level) && !in_array($userhalfcard['levelid'],$vip_level)){ $noVip = 1; } } #4、循环进行信息的处理 if(is_array($list) && count($list) > 0){ foreach($list as $key => &$val){ $fabulous = unserialize($val['likeids']); //$videoInfo = UploadFile::videoInfoHandle($val['video_link']); $val['video_link'] = tomedia($val['video_link']); $val['video_img_link'] = tomedia($val['video_img_link']); //获取点赞数量 $val['fabulous_num'] = is_array($fabulous) ? count($fabulous) : 0; //判断当前用户是否已经点赞 0=未点赞 1=已点赞 if(is_array($fabulous) && in_array($mid,$fabulous)) $val['is_fabulous'] = 1; else $val['is_fabulous'] = 0; //获取点赞用户的头像 $val['fabulous_avatar'] = []; if($val['fabulous_num'] > 0){ foreach($fabulous as $item){ $val['fabulous_avatar'][] = pdo_getcolumn(PDO_NAME."member",['id'=>$item],'avatar'); } } //从新定义头像链接 // $memberinfo = pdo_get('wlmerchant_member',array('id' => $val['mid']),array('avatar','nickname')); // $val['nickname'] = $memberinfo['nickname'];//$val['nickname'] ? : $memberinfo['nickname']; // $val['avatar'] = $memberinfo['avatar'];//$val['avatar'] ? : $memberinfo['avatar']; // $val['avatar'] = tomedia($val['avatar']); Member::getMemberInfo($val,$val['mid']); //图片处理 $val['img'] = unserialize($val['img']); if(is_array($val['img']) && count($val['img']) > 0){ $img_arr = []; foreach ($val['img'] as $imgV){ if(empty($imgV)) continue; $img_arr[] = tomedia($imgV); } $val['img'] = $img_arr; $val['shareimg'] = $val['img'][0]; }else{ $val['shareimg'] = $val['avatar']; $val['img'] = []; } //处理标签 $val['keyword'] = is_array(unserialize($val['keyword'])) ? unserialize($val['keyword']) : []; //查阅权限 if($noVip > 0 || empty($val['phone'])){ unset($val['phone']); } //分类获取 if($val['onetype'] > 0) $val['onetype'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$val['onetype']],'title'); else $val['onetype'] = ''; if($val['type'] > 0) $val['type'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$val['type']],'title'); else $val['type'] = ''; unset($val['likeids']); // 处理content $val['content'] = htmlspecialchars_decode($val['content']); if (!empty($val['content_json'])) $val['content'] = json_decode($val['content_json']); } } #4、数据拼装 $data['total'] = ceil($total / $pageIndex); $data['list'] = $list; $this->renderSuccess($message?:'我的帖子列表',$data); } /** * Comment: 创建发帖订单 * Author: wlf * Date: 2019/8/22 11:57 */ public function createOrder(){ global $_W,$_GPC; $fk_id = $_GPC['id']; $num = $_GPC['num']; //数量 $getmoney = $_GPC['money']; //红包金额 $payfor = $_GPC['payfor']; // 1发帖 2置顶 3红包 4刷新 5观看视频 6推广 $tiezi = pdo_get('wlmerchant_pocket_informations',array('id' => $fk_id),array('status','top','type','mid','aid')); $typeid = $tiezi['type']; $data = Setting::agentsetting_read('pocket'); $isVip = WeliamWeChat::VipVerification($_W['mid'],true); $mid = $tiezi['mid']; $orderprice = 0; if($payfor == 1){ $typeinfo = pdo_get(PDO_NAME . 'pocket_type', array('id' => $typeid), ['price','vipprice','vipstatus']); if($typeinfo['vipstatus'] == 1 && $isVip > 0){ $orderprice = $typeinfo['vipprice']; }else{ $orderprice = $typeinfo['price']; } }else if($payfor == 2){ if($data['number']>0){ $nowtop = pdo_getcolumn(PDO_NAME."pocket_informations",['uniacid'=>$_W['uniacid'],'top'=>1,'status'=>0],'count(id)'); if($nowtop>$data['number'] && empty($tiezi['top']) ){ $this -> renderError('平台置顶数量已达上限,请稍后再试'); } } $price = $data['price']; foreach ($price as $key => $v) { if ($num == $v['day']) { $orderprice = $isVip > 0 ? $v['vipprice'] : $v['price']; } } }else if($payfor == 3){ $price = $data['red_envelopes']; foreach ($price as $key => $v) { if ($num == $v['num'] && $getmoney == $v['red_price']){ $orderprice = $v['red_price']; } } }else if($payfor == 4){ $typeinfo = pdo_get(PDO_NAME . 'pocket_type', array('id' => $typeid), ['refreshprcie','refreshvip']); if( $isVip > 0){ $orderprice = $typeinfo['refreshvip']; }else{ $orderprice = $typeinfo['refreshprcie']; } }else if($payfor == 5){ $pcoketinfo = pdo_get(PDO_NAME . 'pocket_informations', array('id' => $fk_id), ['videoprice']); $orderprice =$pcoketinfo['videoprice']; $mid = $_W['mid']; }else if($payfor == 6){ if($isVip > 0){ $orderprice = $data['fullprice']; }else{ $orderprice = $data['fullvip']; } } if($orderprice > 0){ $data = array( 'uniacid' => $_W['uniacid'], 'mid' => $mid, 'aid' => $tiezi['aid'], 'fkid' => $fk_id, 'sid' => 0, 'status' => 0, 'paytype' => 0, 'createtime' => time(), 'orderno' => createUniontid(), 'price' => $orderprice, 'num' => $num, 'plugin' => 'pocket', 'payfor' => 'pocketfabusharge', 'fightstatus'=> $payfor ); $res = Pocket::saveFightOrder($data); if($res){ $orderdata['orderid'] = $res; $this->renderSuccess('生成订单id',$orderdata); }else{ $this -> renderError('生成订单失败,请刷新重试'); } }else{ $this -> renderError('无可支付项,请刷新重试'); } } /** * Comment: 发布准备信息获取 * Author: zzw * Date: 2019/8/22 15:38 */ public function preparation(){ global $_W,$_GPC; #1、接收参数信息 $_GPC['id'] ? $id = $_GPC['id'] : $this->renderError('缺少参数:id'); #2、获取用户信息 $data['user'] = [ 'nickname' => $_W['wlmember']['nickname'], 'mobile' => $_W['wlmember']['mobile'], ]; $vipflag = WeliamWeChat::VipVerification($_W['mid'],true); #3、获取当前分类标签信息 $type = pdo_get(PDO_NAME."pocket_type",['id'=>$id],['keyword','price','vipprice','vipstatus','videoupload','imgupload','audioupload']); if($type['vipstatus'] == 1 && $vipflag > 0){ $data['price'] = $type['vipprice']; }else{ $data['price'] = $type['price']; } $label = $type['keyword']; $label = trim($label,','); if(strlen($label) > 0) $label = explode(',',$label); #4、数据拼装 $set = Setting::agentsetting_read('pocket'); $data['label'] = $label;//标签信息列表 $data['set'] = [ 'locastatus' => $set['locastatus'],//是否定位:0=关闭,1=默认开启,2=强制开启 'hideimg' => $set['imgupload'] ? : 0, //是否隐藏图片上传 'hidevideo' => $set['videoupload'] ? : 0, //是否隐藏视频上传 'hideaudio' => $set['audioupload'] ? : 0, //是否隐藏音频上传 'wxapptip' => $set['wxapptip'] ? : 0 //小程序是否提示订阅 ]; //设置信息 if(Customized::init('pocket140') > 0){ $data['set']['hideimg'] = $type['imgupload'] ? : 0; $data['set']['hidevideo'] = $type['videoupload'] ? : 0; $data['set']['hideaudio'] = $type['audioupload'] ? : 0; } if($set['wxapptip'] > 0 && $_W['source'] == 3){ $tempSet = Setting::wlsetting_read('new_temp_set'); if($tempSet['service']['weappSubscription']['status'] == 1){ $data['set']['tempId'] = $tempSet['service']['weappSubscription']['id']; }else{ $data['set']['wxapptip'] = 0; } } $this->renderSuccess('发布准备信息',$data); } /** * Comment: 发布信息 * Author: zzw * Date: 2019/8/22 16:28 */ public function release(){ global $_W,$_GPC; //判断是否绑定手机 $this->checkBlack(); $mastmobile = unserialize($_W['wlsetting']['userset']['plugin']); if (empty($_W['wlmember']['mobile']) && in_array('pocket',$mastmobile)){ $this->renderError('未绑定手机号'); } #1、参数接收 $content = $_GPC['content'] OR $this->renderError('请上传具体内容');//具体内容 $oneType = $_GPC['onetype'] OR $this->renderError('请先选择分类');//一级分类id $nickname = $_GPC['nickname'] OR $this->renderError('请输入联系人姓名');//联系人姓名 $phone = $_GPC['phone'];//电话 $share_title = $_GPC['share_title'] ? : '';//分享标题 $type = $_GPC['type'] ? $_GPC['type'] : 0;//二级分类id $keyword = $_GPC['keyword'] ? serialize(explode(',',$_GPC['keyword'])) : '';//关键词 $locastatus = $_GPC['locastatus'] ? : 0;//定位开关 1开启 0关闭 $videoLink = $_GPC['video_link'] ? : '';//视频文件信息 $video_img_link = $_GPC['video_img_link'] ? : '';//视频文件封面图信息 $id = $_GPC['id'] ? : 0;//帖子id $img = trim($_GPC['img']); $address_info = $_GPC['address_info'] ?: ''; // 定位地址名称 if(!empty($img)){ $img = explode(',',$_GPC['img']); foreach ($img as $ikey => $imm){ if(empty($imm)){ unset($img[$ikey]); } } $img = serialize($img); } if ($locastatus == 1) { $address = $_GPC['address'] OR $this->renderError('定位失败,请刷新重试');//地址 //lat 纬度,浮点数,范围为90 ~ -90 //lng 经度,浮点数,范围为180 ~ -180。 $location['lat'] = $_GPC['lat'] OR $this->renderError('定位失败,请刷新重试'); $location['lng'] = $_GPC['lng'] OR $this->renderError('定位失败,请刷新重试'); $location = serialize($location); } //判断文本内容是否非法 $textRes = Filter::init($content,$_W['source'],1); if($textRes['errno'] == 0){ $this->renderError($textRes['message']); } $nicknameRes = Filter::init($nickname,$_W['source'],1); if($nicknameRes['errno'] == 0){ $this->renderError($nicknameRes['message']); } //判断当前用户是否为黑名单 blackflag $blackFlag = pdo_getcolumn(PDO_NAME."member",['id'=>$_W['mid']],'blackflag'); if($blackFlag == 1) $this->renderError('您已被加入黑名单,如有疑问请联系平台'); #2、判断获取相关的值 $set = Setting::agentsetting_read('pocket'); if($set['locastatus'] == 2 && empty($location)){ $this->renderError('请设置定位信息'); } //判断总共的发帖限制 if(empty($id)){ $isVip = WeliamWeChat::VipVerification($_W['mid'],true); $allLimit = $set['alllimit'] ? : 0;//普通发帖限制 $daylimit = $set['daylimit'] ? : 0;//普通发帖限制 if($isVip > 0){ $allLimit = $set['vipalllimit'] ? : 0;//会员发帖限制 $daylimit = $set['vipdaylimit'] ? : 0;//会员发帖限制 } if($allLimit > 0){ $sendTotal = pdo_getcolumn(PDO_NAME."pocket_informations",['mid'=>$_W['mid']],'count(*)'); if($sendTotal >= $allLimit) $this->renderError('发帖失败,发帖数量已到限制!'); } //判断今日的发帖限制 if($daylimit > 0){ $dayStartTime = strtotime(date("Y-m-d "." 00:00:00 ")); $dayEneTime = strtotime(date("Y-m-d "." 23:59:59 ")); $sendTotal = pdo_fetchcolumn("SELECT count(id) FROM ".tablename(PDO_NAME."pocket_informations") ." WHERE createtime > {$dayStartTime} AND createtime < {$dayEneTime} AND mid = {$_W['mid']} "); if($sendTotal >= $daylimit) $this->renderError('今日发帖数量已到限制,请择日发帖!'); } } //判断是否需要支付 $class_id = $type > 0 ? $type : $oneType; $class_info = pdo_get(PDO_NAME."pocket_type",['id'=>$class_id],['price','vipprice','vipstatus']); if($class_info['vipstatus'] == 1 && $isVip > 0 ){ $class_price = $class_info['vipprice']; }else{ $class_price = $class_info['price']; } if($class_info['vipstatus'] == 2 && empty($isVip)){ $this->renderError('此分类为会员专区,请先成为会员'); } $pay_price = sprintf("%.2f", $class_price); //判断是否需要审核 $status = $set['passstatus'] == 1 ? 0 : 1; #3、信息拼装 $data = [ 'uniacid' => $_W['uniacid'] ,//公众号id 'aid' => $_W['aid'] ,//代理id 'status' => $pay_price > 0 ? 5 : $status ,//0 显示,1 审核中 2 不显示 3已删除 5未支付 'content' => $content ,//具体内容 'content_json'=> json_encode($content) ,//json化具体内容 'img' => $img ,//图片数组 'mid' => $_W['mid'] ,//用户id 'onetype' => $oneType ,//一级分类 'type' => $type > 0 ? $type : $oneType ,//二级分类 'avatar' => $_W['wlmember']['avatar'] ,//头像 'nickname' => $nickname ,//联系人姓名 'phone' => $phone ,//电话 'share_title' => $share_title ,//分享标题 'keyword' => $keyword ,//关键词 'location' => $location ? : '' ,//定位(经纬度) 'address' => $address ? : '' ,//地址 'locastatus' => $locastatus ,//定位开关 1开启 0关闭 'video_link' => $videoLink,//视频文件路径 'video_img_link' => $video_img_link,//视频封面图 'address_info' => $address_info,//定位地址名称 ]; #4、储存信息 if($id > 0){ //编辑帖子 if($pay_price > 0 ){ //当前帖子需要支付 关联查询订单 判断是否已经支付 $status = pdo_getcolumn(PDO_NAME . "order" , ['fkid' => $id , 'plugin' => 'pocket'] , 'status'); $status = $status ? $status : 0; if($status == 3){ //当前帖子已经支付 $pay_price = 0; $data['status'] = $set['passstatus'] == 1 ? 0 : 1; } } $res = pdo_update(PDO_NAME."pocket_informations",$data,['id'=>$id]); }else{ //添加帖子 $data['createtime'] = $data['replytime'] = $data['refreshtime'] = time();//创建时间 $res = pdo_insert(PDO_NAME."pocket_informations",$data); $id = pdo_insertid(); //信息发布成功 发送模板消息 if($res){ if($set['passstatus'] != 1 && $pay_price <= 0){ //未开启免审核 给代理商管理员发送模板消息 if(empty($_W['areaname'])){ $areaid = pdo_getcolumn(PDO_NAME.'oparea',array('aid'=>$_W['aid']),'areaid'); $_W['areaname'] = pdo_getcolumn(PDO_NAME.'area',array('id'=>$areaid),'name'); } $className = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$oneType],'title'); $first = '您好,用户['.$nickname.']在[' .$_W['areaname'].']发布了一个同城信息';//消息头部 $type = "帖子发布";//业务类型 $content = '帖子分类:'.$className;//业务内容 $status = "待审核";//处理结果 $remark = "请尽快处理!";//备注信息 $time = $data['createtime'];//操作时间 $url = h5_url('pages/subPages/postDetails/postDetails',['id' => $id,'examine' => 1]); News::noticeAgent('pocketfabu',$_W['aid'],$first,$type,$content,$status,$remark,$time,$url); } } } if($res) $this->renderSuccess('发布成功',['id'=>$id,'status'=>$pay_price > 0 ? 1 : 0]); else $this->renderError('发布失败或无内容修改'); } /** * Comment: 发布成功后的扩展操作 * Author: zzw * Date: 2019/8/29 16:05 */ public function extension(){ global $_W,$_GPC; $set = Setting::agentsetting_read('pocket'); $isVip = WeliamWeChat::VipVerification($_W['mid'],true); $data['list'] = $set['price'];//置顶信息列表 if(empty($set['is_openRed'])){ $data['red_list'] = []; }else{ $data['red_list'] = $set['red_envelopes'];//红包设置信息列表 } if(!empty($data['list'])){ $data['set']['is_openTop'] = 1; if($isVip > 0){ foreach($data['list'] as &$st){ $st['price'] = $st['vipprice']; } } }else{ $data['set']['is_openTop'] = 0; } if(!empty($data['red_list'])){ $data['set']['is_openRed'] = 1; }else{ $data['set']['is_openRed'] = 0; } //定制 全频推广 if(Customized::init('pocket140')){ $data['set']['fullchnnel'] = 1; }else{ $data['set']['fullchnnel'] = 0; } $this->renderSuccess('扩展操作信息',$data); } /** * Comment: 红包领取 * Author: zzw * Date: 2019/8/29 17:30 */ public function redDetail(){ global $_W, $_GPC; #1、获取参数信息 $_GPC['id'] > 0 ? $id = $_GPC['id'] : $this->renderError("缺少参数:id");//红包(帖子)id $mid = $_W['mid'];//用户id #2、获取红包信息 红包领取信息 $pocket = pdo_get(PDO_NAME . "pocket_informations", ['id' => $id],['aid','package','sredpack']);//红包(帖子)信息 $count = pdo_fetchcolumn("SELECT count(*) FROM " . tablename(PDO_NAME . "red_envelope") . " WHERE pid = {$id}");//已领取人数 $surplus = $pocket['package'] - $count;//剩余的红包个数 if ($surplus <= 0) $this->renderError('来晚一步,红包已被抢完!'); $userGRE = pdo_get(PDO_NAME . "red_envelope",['mid' => $_W['mid'], 'pid' => $id]); if ($userGRE) $this->renderError('不可以重复领取哦!'); #3、根据红包算法获取当前用户应该领取的红包 $money = Pocket::redEnvelopeAlgorithm($pocket['sredpack'], $surplus); #4、生成并且记录用户领取信息 $getInfo = [ 'uniacid' => $_W['uniacid'], 'aid' => $pocket['aid'], 'pid' => $id,//关联红包(帖子)id 'mid' => $mid,//用户id 'gettime' => time(),//领取时间 'money' => $money,//红包金额 ]; $res = pdo_insert(PDO_NAME . "red_envelope", $getInfo); if(!$res){ $this->renderError('红包领取失败,请刷新重试!'); } #5、修改红包信息 $balance = $pocket['sredpack'] - $money;//红包余额 $res = pdo_update(PDO_NAME . "pocket_informations",['sredpack' => $balance], ['id' => $id]); if(!$res){ $this->renderError('红包领取失败,请刷新重试!'); } #6、领取成功 修改用户余额信息 $change = Member::credit_update_credit2($mid, $money, '掌上信息抢红包'); if(is_error($change)){ $this->renderError($change['message']); } $data = [ 'money' => $money , 'nickname' => $_W['wlmember']['nickname'] , 'avatar' => $_W['wlmember']['avatar'] , ]; $this->renderSuccess('领取成功',$data); } /** * Comment: 红包领取信息列表 * Author: zzw * Date: 2019/8/29 18:32 */ public function receivingRecords(){ global $_W,$_GPC; #1、获取基本信息 $_GPC['id'] > 0 ? $id = $_GPC['id'] : $this->renderError("缺少参数:id");//红包(帖子)id $page = $_GPC['page'] ? : 1; $pageIndex = $_GPC['page_index'] ? : 10; #2、获取列表信息 $data = Pocket::getGetList($id,$page,$pageIndex); $data['cashflag'] = $_W['wlsetting']['cashset']['withdrawals']; $this->renderSuccess('红包领取信息列表',$data); } /** * Comment: 用户收藏帖子功能 * Author: zzw * Date: 2019/8/30 14:45 */ public function collection(){ global $_W,$_GPC; #1、参数获取 $_GPC['id'] ? $id = $_GPC['id'] : $this->renderError('缺少参数:id'); $table = PDO_NAME."pocket_collection"; $data = ['tid'=>$id,'mid'=>$_W['mid']]; #2、判断是否已经收藏 $is_have = pdo_get($table,$data); if($is_have){ //已收藏,取消收藏 $res = pdo_delete($table,$data); }else{ //未收藏,添加收藏 $data['aid'] = $_W['aid']; $data['uniacid'] = $_W['uniacid']; $data['create_time'] = time(); $res = pdo_insert($table,$data); } #3、判断操作是否成功,返回对应的内容 if($res) $this->renderSuccess('操作成功'); else $this->renderError('操作失败'); } /** * Comment: 获取当前用户收藏的帖子的列表 * Author: zzw * Date: 2019/8/30 15:23 */ public function getCollectionList(){ global $_W,$_GPC; #1、参数获取 $page = $_GPC['page'] ? : 1; $pageIndex = $_GPC['page_index'] ? : 5; $pageStart = $page * $pageIndex - $pageIndex; $table = tablename(PDO_NAME."pocket_collection"); #2、获取总数 $total = pdo_fetchcolumn("SELECT COUNT(*) FROM ".$table ." WHERE mid = {$_W['mid']} "); $data['total'] = ceil($total / $pageIndex); #3、获取列表信息 $data['list'] = pdo_fetchall("SELECT b.id,b.mid,b.avatar,b.nickname,b.top,FROM_UNIXTIME(b.createtime,'%Y-%m-%d %H-%i') as createtime,b.img, b.phone,b.content,b.content_json,b.look,b.share,b.package,b.video_link,b.video_img_link,b.likeids,b.onetype,b.type,b.keyword FROM ".$table ." as a LEFT JOIN ".tablename(PDO_NAME."pocket_informations") ." as b ON a.tid = b.id WHERE a.mid = {$_W['mid']} ORDER BY a.create_time DESC LIMIT {$pageStart},{$pageIndex} "); #4、循环进行信息的处理 if(is_array($data['list']) && count($data['list']) > 0){ foreach($data['list'] as $key => &$val){ $fabulous = unserialize($val['likeids']); $val['content'] = htmlspecialchars_decode($val['content']); if (!empty($val['content_json'])) $val['content'] = json_decode($val['content_json']); //$videoInfo = UploadFile::videoInfoHandle($val['video_link']); //$val['video_link'] = $videoInfo['link']; $val['video_link'] = tomedia($val['video_link']); $val['video_img_link'] = tomedia($val['video_img_link']); //获取点赞数量 $val['fabulous_num'] = is_array($fabulous) ? count($fabulous) : 0; //判断当前用户是否已经点赞 0=未点赞 1=已点赞 if(is_array($fabulous) && in_array($_W['mid'],$fabulous)) $val['is_fabulous'] = 1; else $val['is_fabulous'] = 0; //获取点赞用户的头像 $val['fabulous_avatar'] = []; if($val['fabulous_num'] > 0){ foreach($fabulous as $item){ $val['fabulous_avatar'][] = pdo_getcolumn(PDO_NAME."member",['id'=>$item],'avatar'); } } //从新定义头像链接 //$val['avatar'] = tomedia($val['avatar']); // 获取用户信息的头像和 Member::getMemberInfo($val,$val['mid']); //图片处理 $val['img'] = unserialize($val['img']); if(is_array($val['img']) && count($val['img']) > 0){ foreach ($val['img'] as $imgK => &$imgV){ $imgV = tomedia($imgV); } } //处理标签 $val['keyword'] = unserialize($val['keyword']); //分类获取 if($val['onetype'] > 0) $val['onetype'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$val['onetype']],'title'); else $val['onetype'] = ''; if($val['type'] > 0) $val['type'] = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$val['type']],'title'); else $val['type'] = ''; //评论获取 获取三条 $val['comment_list'] = Pocket::getComment(1,3,$val['id']); unset($val['likeids']); } } $this->renderSuccess('帖子收藏列表',$data); } /** * Comment: 删除帖子 * Author: zzw * Date: 2019/9/4 16:33 */ public function delete(){ global $_W,$_GPC; #1、参数获取 $id = $_GPC['id'] OR $this->renderError('缺少参数:帖子id'); $table = PDO_NAME."pocket_informations"; #2、获取帖子信息 $sendMid = pdo_getcolumn($table,['id'=>$id],'mid'); if($_W['mid'] != $sendMid) $this->renderError('非法操作'); #2、删除操作 $res = pdo_update($table,array('status' => 3),array('id' => $id)); if($res) $this->renderSuccess('删除成功'); else $this->renderError('删除失败'); } /** * Comment: 获取帖子编辑信息 * Author: zzw * Date: 2019/9/16 14:01 */ public function editPocket(){ global $_W,$_GPC; #1、获取参数 $id = $_GPC['id'] OR $this->renderError("缺少id:帖子id"); #2、获取帖子详细信息 $info = pdo_get(PDO_NAME."pocket_informations",['id'=>$id] ,['content','content_json','img','onetype','type','nickname','phone','share_title','keyword','location','address','address_info','locastatus','video_link','video_img_link']); if(!$info) $this->renderError('帖子不存在!'); //图片信息处理 $info['img'] = is_array(unserialize($info['img'])) ? unserialize($info['img']) : []; if(is_array($info['img']) && count($info['img']) > 0){ foreach ($info['img'] as $key => $val) { $info['img_url'][$key] = tomedia($val); } } //标签信息处理 $info['keyword'] = is_array(unserialize($info['keyword'])) ? unserialize($info['keyword']) : []; //经纬度处理 $info['location'] = unserialize($info['location']); //视频地址 //$info['video_url'] = $info['video_link'] ? tomedia($info['video_link']) : ''; //$videoInfo = UploadFile::videoInfoHandle($info['video_link']); $info['video_url'] = tomedia($info['video_url']); $info['video_img_link'] = tomedia($info['video_img_link']); #2、获取当前分类的全部标签信息 $cate_id = $info['type'] > 0 ? $info['type'] : $info['onetype'] > 0 ? $info['onetype'] : 0; $keyword = pdo_getcolumn(PDO_NAME."pocket_type",['id'=>$cate_id],'keyword'); if($keyword) $keyword = explode(',',trim($keyword,',')); $info['whole_key'] = $keyword; $info['content'] = htmlspecialchars_decode($info['content']); if (!empty($info['content_json'])) $info['content'] = json_decode($info['content_json']); $this->renderSuccess('帖子编辑信息',$info); } /** * Comment: 获取掌上信息免责声明 * Author: zzw * Date: 2019/10/14 11:33 */ public function getDisclaimer(){ global $_W,$_GPC; $set = Setting::agentsetting_read('pocket'); $data['disclaimer'] = !empty($set['statement']) ? $set['statement'] : '本平台发布的所有信息展示,内容本身与平台本身无关,平台不负任何责任。'; $data['hidesettle'] = $set['storesettle']?$set['storesettle']:0; //定制 if(Customized::init('pocket140') > 0){ $data['korea'] = 1; }else{ $data['korea'] = 0; } $this->renderSuccess('掌上信息发帖免责声明',$data); } /** * Comment: 分享时记录分享数量 * Author: zzw * Date: 2019/10/18 11:05 */ public function shareNum(){ global $_W,$_GPC; #1、参数获取 $id = $_GPC['id'] OR $this->renderError('缺少参数:id'); #2、获取当前分享数量 $shareNum = pdo_getcolumn(PDO_NAME."pocket_informations",['id'=>$id],'share'); $totalNum = intval($shareNum) + 1; #2、修改分享数量 pdo_update(PDO_NAME."pocket_informations",['share'=>$totalNum],['id'=>$id]); $this->renderSuccess('记录成功'); } /** * Comment: 判断用户是否被加入黑名单 * Author: wlf * Date: 2020/06/28 16:28 */ public function checkBlack(){ global $_W; $flag = pdo_getcolumn(PDO_NAME.'pocket_blacklist',array('uniacid'=>$_W['uniacid'],'mid'=>$_W['mid'],'aid'=>$_W['aid']),'id'); if(!empty($flag)){ $tips = $_W['wlsetting']['userset']['black_desc'] ? : '您被禁止评论,请联系客服'; $this->renderError($tips); } } /** * Comment: 帖子刷新接口 * Author: wlf * Date: 2021/11/05 15:38 */ public function refreshPocket(){ global $_W,$_GPC; $informid = $_GPC['id']; if(empty($informid)){ $this->renderError('参数错误,请刷新重试'); } $inform = pdo_get('wlmerchant_pocket_informations',array('id' => $informid),['refreshtime','onetype','type']); if(empty($inform)){ $this->renderError('信息错误,请刷新重试'); } $type = pdo_get(PDO_NAME."pocket_type",['id'=>$inform['type']],['refreshprcie','refreshvip','refreshday']); //判断价格 $vipflag = WeliamWeChat::VipVerification($_W['mid'],true); if($vipflag > 0 ){ $price = $type['refreshvip']; }else{ $price = $type['refreshprcie']; } $timeflag = $inform['refreshtime'] + $type['refreshday']*86400 - time(); if(Customized::init('pocket140') > 0){ if($timeflag < 0){ $price = 0; } }else{ if($timeflag > 0){ $timeflag = ceil($timeflag/3600); $this->renderError('您在'.$timeflag.'小时后可以再次刷新'); } } if($price > 0){ $this->renderSuccess('需要支付',['prcie' => $price]); }else{ pdo_update('wlmerchant_pocket_informations',array('refreshtime' => time()),array('id' => $informid)); $this->renderSuccess('刷新成功',['prcie' => 0]); } } /** * Comment: 获取帖子关联商户接口 * Author: wlf * Date: 2021/11/10 14:18 */ public function getPocketStore(){ global $_W,$_GPC; #1、参数获取 $pocketid = $_GPC['pocketid'] ? : -1; $lng = $_GPC['lng'] ? : 0;//104.0091133118 经度 $lat = $_GPC['lat'] ? : 0;//30.5681964123 纬度 $storeids = pdo_getcolumn(PDO_NAME.'pocket_informations',array('id'=>$pocketid),'storeid'); $list = []; if(!empty($storeids)){ $storeids = unserialize($storeids); $storeids = implode(",",$storeids); $storeids = '('.$storeids.')'; $list = pdo_fetchall("SELECT id,storename,logo,address,address_info,location,storehours,pv,score,tag FROM " . tablename(PDO_NAME . "merchantdata") . " WHERE id IN {$storeids} AND enabled = 1 ORDER BY listorder DESC "); #2、循环处理商户信息 foreach ($list as $key => &$val) { //图片处理 $val['logo'] = tomedia($val['logo']); //店铺标签 $val['tags'] = []; $tagids = unserialize($val['tag']); if (!empty($tagids)) { $tags = pdo_getall('wlmerchant_tags' , ['id' => $tagids] , ['title']); $val['tags'] = $tags ? array_column($tags , 'title') : []; } unset($val['tag']); //定位处理 $val['distance'] = Store::shopLocation(0 , $lng , $lat , unserialize($val['location'])); //营业时间处理 $storehours = unserialize($val['storehours']); if(!empty($storehours['startTime'])){ $val['storehours'] = $storehours['startTime'] . ' - ' . $storehours['endTime']. " 营业"; }else{ $val['storehours'] = ''; foreach($storehours as $hk => $hour){ if($hk > 0){ $val['storehours'] .= ','.$hour['startTime'] . ' - ' . $hour['endTime']; }else{ $val['storehours'] .= $hour['startTime'] . ' - ' . $hour['endTime']; } } $val['storehours'] .= " 营业"; } $val['score'] = intval($val['score']); //查询认证和保证金 if (p('attestation')) { $val['attestation'] = Attestation::checkAttestation(2 , $val['id']); } else { $val['attestation'] = 0; } } #2、获取店铺商品活动信息 $list = WeliamWeChat::getStoreList($list); } $this->renderSuccess('用户店铺列表' , $list); } /** * Comment: 帖子推广接口 * Author: wlf * Date: 2021/11/17 14:56 */ public function channelPocket(){ global $_W,$_GPC; $informid = $_GPC['id']; if(empty($informid)){ $this->renderError('参数错误,请刷新重试'); } $inform = pdo_get('wlmerchant_pocket_informations',array('id' => $informid),['id']); if(empty($inform)){ $this->renderError('信息错误,请刷新重试'); } $set = Setting::agentsetting_read('pocket'); //判断价格 $vipflag = WeliamWeChat::VipVerification($_W['mid'],true); if($vipflag > 0 ){ $price = $set['fullvip']; }else{ $price = $set['fullprice']; } if($price > 0){ $this->renderSuccess('需要支付',['prcie' => $price]); }else{ pdo_update('wlmerchant_pocket_informations',array('fullchnnel' => 1),array('id' => $informid)); $this->renderSuccess('推广成功',['prcie' => 0]); } } /** * Comment: 帖子审核接口 * Author: wlf * Date: 2022/03/11 11:38 */ public function examinePocket(){ global $_W,$_GPC; $informid = $_GPC['id']; $status = $_GPC['status']; //1通过 2驳回 $reason = $_GPC['reason']; //驳回原因 if(empty($informid)){ $this->renderError('参数错误,请刷新重试'); } $inform = pdo_get('wlmerchant_pocket_informations',array('id' => $informid),['status','mid']); if($inform['status'] != 1){ $this->renderError('帖子状态错误,无法审核'); } $agentuser = pdo_get('wlmerchant_agentadmin', array('uniacid' => $_W['uniacid'],'aid' => $_W['aid'],'mid' => $_W['mid'], 'notice' => 1), array('id','noticeauthority')); if(empty($agentuser)){ $this->renderError('您无审核权限'); }else{ $noticeauthority = unserialize($agentuser['noticeauthority']); if(empty($noticeauthority)) $noticeauthority = []; if(!in_array('pocketfabu',$noticeauthority) && !empty($noticeauthority)) { $this->renderError('您无审核权限'); } } if($status == 1){ $res = pdo_update('wlmerchant_pocket_informations', array('status' => 0), array('id' => $informid)); }else{ $res = pdo_update(PDO_NAME . 'pocket_informations', array('status' => 2, 'reason' => $reason), array('id' => $informid)); } if ($res) { Pocket::passnotice($informid); $this->renderSuccess('操作成功'); }else{ $this->renderError('操作失败,请刷新重试'); } } /** * Comment: 首页幻灯片 * Author: whj * Date: 2023/03/28 10:20 */ public function advList() { global $_W, $_GPC; $pindex = max(1, intval($_GPC['page'])); $psize = 10; $data = []; $adves = Dashboard::getAllAdv($pindex-1,$psize,'',0,$_GPC['keyname']); $advs = $adves['data']; foreach ($advs as $key => $value) { $data[$key] = [ 'link' => $value['link'], 'thumb' => tomedia($value['thumb']) ]; } $this->renderSuccess('数据获取成功',$data); } /** * 获取商户帖子信息 * @return void */ public function getStorePocketList() { global $_GPC; $pageSize = $_GPC['pageSize'] ?: 10; $_GPC['page_index'] = $pageSize; $_GPC['status'] = 0; $sid = $_GPC['sid'] OR $this->renderError('缺少商户id'); $mid = pdo_getcolumn(PDO_NAME . 'merchantuser',['storeid' => $sid],'mid'); if (empty($mid)) { $data = [ 'total' => 0, 'list' => [] ]; $this->renderSuccess('企业帖子列表',$data); //$this->renderError('商户未绑定用户'); } $_GPC['mid'] = $mid; $this->userList('企业帖子列表'); } }