152 lines
5.1 KiB
PHP
152 lines
5.1 KiB
PHP
<?php
|
|
|
|
|
|
namespace app\common\service;
|
|
|
|
use app\facade\AppConstant;
|
|
use app\ydyd_service\model\UserAddressModel;
|
|
use think\facade\Request;
|
|
class UserAddressService
|
|
{
|
|
|
|
|
|
const addr_num_limit = 1;
|
|
|
|
public function makeChangeAddress($parames){
|
|
|
|
//$data = Request::only(['area_id','address','consignee','tel','is_default']);
|
|
$data['consignee'] = $parames['consignee'];
|
|
|
|
if(preg_match('/^1\d{10}$/ ', $parames['tel']) > 0){
|
|
$data['tel'] = $parames['tel'];
|
|
}else{
|
|
$res_return['errcode'] = -9;
|
|
$res_return['errmsg'] = "手机号格式不对,请重新输入";
|
|
return $res_return;
|
|
}
|
|
|
|
$data['area_id'] = $parames['area_id'];
|
|
|
|
$data['address'] = $parames['address'];
|
|
$address_id = $parames['address_id'] ??'';
|
|
|
|
$data['user_id'] = $parames['user_id'];
|
|
$_where[] = ['user_id',"=",$parames['user_id']];
|
|
// $addr_count = UserAddressModel::where($_where)->count();
|
|
// if ($addr_count >= self::addr_num_limit && empty($address_id)) {
|
|
// $res_return['errcode'] = -1;
|
|
// $res_return['errmsg'] = "不能新增更多的收货地址了";
|
|
// return $res_return;
|
|
// }
|
|
//默认地址只有一个
|
|
// if ($data['is_default'] == 1) {
|
|
// $this->cancelDefaultAddress($data);
|
|
// }
|
|
|
|
if ($address_id){
|
|
$_where[] = ["id","=",$address_id];
|
|
$usr_add = UserAddressModel::where($_where)->find();
|
|
if (!empty($usr_add)) {
|
|
UserAddressModel::where($_where)->update($data);
|
|
}else{
|
|
$res_return['errcode'] = -1;
|
|
$res_return['errmsg'] = "地址信息不存在, 无法更新";
|
|
return $res_return;
|
|
}
|
|
}else{
|
|
$addr = UserAddressModel::create($data);
|
|
$address_id = $addr->id;
|
|
}
|
|
|
|
$res_return['errcode'] = 0;
|
|
$res_return['errmsg'] = "操作成功";
|
|
$res_return['data']['id'] = $address_id;
|
|
return $res_return;
|
|
}
|
|
//删除地址
|
|
public function deleteAddress($parames){
|
|
|
|
$_where[] = ['user_id','=',$parames['user_id']];
|
|
$_where[] = ['id','=',$parames['address_id']];
|
|
UserAddressModel::where($_where)->delete();
|
|
$res_return['errmsg'] = "删除操作成功";
|
|
return $res_return;
|
|
}
|
|
|
|
//获取地址列表
|
|
public function getAddressList($user_id){
|
|
$_order = array("is_default" => 'desc');
|
|
$_field = "id, area_id, address, consignee, tel, is_default";
|
|
$address_list = UserAddressModel::field($_field)->order($_order)->where("user_id","=",$user_id)->select();
|
|
if($address_list){
|
|
foreach($address_list as $k =>$v){
|
|
|
|
$area_list = AppConstant::getAreaList();
|
|
|
|
$area_name = '';
|
|
if (isset($area_list[$v['area_id']]['grand_pa_id'])){
|
|
$grand_pa_id = $area_list[$v['area_id']]['grand_pa_id'];
|
|
$area_name .= $area_list[$grand_pa_id]['area_name']." - ";
|
|
}
|
|
if (isset($area_list[$v['area_id']]['parent_area_id'])){
|
|
$parent_area_id = $area_list[$v['area_id']]['parent_area_id'];
|
|
$area_name .= $area_list[$parent_area_id]['area_name']. " - ";
|
|
}
|
|
$area_name .= $area_list[$v['area_id']]['area_name'];
|
|
$address_list[$k]['area_name'] = $area_name;
|
|
|
|
$address_list[$k]['short_consignee'] = mb_substr($v['consignee'],0,2);
|
|
}
|
|
}
|
|
|
|
$res_return['errcode'] = 0;
|
|
$res_return['errmsg'] = "";
|
|
$res_return['data']['list'] = $address_list;
|
|
$res_return['data']['has_address_num'] = count($address_list);
|
|
$left_address_num = self::addr_num_limit - count($address_list);
|
|
$res_return['data']['left_address_num'] = $left_address_num>=0?$left_address_num:0;
|
|
|
|
return $res_return;
|
|
}
|
|
//设置默认地址
|
|
public function setDefaultAddress($parames)
|
|
{
|
|
|
|
$_where[] = ['user_id', "=", $parames['user_id']];
|
|
$_where[] = ['id', "=", $parames['address_id']];
|
|
$addr_result = UserAddressModel::where($_where)->find();
|
|
|
|
if (empty($addr_result)) {
|
|
$res_return['errcode'] = -1;
|
|
$res_return['errmsg'] = "配送信息不存在, 无法设为默认地址!";
|
|
return $res_return;
|
|
}
|
|
|
|
$data['user_id'] = $parames['user_id'];
|
|
$this->cancelDefaultAddress($data);
|
|
$updatedata['is_default'] = 1;
|
|
$status = UserAddressModel::where($_where)->update($updatedata);
|
|
|
|
if ($status) {
|
|
|
|
$res_return['errmsg'] = "默认地址设置成功";
|
|
} else {
|
|
|
|
$res_return['errmsg'] = "默认地址设置失败";
|
|
}
|
|
return $res_return;
|
|
}
|
|
|
|
private function cancelDefaultAddress($data){
|
|
$_where['user_id'] = $data['user_id'];
|
|
$updatedata['is_default'] = 0;
|
|
UserAddressModel::where($_where)->update($updatedata);
|
|
}
|
|
//地区三级
|
|
public function addresss(){
|
|
$area_list = AppConstant::getAreaList();
|
|
return $area_list;
|
|
}
|
|
|
|
|
|
} |