Пример #1
0
 /**
  * 获取地区“子节点”接口
  * @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;
 }
Пример #2
0
 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' => '获取省信息失败']);
     }
 }
Пример #3
0
 /**
  * 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;
 }
Пример #4
0
 /**
  * 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;
 }
Пример #5
0
 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;
 }
Пример #7
0
 /**
  * @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]);
 }
Пример #9
0
 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);
 }
Пример #10
0
 public function getDistricts()
 {
     return $this->hasMany(District::className(), ['village_id' => 'id']);
 }
Пример #11
0
 public function getDistricts()
 {
     return $this->hasMany(District::className(), ['date_ready' => 'id']);
 }
Пример #12
0
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]]);
Пример #13
0
 /**
  * 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();
             }
         }
     }
 }
Пример #14
0
<?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>
Пример #15
0
$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>
Пример #16
0
        <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')]);
?>
Пример #17
0
 /**
  * 用户支付页面
  */
 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]);
 }
Пример #18
0
<?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.');
     }
 }
Пример #20
0
 /**
  * 用户地址接口   
  */
 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' => '获取地区信息失败']);
     }
 }
Пример #21
0
 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;
         }
     }
 }
Пример #22
0
 /**
  * 修改个人信息业务处理
  *
  * @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]);
 }
Пример #23
0
                            <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>
Пример #24
0
 /**
  * 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();
 }
Пример #25
0
 /**
  * 同步个人信息
  *
  * @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']);
 }
Пример #27
0
 /**
  * 用户修改信息
  * 
  * @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', '修改用户信息失败');
     }
 }
Пример #28
0
    ?>
            </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')]);
Пример #29
0
 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>