/// <summary> /// 新增收货地址(微信地址) /// </summary> /// <param name="value"></param> /// <returns></returns> public JsonResult <Result <long> > PostAddWXAddress(ShippingAddressOperaAddressPModel value) { CheckUserLogin(); try { if (string.IsNullOrWhiteSpace(value.address)) { throw new HimallException("请填写详细地址"); } if (value.regionId <= 0 && (string.IsNullOrWhiteSpace(value.city) || string.IsNullOrWhiteSpace(value.county))) { throw new HimallException("参数错误"); } if (value.regionId <= 0) { var _region = ServiceProvider.Instance <IRegionService> .Create.GetRegionByName(value.county, Region.RegionLevel.County); if (_region != null) { value.regionId = _region.Id; } } if (value.regionId <= 0) { throw new HimallException("错误的地区信息"); } } catch (Exception ex) { return(Json(ErrorResult <long>(ex.Message))); } #region 如果存在相同地址就返回 var shoppingAddress = ServiceProvider.Instance <IShippingAddressService> .Create.GetUserShippingAddressByUserId(CurrentUser.Id); var _tmp = shoppingAddress.FirstOrDefault(d => d.RegionId == value.regionId && d.Address == value.address); if (_tmp != null) { return(JsonResult(_tmp.Id)); } #endregion Entities.ShippingAddressInfo shippingAddr = new Entities.ShippingAddressInfo(); shippingAddr.UserId = CurrentUser.Id; shippingAddr.RegionId = value.regionId; shippingAddr.Address = value.address; shippingAddr.Phone = value.cellphone; shippingAddr.ShipTo = value.shipTo; shippingAddr.Latitude = value.lat; shippingAddr.Longitude = value.lng; shippingAddr.AddressDetail = value.addressDetail; try { ServiceProvider.Instance <IShippingAddressService> .Create.AddShippingAddress(shippingAddr); if (value.isDefault) { ServiceProvider.Instance <IShippingAddressService> .Create.SetDefaultShippingAddress(shippingAddr.Id, CurrentUserId); } } catch (Exception ex) { return(Json(ErrorResult <long>(ex.Message))); } return(JsonResult(shippingAddr.Id)); }