<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Http\Error; use DB; use App\Model\RegionModel; use App\Model\UserAddressModel; class AddressController extends Controller { // 添加收货地址 public function add(Request $request) { if ($request->isMethod('post')) { $address_id = $request->input('address_id', 0); $data = [ 'user_id' => $request->input('user_id', 0), 'province' => $request->input('province', ''), 'city' => $request->input('city', ''), 'district' => $request->input('district', ''), 'detail_address' => $request->input('detail_address', ''), 'zipcode' => $request->input('zipcode', ''), 'intl_code' => $request->input('intl_code', ''), 'consignee' => $request->input('consignee', ''), 'mobile' => $request->input('mobile', ''), 'is_default' => $request->input('is_default', ''), 'address_type' => $request->input('address_type', 0), 'operator_id' => $request->user->userId, ]; $valid = $this->_valid($data); if ($valid['errcode']) return $this->_valid($data); if ($address_id) { $data['address_id'] = $address_id; $url = Config('website.api_domain').'address/update'; $errmsg = '编辑地址'; } else { $url = Config('website.api_domain').'address/create'; $errmsg = '新增地址'; } $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['pf'] = 4; $temp = json_decode(curlApi($url, $data, "POST"), true); if ($temp['err_code'] != 0) return ['errcode' => Error::E_ADD_FAILED, 'errmsg' => $errmsg.'失败,'.$temp['err_msg']]; return ['errcode' => 0, 'errmsg' => $errmsg.'成功']; } } // 地址 public function getRegion($region_id) { $region = RegionModel::where('region_id', $region_id)->select('region_name')->first(); return $region ? $region->region_name : ''; } // 获取地址信息 public function getAddressInfo(Request $request) { if ($request->isMethod('post')) { $address_id = $request->input('address_id'); $info = UserAddressModel::where('address_id', $address_id)->first(); if (empty($info)) return ['errcode' => Error::E_NOT_EXISTS, 'errmsg' => '未找到']; return ['errcode' => 0, 'errmsg' => '', 'data' => $info]; } } //验证 private function _valid($data) { if (!$data['user_id']) { return array( 'errcode' => 1, 'errmsg' => '非法操作~', 'field' => '' ); } if (!$data['province'] || !$data['city'] || !$data['district']) { return array( 'errcode' => 1, 'errmsg' => '您还没选择【所在地区】~', 'field' => 'district' ); } if (!$data['detail_address']) { return array( 'errcode' => 1, 'errmsg' => '您还没填写【详细地址】~', 'field' => 'detail_address' ); } if ($data['zipcode'] && !is_postcode($data['zipcode'])) { return array( 'errcode' => 1, 'errmsg' => '您填写的【邮政编码】格式不正确~', 'field' => 'zipcode' ); } if (!$data['consignee']) { return array( 'errcode' => 1, 'errmsg' => '您还没填写【收货人】~', 'field' => 'consignee' ); } if (!$data['mobile']) { return array( 'errcode' => 1, 'errmsg' => '您还没填写【联系电话】~', 'field' => 'link_mobile' ); } if ($data['intl_code'] != '0086') { $mobile = $data['intl_code'].'+'.$data['mobile']; } else { $mobile = $data['mobile']; } if (!is_mobile($mobile)) { return array( 'errcode' => 1, 'errmsg' => '您填写的【联系电话】格式不正确~', 'field' => 'link_mobile' ); } return array( 'errcode' => 0, 'errmsg' => '验证通过~', ); } // Ajax地址列表 public function ajax_list(Request $request) { $addressList = array(); $map = array(); if ($request->input('user_id')) { $map['user_id'] = $request->input('user_id', ''); } if ($request->input('address_type') !== '') { $map['address_type'] = $request->input('address_type', ''); } if ($map['user_id'] && isset($map['address_type'])) { $addressList = UserAddressModel::where($map)->get(); } if(!empty($addressList) && is_array($addressList)) { $region = array(); foreach ($addressList as &$val) { $region = RegionModel::whereIn('region_id', [$val->province, $val->city, $val->district]) ->select('region_id', 'region_name') ->get(); foreach ($region as $v) { $address[$v->region_id] = $v->region_name; } $val->province_txt = $address[$val->province]; $val->city_txt = $address[$val->city]; $val->district_txt = $address[$val->district]; // 检查港台电话code if ($val->intl_code && $val->intl_code != '0086') $val->mobile = $val->intl_code.'+'.$val->mobile; } } $data['list'] = $addressList; $data['isaction'] = $request->input('isaction'); return view('ajax_list', $data); } //设置默认地址 public function set_default(Request $request) { if ($request->isMethod('post')) { $data['user_id'] = $request->input('user_id'); $data['address_id'] = $request->input('address_id'); $data['operator_id'] = $request->user->userId; $url = Config('website.api_domain').'address/setdefault'; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['pf'] = 4; $temp = json_decode(curlApi($url, $data, "POST"), true); return ['errcode' => $temp['err_code'], 'errmsg' => $temp['err_msg']]; } } // 删除地址 public function delete(Request $request) { if ($request->isMethod('post')) { $data['user_id'] = $request->input('user_id'); $data['address_id'] = $request->input('address_id'); $data['operator_id'] = $request->user->userId; $url = Config('website.api_domain').'address/delete'; $data['k1'] = time(); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['pf'] = 4; $temp = json_decode(curlApi($url, $data, "POST"), true); return ['errcode' => $temp['err_code'], 'errmsg' => $temp['err_msg']]; } } }