/** * 获取地区“子节点”接口 * @see http://jira.chuangyejia.com:8090/pages/viewpage.action?pageId=3412919 */ public function actionChildNode() { $response = ''; $params = Yii::$app->getRequest()->get(); if (!isset($params['id'])) { return Yii::$app->util->responseArray('1101', 'areaid_params_missing', '区域ID参数缺失'); } if (!intval($params['id'])) { return Yii::$app->util->responseArray('2101', 'illegal_areaid_params', '区域ID参数非法'); } try { $mDistrict = new District(); $result = $mDistrict->getSubRegion($params['id']); $result = $result ? $this->_transform($result) : []; $response = Yii::$app->util->responseArray('0', 'success', '成功', $result); } catch (Exception $e) { $response = Yii::$app->util->responseArray(-1, 'network_anomaly', '网络异常,请稍后重试'); } return $response; }
public function actionProvince() { $util = Yii::$app->util; //获取所有的省信息 $result = District::getByLevel(); if ($result) { $util->formatResData(0, 'success', $result); } else { $util->formatResData(1101, 'get_provinces_fail', ['msg' => '获取省信息失败']); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = District::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'village_id' => $this->village_id, 'number' => $this->number, 'size' => $this->size, 'price' => $this->price, 'is_sold' => $this->is_sold, 'is_house' => $this->is_house]); $query->andFilterWhere(['like', 'date_ready', $this->date_ready])->andFilterWhere(['like', 'image', $this->image]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = District::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'city_id' => $this->city_id]); $query->andFilterWhere(['like', 'title_az', $this->title_az])->andFilterWhere(['like', 'title_ru', $this->title_ru])->andFilterWhere(['like', 'title_en', $this->title_en]); return $dataProvider; }
public function actionDistrictList() { if (isset($_POST['depdrop_parents'])) { if ($parents = $_POST['depdrop_parents']) { $district_ids = Sale::find()->select('district_id')->where(['region_id' => $parents[0]])->groupBy(['district_id'])->column(); $out = District::getListByIds($district_ids); foreach ($out as $key => $value) { $result[] = ['id' => $key, 'name' => $value]; } print Json::encode(['output' => @$result, 'selected' => '']); return; } } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = District::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['district_id' => $this->district_id, 'municipality_id' => $this->municipality_id]); $query->andFilterWhere(['like', 'district_name', $this->district_name]); return $dataProvider; }
/** * @param int $cityData 城市信息 * * @return int $newCity */ public function districtProcess($cityData) { $mUser = new UserBaseInfo(); $mDistrict = new District(); $mDistrictOld = new DistrictOld(); if ($cityData && is_array($cityData)) { foreach ($cityData as $key => $value) { $city = $value; $districtData = $mDistrictOld->getByCityId($city); if (isset($districtData['name']) && $districtData['name']) { $count = $mDistrict->getByCityName($districtData['name'], true); if ($count == 0) { $newCity = '-1'; FileLogger::getInstance('district_abnormity.log')->writeOne($districtData['name'], Logger::LEVEL_ERROR, '区域异常日志'); } else { if ($count == 1) { $newData = $mDistrict->getByCityName($districtData['name']); //判断是否是直辖市 $isCharteredCities = $this->isCharteredCities($newData['id']); $newCity = $isCharteredCities ? $newData['upid'] : $newData['id']; } else { $data = $mDistrictOld->getByCityId($districtData['upid']); $newData = $mDistrict->getByCityName($data['name']); $upid = $newData['id']; $data = $mDistrict->getCitys($upid, $districtData['name']); //判断是否是直辖市 $isCharteredCities = $this->isCharteredCities($data['id']); $newCity = $isCharteredCities ? $data['upid'] : $data['id']; } } $result[$city] = $newCity; } } return $result; } }
public function actionSelection() { $request = Yii::$app->request; $query = District::find(); $status = $request->get('is_sold', array()); $house = $request->get('is_house', array()); $village = $request->get('village_id'); $ready = $request->get('date_ready'); $price = $request->get('price'); $size = $request->get('size'); if ($status == array('0') || $status == array('1')) { $query->where(['is_sold' => $status]); } if ($house == array('0') || $house == array('1')) { $query->andWhere(['is_house' => $house]); } if (isset($village)) { $query->andWhere(['village_id' => $village]); } if (isset($ready)) { $query->andWhere(['date_ready' => $ready]); } $prices = array(100, 7000); if (isset($price) && preg_match("/^\\d+;\\d+\$/", $price)) { $prices = explode(";", $price); $query->andWhere(['>=', 'price', $prices[0]]); $query->andWhere(['<=', 'price', $prices[1]]); } $sizes = array(4, 26); if (isset($size) && preg_match("/^\\d+;\\d+\$/", $size)) { $sizes = explode(";", $size); $query->andWhere(['>=', 'size', $sizes[0]]); $query->andWhere(['<=', 'size', $sizes[1]]); } $districts = $query->orderBy('price')->all(); return $this->render('selection', ['districts' => $districts, 'status' => $status, 'house' => $house, 'village' => $village, 'ready' => $ready, 'prices' => $prices, 'sizes' => $sizes]); }
public static function district() { $alias = static::getCategory('district'); $temp = District::find()->with('content')->all(); $origin = []; foreach ($temp as $t) { $origin[$t->content->name] = $t->id; } return array_merge($origin, $alias); }
public function getDistricts() { return $this->hasMany(District::className(), ['village_id' => 'id']); }
public function getDistricts() { return $this->hasMany(District::className(), ['date_ready' => 'id']); }
echo $form->field($model, 'cat_3')->dropDownList(ArrayHelper::map(Cats::find()->all(), 'id', 'title_az'), ['prompt' => '', 'onchange' => ' $.post( "/found/list/' . '"+$(this).val(), function( data ) { $( "select#found-cat_id" ).html( data ); });']); ?> <?php echo $form->field($model, 'cat_id')->dropDownList(ArrayHelper::map(Cats::find()->all(), 'id', 'title_az'), ['prompt' => '']); ?> <?php echo $form->field($model, 'city_id')->dropDownList(ArrayHelper::map(City::find()->all(), 'id', 'title_az'), ['prompt' => '']); ?> <?php echo $form->field($model, 'district_id')->dropDownList(ArrayHelper::map(District::find()->all(), 'id', 'title_az'), ['prompt' => '', 'onchange' => ' $.post( "/lost/location/' . '"+$(this).val(), function( data ) { $( "select#found-street_id" ).html( data ); });']); ?> <?php echo $form->field($model, 'street_id')->dropDownList(ArrayHelper::map(Street::find()->all(), 'id', 'title_az'), ['prompt' => '']); ?> <?php echo $form->field($model, 'metro_id')->dropDownList(ArrayHelper::map(Metro::find()->all(), 'id', 'title_az'), ['prompt' => '']); ?> <?php echo DateTimePicker::widget(['model' => $model, 'attribute' => 'date', 'language' => 'en', 'size' => 'ms', 'inline' => true, 'template' => '<div class="well well-sm" style="background-color: #fff; width:250px">{input}</div>', 'clientOptions' => ['autoclose' => true, 'format' => 'yyyy-mm-dd - HH:ii:ss P', 'todayBtn' => true]]);
/** * Import deputies' info */ public function actionInfo() { // Authority dates echo "Authority dates...\n"; $strToTime = function ($str) { list($date, $month, $year) = explode(' ', $str); $date = (int) $date; $month = mb_strtolower(mb_substr($month, 0, 3, 'UTF-8'), 'UTF-8'); switch ($month) { case 'січ': $month = 1; break; case 'лют': $month = 2; break; case 'бер': $month = 3; break; case 'кві': $month = 4; break; case 'тра': $month = 5; break; case 'чер': $month = 6; break; case 'лип': $month = 7; break; case 'сер': $month = 8; break; case 'вер': $month = 9; break; case 'жов': $month = 10; break; case 'лис': $month = 11; break; case 'гру': $month = 12; break; } $year = (int) $year; $date = date_create("{$year}-{$month}-{$date}"); return $date->getTimestamp(); }; foreach (Deputy::find()->all() as $deputy) { echo "{$deputy->id}\n"; $url = "http://itd.rada.gov.ua/mps/info/page/{$deputy->id}"; $content = file_get_contents($url); $html = $this->parser->str_get_html($content); $deputy->dateAuthorityStart = null; $deputy->dateAuthorityStop = null; foreach ($html->find('.mp-general-info dl', 0)->children() as $i => $row) { if (mb_strpos($row->plaintext, 'Дата набуття депутатських повноважень') !== false) { $dateStr = $html->find('.mp-general-info dl', 0)->children($i + 1)->plaintext; $deputy->dateAuthorityStart = date('Y-m-d', $strToTime($dateStr)); } if (mb_strpos($row->plaintext, 'Дата припинення депутатських повноважень') !== false) { $dateStr = $html->find('.mp-general-info dl', 0)->children($i + 1)->plaintext; $deputy->dateAuthorityStop = date('Y-m-d', $strToTime($dateStr)); } } $deputy->save(); } // Get districts echo "Districts...\n"; $content = file_get_contents('http://w1.c1.rada.gov.ua/pls/site2/fetch_mps?skl_id=9&district=y'); $content = iconv('windows-1251', 'utf-8', $content); $html = $this->parser->str_get_html($content); $htmlDeputies = $html->find('.search-filter-results li'); // Save districts foreach ($htmlDeputies as $htmlDeputy) { $name = $htmlDeputy->find('.title a')[0]->plaintext; $deputy = Deputy::findOne(['name' => $name]); if ($deputy !== null) { $districts = $htmlDeputy->find('dl dd'); $districtId = str_replace('Виборчому округу №', '', $districts[0]->plaintext); $districtRegion = $districts[1]->plaintext; $deputy->districtId = $districtId; $deputy->save(); if (!District::findOne(['id' => $districtId])) { $district = new District(); $district->setAttributes(['id' => $districtId, 'region' => $districtRegion], false); $district->save(); } } } }
<?php use backend\components\SetColumn; use common\models\District; use common\models\Lang; use common\models\Region; use common\models\Sale; use yii\helpers\Html; use yii\grid\GridView; use yii\helpers\Url; /* @var $this yii\web\View */ /* @var $searchModel common\models\SaleSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = Yii::t('app', 'Sales'); $this->params['breadcrumbs'][] = $this->title; ?> <div class="box"> <div class="box-body table-responsive"> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['attribute' => 'code', 'headerOptions' => ['width' => '100']], ['class' => SetColumn::className(), 'attribute' => 'name', 'name' => 'name', 'value' => 'content.name'], ['class' => SetColumn::className(), 'attribute' => 'region_id', 'filter' => Region::getList(), 'name' => 'region.content.name'], ['class' => SetColumn::className(), 'attribute' => 'district_id', 'filter' => District::getListAll(), 'name' => 'district.content.name'], 'address', ['attribute' => 'created_at', 'format' => ['date', 'dd.MM.Y'], 'options' => ['width' => '80']], ['class' => SetColumn::className(), 'attribute' => 'top', 'filter' => Sale::getTopList(), 'name' => 'topName', 'cssClasses' => [Sale::TOP_DISABLED => 'default', Sale::TOP_ENABLED => 'success']], ['class' => SetColumn::className(), 'attribute' => 'status', 'filter' => Sale::getStatusList(), 'name' => 'statusName', 'cssClasses' => [Sale::STATUS_HIDE => 'default', Sale::STATUS_ACTIVE => 'success', Sale::STATUS_AWAITING => 'warning']], ['class' => SetColumn::className(), 'attribute' => 'sold', 'filter' => Sale::getSoldList(), 'name' => 'soldName', 'cssClasses' => [Sale::SOLD_ACTUAL => 'success', Sale::SOLD_US => 'default', Sale::SOLD_OTHER => 'default']], ['class' => 'yii\\grid\\ActionColumn', 'headerOptions' => ['width' => '70'], 'template' => '{link} {update} {delete}', 'buttons' => ['link' => function ($url, $model, $key) { return Html::a('<span class="fa fa-eye"></span>', Url::to(Yii::$app->params['http'] . '/' . Lang::getCurrent()->code . '/sale/' . $model->id), ['target' => '_blank']); }]]]]); ?> </div> <div class="box-footer"> <?php echo Html::a(Yii::t('app', 'Create'), ['create'], ['class' => 'btn btn-success']); ?> </div> </div>
$form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'title_az')->textInput(['maxlength' => 255]); ?> <?php echo $form->field($model, 'title_ru')->textInput(['maxlength' => 255]); ?> <?php echo $form->field($model, 'title_en')->textInput(['maxlength' => 255]); ?> <?php echo $form->field($model, 'district_id')->dropDownList(ArrayHelper::map(District::find()->all(), 'id', 'title_az'), ['promt' => 'Select District']); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> </div> <?php ActiveForm::end(); ?> </div>
<div class="row"> <div class="col-md-2"> <?php echo $form->field($sale, 'type_id', ['template' => '{input}'])->dropDownList(Sale::getTypeList(), ['prompt' => '- ' . @$origin['type'] . ' -', 'class' => 'form-control', 'data-toggle' => 'tooltip', 'title' => $sale->getAttributeLabel('type_id')]); ?> </div> <div class="col-md-2"> <?php echo $form->field($sale, 'region_id', ['template' => '{input}'])->dropDownList(Region::getList(), ['class' => 'form-control', 'id' => 'region_id_' . $form->id, 'prompt' => '- ' . @$origin['region'] . ' -', 'data-toggle' => 'tooltip', 'title' => $sale->getAttributeLabel('region_id')]); ?> </div> <div class="col-md-2"> <?php if ($sale->region_id) { $district_list = District::getList($sale->region_id); } else { $district_list = []; } echo $form->field($sale, 'district_id', ['template' => '{input}'])->widget(DepDrop::className(), ['data' => $district_list, 'options' => ['id' => 'district_id_' . $form->id, 'prompt' => '- ' . @$origin['district'] . ' -', 'data-toggle' => 'tooltip', 'title' => $sale->getAttributeLabel('district_id'), 'data-value' => @$origin['district']], 'pluginOptions' => ['depends' => ['region_id_' . $form->id], 'placeholder' => false, 'url' => Url::to(['/district/list'])]]); ?> </div> <div class="col-md-2"> <?php echo $form->field($sale, 'gps', ['template' => '{input}'])->textInput(['data-toggle' => 'tooltip', 'title' => $sale->getAttributeLabel('gps')]); ?> </div> <div class="col-md-1"> <?php echo $form->field($sale, 'price', ['template' => '{input}'])->textInput(['data-toggle' => 'tooltip', 'title' => $sale->getAttributeLabel('price')]); ?>
/** * 用户支付页面 */ public function actionOrderPay() { /** * 获取第三方绑定token * $url = 'http://test-api.chuangyejia.com/v1/token?app_id=100003&app_key=f8d80e9a'; * $res = do_request($url); * p($token = $res['data']['ret']['access_token']);die; * * do_request 获取借口信息 * $request = Yii::$app->getRequest(); * $get = $request->get(); * $data = [ * 'open_id' => $open_id, * 'add_order_sn' => $get['app_order_sn'], * 'access_token' => $token, * ]; * $url = 'adfadfaf'; * $orderInfo = do_request($url, $data); * $orderInfo = json_decode($orderInfo, true); * if ($orderInfo['code'] == 1101) { * return '订单不存在'; * } * if ($orderInfo['code'] == 1201) { * return '用户不存在'; * } * if ($orderInfo['code'] == 1301) { * return ... * } * if (!isset($_SERVER['HTTP_REFERER']) || !$_SERVER['HTTP_REFERER']) { * $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=非法请求'); * return '非法请求'; * } */ $mBind = new PayBinding(); $payMethods = new PayMethod(); $mOrder = new Order(); $mAddress = new Address(); $mApp = new ApplicationBaseInfo(); $request = Yii::$app->getRequest(); $get = $request->get(); $session = Yii::$app->getSession(); $cookie = $request->cookies->getValue('open_id'); $openId = $session[UserBaseInfo::SESSION_KEY_USER]['open_id'] ?: $cookie; $order = ''; //没有第三方传值 暂时默认 app_id = 100002, app_order_sn = 554892031231322 $appId = isset($get['app_id']) && $get['app_id'] ? $get['app_id'] : '100002'; if (!$appId) { return '应用id失效'; } $appOrderSn = isset($get['app_order_sn']) && $get['app_order_sn'] ? $get['app_order_sn'] : '555892131' . mt_rand(100000, 999999); if (!$appOrderSn) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=因无订单号为空'); return '订单号为空'; } if (isset($get['order_sn']) && $get['order_sn']) { $order = Order::getByOrderSn($get['order_sn']); if (!$order) { return $this->redirect(Url::toRoute('order/index')); } $appId = $order['app_id']; $appOrderSn = $order['app_order_sn']; if (!$appId || !$appOrderSn) { $order = ''; } } if (!isset($get['order_sn']) || !$get['order_sn'] || !$order) { $order = $mOrder->getByAppOrderSn($appOrderSn, $appId); } // 伪代码 访问应用接口返回data数据 // if ($data['open_id'] != $openId) { // return '非法请求'; // } $payIds = $mBind->getByAppId($appId); if (!$payIds) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=应用未绑定任何支付方式'); return '应用未绑定任何支付方式'; } $appUrls = arrayColumn($payIds, 'app_url'); $appUrls = array_unique($appUrls); $returnUrl = array_pop($appUrls); $app = $mApp->getByAppId($appId); $app = ['app_order_sn' => $appOrderSn, 'origin' => $app['app_name']]; $time = time(); $orderSn = Yii::$app->util->orderSn(); if (!$order) { try { // TODO:: 通过接口获取应用生成的订单信息 $orderInfo = ['open_id' => $openId, 'product_id' => '1', 'product_name' => 'Young K' . mt_rand(100000, 999999), 'order_sn' => $orderSn, 'turnover' => '0.01', 'app_order_title' => '黑马大赛报名' . mt_rand(100000, 999999), 'create_time' => $time, 'expires_time' => $time + 24 * 3600, 'address_id' => 1, 'app_id' => $appId]; $data = $this->wxQrCode($orderInfo); $app['address_id'] = $orderInfo['address_id']; $app['app_id'] = $orderInfo['app_id']; $orderId = $mOrder->add(array_merge($app, $data)); if (empty($orderId)) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=生成订单失败'); return '生成订单失败'; } $address = $mAddress->getById($orderInfo['address_id']); } catch (\Exception $e) { return $e->getMessage(); } } else { if ($order['expires_time'] < $time) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=订单过期'); return '订单过期'; } if ($order['open_id'] != $openId) { return '不具备操作该订单权限'; } if ($order['pay_status'] == Order::ORDER_PAID_STATUS) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=该订单已完成交易'); return '该订单已完成交易'; } if ($order['pay_status'] == Order::ORDER_REFUND_STATUS) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=该订单已退款'); return '该订单已退款'; } if ($order['pay_status'] == Order::ORDER_INVALID_STATUS) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=该订单已失效'); return '该订单已失效'; } if ($order['pay_status'] == Order::ORDER_CANCLE_STATUS) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=已取消订单'); return '已取消订单'; } $data = $this->wxQrCode($order); $address = $mAddress->getById($order['address_id']); } $address['county'] = isset($address['county']) && $address['county'] ? District::getRegionById($address['county']) : ''; $alipayForm = $this->genAlipayForm($data); $alipayQrcode = $this->genAlipayQrcode($data); $sig = $this->wxCodeSig($data); $data['signature'] = $sig; $methods = $payMethods->getById(arrayColumn($payIds, 'pay_id'), true); if (!$methods) { // $this->redirect($_SERVER['HTTP_REFERER'] . '?fileInfo=未找到支付方式'); return '未找到支付方式'; } $this->layout = 'main'; return $this->render('order_pay', ['methods' => $methods, 'data' => $data, 'appOrderSn' => $appOrderSn, 'address' => $address, 'returnUrl' => $returnUrl, 'alipayForm' => $alipayForm, 'alipayQrcode' => $alipayQrcode]); }
<?php use backend\components\SetColumn; use common\models\District; use common\models\Region; use common\models\Sale; use yii\bootstrap\Html; use yii\grid\GridView; use yii\helpers\Url; /* @var $this yii\web\View */ /* @var $searchModel backend\models\ObjectSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = Yii::t('app', 'Objects'); $this->params['breadcrumbs'][] = $this->title; ?> <div class="box"> <div class="box-body table-responsive"> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['attribute' => 'id', 'headerOptions' => ['width' => '50']], ['class' => SetColumn::className(), 'label' => Yii::t('app', 'Name'), 'attribute' => 'name', 'value' => 'sale.name'], ['class' => SetColumn::className(), 'attribute' => 'region_id', 'filter' => Region::getList(), 'value' => 'sale.region.content.name'], ['class' => SetColumn::className(), 'attribute' => 'district_id', 'filter' => District::getListAll(), 'value' => 'sale.district.content.name'], ['class' => SetColumn::className(), 'label' => Yii::t('app', 'Address'), 'attribute' => 'address', 'value' => 'sale.address'], ['attribute' => 'sale.created_at', 'format' => ['date', 'dd.MM.Y'], 'options' => ['width' => '80']], ['class' => SetColumn::className(), 'attribute' => 'status', 'filter' => Sale::getStatusList(), 'name' => 'statusName', 'cssClasses' => [Sale::STATUS_HIDE => 'default', Sale::STATUS_ACTIVE => 'success', Sale::STATUS_AWAITING => 'warning']], ['class' => 'yii\\grid\\ActionColumn', 'template' => '{link} {create}', 'buttons' => ['link' => function ($url, $model, $key) { return Html::a(Yii::t('app', 'View'), Url::toRoute(['sale/update', 'id' => $model->sale->id]), ['class' => 'btn btn-primary btn-xs']); }, 'create' => function ($url, $model, $key) { return Html::a(Yii::t('app', 'Create'), Url::toRoute(['sale/create', 'object_id' => $model->id]), ['class' => 'btn btn-success btn-xs']); }]]]]); ?> </div> </div>
/** * Finds the District model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return District the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = District::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * 用户地址接口 */ public function actionInfo($id) { $util = Yii::$app->util; $request = Yii::$app->getRequest(); $params = Yii::$app->request->get(); //判断用户是否登录 if (!UserBaseInfo::isLogin()) { $util->formatResData(1202, 'please_login', ['msg' => '请你登录']); } $id = intval($id); //判断参数的是否为空 if (!$id) { $util->formatResData(1101, 'address_param_missing', ['msg' => '地址信息参数缺失']); } //判断是否是Ajax请求 if (!$request->getIsAjax($id)) { $util->formatResData(1301, 'illegal_request', ['msg' => '非法请求']); } $address = new Address(); $data = $address->getByUserId($id); //通过地址ID获取对应的地址信息 $data = $address->getById($id); if (!$data) { $util->formatResData(1102, 'id_not_exists', ['msg' => 'ID信息不存在']); } //从session或cookie中获取用户id $userId = UserBaseInfo::getUserId(); if ($data['user_id'] != $userId) { $util->formatResData(1103, 'can_not_operate_other\'s_order_message', ['msg' => '不能操作其他人的订单信息']); } if (!$data['post_code']) { unset($data['post_code']); } //根据子区域id获取区域信息 $region = District::getById($data['county'], true); if (!$region) { $util->formatResData(1104, 'region_message_not_exists', ['msg' => '该子区域ID对应的区域信息不存在']); } $result = ['city' => $region['upid'], 'province' => $region['parent']['upid']]; $result = array_merge($data, $result); if ($result) { $util->formatResData(0, 'success', $result); } else { $util->formatResData(1201, 'get_address_fail', ['msg' => '获取地区信息失败']); } }
public function actionDistrictList() { if (isset($_POST['depdrop_parents'])) { if ($parents = $_POST['depdrop_parents']) { $out[-1] = ''; $out += District::getList($parents[0]); foreach ($out as $key => $value) { $result[] = ['id' => $key, 'name' => $value]; } print Json::encode(['output' => @$result, 'selected' => '']); return; } } }
/** * 修改个人信息业务处理 * * @param array $params * @return array */ public function personalInfo($params) { $util = Yii::$app->util; if (!isset($params['id'])) { return $util->responseArray(1101, 'userid_params_missing', '用户ID参数缺失'); } $id = intval($params['id']); unset($params['id']); if ($id <= 0) { return $util->responseArray(2101, 'illegal_userid_params', '用户ID参数非法'); } if (empty($params)) { return $util->responseArray(1100, 'necessary_params_missing', '缺少必要参数'); } $key = array_keys($params)[0]; $allows = ['avatar' => ['1101' => ['tip' => '用户头像参数缺失', 'msg' => 'avatar_params_missing'], '2101' => ['tip' => '用户头像参数非法', 'msg' => 'illegal_avatar_params']], 'email' => ['1101' => ['tip' => '用户邮箱参数缺失', 'msg' => 'email_params_missing'], '2101' => ['tip' => '用户邮箱参数非法', 'msg' => 'illegal_email_params'], 'pattern' => function ($email) use($util) { return $util->regularEmail($email); }], 'username' => ['1101' => ['tip' => '用户昵称参数缺失', 'msg' => 'nickname_params_missing'], '2101' => ['tip' => '用户昵称参数非法', 'msg' => 'illegal_nickname_params'], 'pattern' => function ($username) use($util) { $length = $util->utf8Strlen($username); return $length > 6 ? false : true; }], 'realname' => ['1101' => ['tip' => '用户姓名参数缺失', 'msg' => 'realname_params_missing'], '2101' => ['tip' => '用户姓名参数非法', 'msg' => 'illegal_realname_params']], 'contact_phone' => ['1101' => ['tip' => '用户联系方式参数缺失', 'msg' => 'contactphone_params_missing'], '2101' => ['tip' => '用户联系方式参数非法', 'msg' => 'illegal_contactphone_params'], 'pattern' => function ($phone) use($util) { return $util->regularMobile($phone); }], 'gender' => ['1101' => ['tip' => '用户性别参数缺失', 'msg' => 'gender_params_missing'], '2101' => ['tip' => '用户性别参数非法', 'msg' => 'illegal_gender_params'], 'pattern' => function ($gender) { $sex = [0, 1, 2]; return in_array($gender, $sex); }], 'personality_sig' => ['1101' => ['tip' => '用户个性签名参数缺失', 'msg' => 'signature_params_missing'], '2101' => ['tip' => '用户个性签名内容过长', 'msg' => 'signature_too_long'], 'pattern' => function ($signature) use($util) { $length = $util->utf8Strlen($signature); return $length > 300 ? false : true; }], 'city' => ['1101' => ['tip' => '城市ID参数缺失', 'msg' => 'cityid_params_missing'], '2101' => ['tip' => '城市ID参数非法', 'msg' => 'illegal_cityid_params'], 'pattern' => function ($city) use($util) { $county = District::getById($city, false); if (!$county) { return $util->responseArray(6102, 'county_info_notexists', '所选区/县信息不存在'); } if ($county['level'] != District::AREA_LEVEL_COUNTY) { return $util->responseArray(6103, 'not_belong_county', '所选区/县ID不属于区/县'); } return true; }]]; if (!array_key_exists($key, $allows)) { return $util->responseArray(1100, 'necessary_params_missing', '缺少必要参数'); } $info = $params[$key]; if ($info === '' || $info === false) { return $util->responseArray(1101, $allows[$key]['1101']['msg'], $allows[$key]['1101']['tip']); } if (isset($allows[$key]['pattern'])) { $pattern = $allows[$key]['pattern']; if ($pattern instanceof \Closure) { $rt = call_user_func($pattern, $info); if (is_array($rt)) { return $rt; } if (!$rt) { return $util->responseArray(2101, $allows[$key]['2101']['msg'], $allows[$key]['2101']['tip']); } } } return $util->responseArray(0, '', '', ['id' => $id, $key => $info]); }
<h4 class="box-title"><?php echo Yii::t('app', 'Location'); ?> </h4> </div> <div class="box-body"> <div class="row"> <div class="col-md-6"> <?php echo $form->field($model, 'region_id')->dropDownList(Region::getList(), ['id' => 'region_id', 'prompt' => '']); ?> </div> <div class="col-md-6"> <?php echo $form->field($model, 'district_id')->widget(DepDrop::classname(), ['data' => District::getList($model->region_id), 'options' => ['id' => 'district_id'], 'pluginOptions' => ['depends' => ['region_id'], 'placeholder' => false, 'url' => Url::to(['/personal/district-list'])]]); ?> </div> </div> <div class="row"> <div class="col-md-6"> <?php echo $form->field($model, 'address', ['template' => "{label}\n<div class=\"input-group\">{input}\n<span class=\"input-group-btn\"><button class=\"btn btn-default\" type=\"button\"><span class=\"glyphicon glyphicon-refresh\" aria-hidden=\"true\"></span></button></span></div>\n{hint}\n{error}"])->textInput(['maxlength' => true]); ?> </div> <div class="col-md-6"> <?php echo $form->field($model, 'gps', ['template' => "{label}\n<div class=\"input-group\">{input}\n<span class=\"input-group-btn\"><button class=\"btn btn-default\" type=\"button\"><span class=\"glyphicon glyphicon-refresh\" aria-hidden=\"true\"></span></button></span></div>\n{hint}\n{error}"])->textInput(['maxlength' => true]); ?> </div>
/** * DB => JSON */ public function actionExport() { echo "Export to data.json..."; $data = []; // Parties $data['parties'] = []; foreach (Party::find()->all() as $party) { $data['parties'][] = ['name' => $party->name, 'deputies' => $party->deputyCount, 'lawTagsInfo' => $party->lawTagsInfo]; } usort($data['parties'], function ($a, $b) { return $b['deputies'] - $a['deputies']; }); // Laws $data['laws'] = []; foreach (Law::find()->orderBy('(dateVoting IS NOT NULL), dateVoting DESC')->all() as $law) { $lawData = ['id' => $law->id, 'no' => $law->no, 'name' => $law->name, 'url' => $law->url, 'urlVoting' => $law->urlVoting, 'good' => $law->good, 'tagYes' => $law->tagYes, 'descYes' => $law->descYes, 'tagNo' => $law->tagNo, 'descNo' => $law->descNo, 'date' => strtotime($law->dateVoting)]; if (!$law->urlVoting) { unset($lawData['urlVoting']); } if (!$law->dateVoting) { unset($lawData['date']); } $data['laws'][] = $lawData; } // Law tags $data['lawTags'] = []; foreach (LawTag::find()->orderBy('order')->all() as $lawTag) { $data['lawTags'][] = ['name' => $lawTag->name, 'desc' => $lawTag->desc, 'type' => $lawTag->type, 'opposite' => $lawTag->opposite, 'order' => $lawTag->order, 'laws' => $lawTag->lawCount]; } // Deputies $data['deputies'] = []; foreach (Deputy::find()->orderBy('name')->all() as $deputy) { $deputyData = ['id' => $deputy->id, 'name' => $deputy->name, 'party' => $deputy->partyName, 'phones' => $deputy->phones ? explode(',', $deputy->phones) : [], 'residence' => $deputy->residence, 'dateAuthorityStart' => strtotime($deputy->dateAuthorityStart)]; if ($deputy->dateAuthorityStop) { $deputyData['dateAuthorityStop'] = strtotime($deputy->dateAuthorityStop); } if ($deputy->facebook) { $deputyData['facebook'] = $deputy->facebook; } if ($deputy->district) { $deputyData['district'] = ['id' => $deputy->district->id, 'region' => $deputy->district->region, 'text' => $deputy->district->text]; } // Deputy laws $deputyData['laws'] = []; $deputyData['laws']['відвідуваність'] = $deputy->registrationRate; foreach ($deputy->laws as $deputyLaw) { $deputyData['laws'][$deputyLaw->lawId] = $deputyLaw->vote; } // Deputy law tags and info $deputyData['lawTags'] = $deputy->lawTags; $deputyData['lawTagsInfo'] = $deputy->lawTagsInfo; $data['deputies'][] = $deputyData; } // Search suggestions $tags = array(); $tagsDeputyName = array(); $tagsDeputyDistrict = array(); foreach (LawTag::find()->orderBy('name')->all() as $lawTag) { $tags[] = array('name' => $lawTag->name, 'type' => 'law-tag', 'typeOrder' => 1, 'lawTagType' => $lawTag->type); } foreach (Party::find()->orderBy('name')->all() as $party) { $tags[] = array('name' => $party->name, 'type' => 'party', 'typeOrder' => 2); } foreach (Deputy::find()->orderBy('name')->all() as $deputy) { $tagsDeputyName[] = array('name' => $deputy->name, 'type' => 'deputy-name', 'typeOrder' => 3, 'deputyId' => $deputy->id, 'dateAuthorityStop' => $deputy->dateAuthorityStop ? $deputy->dateAuthorityStop : ''); } foreach (District::find()->orderBy('id')->all() as $district) { $tagsDeputyDistrict[] = array('name' => "Виборчий округ №{$district->id} ({$district->region})", 'type' => 'district', 'typeOrder' => 4, 'districtId' => (int) $district->id); } $data['searchSuggestions'] = array_merge($tags, $tagsDeputyName, $tagsDeputyDistrict); // Array data to json $json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); // Save data chdir(\yii::getAlias('@frontend')); file_put_contents('data/data.json', $json); file_put_contents('js/data.js', "VVKP_DATA = {$json};"); $this->actionStatic(); $this->actionGzip(); }
/** * 同步个人信息 * * @param array $data 变更数据 * $data中必须包含为id的Key * @return boolean */ protected function syncProfile($data) { $res = false; $mUser = new UserBaseInfo(); $uid = isset($data['id']) && $data['id'] ? $data['id'] : false; if (!$uid) { return $uid; } unset($data['id']); $user = $mUser->getUserById($uid); if ($user) { $industry = Yii::$app->util->loadConfig('user-industry', '/platform_i/config/'); $user = array_merge($user, $data); // 设置默认同步数据 $data = ['open_id' => $user['open_id'], 'name' => $user['username'], 'password' => $user['password'], 'salt' => $user['password_salt'], 'birthday' => $user['birthday'], 'city' => $user['city'], 'industry' => $user['industry'], 'company' => $user['company'], 'position' => $user['position'], 'dc_avatar' => $user['avatar']]; // $data = array_merge($defData, $data); $data['industry'] = !$industry || !$data['industry'] || !isset($industry[$data['industry']]) ? '' : $industry[$data['industry']]; $data['user_trade'] = $data['industry']; $data['job'] = $data['position']; unset($data['industry']); unset($data['position']); $mDistrict = new District(); $city = $mDistrict->getByCity($data['city']); $data['city'] = (!isset($city['parent']) ? '' : $city['parent']['name']) . ' ' . $city['name']; try { $sso = Yii::$app->sso; $res = $sso->sync('profile', $data); $sso->syncProfileLog($res, json_encode($data), 'profile'); } catch (\Exception $e) { } // TODO: 针对同步结果进行相关操作 if ($res) { } else { } } return $res; }
/** * @return \yii\db\ActiveQuery */ public function getDistricts() { return $this->hasMany(District::className(), ['municipality_id' => 'municipality_id']); }
/** * 用户修改信息 * * @param array $params 用户修改的信息 * @return array */ public function modify($params) { $date = []; if (empty($params['open_id'])) { return responseArray(1001, 'id_not_find', '用户open_id丢失'); } $genderArr = [UserBaseInfo::GENDER_UNKNOWN, UserBaseInfo::GENDER_MALE, UserBaseInfo::GENDER_FEMALE]; $date['birthday'] = ''; if (isset($params['year'], $params['month'], $params['day']) && $params['year'] && $params['month'] && $params['day']) { if (!is_numeric($params['year'])) { return responseArray(2002, 'year_illegal_modify', '年份非法修改'); } $month = str_pad(intval($params['month']), 2, "0", STR_PAD_LEFT); $day = str_pad(intval($params['day']), 2, "0", STR_PAD_LEFT); if (checkdate($month, $day, $params['year'])) { if ($params['year'] <= date('Y', time()) && $params['year'] >= 1950) { $date['birthday'] = $params['year'] . '-' . $month . '-' . $day; } else { return responseArray(2003, 'date_not_whithin_specified_time', '日期不在规定时间之内'); } } else { return responseArray(2004, 'date_illegal_modify', '非法日期'); } } foreach ($params as $key => $value) { $date[$key] = $value; if ($key === 'username') { $preg = '/^((?!^\\d+$)(?!^\\-+$)(?!^\\_+$)[\\x{4e00}-\\x{9fa5}a-zA-Z0-9\\_\\-]{2,20})$/u'; $res = preg_match($preg, $value); if (!$res) { return responseArray(2101, 'username_format_error', '昵称格式错误'); } } if ($key === 'gender') { if (!in_array($value, $genderArr)) { return responseArray(2201, 'sex_illegally_modified', '性别非法修改'); } } if ($key === 'city' && !empty($value)) { $district = new District(); $city = $district->getByName($value); if (!$city) { return responseArray(2104, 'city_not_found', '城市不存在'); } $date[$key] = $city['id']; } if ($key === 'industry' && !empty($value)) { $industry = \Yii::$app->util->loadConfig('user-industry', '/platform_i/config/'); if (!isset($industry[$value])) { return responseArray(2103, 'industry_information_not_exist', '行业信息不存在'); } } if ($key === 'company') { $comStrLength = mb_strlen($value, 'utf8'); if ($comStrLength < 0 || $comStrLength > 50) { return responseArray(2105, 'company_too_long', '公司名称过长'); } $date['company'] = strip_tags($value); } if ($key === 'position') { $posStrLength = mb_strlen($value, 'utf8'); if ($posStrLength < 0 || $posStrLength > 30) { return responseArray(2016, 'job_title_too_long', '就任职位名称过长'); } $date['position'] = strip_tags($value); } if ($key === 'avatar') { $avatar = new Avatar(); $picture = $avatar->uploadByUrl($value); if ($picture === 1) { return responseArray(1701, 'type_not_allowed', '上传图片类型不允许'); } $date['avatar'] = $picture; } } unset($date['year']); unset($date['month']); unset($date['day']); $date['update_time'] = time(); $user = UserBaseInfo::find()->where('open_id=:open_id', [':open_id' => $params['open_id']])->one(); if (!$user) { return responseArray(1101, 'user_not_found', '没找到用户'); } $field = ['password', 'password_salt', 'mobile', 'email']; $attributes = $user->getAttributes(); foreach ($date as $key => $value) { if ($value === '' || in_array($key, $field) || !array_key_exists($key, $attributes)) { unset($date[$key]); } else { $user->{$key} = $value; } } if (!$user->username) { $user->username = UserBaseInfo::genUsername($user->id); } if ($user->save()) { $res = array_merge($this->generateToken(), $date); $res['realname'] = $user->realname; return responseArray(0, 'success', '修改用户信息成功', $res); } else { return responseArray(2106, 'modify_password_failure', '修改用户信息失败'); } }
?> </div> </div> </div> <?php } else { ?> <div class="row"> <div class="col-xs-6 col-sm-4 col-md-2"> <?php echo $form->field($model, 'region_id')->dropDownList(Region::getList(), ['class' => 'form-control selectpicker show-tick', 'data-style' => 'form-control', 'id' => 'region_id', 'title' => Yii::t('app', 'Choose One'), 'prompt' => Yii::t('app', 'Any')]); ?> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <?php echo $form->field($model, 'district_id')->widget(DepDrop::classname(), ['data' => District::getList($model->region_id), 'options' => ['class' => 'form-control selectpicker show-tick', 'data-style' => 'form-control', 'id' => 'district_id', 'title' => Yii::t('app', 'Choose One'), 'prompt' => Yii::t('app', 'Any')], 'pluginOptions' => ['depends' => ['region_id'], 'placeholder' => false, 'url' => Url::to(['/ajax/district-list'])], 'pluginEvents' => ['depdrop.afterChange' => "function (event, id, value) { \$('#district_id').selectpicker('refresh'); }"]]); ?> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <?php echo $form->field($model, 'type_id')->dropDownList(Sale::getTypeList(), ['class' => 'form-control selectpicker show-tick', 'data-style' => 'form-control', 'title' => Yii::t('app', 'Choose One'), 'prompt' => Yii::t('app', 'Any')])->label(Yii::t('app', 'Type')); ?> </div> <div class="col-xs-6 col-sm-4 col-md-2"> <?php echo Html::label($model->getAttributeLabel('bedroom')); ?> <div class="row fromto"> <div class="col-xs-6"> <?php echo $form->field($model, 'bedroom_from')->label(false)->textInput(['placeholder' => Yii::t('app', 'From')]);
public function getDistrict() { return $this->hasOne(District::className(), ['id' => 'district_id']); }
/* @var $form yii\widgets\ActiveForm */ ?> <div class="barangay-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'barangay')->textInput(['maxlength' => true]); ?> <?php $district = District::find()->all(); $listData = ArrayHelper::map($district, 'district_id', 'district_name'); echo $form->field($model, 'district_id')->dropDownList($listData, ['prompt' => 'Select your District']); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> </div> <?php ActiveForm::end(); ?> </div>