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')); } }