Commit 8cba6786 authored by 姚书霞's avatar 姚书霞 🐘

电子围栏导出和查看详情

parent d930accc
......@@ -142,9 +142,8 @@ return [
'extraPatterns'=>[
'GET,OPTIONS city-distribution-setting-list' => 'city-distribution-setting-list',
'GET,OPTIONS city-distribution-setting-detail' => 'city-distribution-setting-detail',
'PUT,OPTIONS membergrade-revise' => 'membergrade-revise',
'POST,OPTIONS membergrade-add' => 'membergrade-add',
'DELETE,OPTIONS membergrade-delete' => 'membergrade-delete',
'POST,OPTIONS city-distribution-setting-save' => 'city-distribution-setting-save',
'DELETE,OPTIONS city-distribution-setting-delete' => 'city-distribution-setting-delete',
],
],
//用户列表
......
......@@ -19,13 +19,14 @@ class CityDistributionSettingController extends BaseController
* summary="电子围栏列表(姚书侠)",
* description="电子围栏列表接口",
* @OA\Parameter(in = "query",name = "code",description = "门店编码",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "province",description = "省名称",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "city",description = "市名称",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "region",description = "区名称",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "province",description = "省",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "city",description = "城市",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "region",description = "县区",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "b2c_issetting",description = "是否设置B2C(1是 0否)",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "o2o_issetting",description = "是否设置020(1是 0否)",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "page",description = "分页页码",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "pageSize",description = "分页大小",required = false,@OA\Schema(type="string")),
* @OA\Parameter(in = "query",name = "export",description = "是否导出 传1生效 导出则分页设置不管用",required = false,@OA\Schema(type="string")),
* @OA\Response(response="200",description="
* GUID:门店GUID,
* CODE:门店CODE,
......@@ -44,8 +45,9 @@ class CityDistributionSettingController extends BaseController
//重写index
public function actionCityDistributionSettingList()
{
$params = Yii::$app->getRequest()->get();
$model = new $this->modelClass();
$result = $model->getList();
$result = $model->getList($params);
return $result;
}
......@@ -69,4 +71,24 @@ class CityDistributionSettingController extends BaseController
return $result;
}
/**
* @OA\Get(
* path="/backend/web/v1/branch/city-distribution-settings/city-distribution-setting-save",
* tags={"门店&DC"},
* summary="电子围栏保存(姚书侠)",
* description="电子围栏保存接口",
* @OA\Parameter(name="guid",in="query",required=true,description="门店GUID",@OA\Schema(type="string")),
* @OA\Response(response = 200,description = "success"),
* security={{"Authorization": {}}}
* )
*/
//编辑用
public function actionCityDistributionSettingSave()
{
$branchguid = Yii::$app->getRequest()->get('guid');
$model = new $this->modelClass();
$result = $model->getDetail($branchguid);
return $result;
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ use Yii;
use app\models\v1\BaseModel;
use app\models\v1\branch\ShopBranch;
use yii\data\ActiveDataProvider;
use yidas\phpSpreadsheet\Helper;
/**
......@@ -119,10 +120,8 @@ class ShopCityDistributionSetting extends BaseModel
/**
* 获取电子围栏列表(就是门店列表,连电子围栏表)
*/
public function getList()
public function getList($params)
{
$params = Yii::$app->getRequest()->get();
//根据条件查询门店
$branch_query = ShopBranch::find()->alias('sb')
->select("vwb.PROVINCE,vwb.CITY,vwb.REGION,sb.NAME,sb.PHONE,sb.GUID,sb.CODE,sb.ADDRESS,group_concat(cds.SETTING_TYPE) SETTING_TYPES ")
......@@ -164,11 +163,44 @@ class ShopCityDistributionSetting extends BaseModel
}
}
//如果是导出
if (isset($params['export']) && $params['export']=='1') {
$result = $branch_query->all();
$export_result = [];
foreach($result as $key=>&$value){
$export = array(
$value['NAME'],
$value['PROVINCE'],
$value['CITY'],
$value['REGION'],
$value['PHONE'],
$value['ADDRESS']
);
if(strstr($value['SETTING_TYPES'],'1')){
$export['B2C_ISSETTING']='是';
}else{
$export['B2C_ISSETTING']='否';
}
if(strstr($value['SETTING_TYPES'],'2')){
$export['020_ISSETTING']='是';
}else{
$export['020_ISSETTING']='否';
}
array_push($export_result,$export);
}
unset($result);
Helper::newSpreadsheet()
->addRow(['门店名称','省','市','区/县','电话','门店地址','是否设置O2O围栏','是否设置B2C围栏'])
->addRows($export_result)
->output("门店电子围栏","Csv");
exit();
}
$result = new ActiveDataProvider(
[
'query' => $branch_query,
'pagination' => [
'pageSize'=>$requestParams['pageSize']??20,
'pageSize'=>$params['pageSize']??20,
]
]
);
......@@ -197,9 +229,123 @@ class ShopCityDistributionSetting extends BaseModel
*/
public function getDetail($branchguid)
{
$a = ShopBranch::findOne($branchguid)
->select("GUID,NAME");
//门店信息
$branch_info = ShopBranch::find()
->where(["GUID"=>$branchguid])
->select("GUID,NAME,LAT,LNG,ADDRESS")
->asArray()
->one();
//门店下面的O2O和B2C设置,以及对应的区域
$select = "cds.GUID SETTING_GUID,cds.REGION_TYPE,cds.REGION_DISTR_DISTANCE,cds.REGION_DISTR_PRICE,cds.INCREASE_DISTANCE,cds.INCREASE_PRICE,";
$select .= "cds.LAT,cds.LNG,cds.STATUS,cds.SETTING_TYPE,cdr.GUID REGION_GUID,cdr.CITY_DISTR_GUID,cdr.ORDEX,cdr.COLORS,";
$select .= "cdr.HF_TYPE,cdr.REGION_R,cdr.REGION_RANGE,cdr.QS_PRICE,cdr.PS_PRICE,cdr.WEEK,cdr.IS_TYPE";
$setting_info = $this->find()->alias("cds")
->select($select)
->where(["cds.BRANCH_GUID"=>$branchguid])
->leftJoin("shop_city_distribution_region cdr","cdr.CITY_DISTR_GUID=cds.GUID")
->asArray()
->all();
//整合数组
$o2o = [];
$b2c = [];
foreach($setting_info as $key=>$value){
if($value['SETTING_TYPE']=='1'){
if(empty($b2c['GUID'])){
$b2c['GUID'] = $value['SETTING_GUID'];
$b2c['REGION_TYPE'] = $value['REGION_TYPE'];
$b2c['REGION_DISTR_DISTANCE'] = $value['REGION_DISTR_DISTANCE'];
$b2c['REGION_DISTR_PRICE'] = $value['REGION_DISTR_PRICE'];
$b2c['INCREASE_DISTANCE'] = $value['INCREASE_DISTANCE'];
$b2c['INCREASE_PRICE'] = $value['INCREASE_PRICE'];
$b2c['LAT'] = $value['LAT'];
$b2c['LNG'] = $value['LNG'];
$b2c['STATUS'] = $value['STATUS'];
$b2c['SETTING_TYPE'] = $value['SETTING_TYPE'];
$b2c['REGION'] = [];
if(!empty($value['REGION_GUID'])){
array_push($b2c['REGION'],array(
"GUID"=>$value['REGION_GUID'],
"ORDEX"=>$value['ORDEX'],
"CITY_DISTR_GUID"=>$value['CITY_DISTR_GUID'],
"COLORS"=>$value['COLORS'],
"HF_TYPE"=>$value['HF_TYPE'],
"REGION_R"=>$value['REGION_R'],
"REGION_RANGE"=>$value['REGION_RANGE'],
"QS_PRICE"=>$value['QS_PRICE'],
"PS_PRICE"=>$value['PS_PRICE'],
"WEEK"=>$value['WEEK'],
"IS_TYPE"=>$value['IS_TYPE'],
));
}
}else{
if(!empty($value['REGION_GUID'])){
array_push($b2c['REGION'],array(
"GUID"=>$value['REGION_GUID'],
"ORDEX"=>$value['ORDEX'],
"CITY_DISTR_GUID"=>$value['CITY_DISTR_GUID'],
"COLORS"=>$value['COLORS'],
"HF_TYPE"=>$value['HF_TYPE'],
"REGION_R"=>$value['REGION_R'],
"REGION_RANGE"=>$value['REGION_RANGE'],
"QS_PRICE"=>$value['QS_PRICE'],
"PS_PRICE"=>$value['PS_PRICE'],
"WEEK"=>$value['WEEK'],
"IS_TYPE"=>$value['IS_TYPE'],
));
}
}
}else if($value['SETTING_TYPE']=='2'){
if(empty($o2o['GUID'])){
$o2o['GUID'] = $value['SETTING_GUID'];
$o2o['REGION_TYPE'] = $value['REGION_TYPE'];
$o2o['REGION_DISTR_DISTANCE'] = $value['REGION_DISTR_DISTANCE'];
$o2o['REGION_DISTR_PRICE'] = $value['REGION_DISTR_PRICE'];
$o2o['INCREASE_DISTANCE'] = $value['INCREASE_DISTANCE'];
$o2o['INCREASE_PRICE'] = $value['INCREASE_PRICE'];
$o2o['LAT'] = $value['LAT'];
$o2o['LNG'] = $value['LNG'];
$o2o['STATUS'] = $value['STATUS'];
$o2o['SETTING_TYPE'] = $value['SETTING_TYPE'];
$o2o['REGION'] = [];
if(!empty($value['REGION_GUID'])){
array_push($o2o['REGION'],array(
"GUID"=>$value['REGION_GUID'],
"ORDEX"=>$value['ORDEX'],
"CITY_DISTR_GUID"=>$value['CITY_DISTR_GUID'],
"COLORS"=>$value['COLORS'],
"HF_TYPE"=>$value['HF_TYPE'],
"REGION_R"=>$value['REGION_R'],
"REGION_RANGE"=>$value['REGION_RANGE'],
"QS_PRICE"=>$value['QS_PRICE'],
"PS_PRICE"=>$value['PS_PRICE'],
"WEEK"=>$value['WEEK'],
"IS_TYPE"=>$value['IS_TYPE'],
));
}
}else{
if(!empty($value['REGION_GUID'])){
array_push($o2o['REGION'],array(
"GUID"=>$value['REGION_GUID'],
"ORDEX"=>$value['ORDEX'],
"CITY_DISTR_GUID"=>$value['CITY_DISTR_GUID'],
"COLORS"=>$value['COLORS'],
"HF_TYPE"=>$value['HF_TYPE'],
"REGION_R"=>$value['REGION_R'],
"REGION_RANGE"=>$value['REGION_RANGE'],
"QS_PRICE"=>$value['QS_PRICE'],
"PS_PRICE"=>$value['PS_PRICE'],
"WEEK"=>$value['WEEK'],
"IS_TYPE"=>$value['IS_TYPE'],
));
}
}
}
}
print_r($a);die;
$branch_info['020'] = $o2o;
$branch_info['B2C'] = $b2c;
return $branch_info;
}
}
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