Beispiel #1
0
 /// <summary>
 /// 添加会员收货地址
 /// </summary>
 /// <param name="addressEntity"></param>
 /// <returns></returns>
 public int AddMemberAddress(User_Consignee_Address addressEntity)
 {
     using (var holycaDb = new HolycaEntities())
     {
         holycaDb.AddToUser_Consignee_Address(addressEntity);
         holycaDb.SaveChanges();
         return(addressEntity.intAddressID);
     }
 }
Beispiel #2
0
 /// <summary>
 /// 检查收货地址信息是否存在
 /// </summary>
 /// <param name="addressEntity"></param>
 /// <returns></returns>
 public bool CheckAddresExists(User_Consignee_Address addressEntity)
 {
     using (var holycaDb = new HolycaEntities())
     {
         var queryTxt = from a in holycaDb.User_Consignee_Address
                        where a.intUserID == addressEntity.intUserID &&
                        a.intStateID == addressEntity.intStateID &&
                        a.intCityID == addressEntity.intCityID &&
                        a.intCountyID == addressEntity.intCountyID &&
                        a.vchDetailAddr == addressEntity.vchDetailAddr &&
                        a.vchPostCode == addressEntity.vchPostCode &&
                        a.vchConsignee == addressEntity.vchConsignee
                        select a;
         return(queryTxt.Count() > 0);
     }
 }
Beispiel #3
0
        /// <summary>
        /// 更新会员收货地址
        /// </summary>
        /// <param name="id"></param>
        /// <param name="addressEntity"></param>
        /// <returns></returns>
        public bool UpdateMemberAddress(int id, User_Consignee_Address addressEntity)
        {
            var result = false;

            using (var holycaDb = new HolycaEntities())
            {
                try
                {
                    var addressInfo = holycaDb.User_Consignee_Address.FirstOrDefault(c => c.intAddressID == id);
                    if (addressInfo != null && addressInfo.intAddressID > 0)
                    {
                        addressInfo.intAddrType      = addressEntity.intAddrType;
                        addressInfo.intCityID        = addressEntity.intCityID;
                        addressInfo.intCountyID      = addressEntity.intCountyID;
                        addressInfo.intStateID       = addressEntity.intStateID;
                        addressInfo.vchCAName        = addressEntity.vchCAName;
                        addressInfo.vchCityName      = addressEntity.vchCityName;
                        addressInfo.vchConsignee     = addressEntity.vchConsignee;
                        addressInfo.vchCountyName    = addressEntity.vchCountyName;
                        addressInfo.vchDetailAddr    = addressEntity.vchDetailAddr;
                        addressInfo.vchMobile        = addressEntity.vchMobile;
                        addressInfo.vchPhone         = addressEntity.vchPhone;
                        addressInfo.vchPostCode      = addressEntity.vchPostCode;
                        addressInfo.vchStateName     = addressEntity.vchStateName;
                        addressInfo.intIsDefaultAddr = addressInfo.intIsDefaultAddr;
                        addressInfo.dtLastModTime    = addressEntity.dtLastModTime;

                        //holycaDb.ApplyCurrentValues("User_Consignee_Address", addressInfo);
                        holycaDb.SaveChanges();
                        result = true;
                    }
                }
                catch (Exception)
                {
                    result = false;
                }
            }
            return(result);
        }
        /// <summary>
        /// 设置用户收货地址信息
        /// </summary>
        /// <param name="sid"></param>
        /// <param name="token"></param>
        /// <param name="userId"></param>
        /// <param name="uid"></param>
        /// <param name="address"></param>
        /// <returns></returns>
        public static MResult <int> SetAddress(string sid, string token, int userId, string uid, AddressEntity address)
        {
            var result = new MResult <int>();

            try
            {
                if (address != null && userId > 0)
                {
                    var member = DALFactory.Member();

                    #region 地址实体类转换
                    var userAddress = new User_Consignee_Address
                    {
                        intAddressID     = address.id,
                        intUserID        = userId,
                        vchConsignee     = address.contact_name,
                        vchCAName        = address.name,
                        vchPhone         = address.phone,
                        vchMobile        = address.mobile,
                        intAddrType      = address.type,
                        intStateID       = address.province_id,
                        vchStateName     = address.province,
                        intCityID        = address.city_id,
                        vchCityName      = address.city,
                        intCountyID      = address.county_id,
                        vchCountyName    = address.county,
                        vchDetailAddr    = address.addr,
                        vchPostCode      = address.zip,
                        intIsDefaultAddr = (byte)(address.get_def ? 1 : 0),
                        dtLastModTime    = address.modify_date,
                        intDeliverID     = address.deliver_id,
                        intPayID         = address.pay_id,
                    };
                    #endregion

                    //查询用户地址库数量
                    var addressCount = member.GetMemberAddressCount(userId);

                    #region 如果用户第一次添加地址,则设为默认地址
                    if (addressCount == 0)
                    {
                        userAddress.intIsDefaultAddr = 1;
                    }
                    #endregion

                    #region 如果设置了 默认收货地址,则需要清空之前所有地址的默认状态
                    if (userAddress.intIsDefaultAddr == 1)
                    {
                        member.ReSetAddressDefaultStatus(userId);
                    }
                    #endregion

                    #region 如果 地址id > 0 则需要更新
                    if (address.id > 0)
                    {
                        userAddress.dtLastModTime = DateTime.Now;
                        if (member.UpdateMemberAddress(address.id, userAddress))
                        {
                            result.status = MResultStatus.Success;
                        }
                        else
                        {
                            result.status = MResultStatus.ExecutionError;
                            result.msg    = "更新收货地址失败!";
                        }
                    }
                    #endregion

                    #region 否则 添加操作
                    else
                    {
                        #region 判断用户地址是否已存在
                        var addresExists = member.CheckAddresExists(userAddress);
                        if (addresExists)
                        {
                            result.status = MResultStatus.ExecutionError;
                            result.msg    = "该收货地址已存在!";
                            return(result);
                        }
                        #endregion

                        #region 判断用户地址数量
                        if (addressCount >= 10)
                        {
                            result.status = MResultStatus.ExecutionError;
                            result.msg    = "您最多只能保存10个收货地址!";
                            return(result);
                        }
                        #endregion

                        userAddress.dtAddTime     = DateTime.Now;
                        userAddress.dtLastModTime = DateTime.Now;
                        result.info = member.AddMemberAddress(userAddress);
                        if (result.info > 0)
                        {
                            result.status = MResultStatus.Success;
                        }
                        else
                        {
                            result.status = MResultStatus.ExecutionError;
                            result.msg    = "添加收货地址失败!";
                        }
                    }
                    #endregion
                }
                else
                {
                    result.status = MResultStatus.ParamsError;
                    result.msg    = "参数错误!";
                }
            }
            catch (Exception)
            {
                result.status = MResultStatus.ExceptionError;
                result.msg    = "设置用户收货地址信息 异常!";
            }
            return(result);
        }