Exemplo n.º 1
0
        public async Task <IHttpActionResult> GetCredit(string uuid)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Credit item = await this.repository.GetByIdAsync(uuid);

            if (item == null)
            {
                return(NotFound());
            }

            var result = new
            {
                UUID        = item.UUID,
                Name        = item.Name,
                Description = item.Description,
                MinScore    = item.MinScore,
                MaxScore    = item.MaxScore,
                Arrears     = TextHelper.ConvertMoney(item.Arrears),
                CreateTime  = item.CreateTime,
                Remark      = item.Remark
            };

            return(Ok(result));
        }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> GetLadder(string uuid)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Ladder item = await this.repository.GetByIdAsync(uuid);

            if (item == null)
            {
                return(NotFound());
            }

            var result = new
            {
                UUID        = item.UUID,
                TypeID      = item.TypeID,
                TypeName    = item.DeviceType.Name,
                Name        = item.Name,
                Description = item.Description,
                MinEnergy   = item.MinEnergy,
                MaxEnergy   = item.MaxEnergy,
                Price       = TextHelper.ConvertMoney(item.Price),
                CreateTime  = item.CreateTime,
                Remark      = item.Remark
            };

            return(Ok(result));
        }
Exemplo n.º 3
0
        private IEnumerable <PrepaidBill> GetPrepaidBills(IEnumerable <Room> rooms)
        {
            List <PrepaidBill> bills = new List <PrepaidBill>();

            foreach (var item in rooms)
            {
                var         credit = (from p in db.Credits where item.CreditScore > p.MinScore && item.CreditScore <= p.MaxScore select p).FirstOrDefault();
                PrepaidBill bill   = new PrepaidBill();
                bill.RoomNo            = item.RoomNo;
                bill.BuildingNo        = item.BuildingNo;
                bill.RealName          = item.RealName;
                bill.Phone             = item.Phone;
                bill.CreditScore       = item.CreditScore;
                bill.CreditLevel       = credit == null ? "" : credit.Name;
                bill.IntAccountBalance = item.AccountBalance;
                bill.AccountBalance    = TextHelper.ConvertMoney(item.AccountBalance);
                bill.Arrears           = TextHelper.ConvertMoney(credit == null ? 0 : credit.Arrears);
                bill.ManagerFees       = string.Format("{0}㎡*¥{1}={2}",
                                                       item.Area, TextHelper.ConvertMoney(item.Price), TextHelper.ConvertMoney((int)item.Area * item.Price));
                //bill.IntApportMoney = GetApportMoney(item.RoomNo);
                //bill.ApportMoney = TextHelper.ConvertMoney(bill.IntApportMoney);
                bill.PrepaidDeviceBills = GetPrepaidDeviceBills(item.RoomNo);
                //bill.SumValue = bill.PrepaidDeviceBills.Sum(o => o.CurValue - o.PreValue);
                //bill.SumValue = Math.Round(bill.SumValue ?? 0.00, 2);
                bill.IntSumMoney = bill.PrepaidDeviceBills.Sum(o => o.IntMoney);
                bill.SumMoney    = TextHelper.ConvertMoney(bill.IntSumMoney);
                //bill.IntBilledBalance = item.AccountBalance - bill.IntSumMoney - bill.IntApportMoney;
                bill.IntBilledBalance = item.AccountBalance - bill.IntSumMoney;
                bill.BilledBalance    = TextHelper.ConvertMoney(bill.IntBilledBalance);
                bills.Add(bill);
            }

            return(bills);
        }
Exemplo n.º 4
0
        public async Task <IHttpActionResult> GetBill(int uuid)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Bill item = await this.billRepository.GetByIdAsync(uuid);

            if (item == null)
            {
                return(NotFound());
            }

            var result = new
            {
                ID         = item.ID,
                DeviceNo   = item.DeviceNo,
                DeviceName = item.Device.DeviceName,
                RoomNo     = item.Device.RoomNo,
                PreValue   = item.PreValue,
                CurValue   = item.CurValue,
                Money      = TextHelper.ConvertMoney(item.Money),
                DateTime   = item.DateTime,
                Remark     = item.Remark
            };

            return(Ok(result));
        }
Exemplo n.º 5
0
        public IHttpActionResult GetRealtimeFundStatis()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            IEnumerable <string> BuildingNos = from item in this.buildingRepository.GetAll() select item.BuildingNo;
            var    statises = this.deviceRepository.GetRealtimeFunds();
            var    Balance  = statises.Sum(p => p.totalBalance);
            double Expend   = 0.00;

            foreach (var item in statises)
            {
                Expend += Math.Round(item.totalExpend ?? 0.00, 2);
            }
            var items = new
            {
                BuildingNos   = BuildingNos,
                TotalBalances = from item in statises select TextHelper.ConvertMoney(item.totalBalance),
                TotalExpends  = from item in statises select TextHelper.ConvertMoney((int)(item.totalExpend ?? 0)),
                Balance       = TextHelper.ConvertMoney(Balance),
                Expend        = TextHelper.ConvertMoney((int)Expend),
                Percent       = string.Format("{0:P}", Expend / Balance)
            };

            return(Ok(items));
        }
Exemplo n.º 6
0
        public async Task <IHttpActionResult> GetDeviceType(string uuid)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            DeviceType item = await this.repository.GetByIdAsync(uuid);

            if (item == null)
            {
                return(NotFound());
            }

            var result = new
            {
                UUID        = item.UUID,
                Name        = item.Name,
                Description = item.Description,
                Unit        = item.Unit,
                Price1      = TextHelper.ConvertMoney(item.Price1),
                Price2      = TextHelper.ConvertMoney(item.Price2),
                Price3      = TextHelper.ConvertMoney(item.Price3),
                Price4      = TextHelper.ConvertMoney(item.Price4),
                Price5      = TextHelper.ConvertMoney(item.Price5),
                CreateTime  = item.CreateTime,
                Remark      = item.Remark
            };

            return(Ok(result));
        }
Exemplo n.º 7
0
        public async Task <IHttpActionResult> GetRecharge(string uuid)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Recharge item = await this.rechargeRespository.GetByIdAsync(uuid);

            if (item == null)
            {
                return(NotFound());
            }

            var result = new
            {
                UUID     = item.UUID,
                RoomNo   = item.RoomNo,
                RealName = item.Room.RealName,
                Money    = TextHelper.ConvertMoney(item.Money),
                DateTime = item.DateTime,
                Remark   = item.Remark
            };

            return(Ok(result));
        }
Exemplo n.º 8
0
        // GET: api/rooms
        public IHttpActionResult GetRooms()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Pager pager = null;
            IEnumerable <Room> rooms;
            string             RealName     = HttpContext.Current.Request.Params["RealName"];
            string             BuildingNo   = HttpContext.Current.Request.Params["BuildingNo"];
            string             RoomNo       = HttpContext.Current.Request.Params["RoomNo"];
            string             Floor        = HttpContext.Current.Request.Params["Floor"];
            string             strPageIndex = HttpContext.Current.Request.Params["PageIndex"];
            string             strPageSize  = HttpContext.Current.Request.Params["PageSize"];

            if (strPageIndex == null || strPageSize == null)
            {
                pager = new Pager();
                rooms = this.roomRepository.GetAll(RealName, BuildingNo, RoomNo, Floor);
            }
            else
            {
                // 获取分页数据
                int pageIndex = Convert.ToInt32(strPageIndex);
                int pageSize  = Convert.ToInt32(strPageSize);
                pager = new Pager(pageIndex, pageSize, this.roomRepository.GetCount(RealName, BuildingNo, RoomNo, Floor));
                rooms = this.roomRepository.GetPagerItems(RealName, BuildingNo, RoomNo, Floor, pageIndex, pageSize, u => u.BuildingNo);
            }

            var items = from item in rooms
                        select new
            {
                RoomNo           = item.RoomNo,
                BuildingNo       = item.BuildingNo,
                BuildingName     = item.Building.Name,
                Floors           = item.Building.Floors,
                Floor            = item.Floor,
                Area             = item.Area,
                Price            = item.Price,
                RealName         = item.RealName,
                Phone            = item.Phone,
                Email            = item.Email,
                AccountBalance   = TextHelper.ConvertMoney(item.AccountBalance),
                AccountWarnLimit = TextHelper.ConvertMoney(item.AccountWarnLimit),
                CreditScore      = item.CreditScore,
                AlipayAccount    = item.AlipayAccount,
                WechatAccount    = item.WechatAccount,
                BankAccount      = item.BankAccount,
                CreateTime       = item.CreateTime,
                Remark           = item.Remark
            };

            pager.Items = items;

            return(Ok(pager));
        }
Exemplo n.º 9
0
        public dynamic GetBuildingRealtimeFunds(string buildingNo)
        {
            var totalBalance = db.Devices.Where(p => p.Room.BuildingNo == buildingNo).Sum(p => p.Room.AccountBalance);
            var totalExpend  = db.Devices.Where(p => p.Room.BuildingNo == buildingNo).Sum(q => ((q.Value ?? 0.00) - (q.PreValue ?? 0.00)) * q.DeviceType.Price1);

            return(new
            {
                TotalBalance = TextHelper.ConvertMoney(totalBalance),
                TotalExpend = TextHelper.ConvertMoney(totalExpend == null ? 0 : (int)totalExpend),
                Percent = totalExpend == null || totalBalance == null ? "无意义" : string.Format("{0:P}", totalExpend / totalBalance)
            });
        }
Exemplo n.º 10
0
        private IEnumerable <RoomBill> GetRoomBills(IEnumerable <Bill> srcBills)
        {
            List <RoomBill> bills  = new List <RoomBill>();
            var             result = from p in srcBills
                                     group p by new
            {
                RoomNo         = p.Device.RoomNo,
                RealName       = p.Device.Room.RealName,
                LotNo          = p.LotNo,
                AccountBalance = p.AccountBalance,
                DateTime       = p.DateTime,
            } into g
            orderby g.Key.RoomNo, g.Key.DateTime descending
                            select new
            {
                RoomNo         = g.Key.RoomNo,
                RealName       = g.Key.RealName,
                LotNo          = g.Key.LotNo,
                AccountBalance = g.Key.AccountBalance,
                DateTime       = g.Key.DateTime,
                //SumValue = g.Sum(p => p.CurValue - p.PreValue),
                SumMoney = g.Sum(p => p.Money)
            };

            foreach (var item in result)
            {
                RoomBill bill = new RoomBill();
                bill.RoomNo         = item.RoomNo;
                bill.LotNo          = item.LotNo;
                bill.RealName       = item.RealName;
                bill.DateTime       = item.DateTime;
                bill.AccountBalance = TextHelper.ConvertMoney(item.AccountBalance);
                //bill.SumValue = item.SumValue;
                bill.SumMoney             = TextHelper.ConvertMoney(item.SumMoney);
                bill.BilledAccountBalance = TextHelper.ConvertMoney(item.AccountBalance - item.SumMoney);
                bill.DeviceBills          = (from p in GetAll()
                                             where p.Device.RoomNo == item.RoomNo && p.LotNo == item.LotNo
                                             select p).AsEnumerable().Select(q => new DeviceBill
                {
                    DeviceNo   = q.DeviceNo,
                    DeviceName = q.Device.DeviceName,
                    PreValue   = q.PreValue,
                    CurValue   = q.CurValue,
                    Price      = TextHelper.ConvertMoney(q.Device.DeviceType.Price1),
                    Money      = TextHelper.ConvertMoney(q.Money),
                    Remark     = q.Remark
                });
                bills.Add(bill);
            }

            return(bills);
        }
Exemplo n.º 11
0
        public async Task <IHttpActionResult> GetDevice(string uuid)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Device item = await this.repository.GetByIdAsync(uuid);

            if (item == null)
            {
                return(NotFound());
            }

            var result = new
            {
                DeviceNo        = item.DeviceNo,
                BuildingNo      = item.Room.BuildingNo,
                BuildingName    = item.Room.Building.Name,
                Floor           = item.Room.Floor,
                RoomNo          = item.RoomNo,
                TypeID          = item.TypeID,
                TypeName        = item.DeviceType.Name,
                Protocol        = item.Protocol,
                Scope           = item.Scope,
                DeviceName      = item.DeviceName,
                PhyAddr         = item.PhyAddr,
                ItemID          = item.ItemID,
                ItemName        = item.ItemName,
                ItemDescription = item.ItemDescription,
                Status          = item.Status,
                Value           = item.Value,
                Rate            = item.Rate,
                Unit            = item.DeviceType.Unit,
                Price1          = TextHelper.ConvertMoney(item.DeviceType.Price1),
                Price2          = TextHelper.ConvertMoney(item.DeviceType.Price2),
                Price3          = TextHelper.ConvertMoney(item.DeviceType.Price3),
                Price4          = TextHelper.ConvertMoney(item.DeviceType.Price4),
                Price5          = TextHelper.ConvertMoney(item.DeviceType.Price5),
                IsArchive       = item.IsArchive,
                ArchiveInterval = item.ArchiveInterval,
                Remark1         = item.Remark1,
                Remark2         = item.Remark2,
                Remark3         = item.Remark3
            };

            return(Ok(result));
        }
Exemplo n.º 12
0
        // GET: api/devicetypes
        public IHttpActionResult GetDeviceTypes()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Pager  pager        = null;
            string strPageIndex = HttpContext.Current.Request.Params["PageIndex"];
            string strPageSize  = HttpContext.Current.Request.Params["PageSize"];
            IEnumerable <DeviceType> DeviceTypes;

            if (strPageIndex == null || strPageSize == null)
            {
                pager       = new Pager();
                DeviceTypes = this.repository.GetAll();
            }
            else
            {
                // 获取分页数据
                int pageIndex = Convert.ToInt32(strPageIndex);
                int pageSize  = Convert.ToInt32(strPageSize);
                pager       = new Pager(pageIndex, pageSize, this.repository.GetCount());
                DeviceTypes = this.repository.GetPagerItems(pageIndex, pageSize, u => u.UUID);
            }

            var items = from item in DeviceTypes
                        select new
            {
                UUID        = item.UUID,
                Name        = item.Name,
                Description = item.Description,
                Unit        = item.Unit,
                Price1      = TextHelper.ConvertMoney(item.Price1),
                Price2      = TextHelper.ConvertMoney(item.Price2),
                Price3      = TextHelper.ConvertMoney(item.Price3),
                Price4      = TextHelper.ConvertMoney(item.Price4),
                Price5      = TextHelper.ConvertMoney(item.Price5),
                CreateTime  = item.CreateTime,
                Remark      = item.Remark
            };

            pager.Items = items;

            return(Ok(pager));
        }
Exemplo n.º 13
0
        // GET: api/ladders
        public IHttpActionResult GetLadders()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Pager  pager        = null;
            string strPageIndex = HttpContext.Current.Request.Params["PageIndex"];
            string strPageSize  = HttpContext.Current.Request.Params["PageSize"];
            IEnumerable <Ladder> Ladders;

            if (strPageIndex == null || strPageSize == null)
            {
                pager   = new Pager();
                Ladders = this.repository.GetAll();
            }
            else
            {
                // 获取分页数据
                int pageIndex = Convert.ToInt32(strPageIndex);
                int pageSize  = Convert.ToInt32(strPageSize);
                pager   = new Pager(pageIndex, pageSize, this.repository.GetCount());
                Ladders = this.repository.GetPagerItems(pageIndex, pageSize, u => u.UUID);
            }

            var items = from item in Ladders
                        select new
            {
                UUID        = item.UUID,
                TypeID      = item.TypeID,
                TypeName    = item.DeviceType.Name,
                Name        = item.Name,
                Description = item.Description,
                MinEnergy   = item.MinEnergy,
                MaxEnergy   = item.MaxEnergy,
                Price       = TextHelper.ConvertMoney(item.Price),
                CreateTime  = item.CreateTime,
                Remark      = item.Remark
            };

            pager.Items = items;

            return(Ok(pager));
        }
Exemplo n.º 14
0
        // GET: api/bills
        public IHttpActionResult GetBills()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Pager              pager        = null;
            string             strPageIndex = HttpContext.Current.Request.Params["PageIndex"];
            string             strPageSize  = HttpContext.Current.Request.Params["PageSize"];
            IEnumerable <Bill> bills;

            if (strPageIndex == null || strPageSize == null)
            {
                pager = new Pager();
                bills = this.billRepository.GetAll();
            }
            else
            {
                // 获取分页数据
                int pageIndex = Convert.ToInt32(strPageIndex);
                int pageSize  = Convert.ToInt32(strPageSize);
                pager = new Pager(pageIndex, pageSize, this.billRepository.GetCount());
                bills = this.billRepository.GetPagerItems(pageIndex, pageSize, u => u.LotNo);
            }

            var items = from item in bills
                        select new
            {
                ID         = item.ID,
                DeviceNo   = item.DeviceNo,
                DeviceName = item.Device.DeviceName,
                RoomNo     = item.Device.RoomNo,
                PreValue   = item.PreValue,
                CurValue   = item.CurValue,
                Money      = TextHelper.ConvertMoney(item.Money),
                DateTime   = item.DateTime,
                Remark     = item.Remark
            };

            pager.Items = items;

            return(Ok(pager));
        }
Exemplo n.º 15
0
        // GET: api/recharges
        public IHttpActionResult GetRecharges()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Pager pager = null;
            IEnumerable <Recharge> recharges;
            string RoomNo       = HttpContext.Current.Request.Params["RoomNo"];
            string RealName     = HttpContext.Current.Request.Params["RealName"];
            string strPageIndex = HttpContext.Current.Request.Params["PageIndex"];
            string strPageSize  = HttpContext.Current.Request.Params["PageSize"];

            if (strPageIndex == null || strPageSize == null)
            {
                pager     = new Pager();
                recharges = this.rechargeRespository.GetAll(RoomNo, RealName);
            }
            else
            {
                // 获取分页数据
                int pageIndex = Convert.ToInt32(strPageIndex);
                int pageSize  = Convert.ToInt32(strPageSize);
                pager     = new Pager(pageIndex, pageSize, this.rechargeRespository.GetCount(RoomNo, RealName));
                recharges = this.rechargeRespository.GetPagerItems(RoomNo, RealName, pageIndex, pageSize, u => u.DateTime, true);
            }

            var items = from item in recharges
                        select new
            {
                UUID     = item.UUID,
                RoomNo   = item.RoomNo,
                RealName = item.Room.RealName,
                Money    = TextHelper.ConvertMoney(item.Money),
                DateTime = item.DateTime,
                Remark   = item.Remark
            };

            pager.Items = items;

            return(Ok(pager));
        }
Exemplo n.º 16
0
        private IEnumerable <PrepaidDeviceBill> GetPrepaidDeviceBills(string RoomNo)
        {
            List <PrepaidDeviceBill> bills = new List <PrepaidDeviceBill>();
            var devices = from item in db.Devices where item.RoomNo == RoomNo select item;

            foreach (var item in devices)
            {
                PrepaidDeviceBill bill = new PrepaidDeviceBill();
                bill.DeviceNo   = item.DeviceNo;
                bill.DeviceName = item.DeviceName;
                bill.PreValue   = Math.Round(item.PreValue ?? 0.00, 2);
                bill.CurValue   = Math.Round((item.Value * item.Rate) ?? 0.00, 2);
                bill.Price      = TextHelper.ConvertMoney(item.DeviceType.Price1);
                bill.IntMoney   = (int)((bill.CurValue - bill.PreValue) * item.DeviceType.Price1);
                bill.Money      = TextHelper.ConvertMoney(bill.IntMoney);
                bills.Add(bill);
            }

            return(bills);
        }
Exemplo n.º 17
0
        public async Task <IHttpActionResult> GetRoom(string uuid)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Room item = await this.roomRepository.GetByIdAsync(uuid);

            if (item == null)
            {
                return(NotFound());
            }

            var result = new
            {
                RoomNo           = item.RoomNo,
                BuildingNo       = item.BuildingNo,
                BuildingName     = item.Building.Name,
                Floors           = item.Building.Floors,
                Floor            = item.Floor,
                Area             = item.Area,
                Price            = item.Price,
                RealName         = item.RealName,
                Phone            = item.Phone,
                Email            = item.Email,
                AccountBalance   = TextHelper.ConvertMoney(item.AccountBalance),
                AccountWarnLimit = TextHelper.ConvertMoney(item.AccountWarnLimit),
                CreditScore      = item.CreditScore,
                AlipayAccount    = item.AlipayAccount,
                WechatAccount    = item.WechatAccount,
                BankAccount      = item.BankAccount,
                CreateTime       = item.CreateTime,
                Remark           = item.Remark
            };

            return(Ok(result));
        }
Exemplo n.º 18
0
        public IHttpActionResult ExportRecharges()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            string fileName = string.Format("业主充值记录{0}.xls", DateTime.Now.ToString("yyyy-MM-dd[hh-mm-ss]"));
            Dictionary <string, string> dict = new Dictionary <string, string>();

            dict.Add("UUID", "UUID");
            dict.Add("房间编号", "RoomNo");
            dict.Add("业主姓名", "RealName");
            dict.Add("充值金额", "Money");
            dict.Add("时间", "DateTime");
            dict.Add("备注", "Remark");

            string RoomNo   = HttpContext.Current.Request.Params["RoomNo"];
            string RealName = HttpContext.Current.Request.Params["RealName"];
            IEnumerable <Recharge> recharges = this.rechargeRespository.GetAll(RoomNo, RealName);
            var items = from item in recharges
                        select new
            {
                UUID     = item.UUID,
                RoomNo   = item.RoomNo,
                RealName = item.Room.RealName,
                Money    = TextHelper.ConvertMoney(item.Money),
                DateTime = item.DateTime,
                Remark   = item.Remark
            };

            ReportHelper.Export(dict, items, fileName);
            HttpContext.Current.Response.ContentType = "text/plain";
            HttpContext.Current.Response.Write(fileName);

            return(Ok());
        }
Exemplo n.º 19
0
        // GET: api/devices
        public IHttpActionResult GetDevices()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            Pager pager = null;
            IEnumerable <Device> devices;
            string DeviceNo     = HttpContext.Current.Request.Params["DeviceNo"];
            string RoomNo       = HttpContext.Current.Request.Params["RoomNo"];
            string ItemID       = HttpContext.Current.Request.Params["ItemID"];
            string strPageIndex = HttpContext.Current.Request.Params["PageIndex"];
            string strPageSize  = HttpContext.Current.Request.Params["PageSize"];

            if (strPageIndex == null || strPageSize == null)
            {
                pager   = new Pager();
                devices = this.repository.GetAll(DeviceNo, RoomNo, ItemID);
            }
            else
            {
                // 获取分页数据
                int pageIndex = Convert.ToInt32(strPageIndex);
                int pageSize  = Convert.ToInt32(strPageSize);
                pager   = new Pager(pageIndex, pageSize, this.repository.GetCount(DeviceNo, RoomNo, ItemID));
                devices = this.repository.GetPagerItems(DeviceNo, RoomNo, ItemID, pageIndex, pageSize, u => u.DeviceNo);
            }

            var items = from item in devices
                        select new
            {
                DeviceNo        = item.DeviceNo,
                RoomNo          = item.RoomNo,
                TypeID          = item.TypeID,
                TypeName        = item.DeviceType.Name,
                Protocol        = item.Protocol,
                Scope           = item.Scope,
                DeviceName      = item.DeviceName,
                PhyAddr         = item.PhyAddr,
                ItemID          = item.ItemID,
                ItemName        = item.ItemName,
                ItemDescription = item.ItemDescription,
                Status          = item.Status,
                Value           = item.Value,
                Rate            = item.Rate,
                Unit            = item.DeviceType.Unit,
                Price1          = TextHelper.ConvertMoney(item.DeviceType.Price1),
                Price2          = TextHelper.ConvertMoney(item.DeviceType.Price2),
                Price3          = TextHelper.ConvertMoney(item.DeviceType.Price3),
                Price4          = TextHelper.ConvertMoney(item.DeviceType.Price4),
                Price5          = TextHelper.ConvertMoney(item.DeviceType.Price5),
                IsArchive       = item.IsArchive,
                ArchiveInterval = item.ArchiveInterval,
                Remark1         = item.Remark1,
                Remark2         = item.Remark2,
                Remark3         = item.Remark3
            };

            pager.Items = items;

            return(Ok(pager));
        }
Exemplo n.º 20
0
        public IHttpActionResult PostRecharge([FromUri] Recharge recharge)
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            // 检测两次充值时间间隔是否过于频繁,防止误充
            Setting setting = TextHelper.GetSystemConfig();

            if (setting.IsRechargeSettle)
            {
                bool isValid = ChkValidPeriod(recharge.RoomNo, setting.RechargeLimitInterval);
                if (!isValid)
                {
                    string msg         = string.Format("两次充值时间间隔不到{0}分钟,请稍后重试!", setting.RechargeLimitInterval);
                    var    errorResult = new Prepaid.Results.InternalServerErrorTextPlainResult(msg, Request);
                    errorResult.StatusCode = System.Net.HttpStatusCode.Forbidden;
                    return(errorResult);
                }
            }

            Room         room  = null;
            Log          log   = new Log();
            AdminSession admin = HttpContext.Current.Session["mySession"] as AdminSession;
            string       money = TextHelper.ConvertMoney(recharge.Money);

            log.UserID     = admin.UUID;
            log.Type       = 2; // 1:登录日志 2:操作日志
            log.ClientAddr = TextHelper.GetHostAddress();
            log.Remark     = "";
            log.DateTime   = DateTime.Now;

            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    room = this.roomRespository.GetByID(recharge.RoomNo);
                    room.AccountBalance += recharge.Money;
                    this.roomRespository.Put(room);

                    recharge.UUID     = TextHelper.GenerateUUID();
                    recharge.DateTime = DateTime.Now;
                    this.rechargeRespository.Add(recharge);

                    log.Content = string.Format("管理员:{0}对房间:{1}成功充值¥{2}元!", admin.UserName, recharge.RoomNo, money);
                    ts.Complete(); // 提交事务
                }
            }
            catch (DbUpdateException)
            {
                if (this.rechargeRespository.IsExist(recharge.UUID))
                {
                    return(Conflict());
                }
                else
                {
                    log.Content = string.Format("管理员:{0}对房间:{1}充值金额¥{2}元失败!", admin.UserName, recharge.RoomNo, money);
                }
            }
            this.logRespository.Add(log);

            // 消息通知处理
            if (room != null)
            {
                TextHelper.NotifyProcess(setting.Notify, room, money, log.Content);
            }

            return(Ok());
        }
Exemplo n.º 21
0
        public IHttpActionResult PostBills()
        {
            var errResult = TextHelper.CheckAuthorized(Request);

            if (errResult != null)
            {
                return(errResult);
            }

            AdminSession admin = HttpContext.Current.Session["mySession"] as AdminSession;
            Log          log   = new Log();

            log.UserID     = admin.UUID;
            log.Type       = 2; // 1:登录日志 2:操作日志
            log.ClientAddr = TextHelper.GetHostAddress();
            log.Remark     = "";
            log.DateTime   = DateTime.Now;

            Room        room        = null;
            string      RoomNo      = HttpContext.Current.Request.Params["RoomNo"];
            PrepaidBill prepaidBill = this.billRepository.GetPrepaidBills(RoomNo, "", "", "").FirstOrDefault();
            DateTime    now         = DateTime.Now;
            string      lotNo       = TextHelper.GenerateUUID();

            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    foreach (PrepaidDeviceBill item in prepaidBill.PrepaidDeviceBills)
                    {
                        Bill bill = new Bill();
                        bill.DeviceNo       = item.DeviceNo;
                        bill.LotNo          = lotNo;
                        bill.PreValue       = item.PreValue ?? 0.00;
                        bill.CurValue       = item.CurValue ?? 0.00;
                        bill.AccountBalance = prepaidBill.IntAccountBalance;
                        bill.Money          = item.IntMoney;
                        bill.DateTime       = now;
                        //bill.Remark = string.Format("yyyy-MM", bill.DateTime);
                        this.billRepository.Add(bill);

                        Device device = this.deviceRespository.GetByID(item.DeviceNo);
                        device.PreValue = item.CurValue;
                        this.deviceRespository.Put(device);
                    }

                    room = this.roomRespository.GetByID(RoomNo);
                    room.AccountBalance = prepaidBill.IntBilledBalance;
                    this.roomRespository.Put(room);

                    log.Content = string.Format("管理员:{0}对房间:{1}结算成功!", admin.UserName, RoomNo);
                    ts.Complete(); // 提交事务
                }
            }
            catch (DbUpdateException)
            {
                log.Content = string.Format("管理员:{0}对房间:{1}结算失败!", admin.UserName, RoomNo);
            }
            this.logRespository.Add(log);

            // 消息通知
            if (room != null)
            {
                string  money   = TextHelper.ConvertMoney(prepaidBill.IntSumMoney);
                Setting setting = TextHelper.GetSystemConfig();
                TextHelper.NotifyProcess(setting.Notify, room, money, log.Content);
            }

            return(Ok());
        }
Exemplo n.º 22
0
        private void BatchSettle(IEnumerable <PrepaidBill> prepaidBills, bool isAuto)
        {
            DateTime now   = DateTime.Now;
            string   lotNo = TextHelper.GenerateUUID();

            foreach (var prepaidBill in prepaidBills)
            {
                if (prepaidBill.IntBilledBalance < 0 || prepaidBill.IntSumMoney == 0) // 如果余额不够或者没有消耗能源,则不结算
                {
                    continue;
                }

                Room room = null;
                using (TransactionScope ts = new TransactionScope())
                {
                    foreach (PrepaidDeviceBill item in prepaidBill.PrepaidDeviceBills)
                    {
                        Bill bill = new Bill();
                        bill.DeviceNo       = item.DeviceNo;
                        bill.LotNo          = lotNo;
                        bill.PreValue       = item.PreValue ?? 0.00;
                        bill.CurValue       = item.CurValue ?? 0.00;
                        bill.AccountBalance = prepaidBill.IntAccountBalance;
                        bill.Money          = item.IntMoney;
                        bill.DateTime       = now;
                        //bill.Remark = string.Format("yyyy-MM", bill.DateTime);
                        this.billRepository.Add(bill);

                        Device device = this.deviceRespository.GetByID(item.DeviceNo);
                        device.PreValue = item.CurValue;
                        this.deviceRespository.Put(device);
                    }

                    room = this.roomRespository.GetByID(prepaidBill.RoomNo);
                    if (!isAuto)
                    {
                        room.AccountBalance = prepaidBill.IntAccountBalance - prepaidBill.IntSumMoney;
                    }
                    else
                    {
                        room.AccountBalance = prepaidBill.IntAccountBalance - prepaidBill.IntSumMoney - prepaidBill.IntManagerFees;
                    }
                    this.roomRespository.Put(room);

                    ts.Complete(); // 提交事务
                }

                // 消息通知
                if (room != null)
                {
                    string money = null;
                    if (!isAuto)
                    {
                        money = TextHelper.ConvertMoney(prepaidBill.IntSumMoney);
                    }
                    else
                    {
                        money = TextHelper.ConvertMoney(prepaidBill.IntSumMoney + prepaidBill.IntManagerFees);
                    }
                    string  content = string.Format("对房间:{0}业主姓名:{1}成功结算¥{{2}}元.", room.RoomNo, room.RealName, money);
                    Setting setting = TextHelper.GetSystemConfig();
                    TextHelper.NotifyProcess(setting.Notify, room, money, content);
                }
            }
        }