Commit d0399d86 authored by suntengda's avatar suntengda

add 营销中心-活动列表

parent 74b64a29
...@@ -22,4 +22,9 @@ class MarketingOnlineStatusValidate extends BaseValidate ...@@ -22,4 +22,9 @@ class MarketingOnlineStatusValidate extends BaseValidate
"marketing_type" => "marketing_type 不能为空", "marketing_type" => "marketing_type 不能为空",
"online_status" => "online_status 不能为空", "online_status" => "online_status 不能为空",
]; ];
public function sceneYingxiao()
{
return $this->only(['marketing_id','online_status']);
}
} }
\ No newline at end of file
...@@ -14,6 +14,8 @@ class Marketing extends MysqlBase ...@@ -14,6 +14,8 @@ class Marketing extends MysqlBase
const MARKETING_TYPE_TUANGOU = 2; const MARKETING_TYPE_TUANGOU = 2;
const MARKETING_TYPE_MIAOSHA = 3; const MARKETING_TYPE_MIAOSHA = 3;
const MARKETING_TYPE_PINDAN = 4; const MARKETING_TYPE_PINDAN = 4;
const MARKETING_TYPE_LIEBIAN = 5;
const MARKETING_TYPE_TUANZHANG = 6;
const ONLINE_STATUS_QIDONG = 1; const ONLINE_STATUS_QIDONG = 1;
const ONLINE_STATUS_GUANBI = 2; const ONLINE_STATUS_GUANBI = 2;
...@@ -125,6 +127,10 @@ class Marketing extends MysqlBase ...@@ -125,6 +127,10 @@ class Marketing extends MysqlBase
$data['online_status'] = $where['online_status']; $data['online_status'] = $where['online_status'];
} }
if (!empty($where['marketing_type'])) {
$data['marketing_type'] = $where['marketing_type'];
}
return $data; return $data;
} }
} }
...@@ -155,4 +155,25 @@ class MarketingController extends Base ...@@ -155,4 +155,25 @@ class MarketingController extends Base
$this->success(); $this->success();
} }
/**
* 切换活动状态
* @throws \App\Exception\custom\ParamException
*/
public function toogle_yingxiao_online_statusAction()
{
(new MarketingOnlineStatusValidate())->scene('yingxiao')->validate();
$res = MarketingService::toogleOnlineStatus($this->params['marketing_id'],$this->params['online_status']);
$this->success(['result' => $res]);
}
/**
* 营销中心-活动列表
* @throws Exception
*/
public function yingxiao_listAction()
{
$lists = MarketingService::yingxiaoList($this->params);
$this->success(['result' => $lists]);
}
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
namespace App\Services\marketing; namespace App\Services\marketing;
use Api\PhpServices\Ksy\Ks3Api; use Api\PhpServices\Ksy\Ks3Api;
use Api\PhpUtils\Http\Request;
use App\Models\goods\mysql\Ota; use App\Models\goods\mysql\Ota;
use App\Models\goods\mysql\PindanGoodsSku; use App\Models\goods\mysql\PindanGoodsSku;
use App\Models\marketing\mysql\Marketing; use App\Models\marketing\mysql\Marketing;
...@@ -145,6 +146,47 @@ class MarketingService ...@@ -145,6 +146,47 @@ class MarketingService
} }
} }
/**
* 营销中心-活动列表
* @param $params
* @return array
*/
public static function yingxiaoList($params)
{
$where["marketing_type"] = [Marketing::MARKETING_TYPE_LIEBIAN, Marketing::MARKETING_TYPE_TUANZHANG];
$where['ORDER'] = ["create_time" => "DESC"];
$lists = Marketing::getRecords($where);
if ($lists && is_array($lists)) {
$capitalPoolIds = array_column($lists, 'capital_pool_id');
//获取资金池列表信息
$url = config('interface', 'coupon.capitalpool.fetch_map_capitalpool');
$capitalPoolList = (new Request())->get($url, ["capital_pool_ids" => $capitalPoolIds]);
$capitalPoolList = $capitalPoolList['response']['result'] ?: [];
$poolTotal = $poolUsed = $poolLock = 0;
foreach ($lists as &$val) {
if($capitalPoolList[$val['capital_pool_id']]) {
$val['capital_pool'] = $capitalPoolList[$val['capital_pool_id']];
$poolTotal += $val['capital_pool']['capital_pool_total'];
$poolUsed += $val['capital_pool']['capital_pool_used'];
$poolLock += $val['capital_pool']['capital_pool_lock'];
}else {
$val['capital_pool'] = [];
}
$val['online_status_desc'] = Marketing::$onlineStatusDesc[$val['online_status']];
}
unset($val);
}
$poolbalance = $poolTotal - $poolUsed - $poolLock;
$poolAnalysis = ['total'=>$poolTotal,'used'=>$poolUsed,'lock'=>$poolLock,'balance'=>$poolbalance];
return ['anlysis'=>$poolAnalysis,'list' => $lists];
}
/** /**
* 分销活动列表 * 分销活动列表
* @param $params * @param $params
...@@ -830,6 +872,24 @@ class MarketingService ...@@ -830,6 +872,24 @@ class MarketingService
Marketing::updateRecord($marketingParams, ["marketing_id" => $marketingId, "marketing_type" => $marketingType]); Marketing::updateRecord($marketingParams, ["marketing_id" => $marketingId, "marketing_type" => $marketingType]);
} }
/**
* 切换活动状态
* @param $marketingId
* @param $onlineStatus
* @return \Api\PhpUtils\Mysql\MysqlBase
*/
public static function toogleOnlineStatus($marketingId,$onlineStatus)
{
if(!in_array($onlineStatus,array_keys(Marketing::$onlineStatusDesc))) {
return 0;
}
$data = [
'online_status' => $onlineStatus,
];
return Marketing::updateRecord($data, ["marketing_id" => $marketingId]);
}
/** /**
* 分销活动详情 * 分销活动详情
* @param $params * @param $params
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment