/// <summary> /// 获取实体数据 /// </summary> /// <returns></returns> public DataTable GetData(string entityName, string[] columns = null, string where = null, string pkName = null, string pkValue = null, string order = null, bool sortDesc = false) { FE_GetDataParam getDataParam = new FE_GetDataParam(); getDataParam.Sources = entityName; if (columns != null) { getDataParam.Columns.AddRange(columns); } getDataParam.AddWhere(where); getDataParam.PrimaryKey = pkName; getDataParam.PrimaryKeyValue = pkValue; if (order != null) { getDataParam.OrderByConditons.Add(new OrderByCondition(order, sortDesc)); } DataSet ds = GetData(getDataParam); if (TmoShare.DataSetIsEmpty(ds)) { return(null); } return(ds.Tables.Contains("tmo_data") ? ds.Tables["tmo_data"] : ds.Tables[0]); }
/// <summary> /// 获取分页实体数据 /// </summary> /// <returns></returns> public DataSet GetPageData(string entityName, int pageSize, int pageIndex, string[] columns = null, string where = null, string order = null, bool sortDesc = false, JoinCondition[] joinConditions = null) { FE_GetDataParam getDataParam = new FE_GetDataParam(); getDataParam.PageIndex = pageIndex; getDataParam.PageSize = pageSize; getDataParam.Sources = entityName; if (columns != null) { getDataParam.Columns.AddRange(columns); } getDataParam.AddWhere(where); if (order != null) { getDataParam.OrderByConditons.Add(new OrderByCondition() { Col = order, IsDesc = sortDesc }); } if (joinConditions != null) { getDataParam.JoinConditions.AddRange(joinConditions); } return(GetData(getDataParam)); }
/// <summary> /// 获得数据 /// </summary> protected virtual DataSet GetDataMethod(FE_GetDataParam getDataParam) { //string getpagedataStr = TmoShare.GetPageDataEntityParams(tableName, PageSize, PageIndex, columns, string.Format("{0} and {1}", fixwhere, where), order); //DataSet ds = Tmo_FakeEntityClient.Instance.GetPageDataWithParams(getpagedataStr); DataSet ds = Tmo_FakeEntityClient.Instance.GetData(getDataParam); return(ds); }
protected override DataSet GetDataMethod(FE_GetDataParam getDataParam) { string user_id = Userinfo == null ? "" : Userinfo.user_id; int user_times = Userinfo == null ? 0 : Userinfo.user_times; DataSet ds = TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.GetProResult, user_id, user_times, ""); if (ds != null && ds.Tables.Count > 0) { ds.Tables[0].TableName = "tmo_data"; } return(ds); }
private void ComboBoxBind() { try { DataTable wzds = TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.GetPublicList, "tmo_product_type", "is_del='1' ").Tables[0]; if (TmoShare.DataTableIsNotEmpty(wzds)) { this.BindDataTable(productType, wzds, "type_name", "type_id"); } DataTable ztdt = TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.GetPublicList, "tmo_product_list", " is_del='1' ").Tables[0]; if (TmoShare.DataTableIsNotEmpty(ztdt)) { this.BindDataTable(productName, ztdt, "product_name", "product_id"); } DataTable ysdt = Tmo_FakeEntityClient.Instance.GetData("tmo_sell_list", new[] { "distinct(doc_code) as doc_code" }, "is_del='1'"); if (TmoShare.DataTableIsNotEmpty(ysdt)) { this.BindDataTable(docName, ysdt, "doc_code", "doc_code"); } var param = new FE_GetDataParam() { Columns = { "distinct(tmo_sell_list.identity)", "name" }, Sources = "tmo_sell_list", JoinConditions = { new JoinCondition() { JoinType = EmJoinType.LeftJoin, Table = "tmo_userinfo", OnCol = "identity" } } }; param.AddWhere("tmo_sell_list.is_del='1'"); DataSet ds = Tmo_FakeEntityClient.Instance.GetData(param); if (TmoShare.DataSetIsNotEmpty(ds)) { if (ds.Tables.Contains("tmo_data")) { DataTable yhdt = ds.Tables["tmo_data"]; if (TmoShare.DataTableIsNotEmpty(yhdt)) { this.BindDataTable(receiveCode, yhdt, "name", "identity"); } } } } catch (Exception) { } }
/// <summary> /// 获取实体数据 /// </summary> /// <returns></returns> public DataTable GetData(string entityName, string[] columns, string where = null, string pkName = null, string pkValue = null, string order = null, bool sortDesc = false, int pageSize = -1) { FE_GetDataParam getDataParam = new FE_GetDataParam(); getDataParam.Sources = entityName; if (columns != null && columns.Length > 0) { getDataParam.Columns.AddRange(columns); } getDataParam.AddWhere(where); getDataParam.PrimaryKey = pkName; getDataParam.PrimaryKeyValue = pkValue; if (order != null) { getDataParam.OrderByConditons.Add(new OrderByCondition() { Col = order, IsDesc = sortDesc }); } if (pageSize != -1) { getDataParam.PageIndex = 1; getDataParam.PageSize = pageSize; } DataSet ds = GetData(getDataParam); if (TmoShare.DataSetIsEmpty(ds)) { return(null); } if (ds.Tables.Contains("tmo_data")) { return(ds.Tables["tmo_data"]); } else { DataTable dt = ds.Tables[0]; if (dt.TableName == "tmo_count") { return(null); } return(dt); } }
protected override bool BeforeSubmitData(Dictionary <string, object> dicData) { if (userNum.Visible) { dicData[nameof(dev_sn)] = dicData[nameof(dev_sn)] + userNum.EditValue.ToString(); } FE_GetDataParam param = new FE_GetDataParam() { Columns = { "tmo_userinfo.user_id,tmo_userinfo.name,tmo_userinfo.is_del" }, Sources = TableName, JoinConditions = { new JoinCondition() { JoinType = EmJoinType.LeftJoin, Table = "tmo_userinfo", OnCol = "user_id", MainCol = "dev_userid" } } }; param.DicWhere.Add(PrimaryKey, dicData[PrimaryKey].ToString()); param.DicWhere.Add(dev_type.Name, dicData[dev_type.Name].ToString()); DataSet ds = Tmo_FakeEntityClient.Instance.GetData(param); if (TmoShare.DataSetIsNotEmpty(ds)) { if (_user_id == ds.Tables[0].Rows[0]["user_id"].ToString()) { DXMessageBox.ShowWarning("设备已绑定,请勿重复绑定!"); return(false); } DXMessageBox.ShowWarning(string.Format("设备已经被用户【{0}】绑定!\n[{1}]", ds.Tables[0].Rows[0]["name"], ds.Tables[0].Rows[0]["user_id"])); return(false); } bool same = Tmo_FakeEntityClient.Instance.ExistSameValue(TableName, PrimaryKey, dicData[PrimaryKey].ToString(), dev_type.Name + "=" + dicData[dev_type.Name]); if (same) { DbOperaType = DBOperateType.Update; PrimaryKeyValue = dicData[PrimaryKey].ToString(); } dicData.Add("dev_userid", _user_id); dicData.Add("doc_name", TmoComm.login_docInfo.doc_name); dicData.Add("dev_bindtime", DateTime.Now); return(true); }
/// <summary> /// 获得实体数据 /// </summary> /// <param name="param"></param> /// <returns></returns> public DataSet GetData(FE_GetDataParam param) { return(dal.GetData(param)); }
private DateTime lastMianTime = DateTime.MinValue; //面访上次提醒日期 /// <summary> /// 定时执行干预任务 /// </summary> /// <param name="state"></param> private void ExecIntervene(object state) { FE_GetDataParam param = new FE_GetDataParam() { Sources = "tmo_intervene", PrimaryKey = "inte_id", Columns = { "tmo_userinfo.name", "tmo_userinfo.gender", "tmo_userinfo.age", "tmo_userinfo.phone", "tmo_intervene.*" }, JoinConditions = { new JoinCondition() { JoinType = EmJoinType.LeftJoin, Table = "tmo_userinfo", OnCol = "user_id" } } }; param.AddWhere("inte_status in (1,2)"); var ds = Tmo_FakeEntityManager.Instance.GetData(param); //获取未执行的干预 if (TmoShare.DataSetIsNotEmpty(ds)) { bool canNotice = (DateTime.Now - lastNoticeTime).TotalSeconds >= 30; var dt = ds.Tables["tmo_data"]; for (int i = 0; i < dt.Rows.Count; i++) { var dr = dt.Rows[i]; string inte_id = dr.GetDataRowStringValue("inte_id"); try { string inte_content = dr.GetDataRowStringValue("inte_content"); int inte_way = dr.GetDataRowIntValue("inte_way"); //干预方式 1-邮件 2-短信 3-电话 4-面访 int doc_id = dr.GetDataRowIntValue("doc_id"); string inte_addr = dr.GetDataRowStringValue("inte_addr"); DateTime inte_plantime = dr.GetDataRowDateTimeValue("inte_plantime"); TimeSpan diffSpan = DateTime.Now - inte_plantime; //现在时间距离计划时间的时间差 int failMin = 30; //过期时间 单位:分钟 if (Debugger.IsAttached) { failMin = 60 * 24 * 3; } if (inte_way == 3) { failMin = 60 * 12; //电话12小时过期 } if (inte_way == 4) { failMin = 60 * 24; //面访24小时过期 if (diffSpan.TotalMinutes > -failMin && diffSpan.TotalMinutes < 0) //提前24小时提醒 { if ((DateTime.Now - lastMianTime).TotalMinutes >= 30) { string str = string.Format("面访任务提醒\n时间 [{0}]\n客户信息 [{1},{2},{3}岁]\n手机号码 {4}\n面访地址 {5}\n请提前做好准备!", inte_plantime.ToString("yyyy年MM月dd日HH点mm分"), dr.GetDataRowStringValue("name"), dr.GetDataRowIntValue("gender") == 1 ? "男" : "女", dr.GetDataRowStringValue("age"), dr.GetDataRowStringValue("phone"), inte_addr); bool sendsuc = PushInvoke.SendDocInvoke(doc_id.ToString(), 0, str); if (sendsuc) { lastMianTime = DateTime.Now; } } continue; } } if (diffSpan.Ticks < 0) { continue; //未到执行时间 } if (diffSpan.TotalMinutes > failMin) //干预过期 { tmo_interveneManager.Instance.SetInterveneFailed(inte_id, "干预过期"); continue; } int inte_status = dr.GetDataRowIntValue("inte_status"); //更改执行状态 if (inte_status == 1) { tmo_interveneManager.Instance.SetInterveneExecing(inte_id); continue; } PushType pushtype = PushType.doc_wechat; //默认类型 此类型无效 switch (inte_way) { case 1: pushtype = PushType.user_mail; break; case 2: pushtype = PushType.user_sms; break; case 3: //电话干预 if (canNotice) { string title = "请执行电话干预"; string msg = string.Format("有一个电话干预需要执行:\n时间 [{0}]\n客户信息 [{1},{2},{3}岁]\n电话号码 [{4}]\n点击查看详情并填写执行结果!", inte_plantime.ToString("yyyy年MM月dd日HH点mm分"), dr.GetDataRowStringValue("name"), dr.GetDataRowIntValue("gender") == 1 ? "男" : "女", dr.GetDataRowStringValue("age"), inte_addr); string sendStr = title + ";" + msg + ";" + inte_id; bool sendsuc = PushInvoke.SendDocInvoke(doc_id.ToString(), 100, sendStr); if (sendsuc) { lastNoticeTime = DateTime.Now; } } break; case 4: //面访干预 if (canNotice) { string title = "请执行面访干预"; string msg = string.Format("有一个面访干预需要执行:\n时间 [{0}]\n客户信息 [{1},{2},{3}岁]\n手机号码 [{4}]\n面访地址 {5}\n点击查看详情并填写执行结果!", inte_plantime.ToString("yyyy年MM月dd日HH点mm分"), dr.GetDataRowStringValue("name"), dr.GetDataRowIntValue("gender") == 1 ? "男" : "女", dr.GetDataRowStringValue("age"), dr.GetDataRowStringValue("phone"), inte_addr); string sendStr = title + ";" + msg + ";" + inte_id; bool sendsuc = PushInvoke.SendDocInvoke(doc_id.ToString(), 101, sendStr); if (sendsuc) { lastNoticeTime = DateTime.Now; } } break; default: throw new Exception("干预方式参数无效"); } if (pushtype == PushType.doc_wechat || pushtype == PushType.None) { continue; //未知方式取消推送 } string inte_reason = dr.GetDataRowStringValue("inte_reason"); if (inte_reason == "sending") { continue; //发送中跳过 } string inte_title = dr.GetDataRowStringValue("inte_title"); if (string.IsNullOrWhiteSpace(inte_title)) { inte_title = "健康干预"; } string user_id = dr.GetDataRowStringValue("user_id"); Dictionary <string, object> dicVals = new Dictionary <string, object>(); dicVals.Add("push_id", inte_id); dicVals.Add("user_code", user_id); dicVals.Add("push_type", (int)pushtype); dicVals.Add("push_address", inte_addr); dicVals.Add("content_type", "1"); dicVals.Add("content_title", inte_title); dicVals.Add("content_value", inte_content); dicVals.Add("push_status", 1); dicVals.Add("doc_code", doc_id); bool suc = tmo_push_listManager.Instance.AddToPushList(dicVals); if (suc) { dicVals.Clear(); dicVals.Add("inte_reason", "sending"); Tmo_FakeEntityManager.Instance.SubmitData(DBOperateType.Update, "tmo_intervene", "inte_id", inte_id, dicVals); } } catch (Exception ex) { LogHelper.Log.Error("干预任务解析失败!", ex); tmo_interveneManager.Instance.SetInterveneFailed(inte_id, "干预任务解析失败:" + ex.Message); } } } ((ManualResetEvent)((object[])state)[0]).Set(); }
/// <summary> /// 获得实体数据 /// </summary> /// <param name="param"></param> /// <returns></returns> public DataSet GetData(FE_GetDataParam param) { if (param == null) { return(null); } if (string.IsNullOrWhiteSpace(param.Sources)) { return(null); } DataSet ds = new DataSet("tmo_entity"); string columnsStr; //列筛选条件处理 if (param.Columns.Any()) { columnsStr = string.Join(",", param.Columns); } else { columnsStr = "*"; } //Where特殊情况处理 if (param.Where.ToString().TrimEnd().EndsWith("and", StringComparison.CurrentCultureIgnoreCase)) //包含and字符 { param.Where.Append(" 1=1 "); } //假删除条件附加 if (!param.Where.ToString().ToLower().Contains("is_del")) { if (MySQLHelper.IsFalseDelete(param.Sources)) { param.Where.AppendFormat(" and ({0}.is_del!='1' or {0}.is_del is null) ", param.Sources); } } //DicWhere条件处理 if (param.DicWhere.Any()) { foreach (var item in param.DicWhere) { string col = item.Key; string val = item.Value; if (string.IsNullOrWhiteSpace(col) || string.IsNullOrWhiteSpace(val)) { continue; //筛选无效值 } val = val.StartsWith(",") ? string.Format("{0} {1}", col, val.TrimStart(',')) : string.Format("{0}='{1}'", col, val); param.Where.AppendFormat(" and {0} ", val); } } //主键条件附加 if (!string.IsNullOrWhiteSpace(param.PrimaryKey) && !string.IsNullOrWhiteSpace(param.PrimaryKeyValue)) { param.Where.AppendFormat(" and {0}='{1}'", param.PrimaryKey, param.PrimaryKeyValue); } //join条件处理 if (param.JoinConditions.Any()) { foreach (var jc in param.JoinConditions) { if (string.IsNullOrWhiteSpace(jc.Table) || string.IsNullOrWhiteSpace(jc.OnCol)) { continue; //忽略无效的连接条件 } if (string.IsNullOrWhiteSpace(jc.MainTable)) { jc.MainTable = param.Sources; } if (string.IsNullOrWhiteSpace(jc.MainCol)) { jc.MainCol = jc.OnCol; } param.Sources += " " + TmoShare.GetDescription(jc.JoinType); if (string.IsNullOrWhiteSpace(jc.TableAsName)) { param.Sources += string.Format(" {0} on {0}.{1}={2}.{3}", jc.Table, jc.OnCol, jc.MainTable, jc.MainCol); } else { param.Sources += string.Format(" {0} {4} on {4}.{1}={2}.{3}", jc.Table, jc.OnCol, jc.MainTable, jc.MainCol, jc.TableAsName); } } } StringBuilder sbSql = new StringBuilder(); StringBuilder sbSqlCount = new StringBuilder(); sbSql.AppendFormat("select {0} from {1}", columnsStr, param.Sources); sbSqlCount.AppendFormat("select count(*) from {0}", param.Sources); if (param.Where.Length > 0) { sbSql.AppendFormat(" where {0}", param.Where); sbSqlCount.AppendFormat(" where {0}", param.Where); } //排序条件附加 if (param.OrderByConditons.Any()) { string orderCols = null; foreach (OrderByCondition o in param.OrderByConditons) { if (string.IsNullOrWhiteSpace(o.Col)) { continue; } orderCols += string.Format(" {0} {1},", o.Col, o.IsDesc ? "desc" : "asc"); } if (!string.IsNullOrWhiteSpace(orderCols)) { sbSql.AppendFormat(" order by {0}", orderCols.TrimEnd(',')); } } if (param.PageSize != -1 || param.PageIndex != -1) { //分页模式 if (param.PageSize < 1) { param.PageSize = 100; //错误页码过滤 } if (param.PageIndex < 1) { param.PageIndex = 1; } int count = 0; int pageCount = 1; DataTable dtCount = new DataTable("tmo_count"); dtCount.Columns.AddRange(new DataColumn[] { new DataColumn("count"), new DataColumn("pageCount"), new DataColumn("pageIndex"), new DataColumn("pageSize") }); DataRow drCount = dtCount.NewRow(); object objCount = MySQLHelper.GetSingle(sbSqlCount.ToString()); if (objCount != null) { count = Convert.ToInt32(objCount); } drCount["count"] = count; pageCount = (int)Math.Ceiling((double)count / param.PageSize); drCount["pageCount"] = pageCount; if (param.PageIndex > pageCount) { param.PageIndex = pageCount; } drCount["pageIndex"] = param.PageIndex; drCount["pageSize"] = param.PageSize; dtCount.Rows.Add(drCount); if (count != 0) { sbSql.AppendFormat(" limit {0},{1}", (param.PageIndex - 1) * param.PageSize, param.PageSize); DataTable dt = MySQLHelper.QueryTable(sbSql.ToString()); if (dt != null) { dt.TableName = "tmo_data"; ds.Tables.Add(dt); } } ds.Tables.Add(dtCount); } else { //无需分页 DataTable dt = MySQLHelper.QueryTable(sbSql.ToString()); if (dt != null) { dt.TableName = "tmo_data"; ds.Tables.Add(dt); } } return(ds); }
/// <summary> /// 获取实体数据 /// </summary> /// <param name="getDataParam"></param> /// <returns></returns> public DataSet GetData(FE_GetDataParam getDataParam) { return(TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.FakeEntity_GetDataNew, getDataParam)); }