Skip to content

Commit

Permalink
地址模块
Browse files Browse the repository at this point in the history
  • Loading branch information
EleTeam committed Apr 5, 2017
1 parent 2e8e41a commit d151394
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 41 deletions.
2 changes: 1 addition & 1 deletion common/models/Address.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,6 @@ public static function findByUser($user_id)
{
return static::find()->where('user_id=:user_id and status=:status',
['user_id'=>$user_id, 'status'=>static::STATUS_ACTIVE])
->with(['area'])->all();
->with(['area'])->orderBy('is_default desc')->all();
}
}
68 changes: 34 additions & 34 deletions wap/controllers/AddressController.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,16 @@ public function actionCreatePost()
$area_id = Yii::$app->request->post('area_id');
$detail_address = Yii::$app->request->post('detail_address');
$telephone = Yii::$app->request->post('telephone');
$is_default = Yii::$app->request->post('is_default');
$is_default = Yii::$app->request->post('is_default') ? 1 : 0;

if(!$fullname || !$area_id || !$detail_address || !$telephone){
return $this->jsonFail([], "请把信息填写完整");
}

if(!is_numeric($telephone) || strlen($telephone) < 11 || substr($telephone,0,1) != '1'){
return $this->jsonFail([], "请输入正确手机号");
}

$area = Area::findOne($area_id);
if (!$area) {
return $this->jsonFail([], "区域地址(ID:$area_id) 不存在");
Expand All @@ -71,47 +75,43 @@ public function actionCreatePost()
// return $this->jsonFail([], '请填写门牌地址,用于收货');
//}

//清除默认地址, 因为把每次添加的地址作为默认地址
Address::updateAll(['is_default'=>Address::NO], 'user_id=:user_id', [':user_id'=>$user_id]);
//取消默认地址
if($is_default) {
Address::updateAll(['is_default' => Address::NO], 'user_id=:user_id', [':user_id' => $user_id]);
}

//添加收货地址
$address = new Address();
$addressData = $_REQUEST;
$addressData['is_default'] = Address::YES;
$addressData['user_id'] = $user_id;
$addressData = [
'user_id' => $user_id,
'is_default' => $is_default,
'telephone' => $telephone,
'detail_address' => $detail_address,
'area_id' => $area_id,
'fullname' => $fullname
];
if(!($address->load($addressData, '') && $address->save())) {
return $this->jsonFail([], $address->errorsToString());
}

//我的收货列表
$addresses = Address::findByUser($user_id);
$addressesArr = [];
foreach($addresses as $item){
$addressesArr[] = $item->toArray([], ['area']);
}

//带有区域对象的新地址
$addrArr = [];
$addrArr[] = $address->toArray();
$addrArr['area'] = $address->area->toArray();
$addrArr['area']['path_names_4print'] = $address->area->getPathNames4Print();
// $addresses = Address::findByUser($user_id);
// $addressesArr = [];
// foreach($addresses as $item){
// $addressesArr[] = $item->toArray([], ['area']);
// }
//
// //带有区域对象的新地址
// $addrArr = [];
// $addrArr[] = $address->toArray();
// $addrArr['area'] = $address->area->toArray();
// $addrArr['area']['path_names_4print'] = $address->area->getPathNames4Print();
//
// $data = [
// 'addresses' => $addressesArr,
// 'address' => $addrArr,
// ];
return $this->jsonSuccess([], '添加成功');

$data = [
'addresses' => $addressesArr,
'address' => $addrArr,
];
return $this->jsonSuccess($data);

}

/**
* 获得所有地址对象, json编码
* @link http://local.m.eleteam.com/address/get-all-areas
*/
public function actionGetAllAreas()
{
$areas = AreaHelper::getTree();
//$areas = Area::findToTree();
return $this->jsonSuccess(['areas'=>$areas]);
}
}
36 changes: 36 additions & 0 deletions wap/controllers/AreaController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php
/**
* Shop-PHP-Yii2
*
* @author Tony Wong
* @date 2017-04-06
* @email [email protected]
* @copyright Copyright © 2017年 EleTeam
* @license The MIT License (MIT)
*/

namespace wap\controllers;

use common\helpers\AreaHelper;
use Yii;

/**
* 地址控制器
*
* Class AddressController
* @package wap\controllers
*/
class AreaController extends BaseController
{

/**
* 获得所有地址对象, json编码
* @link http://local.m.eleteam.com/address/get-all-areas
*/
public function actionGetAllAreas()
{
$areas = AreaHelper::getTree();
//$areas = Area::findToTree();
return $this->jsonSuccess(['areas'=>$areas]);
}
}
8 changes: 3 additions & 5 deletions wap/views/address/create.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
</div>
<div class="page no-tabbar address-create" data-page="address-create">
<div class="page-content">
<i style="display: none;" id="url-get-all-areas" data-url="<?=Url::toRoute('address/get-all-areas')?>"></i>
<i style="display: none;" id="url-get-all-areas" data-url="<?=Url::toRoute('/area/get-all-areas')?>"></i>

<form class="list-block address-form" action="<?=Url::toRoute('address/create-post')?>">
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
Expand All @@ -49,9 +49,7 @@
<div class="item-content">
<div class="item-inner">
<div class="item-input">
<input name="province" id="province" type="hidden">
<input name="city" id="city" type="hidden">
<input name="county" id="county" value="110101" type="hidden">
<input name="area_id" id="area_id" type="hidden">
<input required="required" name="area_text" placeholder="所属地区" id="picker-dependent" readonly="readonly" class="" type="text">
</div>
</div>
Expand All @@ -78,7 +76,7 @@
<li>
<div class="item-content">
<label class="label-checkbox box display-box-pack">
<input name="is_default" type="checkbox">
<input name="is_default" type="checkbox" checked="checked">
<div class="item-media"><i class="icon icon-form-checkbox"></i></div>
<div class="box-flex">设置成默认地址</div>
</label>
Expand Down
2 changes: 1 addition & 1 deletion wap/views/address/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
<ul>
<li class="swipeout">
<div class="swipeout-content item-content">
<div class="card" data-addressid="8127" data-cityid="110100">
<div class="card address-item" data-addressid="<?=$address->id?>">
<div class="card-header">
<div class="box-flex">
<span><?=$address->fullname?></span>
Expand Down
2 changes: 2 additions & 0 deletions wap/web/js/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,8 @@ myApp.onPageInit('address-create', function(page){
rotateEffect: true,
toolbarCloseText: '完成',
formatValue: function (picker, values, displayValues) {
var area_id = values[values.length-1];
$$('#area_id').val(area_id);
return displayValues; //逗号风格的string, 如广东,深圳,福田
},
cols: [
Expand Down

0 comments on commit d151394

Please sign in to comment.