예제 #1
0
        /// <summary>
        /// 房源编辑页面
        /// </summary>
        /// <param name="posttype">信息类型 1 出售 2 求购 3 出租 4求租</param>
        /// <returns></returns>
        public ActionResult GetHouse(int posttype = 1, int buildingType = 1, int buildingId = 0, int editType = 0, int chouseId = 0, int cloneSuccess = 0)
        {
            ViewBag.ShowColned = cloneSuccess;
            PublicUserModel loginUser   = this.GetLoginUser();
            HouseModels     houseModels = new HouseModels();

            if (posttype < 1 || posttype > 4)
            {
                posttype = 1;
            }
            if (buildingType < 1 || buildingType > 5)
            {
                buildingType = 1;
            }
            ViewBag.Posttype      = posttype;
            ViewBag.EditType      = editType;
            ViewBag.ChouseId      = chouseId;
            ViewBag.BuildingType  = buildingType;
            ViewData["LoginUser"] = loginUser;
            if (cloneSuccess == 1)
            {
                return(View(houseModels));
            }
            else
            {
                HouseBasicInfo    houseBasicInfo = new HouseBasicInfo();
                List <HouseImage> houseImages    = new List <HouseImage>();
                HouseInfo         houseInfo      = new HouseInfo();
                VillaInfo         villaInfo      = new VillaInfo();
                ShopInfo          shopInfo       = new ShopInfo();
                OfficeInfo        officeInfo     = new OfficeInfo();
                FactoryInfo       factoryInfo    = new FactoryInfo();

                if (buildingId > 0)
                {
                    houseBasicInfo =
                        ncBase.CurrentEntities.HouseBasicInfo.Where(o => o.HouseID == buildingId && o.BuildType == buildingType && o.TradeType == posttype).FirstOrDefault();
                    byte bTradeType = BitConverter.GetBytes(posttype)[0];
                    if (houseBasicInfo.IsNull()) //房屋类型不匹配 或者发布类型不匹配
                    {
                        houseBasicInfo = new HouseBasicInfo();

                        houseModels.HouseBasicInfo = houseBasicInfo;
                        houseModels.HouseInfo      = houseInfo;
                        houseModels.HouseImages    = houseImages;
                        houseModels.VillaInfo      = villaInfo;
                        houseModels.ShopInfo       = shopInfo;
                        houseModels.OfficeInfo     = officeInfo;
                        houseModels.FactoryInfo    = factoryInfo;

                        return(View(houseModels));
                    }

                    houseImages =
                        ncBase.CurrentEntities.HouseImage.Where(o => o.HouseID == buildingId && o.Status == 1).ToList();
                    if (houseImages.IsNoNull())
                    {
                        houseImages = houseImages.OrderBy(o => o.OrderID).ToList();
                    }

                    switch (buildingType)
                    {
                    case (int)BuildingType.House:
                        houseInfo = ncBase.CurrentEntities.HouseInfo.Where(o => o.HouseID.Equals(buildingId)).FirstOrDefault();
                        if (houseInfo.IsNull())
                        {
                            houseInfo = new HouseInfo();
                        }
                        break;

                    case (int)BuildingType.Villa:
                        villaInfo = ncBase.CurrentEntities.VillaInfo.Where(o => o.HouseID.Equals(buildingId)).FirstOrDefault();
                        if (villaInfo.IsNull())
                        {
                            villaInfo = new VillaInfo();
                        }
                        break;

                    case (int)BuildingType.Shop:
                        shopInfo = ncBase.CurrentEntities.ShopInfo.Where(o => o.HouseID.Equals(buildingId)).FirstOrDefault();
                        if (shopInfo.IsNull())
                        {
                            shopInfo = new ShopInfo();
                        }
                        break;

                    case (int)BuildingType.Office:
                        officeInfo = ncBase.CurrentEntities.OfficeInfo.Where(o => o.HouseID.Equals(buildingId)).FirstOrDefault();
                        if (officeInfo.IsNull())
                        {
                            officeInfo = new OfficeInfo();
                        }
                        break;

                    case (int)BuildingType.Factory:
                        factoryInfo = ncBase.CurrentEntities.FactoryInfo.Where(o => o.HouseID.Equals(buildingId)).FirstOrDefault();
                        if (factoryInfo.IsNull())
                        {
                            factoryInfo = new FactoryInfo();
                        }
                        break;
                    }
                }

                if (string.IsNullOrEmpty(houseBasicInfo.InternalNum))
                {
                    houseBasicInfo.InternalNum = "WX" + DateTime.Now.ToString("yyyyMMdd") + StringUtility.GetValiCode(4);
                }

                houseModels.HouseBasicInfo = houseBasicInfo;
                houseModels.HouseInfo      = houseInfo;
                houseModels.HouseImages    = houseImages;
                houseModels.VillaInfo      = villaInfo;
                houseModels.ShopInfo       = shopInfo;
                houseModels.OfficeInfo     = officeInfo;
                houseModels.FactoryInfo    = factoryInfo;

                CommunityDetailModel result      = new CommunityDetailModel();
                List <RegionsModel>  regionsList = regionBll.GetRegionList(loginUser.CityID);
                result.DistrctList   = regionsList.FindAll(x => (x.Layer == 2));
                result.RegionList    = regionsList.FindAll(x => (x.Layer == 3));
                ViewBag.RegionsModel = result;

                return(View(houseModels));
            }
        }
예제 #2
0
        public ActionResult OperateHouse(FormCollection form)
        {
            PublicUserModel loginUser = this.GetLoginUser();

            #region 基本信息
            int houseId = 0, buildingType, city, uid = loginUser.UserID;
            int.TryParse(form["houseId"], out houseId);           //房源ID
            int.TryParse(form["buildingType"], out buildingType); //房屋类型
            int tradeType;
            int.TryParse(form["postType"], out tradeType);        //发布类型
            int isChange = 0;
            int.TryParse(form["isChange"], out isChange);         //表单是否被修改

            int.TryParse(form["city"], out city);                 //城市ID
            int communityId;
            int.TryParse(form["cellCode"], out communityId);      // 小区ID
            string communityName = form["cell"];                  //小区名

            int distrct;
            int.TryParse(form["distrct"], out distrct);  //行政区

            int region;
            int.TryParse(form["area"], out region); //路段

            string address = form["addr"];          //地址

            double buildArea, usedArea;
            double.TryParse(form["houseArea"], out buildArea);  //建筑面积
            double.TryParse(form["areaUsed"], out usedArea);    //使用面积
            if (usedArea > buildArea)
            {
                return(Content("建筑面积必须大于使用面积"));
            }
            int room, hall, kitchen, toilet, balcony;
            int.TryParse(form["room"], out room);       //房
            int.TryParse(form["hall"], out hall);       //厅
            int.TryParse(form["kitchen"], out kitchen); //厨房
            int.TryParse(form["toilet"], out toilet);   //卫生间
            int.TryParse(form["balcony"], out balcony); //阳台

            double price;
            double.TryParse(form["price"], out price); //价格

            double lowpay = 0;                         //最低首付


            string priceUnit;  //价格单位
            double unitPrice = 0;

            switch (tradeType)
            {
            case (int)TradeType.Sell:
                priceUnit = "万";
                unitPrice = buildArea > 0 ? price * 10000 / buildArea : 0; //出售计算单价
                lowpay    = price * 10000 * 0.30;                          //最低首付计算
                ; break;

            case (int)TradeType.Rent:
                switch (buildingType)
                {
                case (int)BuildingType.House:
                case (int)BuildingType.Villa:
                    priceUnit = "元/月"; break;

                default: priceUnit = form["priceType"]; break;
                }
                break;

            default: priceUnit = form["priceType"]; break;
            }

            string payType = form["payType"].IsNoNull() ? form["payType"] : "";  //支付方式

            int usedYear = 0;
            int.TryParse(form["ddlUsedYear"], out usedYear);  //建造年代

            Int16 curFloor = 0;
            Int16.TryParse(form["curFloor"], out curFloor);  //所在楼层

            Int16 maxFloor = 0;
            Int16.TryParse(form["maxFloor"], out maxFloor);  //总层数

            if (curFloor > maxFloor)
            {
                return(Content("总层数必须大于所在楼层"));
            }

            string pointTo = form["pointTo"];                                                           //朝向

            string lookTime      = form["lookTime"];                                                    //看房时间
            string fitmentStatus = form["fitmentStatus"];                                               //装修程度
            string internalNum   = form["internalNum"];                                                 //内部编号
            string cellLabel     = form["cellLabel"];                                                   //小区特色
            string houseLabel    = form["houseLabel"];                                                  //房源标签
            string yijuhua       = form["yijuhua"];                                                     //一句话广告

            string video = form["video"];                                                               //视频
            string title = form["title"].IsNoNull() ? form["title"] : communityName;                    //房源标题

            string contacts      = form["contacts"].IsNoNull() ? form["contacts"] : loginUser.NickName; //委托人
            string tel           = form["tel"].IsNoNull() ? form["tel"] : loginUser.Tel;                //委托人联系方式
            string houseDescribe = form["houseDescribe"];                                               //房源描述

            string imgUrlCover = "";                                                                    //房源图封面

            string imgUrl      = form["imgUrl"].IsNoNull() ? form["imgUrl"] : "";                       //房源图
            string imageType   = form["imageType"].IsNoNull() ? form["imageType"] : "";                 //房源图类型
            string imgDescribe = "," + (form["imgDescribe"].IsNoNull()? form["imgDescribe"] : "");      //房源图说明

            string[] imgUrlLists      = imgUrl.Split(',');
            string[] imageTypeLists   = imageType.Split(',');
            string[] imgDescribeLists = imgDescribe.Split(',');

            if (imgUrlLists.Length > 0 && string.IsNullOrEmpty(imgUrlCover))
            {
                imgUrlCover = imgUrlLists[0];
            }
            //   return JsonReturnValue(new { Message = imgUrl + " | " + imageType + " | " + imgDescribe + " | " + imgUrlCover + " | " + imageTypeCover + " | " + imgDescribeCover, id = houseId, }, JsonRequestBehavior.AllowGet);


            HouseBasicInfo houseBasicInfo = new HouseBasicInfo();
            if (houseId < 1)
            {
                return(Content("管理后台不能发布房源"));
            }
            houseBasicInfo = ncBase.CurrentEntities.HouseBasicInfo.Where(o => o.HouseID == houseId).FirstOrDefault();
            if (houseBasicInfo.IsNull())
            {
                return(Content("该房源不存在"));
            }

            houseBasicInfo.TradeType     = BitConverter.GetBytes(tradeType)[0];
            houseBasicInfo.CityID        = city;
            houseBasicInfo.Distrctid     = distrct;
            houseBasicInfo.RegionID      = region;
            houseBasicInfo.CommunityID   = communityId;
            houseBasicInfo.CommunityName = communityName;
            houseBasicInfo.BuildType     = BitConverter.GetBytes(buildingType)[0];
            houseBasicInfo.BuildArea     = Convert.ToDecimal(buildArea);
            houseBasicInfo.UsedArea      = Convert.ToDecimal(usedArea);;
            houseBasicInfo.PointTo       = pointTo;
            houseBasicInfo.UnitPrice     = Convert.ToDecimal(unitPrice);
            houseBasicInfo.Price         = Convert.ToDecimal(price);
            houseBasicInfo.PriceUnit     = priceUnit;
            houseBasicInfo.CurFloor      = curFloor;
            houseBasicInfo.MaxFloor      = maxFloor;
            houseBasicInfo.UsedYear      = usedYear;
            houseBasicInfo.ExpireDay     = DateTime.Now.AddDays(30);
            houseBasicInfo.FitmentStatus = fitmentStatus;
            int picNum = imgUrlLists.Length > 1 ? imgUrlLists.Length - 1 : 0;
            houseBasicInfo.PicNum        = BitConverter.GetBytes(picNum)[0];
            houseBasicInfo.Title         = title;
            houseBasicInfo.Note          = houseDescribe;
            houseBasicInfo.Status        = BitConverter.GetBytes((int)HouseStatus.Release)[0];
            houseBasicInfo.IP            = IpUtility.GetIp();
            houseBasicInfo.PostTime      = DateTime.Now;
            houseBasicInfo.Address       = address;
            houseBasicInfo.LookHouseTime = lookTime;
            houseBasicInfo.HouseLabel    = houseLabel;
            houseBasicInfo.InternalNum   = internalNum;
            houseBasicInfo.CellLabel     = cellLabel;
            houseBasicInfo.YiJuHua       = yijuhua;
            houseBasicInfo.Room          = BitConverter.GetBytes(room)[0];
            houseBasicInfo.Hall          = BitConverter.GetBytes(hall)[0];
            houseBasicInfo.Kitchen       = BitConverter.GetBytes(kitchen)[0];
            houseBasicInfo.Toilet        = BitConverter.GetBytes(toilet)[0];
            houseBasicInfo.Balcony       = BitConverter.GetBytes(balcony)[0];
            houseBasicInfo.PayType       = payType;
            houseBasicInfo.HouseImgPath  = imgUrlCover;
            houseBasicInfo.LowPay        = Convert.ToDecimal(lowpay);
            houseBasicInfo.Tel           = tel;
            houseBasicInfo.Contacts      = contacts;
            houseBasicInfo.Video         = video;

            if (houseId.Equals(0)) //添加操作时候
            {
                houseBasicInfo.Tag        = "";
                houseBasicInfo.AddDate    = DateTime.Now;
                houseBasicInfo.PushTime   = Convert.ToDateTime("1900-1-1");
                houseBasicInfo.DeleteTime = Convert.ToDateTime("1900-1-1");
                ncBase.CurrentEntities.AddToHouseBasicInfo(houseBasicInfo);
            }
            ncBase.CurrentEntities.SaveChanges();

            houseId = houseBasicInfo.HouseID;
            #endregion

            #region 添加房源图片

            if (imgUrlLists.Length > 0 && imgUrlLists.Length == imageTypeLists.Length &&
                (imgUrlLists.Length == imgDescribeLists.Length) && isChange == 1)
            {
                HouseBll houseBll = new HouseBll();
                houseBll.DelHouseImageByHouseID(houseId, uid);
                for (int i = 0; i < imgUrlLists.Length; i++)
                {
                    bool value = false;
                    if (imgUrlLists.Length > 1)
                    {
                        for (int j = i + 1; j < imgUrlLists.Length; j++)
                        {
                            if (i != j && imgUrlLists[i] == imgUrlLists[j])
                            {
                                value = true;
                            }
                        }
                    }

                    if (value == false && !string.IsNullOrEmpty(imgUrlLists[i]))
                    {
                        bool isCover = false;
                        if (imgUrlCover == imgUrlLists[i])
                        {
                            isCover = true;
                        }
                        HouseImage houseImage = new HouseImage();
                        houseImage.HouseID     = houseId;
                        houseImage.ImagePath   = imgUrlLists[i];
                        houseImage.ImagePos    = imgDescribeLists[i];
                        houseImage.ImageType   = HouseUtility.GetHouseImgType(imageTypeLists[i]);
                        houseImage.IsCover     = isCover;
                        houseImage.OrderID     = i;
                        houseImage.CommunityID = communityId;
                        houseImage.UserID      = uid;
                        houseImage.AddTime     = DateTime.Now;
                        houseImage.Status      = BitConverter.GetBytes(1)[0];;
                        ncBase.CurrentEntities.AddToHouseImage(houseImage);
                        ncBase.CurrentEntities.SaveChanges();
                    }
                }
            }

            #endregion

            bool isAdd = false;
            #region 房屋类型扩展信息
            switch (buildingType)
            {
            case (int)BuildingType.House:

                #region 住宅信息
                string basicEquipHouse = form["basicEquip"].IsNoNull() ? form["basicEquip"] : "";         //住宅基础设施
                string houseType       = form["houseType"].IsNoNull() ? form["houseType"] : "";           //房屋类别
                string houseSubType    = form["houseSubType"].IsNoNull() ? form["houseSubType"] : "";     //住宅子类型
                string houseProperty   = form["houseProperty"].IsNoNull() ? form["houseProperty"] : "";   //房屋产权
                string landYear        = form["landYear"].IsNoNull() ? form["landYear"] : "";             //产权年限
                string houseStructure  = form["houseStructure"].IsNoNull() ? form["houseStructure"] : ""; //房屋结构
                bool   fiveYears       = form["fiveYears"].IsNoNull() && form["fiveYears"] == "1";        //产证满二
                bool   onlyHouse       = form["onlyHouse"].IsNoNull() && form["onlyHouse"] == "1";        //唯一住房
                string advEquip        = form["advEquip"].IsNoNull() ? form["advEquip"] : "";             //配套设施

                HouseInfo houseInfo =
                    ncBase.CurrentEntities.HouseInfo.Where(o => o.HouseID.Equals(houseId)).FirstOrDefault();
                if (houseInfo.IsNull())
                {
                    houseInfo = new HouseInfo();
                    isAdd     = true; //标记为新增加
                }

                houseInfo.HouseID        = houseId;
                houseInfo.HouseType      = houseType;
                houseInfo.HouseSubType   = houseSubType;
                houseInfo.HouseProperty  = houseProperty;
                houseInfo.LandYear       = landYear;
                houseInfo.HouseStructure = houseStructure;
                houseInfo.FiveYears      = fiveYears;
                houseInfo.OnlyHouse      = onlyHouse;
                houseInfo.BasicEquip     = basicEquipHouse;
                houseInfo.AdvEquip       = advEquip;

                if (isAdd)
                {
                    ncBase.CurrentEntities.AddToHouseInfo(houseInfo);
                }
                ncBase.CurrentEntities.SaveChanges();
                #endregion

                break;

            case (int)BuildingType.Villa:

                #region 别墅信息

                string villaType   = form["villaType"].IsNoNull() ? form["villaType"] : "";      //别墅形式
                string hallType    = form["hallType"].IsNoNull() ? form["hallType"] : "";        //厅结构
                string landYear2   = form["landYear2"].IsNoNull() ? form["landYear2"] : "";      //产权年限
                bool   fiveYears2  = form["fiveYears2"].IsNoNull() && form["fiveYears2"] == "1"; //产证满二
                bool   onlyHouse2  = form["onlyHouse2"].IsNoNull() && form["onlyHouse2"] == "1"; //唯一住房
                bool   basement    = form["basement"].IsNoNull() && form["basement"] == "1";     //地下室
                bool   garden      = form["garden"].IsNoNull() && form["garden"] == "1";         //花园
                bool   garage      = form["garage"].IsNoNull() && form["garage"] == "1";         //车库
                bool   parkLot     = form["parkLot"].IsNoNull() && form["parkLot"] == "1";       //停车位
                string basicEquip1 = form["basicEquip1"].IsNoNull() ? form["basicEquip1"] : "";  //配套设施
                string advEquip1   = form["advEquip1"].IsNoNull() ? form["advEquip1"] : "";      //室内设施

                VillaInfo villaInfo =
                    ncBase.CurrentEntities.VillaInfo.Where(o => o.HouseID.Equals(houseId)).FirstOrDefault();
                if (villaInfo.IsNull())
                {
                    villaInfo = new VillaInfo();
                    isAdd     = true; //标记为新增加
                }

                villaInfo.HouseID    = houseId;
                villaInfo.VillaType  = villaType;
                villaInfo.HallType   = hallType;
                villaInfo.LandYear   = landYear2;
                villaInfo.OnlyHouse  = onlyHouse2;
                villaInfo.FiveYears  = fiveYears2;
                villaInfo.Basement   = basement;
                villaInfo.Garden     = garden;
                villaInfo.Garage     = garage;
                villaInfo.ParkLot    = parkLot;
                villaInfo.BasicEquip = basicEquip1;
                villaInfo.AdvEquip   = advEquip1;

                if (isAdd)
                {
                    ncBase.CurrentEntities.AddToVillaInfo(villaInfo);
                }
                ncBase.CurrentEntities.SaveChanges();
                #endregion

                break;

            case (int)BuildingType.Shop:

                #region 商铺信息

                string  shopType    = form["shopType"].IsNoNull() ? form["shopType"] : "";;       //商铺类型
                string  shopStatus  = form["shopStatus"].IsNoNull() ? form["shopStatus"] : "";;   //商铺状态
                string  targetField = form["targetField"].IsNoNull() ? form["targetField"] : "";; //目标业态
                decimal feeShop;
                decimal.TryParse(form["fee2"], out feeShop);                                      //物业费
                bool   divideShop  = form["divide2"].IsNoNull() && form["divide2"] == "1";        //是否分割
                string basicEquip2 = form["basicEquip2"].IsNoNull() ? form["basicEquip2"] : "";   //配套设施

                ShopInfo shopInfo =
                    ncBase.CurrentEntities.ShopInfo.Where(o => o.HouseID.Equals(houseId)).FirstOrDefault();
                if (shopInfo.IsNull())
                {
                    shopInfo = new ShopInfo();
                    isAdd    = true;  //标记为新增加
                }

                shopInfo.HouseID     = houseId;
                shopInfo.ShopType    = shopType;
                shopInfo.ShopStatus  = shopStatus;
                shopInfo.TargetField = targetField;
                shopInfo.Fee         = feeShop;
                shopInfo.Divide      = divideShop;
                shopInfo.BasicEquip  = basicEquip2;


                if (isAdd)
                {
                    ncBase.CurrentEntities.AddToShopInfo(shopInfo);
                }
                ncBase.CurrentEntities.SaveChanges();
                #endregion

                break;

            case (int)BuildingType.Office:

                #region 写字楼信息

                string  officeType  = form["officeType"].IsNoNull() ? form["officeType"] : "";   //写字楼类别
                string  officeLevel = form["officeLevel"].IsNoNull() ? form["officeLevel"] : ""; //写字楼级别
                decimal fee3;
                decimal.TryParse(form["fee3"], out fee3);                                        //物业费
                bool   divide3     = form["divide3"].IsNoNull() && form["divide3"] == "1";       //是否分割
                string basicEquip3 = form["basicEquip3"].IsNoNull() ? form["basicEquip3"] : "";  //配套设施


                OfficeInfo officeInfo =
                    ncBase.CurrentEntities.OfficeInfo.Where(o => o.HouseID.Equals(houseId)).FirstOrDefault();
                if (officeInfo.IsNull())
                {
                    officeInfo = new OfficeInfo();
                    isAdd      = true; //标记为新增加
                }

                officeInfo.HouseID     = houseId;
                officeInfo.OfficeType  = officeType;
                officeInfo.OfficeLevel = officeLevel;
                officeInfo.BasicEquip  = basicEquip3;
                officeInfo.Fee         = fee3;
                officeInfo.Divide      = divide3;


                if (isAdd)
                {
                    ncBase.CurrentEntities.AddToOfficeInfo(officeInfo);
                }
                ncBase.CurrentEntities.SaveChanges();
                #endregion

                break;

            case (int)BuildingType.Factory:

                #region 厂房信息

                string factoryType = form["factoryType"].IsNoNull() ? form["factoryType"] : "";      //厂房类别

                string basicEquip4 = form["basicEquip4"].IsNoNull() ? form["basicEquip4"] : "";      //基础设施


                FactoryInfo factoryInfo =
                    ncBase.CurrentEntities.FactoryInfo.Where(o => o.HouseID.Equals(houseId)).FirstOrDefault();
                if (factoryInfo.IsNull())
                {
                    factoryInfo = new FactoryInfo();
                    isAdd       = true; //标记为新增加
                }

                factoryInfo.HouseID     = houseId;
                factoryInfo.BasicEquip  = basicEquip4;
                factoryInfo.FactoryType = factoryType;

                if (isAdd)
                {
                    ncBase.CurrentEntities.AddToFactoryInfo(factoryInfo);
                }
                ncBase.CurrentEntities.SaveChanges();
                #endregion

                break;
            }
            #endregion

            return(RedirectToAction("GetHouseMainView", new { posttype = tradeType, buildType = buildingType }));
            // return JsonReturnValue(new { Message = "房源提交成功", id = houseId, }, JsonRequestBehavior.AllowGet);
        }