/**
  * 新增/更新收货地址
  */
 public function actionAddUpdate()
 {
     $util = Yii::$app->util;
     $params = Yii::$app->getRequest()->post();
     $addrId = null;
     // 传递id参数表示更新操作
     if (isset($params['id'])) {
         $addrId = intval($params['id']);
         if ($addrId <= 0) {
             return $util->responseArray(2111, 'illegal_addrid_params', '收货地址ID参数非法');
         }
     }
     $service = new AddressService();
     $ret = $service->check($params);
     if ($ret['code']) {
         return $ret;
     }
     $data = $ret['data'];
     if ($addrId) {
         $data['id'] = $addrId;
     }
     $userId = $data['user_id'];
     try {
         $userModel = new UserBaseInfoGroup();
         $user = $userModel->getById($userId);
         if (!$user) {
             return $util->responseArray(2100, 'user_forbidden_or_notexists', '用户不存在或者被禁用');
         }
         $addressModel = new Address();
         // 新增操作时判断地址的数量
         if ($addrId === null) {
             $num = $addressModel->calculateAddrNum($userId);
             if ($num == Address::ADDR_MAX_NUM) {
                 return $util->responseArray(6101, 'addr_max_num_limit', '用户最大收货地址数量不允许超过' . Address::ADDR_MAX_NUM);
             }
         }
         $county = District::getById($data['county'], false);
         if (!$county) {
             return $util->responseArray(6102, 'county_info_notexists', '所选区/县信息不存在');
         }
         if ($county['level'] != District::AREA_LEVEL_COUNTY) {
             return $util->responseArray(6103, 'not_belong_county', '所选区/县ID不属于区/县');
         }
         $parentCounty = District::getById($county['upid'], true);
         $data['address'] = $parentCounty['parent']['name'] . $parentCounty['name'] . $county['name'] . '  ' . $data['address'];
         $ret = $addrId ? $this->update($data, $addressModel, $util) : $this->add($data, $addressModel, $util);
         return $ret;
     } catch (Exception $ex) {
         return $util->responseArray(5101, 'database_exception ', '数据库异常');
     }
 }