Example #1
0
 public static function getAddressList()
 {
     /** @var \yii\web\user $customer */
     $customer = Yii::$app->user->identity;
     $deliveryAddresses = DeliveryAddress::find()->where(['user_id' => $customer->id])->all();
     $addressList = array_map(function ($address) {
         /** @var \home\modules\member\models\DeliveryAddress $address */
         $addressInfo = [$address->provinceArea->name . $address->cityArea->name . $address->districtArea->name . $address->address, $address->zip_code, $address->name, $address->phone];
         $addressInfo = implode(' ', $addressInfo);
         return $addressInfo;
     }, $deliveryAddresses);
     $defaultAddress = array_filter($deliveryAddresses, function ($address) {
         /** @var \home\modules\member\models\DeliveryAddress $address */
         return $address->is_default;
     });
     if (!empty($defaultAddress)) {
         $defaultKey = array_keys($defaultAddress)[0];
         $defaultAddress = $addressList[$defaultKey];
     }
     return [array_combine($addressList, $addressList), $defaultAddress];
 }
Example #2
0
 /**
  * find member's address
  * @author Cangzhou Wu<*****@*****.**>
  * @return string
  */
 public function actionDeliveryAddress()
 {
     $model = new DeliveryAddress();
     $dataProvider = new ActiveDataProvider(['query' => $model::find()->where(['user_id' => Yii::$app->user->id])]);
     //view
     if (Yii::$app->request->get('view_id')) {
         $model = $model->find()->where(['delivery_address_id' => Yii::$app->request->get('view_id'), 'user_id' => Yii::$app->user->id])->one();
     }
     //create and update
     if ($model->load(Yii::$app->request->post())) {
         $deliveryAddress = Yii::$app->request->post('DeliveryAddress');
         $deliveryAddress['user_id'] = Yii::$app->user->id;
         $model->user_id = Yii::$app->user->id;
         //prevent causing multiple submissions when F5 to refresh the page
         if (!DeliveryAddress::find()->where($deliveryAddress)->all()) {
             /**
              * ensure only one default deliveryAddress
              */
             if ($model->is_default == 1) {
                 $deliveryAddress = DeliveryAddress::find()->where(['is_default' => 1, 'user_id' => Yii::$app->user->id])->all();
                 foreach ($deliveryAddress as $address) {
                     $address->is_default = 0;
                     $address->save();
                 }
             }
             if ($model->save()) {
                 if (Yii::$app->request->get('view_id')) {
                     $this->redirect(['address/delivery-address']);
                 }
             }
         }
     }
     $area = Area::find()->where(['parent_id' => 100000])->all();
     $catList = [];
     foreach ($area as $s) {
         $catList[$s->area_id] = $s->name;
     }
     return $this->render('delivery_address', ['model' => $model, 'catList' => $catList, 'dataProvider' => $dataProvider]);
 }
Example #3
0
    <h2 class="main-heading text-center">
        结算
    </h2>
    <!-- Main Heading Ends -->

    <form>
        <div class="breadcrumb address-panel">
            <div class="box-title container_24"><span
                    style="float:right"><?php 
echo Html::a('管理收货地址', array('/member/address/delivery-address'), array('target' => '_blank'));
?>
</span>收货地址
            </div>
            <div class="box-content">
                <?php 
list($addressList, $defaultAddress) = \star\member\models\DeliveryAddress::getAddressList();
?>
                <?php 
echo Html::dropDownList('address', $defaultAddress, $addressList);
?>
            </div>
        </div>
        <div class="breadcrumb">
            <div class="box-title container_24">支付方式</div>
            <div class="box-content" style="vertical-align:middle;">

                <?php 
$payment = Yii::createObject(\star\payment\models\Payment::className());
echo Html::radioList('payment', [$payment::ALIPAY], $payment->getPayList());
?>
            </div>
Example #4
0
 /**
  * Finds the customerAddress model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return customerAddress the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findDeliveryAddressModel($id)
 {
     $model = Yii::createObject(DeliveryAddress::className());
     if (($model = $model::findOne($id)) !== null) {
         return $model;
     } else {
         throw new yii\web\NotFoundHttpException('The requested page does not exist.');
     }
 }
Example #5
0
<?php

use kartik\widgets\DepDrop;
use yii\helpers\Url;
use yii\helpers\Html;
use yii\grid\GridView;
use star\member\models\DeliveryAddress;
$dataList = ['1' => '是', '0' => '否'];
$this->params['breadcrumbs'][] = ['label' => Yii::t('member', 'Member Center'), 'url' => ['/member/default/index']];
$this->params['breadcrumbs'][] = '收货地址';
$this->params['delivery-address'] = true;
$link = $this->getAssetManager()->getPublishedUrl('@theme/cluster/default/assets');
$this->registerJsFile($link . '/js/address.js', ['depends' => [\yii\web\JqueryAsset::className()]]);
$count = DeliveryAddress::find()->where(['user_id' => Yii::$app->user->id])->count();
if ($count == 0) {
    echo '您还没有创建收货地址! 请填写以下信息并保存:<br /><br />';
} else {
    ?>

    <span id="item" style="margin-left: 0px">已保存有效的地址:</span>
    <?php 
    echo GridView::widget(['dataProvider' => $dataProvider, 'columns' => [['class' => 'yii\\grid\\SerialColumn'], 'name:text:收货人', 'provinceArea.name:text:省', 'cityArea.name:text:市', 'districtArea.name:text:区', 'address:text:详细地址', 'zip_code', 'phone', ['attribute' => 'is_default', 'value' => function ($model) {
        $dataList = ['1' => '是', '0' => '否'];
        return $dataList[$model->is_default];
    }], ['class' => 'yii\\grid\\ActionColumn', "buttons" => ['view' => function ($url, $model) {
        return;
    }, 'update' => function ($url, $model) {
        return Html::a('<span class="glyphicon glyphicon-pencil"></span>', ['address/delivery-address', 'view_id' => $model->delivery_address_id]);
    }]]]]);
}
//index view