Files
CompanyProject/金壶/ydyd_service/application/common/service/UserAddressService.php
2024-09-27 01:32:49 +08:00

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;
}
}