verifyMarketApi($devkey); if( is_error_api($verify_result) ){ return $verify_result; } if( empty($market_key) ) { $result["error"] = '1'; $result["error_code"] = 11001; $result["msg"] = "未传入market_key参数"; return $result; } $marketList = Sql::select('a.*') ->from('syweb_market a') ->where('a.market_key=?',$market_key) ->get($this->db ,null); if( empty($marketList) || count($marketList)<=0 ) { $result["error"] = '1'; $result["error_code"] = 11002; $result["msg"] = "market_key无效"; return $result; } $marketList = $marketList[0]; if( empty($activity_key) ) { $result["error"] = '1'; $result["error_code"] = 16001; $result["msg"] = "未传入activity_key参数"; return $result; } $activityList = Sql::select('a.*') ->from('syweb_business_activity a') ->where('a.activity_key=?',$activity_key) ->get($this->db ,null); if( empty($activityList) || count($activityList)<=0 ) { $result["error"] = '1'; $result["error_code"] = 16002; $result["msg"] = "指定的门店活动不存在或已经被删除!"; return $result; } $activityList = $activityList[0]; if( !empty($activityList) ) { if( !empty($activityList["logo"]) ) { $activityList["logo"] = "http://open.daoqijuyou77.cn".$activityList["logo"]; } if( !empty($activityList["url"]) ) { $activityList["url"] = str_replace("%market_key",$market_key,$activityList["url"]); $activityList["url"] = str_replace("%activity_key",$activity_key,$activityList["url"]); } $activityList["titleimg_list"] = iunserializer($activityList["titleimg_list"]); $titleImgList = array(); if( !empty($activityList["titleimg_list"]) && count($activityList["titleimg_list"])>0 ) { foreach ($activityList["titleimg_list"] as $key => $value) { if( !empty($value) ) { $titleImgList[] = "http://open.daoqijuyou77.cn".$value; } } } $activityList["titleimg_list"] = $titleImgList; } $result["error"] = '0'; $result["data"] = $activityList; $result["msg"] = "获取单个活动详细信息成功!"; return $result; } /** * 获取活动分类信息(错误代码:16000-16050) * @route({"POST","/class"}) * @param({"devkey","$._POST.devkey"}) 开发者key * @param({"market_key","$._POST.market_key"}) market_key * @param({"parent_key","$._POST.parent_key"}) parent_key * @param({"sign","$._POST.sign"}) sign * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 * @return("body") */ public function getClassList($devkey='',$market_key='',$parent_key='',$sign='') { $result = array(); $verify_result = $this->verifyMarketApi($devkey); if( is_error_api($verify_result) ){ return $verify_result; } if( empty($market_key) ) { $result["error"] = '1'; $result["error_code"] = 11001; $result["msg"] = "未传入market_key参数"; return $result; } $marketList = Sql::select('a.*') ->from('syweb_market a') ->where('a.market_key=?',$market_key) ->get($this->db ,null); if( empty($marketList) || count($marketList)<=0 ) { $result["error"] = '1'; $result["error_code"] = 11002; $result["msg"] = "market_key无效"; return $result; } $marketList = $marketList[0]; if( empty($parent_key) ) { $parent_key = ""; } $class_list = $this->selectClass($parent_key,$marketList["business_key"]); $result["error"] = '0'; $result["data"] = $class_list; $result["msg"] = "获取活动分类信息成功!"; return $result; } /** * 获取活动信息列表(错误代码:16051-16100) * @route({"POST","/list"}) * @param({"devkey","$._POST.devkey"}) 开发者key * @param({"market_key","$._POST.market_key"}) market_key * @param({"type","$._POST.type"}) type * @param({"class_key","$._POST.class_key"}) class_key * @param({"keywords","$._POST.keywords"}) keywords * @param({"pageno","$._POST.pageno"}) pageno * @param({"pagesize","$._POST.pagesize"}) pagesize * @param({"sign","$._POST.sign"}) sign * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 * @return("body") */ public function getActivityList($devkey='',$market_key='',$type=0,$class_key='',$keywords='',$pageno=0,$pagesize=0,$sign='') { $result = array(); $verify_result = $this->verifyMarketApi($devkey); if( is_error_api($verify_result) ){ return $verify_result; } if( empty($market_key) ) { $result["error"] = '1'; $result["error_code"] = 11001; $result["msg"] = "未传入market_key参数"; return $result; } $marketList = Sql::select('a.*') ->from('syweb_market a') ->where('a.market_key=?',$market_key) ->get($this->db ,null); if( empty($marketList) || count($marketList)<=0 ) { $result["error"] = '1'; $result["error_code"] = 11002; $result["msg"] = "market_key无效"; return $result; } $marketList = $marketList[0]; // 组装查询条件 begin $conditionStr = " activity_key in (select activity_key from syweb_business_activity_market where market_key='".$marketList["market_key"]."')"; $orderStr = " id desc "; if( !empty($type) && is_numeric($type) ){ if( $type==1 ) { $orderStr = " access_count desc "; } else if( $type==3 ) { $orderStr = " id desc "; } else if( $type==3 ) { $conditionStr .= " and is_recommond=1 "; } else if( $type==4 ) { // 暂时未实现 } } if( !empty($class_key) ) { $conditionStr .= " and class_key='".$class_key."'"; } if( !empty($keywords) ) { $conditionStr .= " and activity_name like '%".$keywords."%'"; } // 组装查询条件 end // 分页 begin $pindex = max(1, intval($pageno)); if($psize){ $psize = intval($pagesize); } else { $psize = 20; } // 分页 end $pdo = $this->db; $pdo->beginTransaction(); $total = Sql::select(' COUNT(id) as num ') ->from('syweb_business_activity') ->where($conditionStr) ->get($this->db ,null); $list = array(); if (!empty($total) && !empty($total[0]["num"])) { $list = Sql::select("*") ->from('syweb_business_activity') ->where($conditionStr) ->orderBy($orderStr) ->limit(($pindex - 1) * $psize,$psize) ->get($this->db ,null); } $pdo->commit(); if( $list ){ foreach ($list as &$item) { if( !empty($item["logo"]) ) { $item["logo"] = "http://open.daoqijuyou77.cn".$item["logo"]; } $item["url"] = str_replace("%market_key",$market_key,$item["url"]); $item["url"] = str_replace("%activity_key",$item["activity_key"],$item["url"]); } $page_count = 0; if( (int)$total[0]["num"] % $psize > 0 ) { $page_count = (int)$total[0]["num"] / $psize + 1; } else { $page_count = (int)$total[0]["num"]; } $result["error"] = '0'; $result["msg"] = '数据获取成功。'; $result["data"]["content"] = $list; $result["data"]["pager"]["total"] = (int)$total[0]["num"];// 总记录数 $result["data"]["pager"]["pindex"] = $pindex;// 当前页索引 $result["data"]["pager"]["psize"] = $psize;// 每页记录条数 $result["data"]["pager"]["page_count"] = $page_count;// 总共的页数 return $result; } else { $list = array(); $result["error"] = '0'; $result["msg"] = '未查询到任何数据记录。'; $result["data"]["content"] = $list; $result["data"]["pager"]["total"] = (int)$total[0]["num"];// 总记录数 $result["data"]["pager"]["pindex"] = $pindex;// 当前页索引 $result["data"]["pager"]["psize"] = $psize;// 每页记录条数 $result["data"]["pager"]["page_count"] = 0;// 总共的页数 return $result; } } /** * 使用递归的方式查询分类 * **/ private function selectClass($parent_key,$business_key) { $class_list = Sql::select('a.*') ->from('syweb_activity_class a') ->where('a.parent_key=? and a.business_key=?',$parent_key,$business_key) ->get($this->db ,null); if( !empty($class_list) && count($class_list)>0 ) { foreach ($class_list as &$classInfo) { $sub_class_list = $this->selectClass($classInfo["class_key"],$business_key); if( !empty($sub_class_list) && count($sub_class_list)>0 ) { $classInfo["has_sub"] = 1; $classInfo["sub_class_list"] = $sub_class_list; } else { $classInfo["has_sub"] = 0; } } } return $class_list; } /** @inject("ioc_factory") */ private $factory; /** * @property({"default":"@db"}) * @var PDO */ public $db; // 此处删除了代码 }