userInfo['uid'],'collect','pink_product'); list($pink ,$pindAll)= StorePink::getPinkAll($id,true);//拼团列表 $data['pink'] = $pink; $data['user'] = $this->userInfo;//用户信息 $data['pindAll'] = $pindAll; $data['storeInfo'] = $combinationOne; $data['pink_ok_list']=StorePink::getPinkOkList($this->uid); $data['pink_ok_sum']=StorePink::getPinkOkSumTotalNum($id); $data['reply'] = StoreProductReply::getRecProductReply($combinationOne['product_id']); $data['replyCount'] = StoreProductReply::productValidWhere()->where('product_id',$combinationOne['product_id'])->count(); if($data['replyCount']){ $goodReply=StoreProductReply::productValidWhere()->where('product_id',$combinationOne['product_id'])->where('product_score',5)->count(); $data['replyChance']=bcdiv($goodReply,$data['replyCount'],2); $data['replyChance']=bcmul($data['replyChance'],100,3); }else $data['replyChance']=0; return JsonService::successful($data); } /** * 开团页面 * @param int $id * @return mixed */ public function get_pink($id = 0){ $is_ok = 0;//判断拼团是否完成 $userBool = 0;//判断当前用户是否在团内 0未在 1在 $pinkBool = 0;//判断当前用户是否在团内 0未在 1在 if(!$id) return JsonService::fail('参数错误'); $pink = StorePink::getPinkUserOne($id); if(isset($pink['is_refund']) && $pink['is_refund']) { if($pink['is_refund'] != $pink['id']){ $id = $pink['is_refund']; return $this->get_pink($id); }else{ return JsonService::fail('订单已退款'); } } if(!$pink) return JsonService::fail('参数错误'); list($pinkAll,$pinkT,$count,$idAll,$uidAll)=StorePink::getPinkMemberAndPinkK($pink); if($pinkT['status'] == 2){ $pinkBool = 1; $is_ok = 1; }else{ if(!$count){//组团完成 $is_ok = 1; $pinkBool=StorePink::PinkComplete($uidAll,$idAll,$this->userInfo['uid'],$pinkT); }else{ $pinkBool=StorePink::PinkFail($pinkAll,$pinkT,$pinkBool); } } if(!empty($pinkAll)){ foreach ($pinkAll as $v){ if($v['uid'] == $this->userInfo['uid']) $userBool = 1; } } if($pinkT['uid'] == $this->userInfo['uid']) $userBool = 1; $combinationOne = StoreCombination::getCombinationOne($pink['cid']); if(!$combinationOne) return JsonService::fail('拼团不存在或已下架'); $data['userInfo'] = $this->userInfo; $data['pinkBool'] = $pinkBool; $data['is_ok'] = $is_ok; $data['userBool'] = $userBool; $data['store_combination'] =$combinationOne; $data['pinkT'] = $pinkT; $data['pinkAll'] = $pinkAll; $data['count'] = $count; $data['store_combination_host'] = StoreCombination::getCombinationHost(); $data['current_pink_order'] = StorePink::getCurrentPink($id,$this->uid); return JsonService::successful($data); } /** * 获取今天正在拼团的人的头像和名称 * @return \think\response\Json */ public function get_pink_second_one() { return JsonService::successful(StorePink::getPinkSecondOne()); } /* * 取消开团 * @param int $pink_id 团长id * */ public function remove_pink($pink_id=0,$cid=0,$formId='') { if(!$pink_id || !$cid) return JsonService::fail('缺少参数'); $res=StorePink::removePink($this->uid,$cid,$pink_id,$formId); if($res) return JsonService::successful('取消成功'); else{ $error=StorePink::getErrorInfo(); if(is_array($error)) return JsonService::status($error['status'],$error['msg']); else return JsonService::fail($error); } } /** * TODO 生成海报 */ public function pink_share_poster() { list($pinkId) = UtilService::postMore([['id',0]],null,true); $pinkInfo = StorePink::getPinkUserOne($pinkId); $storeCombinationInfo = StoreCombination::getCombinationOne($pinkInfo['cid']); $data['title'] = $storeCombinationInfo['title']; if(stripos($storeCombinationInfo['image'], '/public/uploads/')) $data['image'] = ROOT_PATH.substr($storeCombinationInfo['image'],stripos($storeCombinationInfo['image'], '/public/uploads/'),strlen($storeCombinationInfo['image'])); else $data['image'] = $storeCombinationInfo['image']; $data['price'] = $pinkInfo['total_price']; $data['label'] = $pinkInfo['people'].'人团'; if($pinkInfo['k_id']) $pinkAll = StorePink::getPinkMember($pinkInfo['k_id']); else $pinkAll = StorePink::getPinkMember($pinkInfo['id']); $count = count($pinkAll)+1; $data['msg'] = '原价¥'.$storeCombinationInfo['product_price'].' 还差'.(int)bcsub((int)$pinkInfo['people'],$count,0).'人拼团成功'; try{ $name = $pinkId.'_'.$this->userInfo['uid'].'_'.$this->userInfo['is_promoter'].'_pink_share.jpg'; $imageInfo = SystemAttachment::getInfo($name,'name'); $siteUrl = SystemConfigService::get('site_url').DS; if(!$imageInfo){ $valueData = 'id='.$pinkId.'&pid='.$this->uid; // if($this->userInfo['is_promoter'] || SystemConfigService::get('store_brokerage_statu')==2) $valueData.='&pid='.$this->uid; $res = RoutineCode::getPageCode('pages/activity/goods_combination_status/index',$valueData,280); if(!$res) return JsonService::fail('二维码生成失败'); $imageInfo = UploadService::imageStream($name,$res,'routine/activity/pink/code'); if(!is_array($imageInfo)) return JsonService::fail($imageInfo); if($imageInfo['image_type'] == 1) $remoteImage = UtilService::remoteImage($siteUrl.$imageInfo['dir']); else $remoteImage = UtilService::remoteImage($imageInfo['dir']); if(!$remoteImage['status']) return JsonService::fail($remoteImage['msg']); SystemAttachment::attachmentAdd($imageInfo['name'],$imageInfo['size'],$imageInfo['type'],$imageInfo['dir'],$imageInfo['thumb_path'],1,$imageInfo['image_type'],$imageInfo['time'],2); $url = $imageInfo['dir']; }else $url = $imageInfo['att_dir']; if($imageInfo['image_type'] == 1) $data['url'] = str_replace('//','/',ROOT_PATH.$url); else $data['url'] = $url; $posterImage = UtilService::setShareMarketingPoster($data,'routine/activity/pink/poster'); if(!is_array($posterImage)) return JsonService::fail('海报生成失败'); SystemAttachment::attachmentAdd($posterImage['name'],$posterImage['size'],$posterImage['type'],$posterImage['dir'],$posterImage['thumb_path'],1,$posterImage['image_type'],$posterImage['time'],2); if($posterImage['image_type'] == 1) $posterImage['dir'] = $siteUrl.$posterImage['dir']; return JsonService::successful('ok',$posterImage['dir']); }catch (\Exception $e){ return JsonService::fail('系统错误:生成图片失败',['line'=>$e->getLine(),'message'=>$e->getMessage()]); } } }