/// <summary> /// 修改 /// </summary> /// <param name="info"></param> /// <returns></returns> public Message UPD(IoT_MeterTopUp info) { // 定义执行结果 Message m; string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); string strMessagge = string.Empty; try { //添加设置上传周期参数任务到通讯队列 //Table<IoT_MeterTopUp> tbl = dd.GetTable<IoT_MeterTopUp>(); //// 调用新增方法 //IoT_MeterTopUp IoT_MeterTopUpDB = tbl.Where(u => u.ID == info.ID).SingleOrDefault(); //IoT_MeterTopUpDB.State = '2'; //IoT_MeterTopUpDB.Oper = info.Oper; //IoT_MeterTopUpDB.Context = info.Context; //// 更新操作 //dd.SubmitChanges(); //调用接口 WCFServiceProxy <IMeterTopUp> proxy1 = null; TopUpType TopUpTypea = (TopUpType)info.TopUpType; proxy1 = new WCFServiceProxy <IMeterTopUp>(); strMessagge = proxy1.getChannel.UnTopUp(info.TaskID, info.Context, info.Oper); if (strMessagge != "") { m = new Message() { Result = false, TxtMessage = strMessagge }; } else { m = new Message() { Result = true, TxtMessage = "撤销成功!" }; } } catch (Exception e) { m = new Message() { Result = false, TxtMessage = "撤销充值失败!" + e.Message }; } return(m); }
/// <summary> /// 新增 /// </summary> /// <param name="info"></param> /// <returns></returns> public Message Add(IoT_MeterTopUp info) { // 定义执行结果 Message m; string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); string strMessagge = string.Empty; try { //添加设置上传周期参数任务到通讯队列 //Table<IoT_MeterTopUp> tbl = dd.GetTable<IoT_MeterTopUp>(); //// 调用新增方法 //tbl.InsertOnSubmit(info); //// 更新操作 //dd.SubmitChanges(); //调用接口 WCFServiceProxy <IMeterTopUp> proxy1 = null; int intTopUpType = int.Parse(info.TopUpType.ToString()); TopUpType TopUpTypea = (TopUpType)intTopUpType; proxy1 = new WCFServiceProxy <IMeterTopUp>(); strMessagge = proxy1.getChannel.Topup(info.MeterNo, decimal.Parse(info.Amount.ToString()), TopUpTypea, info.Oper, info.OrgCode, info); m = JsonConvert.DeserializeObject <Message>(strMessagge); //if (!msg.Result) //{ // m = new Message() // { // Result = false, // TxtMessage = strMessagge // }; //} //else //{ // m = new Message() // { // Result = true, // TxtMessage = "充值成功!" // }; //} } catch (Exception e) { m = new Message() { Result = false, TxtMessage = "充值失败!" + e.Message }; } return(m); }
private IoT_MeterTopUp QueryTopUp(string taskID) { string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); try { IoT_MeterTopUp topUp = dd.GetTable <IoT_MeterTopUp>().Where(p => p.TaskID == taskID).SingleOrDefault(); return(topUp); } catch (Exception e) { Console.WriteLine(e.Message); return(null); } }
public string PrintTicket(string id) { string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 try { DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); Table <IoT_MeterTopUp> tbl = dd.GetTable <IoT_MeterTopUp>(); // 调用新增方法 IoT_MeterTopUp IoT_MeterTopUpDB = tbl.Where(u => u.ID == Convert.ToInt64(id)).SingleOrDefault(); IoT_MeterTopUpDB.IsPrint = true; // 更新操作 dd.SubmitChanges(); } catch (Exception e) { return(e.Message); } return(""); }
private string InsertTopUp(IoT_MeterTopUp topUp) { string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); try { Table <IoT_MeterTopUp> tbl = dd.GetTable <IoT_MeterTopUp>(); // 调用新增方法 tbl.InsertOnSubmit(topUp); // 更新操作 dd.SubmitChanges(); } catch (Exception e) { return(e.Message); } return(""); }
/// <summary> /// 创建充值任务 /// </summary> /// <param name="topup">充值数据对象</param> /// <param name="taskID"></param> /// <returns></returns> public string TopUp(IoT_MeterTopUp topup, out string taskID) { //创建一个任务 string result = ""; MongoDBHelper <Task> mongo_task = new MongoDBHelper <Task>(); Task task = new Task(); task.MeterMac = topup.MeterNo.Trim(); task.TaskDate = QuShi.getDate(); task.TaskID = Guid.NewGuid().ToString(); //用于和指令进行进行关联 task.TaskState = TaskState.Waitting; task.TaskType = TaskType.TaskType_充值; //点火任务(DH),换表登记(HB)、开阀(KF)、关阀(GF)、充值(CZ)、调整价格(TJ) //写任务 result = mongo_task.Insert(CollectionNameDefine.TaskCollectionName, task); taskID = task.TaskID; if (result != "") { return(result); } //创建命令 Command cmd = new Command(); byte ser = Convert.ToByte(topup.Ser);//new Random().Next(0, 255)); DataItem_A013 item_A013 = new DataItem_A013(ser, ser, (decimal)topup.Amount); cmd.TaskID = task.TaskID; cmd.Identification = ((UInt16)item_A013.IdentityCode).ToString("X2"); cmd.ControlCode = (byte)ControlCode.WriteData;//写操作 cmd.DataLength = Convert.ToByte(item_A013.Length); cmd.DataCommand = MyDataConvert.BytesToHexStr(item_A013.GetBytes()); cmd.Order = 1; result = CommandDA.Insert(cmd); if (result != "") { return(result); } return(""); }
/// <summary> /// 充值完成 /// </summary> /// <param name="taskID"></param> /// <param name="state"></param> /// <context></context> /// <returns></returns> public string TopupFinished(string taskID, TaskState state, string context) { string result = ""; IoT_MeterTopUp topUp = QueryTopUp(taskID); M_MeterTopUpService _mmtopup = new M_MeterTopUpService(); //1、将充值金额增加到用户账户(表)上。 if (state == TaskState.Finished) { //充值执行完成 if (topUp.State == '0') { result = Merged(taskID, topUp.MeterNo, (decimal)topUp.Amount); if (result != "") { return(result); } result = _mmtopup.TopUpFinished(taskID, (decimal)topUp.Amount); } else if (topUp.State == '1') { //已撤销 _mmtopup.UnTopUp(taskID, "充值已撤销"); } } else { //result = TopupFailed(taskID, (short)state); } if (result != "") { return(result); } return(""); }
/// <summary> /// 撤销充值 /// </summary> /// <param name="taskID"></param> /// <param name="reason"></param> /// <param name="oper"></param> /// <returns></returns> public string UnTopUp(string taskID, string reason, string oper) { string result = ""; //TODO:在做撤销操作前,应先通知通讯调度中心,撤销当前任务,如任务已执行,则本次撤销操作失败。 //1、向通讯层提交任务撤销请求,返回空表示撤销任务成功。 result = new M_MeterTopUpService().UnTopUp(taskID, reason); if (result != "") { return(result); } //2、在数据库登记撤销 string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"]; //Linq to SQL 上下文对象 DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString); try { IoT_MeterTopUp dbinfo = dd.GetTable <IoT_MeterTopUp>().Where(p => p.TaskID == taskID).SingleOrDefault(); if (dbinfo == null) { return("充值任务不存在。"); } dbinfo.State = Convert.ToChar(((byte)TaskState.Undo).ToString()); //任务撤销(1) dbinfo.TopUpDate = DateTime.Now; dbinfo.Context = reason; //撤销原因 dd.SubmitChanges(); } catch (Exception e) { return(e.Message); } return(result); }
public string Topup(string meterNo, decimal money, TopUpType topUpType, string oper, string orgCode, IoT_MeterTopUp info) { IoT_Meter _meter = MeterManageService.QueryMeter(meterNo); Meter _m = new TaskManageService().GetMeter(meterNo.Trim()); if (_m == null) { return(string.Format("表:{0}不存在,充值失败。", meterNo)); } if (_meter == null) { return(string.Format("表:{0}不存在,充值失败。", meterNo)); } string taskID;//充值任务ID,通讯任务层提供 if (_m.LastTopUpSer == 0) { _m.LastTopUpSer++; } //写充值记录到数据库 IoT_MeterTopUp _topUp = new IoT_MeterTopUp(); _topUp.CompanyID = _meter.CompanyID; _topUp.UserID = _meter.UserID; _topUp.MeterID = _meter.ID; _topUp.MeterNo = _meter.MeterNo; _topUp.TopUpType = Convert.ToChar(((byte)topUpType).ToString()); _topUp.Amount = (decimal)money; _topUp.Oper = oper; _topUp.OrgCode = orgCode; _topUp.Ser = _m.LastTopUpSer; _topUp.State = '0'; _topUp.IsPrint = false; _topUp.TopUpDate = DateTime.UtcNow.AddHours(8); _topUp.PayType = info.PayType; _topUp.SFOperID = info.SFOperID; _topUp.SFOperName = info.SFOperName; //任务提交层(mongo) M_MeterTopUpService _mtus = new M_MeterTopUpService(); string result = _mtus.TopUp(_topUp, out taskID); if (result != "") { return(string.Format("表:{0}不存在,充值失败,原因:{1}", meterNo, result)); } _topUp.TaskID = taskID; _topUp.Context = ""; new TaskManageDA().UpdateMeter(_m); result = InsertTopUp(_topUp); Message message = new Message(); if (result == "") { message.Result = true; message.TxtMessage = JsonConvert.SerializeObject(_topUp); } else { message.Result = false; message.TxtMessage = result; } return(JsonConvert.SerializeObject(message));; }