添加后台代理代码

This commit is contained in:
2026-03-15 01:27:05 +08:00
parent 11f9ac4dc1
commit ea08c9366a
5254 changed files with 721042 additions and 0 deletions

View File

@@ -0,0 +1,318 @@
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, PATCH, DELETE");
header("Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With");
header("Access-Control-Allow-Credentials: true");
header("Content-Type: text/html; charset=utf-8");
/**
* 门店相关活动
*/
use phprs\util\Verify;
use phprs\util\exceptions\Forbidden;
use phprs\util\Logger;
use phprs\util\exceptions\NotFound;
use phprs\ezsql\Sql;
use phprs\util\exceptions\BadRequest;
require_once 'apiBase.php';
/**
*
* 门店相关活动
* @path("/activity")
*/
class Activity extends apiBase {
/**
* 获取单个活动详细信息(错误代码16000-16050)
* @route({"POST","/"})
* @param({"devkey","$._POST.devkey"}) 开发者key
* @param({"market_key","$._POST.market_key"}) market_key
* @param({"activity_key","$._POST.activity_key"}) activity_key
* @param({"sign","$._POST.sign"}) sign
* @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用
* @return("body")
*/
public function getActivity($devkey='',$market_key='',$activity_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($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;
// 此处删除了代码
}