<?php
|
|
namespace app\shop\controller\setting;
|
|
use app\shop\controller\Controller;
|
use app\shop\model\settings\Setting as SettingModel;
|
use app\common\enum\settings\DeliveryTypeEnum;
|
use app\common\model\settings\Region as RegionModel;
|
/**
|
* 商城设置控制器
|
*/
|
class Store extends Controller
|
{
|
/**
|
* 商城设置
|
*/
|
public function index()
|
{
|
if($this->request->isGet()){
|
return $this->fetchData();
|
}
|
$model = new SettingModel;
|
$data = $this->request->param();
|
// 配送方式排序
|
sort($data['checkedCities']);
|
$arr = [
|
'name' => $data['name'],
|
'index_open_city' => $data['index_open_city'],
|
'regions' => empty($data['regions'])?'':serialize($data['regions']),
|
'citys' => empty($data['citys'])?'':serialize($data['citys']),
|
'province' => empty($data['province'])?'':serialize($data['province']),
|
'citysData' => empty($data['citysData'])?'':serialize($data['citysData']),
|
'delivery_type' => $data['checkedCities'],
|
'kuaidi100' => ['customer' => $data['customer'], 'key' => $data['key']],
|
'supplier_cash' => $data['supplier_cash'],
|
'commission_rate' => $data['commission_rate'],
|
'add_audit' => $data['add_audit'],
|
'edit_audit' => $data['edit_audit'],
|
'supplier_image' => $data['supplier_image'],
|
'qy_qrcode_image' => $data['qy_qrcode_image'],
|
'sms_open' => $data['sms_open'],
|
'supplier_logo' => $data['supplier_logo'],
|
'is_get_log' => $data['is_get_log'],
|
'is_send_wx' => empty($data['is_send_wx']) ? 0 : $data['is_send_wx'],
|
'policy' => ['service' => $data['service'], 'privacy' => $data['privacy']],
|
'store_open' => $data['store_open'],
|
'coupon_card_user' => $data['coupon_card_user'], // 是否仅会员卡会员可领取优惠券 by lyzflash
|
'underline_price_show' => $data['underline_price_show'], // 是否显示下划线价格 by YJ
|
'open_card' => empty($data['open_card']) ? 0 : $data['open_card'],
|
'card_id' => empty($data['card_id']) ? 0 : $data['card_id'],
|
'card_name' => empty($data['card_name']) ? '' : $data['card_name'],
|
'store_type' => empty($data['store_type']) ? 0 : $data['store_type'],
|
'is_independent' => empty($data['is_independent']) ? 0 : $data['is_independent'],
|
];
|
if ($model->edit('store', $arr)) {
|
return $this->renderSuccess('操作成功');
|
}
|
return $this->renderError($model->getError() ?: '操作失败');
|
}
|
/**
|
* 格式化数据
|
*/
|
public function dataFormat($regionData)
|
{
|
$arr = [];
|
foreach ($regionData as $val) {
|
$city = array_column($val['city'], 'name');
|
$id = array_column($val['city'], 'id');
|
$len = count($city);
|
$arr2 = [];
|
for ($i = 0; $i < $len; $i++) {
|
$arr1 = [
|
'value' => $id[$i],
|
'label' => $city[$i],
|
];
|
array_push($arr2, $arr1);
|
}
|
$arr[] = [
|
'value' => $val['id'],
|
'label' => $val['name'],
|
'children' => $arr2
|
];
|
$arr2 = [];
|
}
|
return $arr;
|
}
|
/**
|
* 格式化数据
|
*/
|
public function dataFormatForAll($regionData)
|
{
|
$arr = [];
|
$i=0;
|
foreach ($regionData as $key => $val) {
|
$ii=0;
|
foreach($val["city"] as $kk => $vv){
|
$iii=0;
|
foreach($vv["region"] as $k => $v){
|
$arr2[$ii][$iii]["value"]=$v["id"];
|
$arr2[$ii][$iii]["label"]=$v["name"];
|
$arr2[$ii][$iii]["level"]=$v["level"];
|
$arr2[$ii][$iii]["first"]=$v["first"];
|
$arr2[$ii][$iii]["pinyin"]=$v["pinyin"];
|
$iii++;
|
}
|
$arr1[$i][$ii]["value"]=$vv["id"];
|
$arr1[$i][$ii]["label"]=$vv["name"];
|
$arr1[$i][$ii]["level"]=$vv["level"];
|
$arr1[$i][$ii]["first"]=$vv["first"];
|
$arr1[$i][$ii]["pinyin"]=$vv["pinyin"];
|
$arr1[$i][$ii]["children"]=$arr2[$ii];
|
$arr2[$ii]=[];
|
$ii++;
|
}
|
$arr[$i]["value"]=$val["id"];
|
$arr[$i]["label"]=$val["name"];
|
$arr[$i]["level"]=$val["level"];
|
$arr[$i]["pinyin"]=$val["pinyin"];
|
$arr[$i]["first"]=$val["first"];
|
$arr[$i]["children"]=$arr1[$i];
|
$i++;
|
}
|
return $arr;
|
}
|
|
/**
|
* 格式化数据1
|
*/
|
public function dataFormat1($arr, $v)
|
{
|
$areas=[];
|
foreach ($arr as $key => &$val) {
|
$val['index'] = null;
|
$index = 0;
|
if (in_array($val['value'], $v['province'])) {
|
$citys = array();
|
$val['checked'] = true;
|
if (is_array($val['index'])) {
|
$list = $val['index'];
|
array_push($list, $index);
|
$val['index'] = $list;
|
} else {
|
$val['index'] = array($index);
|
|
}
|
foreach ($val['children'] as $c => &$city) {
|
if (in_array($city['value'], $v['citys'])) {
|
$city['checked'] = true;
|
$city['index'] = $index;
|
$citys[] = $city;
|
}
|
}
|
$province = array(
|
'value' => $arr[$key]['value'],
|
'label' => $arr[$key]['label'],
|
'children' => $citys);
|
$areas[] = $province;
|
}
|
$index++;
|
}
|
return array('arr' => $arr, "areas" => $areas);
|
}
|
/**
|
* 获取商城配置
|
*/
|
public function fetchData()
|
{
|
$vars['values'] = SettingModel::getItem('store');
|
$all_type = DeliveryTypeEnum::data();
|
|
// 获取所有地区
|
$regionData = RegionModel::getCacheTree();
|
$arr = $this->dataFormatForAll($regionData);
|
|
// 地区总数
|
$cityCount = RegionModel::getCacheCounts()['city'];
|
|
// 获取配送区域及运费设置项
|
$formData = $vars['values'];
|
$areas=[];
|
if(!empty($formData['citys'])){
|
$formData['citys']=unserialize($formData['citys']);
|
}
|
if(!empty($formData['province'])){
|
$formData['province']=unserialize($formData['province']);
|
}
|
if(!empty($formData['citysData'])){
|
$formData['citysData']=unserialize($formData['citysData']);
|
}
|
if(!empty($formData['citys']) && !empty($formData['province'])){
|
$returnData = $this->dataFormat1($arr, $formData);
|
$arr = $returnData['arr'];
|
$areas= $returnData['areas'];
|
$vars['values']=$formData;
|
}
|
return $this->renderSuccess('', compact('vars', 'all_type','arr','cityCount','areas'));
|
}
|
|
}
|