*/ public function index(){ //传参数据 $data_list = $this->params; //首页广告图片 $indexadvert = AdvertModel::where(['type'=>1])->field('id,linkurl,thumb')->select()->toArray(); if(!empty($indexadvert)){ foreach ($indexadvert as $k=>$v){ $indexadvert[$k]['thumb'] = $this->getFileUrl($v['thumb']); } } //公告 $indexnotice = MemberServiceDetailModel::field('id,title')->select()->toArray(); //城市数据 $citylist = CitysModel::where('is_delete',0)->order('sort asc,create_time desc')->field('id,thumb,title')->select()->toArray(); if(!empty($citylist)){ foreach ($citylist as $k=>$v){ $citylist[$k]['thumb'] = $this->getFileUrl($v['thumb']); } } //置顶搭子群数据 $topgroups = MemberServiceModel::where(['is_index'=>1,'is_delete'=>0])->order('sort asc,create_time desc')->field('id,index_thumb,index_title')->select()->toArray(); if(!empty($topgroups)){ foreach ($topgroups as $k=>$v){ $topgroups[$k]['index_thumb'] = $this->getFileUrl($v['index_thumb']); } } //页数 $page = 1; if(isset($data_list['page'])){ $page = intval($data_list['page']); } $page = ($page-1); $page=$page*20; $limit=$page.',20'; //搭子群数据 $where = []; $where[] = ['is_delete','eq',0]; $where[] = ['id','neq',12]; if(isset($data_list['keyword']) && !empty($data_list['keyword'])){ $keyword = trim($data_list['keyword']); $where2 = []; $where2[] = ['is_delete','eq',0]; $where2[] = ['title','like',"%$keyword%"]; $ids = CitysModel::where($where2)->column('id'); $ids = implode(',',$ids); $where[] = ['cityid','in',$ids]; } if(isset($data_list['cityid']) && !empty($data_list['cityid'])){ $cityid = intval($data_list['cityid']); $where[] = ['cityid','eq',$cityid]; } $groups = MemberServiceModel::where($where)->order('sort asc,create_time desc')->field('id,title,summary,thumb')->limit($limit)->select()->toArray(); if(!empty($groups)){ foreach ($groups as $k=>$v){ $groups[$k]['thumb'] = $this->getFileUrl($v['thumb']); } } //浏览数 $numberviews = MemberServiceModel::where('is_delete',0)->sum('browse'); //发布 $sendnum = MemberServiceModel::where('is_delete',0)->count(); //用户数 $usernum = MemberModel::where('is_delete',0)->count(); $indexfootadvert = AdvertModel::where(['type'=>4])->field('id,linkurl,thumb')->find(); $indexfootadvert['thumb'] = $this->getFileUrl($indexfootadvert['thumb']); apiReturn('200', '查询成功',[ 'indexadvert'=>$indexadvert, 'indexnotice'=>$indexnotice, 'citylist'=>$citylist, 'topgroups'=>$topgroups, 'groups'=>$groups, 'numberviews'=>$numberviews,//浏览数 'sendnum'=>$sendnum,//发布数 'usernum'=>$usernum,//用户数 'indexfootadvert' => $indexfootadvert, ]); } public function getindexfootadinfo(){ $indexfootadvert = AdvertModel::where(['type'=>4])->find(); $img2arr = explode(',',$indexfootadvert['img2']); $randomElement = $img2arr[array_rand($img2arr)]; $randomElement = $this->getFileUrl($randomElement); $backgroundimage = $this->getFileUrl($indexfootadvert['img1']); apiReturn('200', '查询成功',[ 'randomElement'=>$randomElement, 'backgroundimage'=>$backgroundimage, ]); } /** * 搭子群详情 * @param $groupid 群id * @author loomis<2477365162@qq.com> */ public function groupdetail(){ //传参数据 $data_list = $this->params; if(!isset($data_list['groupid']) || empty($data_list['groupid'])){ apiReturn('500', '群id不能为空'); } $groupid = intval($data_list['groupid']); $info = MemberServiceModel::where(['id'=>$groupid,'is_delete'=>0])->find(); if(empty($info)){ apiReturn('500', '未查询到相关群信息'); } $type=1; $qrcodeimg = ''; if(!empty(MemberServiceOrderModel::where(['service_id'=>$groupid,'uid'=>$this->user_id,'status'=>2])->count())){ $type = 2; $qrcodeimg = $info['qrcodeimg']; } $strs = 'https://'.$_SERVER['HTTP_HOST'].'/uploads/'; $message = str_replace("/uploads/", $strs, $info['message']); $info->browse = $info->browse+1; $info->save(); apiReturn('200', '查询成功',[ 'id'=>$groupid, 'type'=>$type, 'qrcodeimg'=>$this->getFileUrl($qrcodeimg), 'title'=>$info['title'], 'thumb'=>$this->getFileUrl($info['thumb']), 'create_time'=>date('Y-m-d H:i:s',$info['create_time']), 'summary'=>$info['summary'], 'standard'=>$info['standard'], 'message'=>$message, ]); } /** * 购买搭子群二维码 * @param $groupid 群id * @author loomis<2477365162@qq.com> */ public function buygroup(){ //传参数据 $data_list = $this->params; if(!isset($data_list['groupid']) || empty($data_list['groupid'])){ apiReturn('500', '群id不能为空'); } $groupid = intval($data_list['groupid']); $info = MemberServiceModel::where(['id'=>$groupid,'is_delete'=>0])->find(); if(empty($info)){ apiReturn('500', '未查询到相关群信息'); } $orderinfo = MemberServiceOrderModel::where(['type'=>1,'uid'=>$this->user_id,'service_id'=>intval($data_list['groupid']),'status'=>2])->find(); if(!empty($orderinfo)){ return json(['code' => 500, 'msg' => '此群二维码用户已经购买,请勿重复购买']); }else{ //生成订单号 $numRes = true; do{ $ordernum = 'O'.date('ymd').$this->user_id.rand(100,999); $count = MemberServiceOrderModel::where(['ordernum'=>$ordernum])->count(); if(empty($count)) { $numRes=false; } }while($numRes); $totalprice = $info['price']; $res = MemberServiceOrderModel::create([ 'type'=>1, 'uid'=>$this->user_id, 'ordernum'=>$ordernum, 'service_id'=>intval($data_list['groupid']), 'totalprice'=>$totalprice, 'status'=>1, 'create_time'=>time(), 'timeout_time'=>time()+600, 'service_title'=>$info['title'], 'service_summary'=>$info['summary'], 'service_price'=>$info['price'], 'service_thumb'=>$info['qrcodeimg'], ]); } if($res){ //微信小程序支付回调地址 $notify_url = 'https://' . $_SERVER['HTTP_HOST'] . url('api/wxpaynotify/index'); $config = [ // 必要配置 'app_id' => config('smallprogram_appid'), 'mch_id' => config('wxpay_mchid'), 'key' => config('wxpay_paykey'), // API v2 密钥 (注意: 是v2密钥 是v2密钥 是v2密钥) // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书) 'cert_path' => get_file_path(config('wxpay_appclient_cert')), // XXX: 绝对路径!!!! 'key_path' => get_file_path(config('wxpay_appclient_key')), // XXX: 绝对路径!!!! 'notify_url' => $notify_url, // 你也可以在下单时单独设置来覆盖它 ]; $total_fee = $totalprice * 100; $app = Factory::payment($config); $jssdk = $app->jssdk; if(empty($total_fee)){ $total_fee = 1; } //下单 $result = $app->order->unify([ 'body' => 'DAZIQUN', 'out_trade_no' => $ordernum, 'total_fee' => $total_fee, 'spbill_create_ip' => '', // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址 'notify_url' => $notify_url, // 支付结果通知网址,如果不设置则会使用配置里的默认地址 'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型 'openid' => MemberModel::where(['id' => $this->user_id])->value('openid'), ]); //组合参数 $pay = $jssdk->bridgeConfig($result['prepay_id'], false); // 返回数组 return json(['code' => 200, 'msg' => '微信支付信息','result'=>$pay]); }else{ return json(['code' => 500, 'msg' => '服务器繁忙,请稍后再试']); } } /** * 留言板 * @param $int $type 1男生通道 2女生通道 * @param int $page 页数(默认为1,每页显示20条数据) * @author loomis<2477365162@qq.com> */ public function messageboard(){ //传参数据 $data_list = $this->params; //页数 $page = 1; if(isset($data_list['page'])){ $page = intval($data_list['page']); } $page = ($page-1); $page=$page*20; $limit=$page.',20'; //留言板数据 $where = []; $where[] = ['status','eq',1]; $type=1; if(isset($data_list['type']) && !empty($data_list['type'])){ $type = intval($data_list['type']); } $where[] = ['type','eq',$type]; $list = MemberMessagesModel::where($where)->order('istop desc,create_time desc')->field('id,uid,message,thumbs,create_time,wechat_number')->limit($limit)->select()->toArray(); if(!empty($list)){ foreach ($list as $k=>$v){ $thumbs = explode(',',$v['thumbs']); foreach ($thumbs as $key=>$val){ $thumbs[$key] = $this->getFileUrl($val); } $list[$k]['thumbs'] = $thumbs; //用户信息 $userinfo = MemberModel::where('id',$v['uid'])->find(); $list[$k]['headimg'] = $this->getFileUrl($userinfo['headimg']); $list[$k]['nickname'] = $userinfo['nickname']; $list[$k]['create_time'] = date('Y-m-d H:i:s',$v['create_time']); //用户是否购买此留言的微信号 $isbuy = MemberBalanceLogsModel::where(['uid'=>$this->user_id,'orderid'=>$v['id'],'mark'=>'购买留言板留言信息微信号'])->count(); if($v['uid']==$this->user_id){ $isbuy = 1; } $list[$k]['isbuy'] = !empty($isbuy)?1:0; $list[$k]['wechat_number'] = !empty($isbuy)?$v['wechat_number']:""; } } //广告图片 $advertlist = AdvertModel::where(['type'=>2])->field('id,linkurl,thumb')->select()->toArray(); if(!empty($advertlist)){ foreach ($advertlist as $k=>$v){ $advertlist[$k]['thumb'] = $this->getFileUrl($v['thumb']); } } apiReturn('200', '查询成功',[ 'list'=>$list, 'advert'=>$advertlist, ]); } /** * 发布留言-留言板置顶积分 * @author loomis<2477365162@qq.com> */ public function gettoppoints(){ apiReturn('200', '查询成功',[ 'levemeesga_points'=>config('levemeesga_points'), 'levemessage_toppoints'=>config('levemessage_toppoints'), 'levemessage_lookwechnum'=>config('levemessage_lookwechnum'), ]); } /** * 发布留言 * @param $int $type 1男生通道 2女生通道 * @param string $message 留言信息 * @param string $thumbs 图片(多个图片请使用“,”进行拼接) * @param $int $istop 0默认 1置顶 * @author loomis<2477365162@qq.com> */ public function sendmessage(){ //传参数据 $data_list = $this->params; if (!isset($data_list['type']) || empty($data_list['type'])) { return json(['code' => 500, 'msg' => '请选择留言通道']); } if (!isset($data_list['message']) || empty($data_list['message'])) { return json(['code' => 500, 'msg' => '留言信息不能为空']); } if (!isset($data_list['thumbs']) || empty($data_list['thumbs'])) { return json(['code' => 500, 'msg' => '图片不能为空']); } if (!isset($data_list['wechat_number']) || empty($data_list['wechat_number'])) { return json(['code' => 500, 'msg' => '微信号不能为空']); } $message = trim($data_list['message']); if($this->illegalcharacters($message)){ apiReturn('500', '非法参数'); } $istop = 0; if (isset($data_list['istop']) && !empty($data_list['istop'])) { $istop = intval($data_list['istop']); } //用户积分是否足够 $userinfo = MemberModel::where('id',$this->user_id)->find(); $sendpoints = intval(config('levemeesga_points')); if($istop==1){ $sendpoints = $sendpoints + intval(config('levemessage_toppoints')); } if($userinfo['balance']<$sendpoints){ apiReturn('500', '发布失败,积分不足'); } $res = MemberMessagesModel::create([ 'uid'=>$this->user_id, 'type'=>intval($data_list['type']), 'message'=>trim($data_list['message']), 'thumbs'=>trim($data_list['thumbs']), 'wechat_number'=>trim($data_list['wechat_number']), 'istop'=>$istop, ]); if ($res) { //插入积分记录 MemberBalanceLogsModel::addGetLog($this->user_id,2,$sendpoints,$res['id'],'发布留言'); //扣除积分 $userinfo->balance = $userinfo->balance - $sendpoints; $userinfo->save(); apiReturn('200', '留言信息提交成功,等待平台审核'); } else { apiReturn('500', '留言信息提交失败'); } } //用户购买留言板微信号 public function buywechatnumber(){ //传参数据 $data_list = $this->params; if (!isset($data_list['id']) || empty($data_list['id'])) { return json(['code' => 500, 'msg' => '留言id不能为空']); } $id = intval($data_list['id']); $info = MemberMessagesModel::where('id',$id)->find(); if(empty($info)){ apiReturn('500', '未查询到留言板信息'); } //用户是否购买此留言的微信号 $isbuy = MemberBalanceLogsModel::where(['uid'=>$this->user_id,'orderid'=>$id,'mark'=>'查看留言板微信号'])->count(); if(!empty($isbuy)){ apiReturn('500', '您已购买过此留言的微信号'); } //扣除积分 $userinfo = MemberModel::where('id',$this->user_id)->find(); $levemessage_lookwechnum = intval(config('levemessage_lookwechnum')); if($userinfo['balance']<$levemessage_lookwechnum){ apiReturn('500', '购买失败,积分不足'); } //插入积分记录 MemberBalanceLogsModel::addGetLog($this->user_id,2,$levemessage_lookwechnum,$id,'购买留言板留言信息微信号'); //扣除积分 $userinfo->balance = $userinfo->balance - $levemessage_lookwechnum; $userinfo->save(); //反馈积分 $fankuio_points_num = $levemessage_lookwechnum * (config('levemessage_lookwechnumfan')/100); $fankuio_points_num = round($fankuio_points_num); if($fankuio_points_num<=0){ $fankuio_points_num = 1; } $message_userinfo = MemberModel::where('id',$info['uid'])->find(); $message_userinfo->balance = $message_userinfo->balance + $fankuio_points_num; $message_userinfo->save(); //插入积分记录 MemberBalanceLogsModel::addGetLog($info['uid'],1,$fankuio_points_num,$id,'留言板微信号反馈积分'); apiReturn('200', '购买成功'); } //获取购买微信好需要消耗的积分数 public function getbuywxnumjf(){ apiReturn('200', '查询成功',['jfnum'=>config('levemessage_lookwechnum')]); } }