/// <summary> /// 根据标识和类型,动作。获取首页动态设置对象 /// </summary> /// <param name="id"></param> /// <param name="type"></param> /// <param name="isUp"></param> /// <returns></returns> public HomeDynamicSettings GetHomeDynamicTop(long id, int type, bool isUp) { using (var db = DbService.GetInstance()) { Sqlable sable = db.Sqlable().From("sc_home_dynamic_settings", "s") .Where("s.type=@type"); if (isUp) { sable = sable.Where($"s.display_order < (select display_order from sc_home_dynamic_settings where id = @id)"); } else { sable = sable.Where($"s.display_order > (select display_order from sc_home_dynamic_settings where id = @id)"); } List <HomeDynamicSettings> list = sable.SelectToList <HomeDynamicSettings>("s.*", new { id = id, type = type }); if (list != null && list.Count > 0) { if (isUp) { return(list.OrderByDescending(w => w.DisplayOrder).FirstOrDefault()); } else { return(list.OrderBy(w => w.DisplayOrder).FirstOrDefault()); } } return(null); } }
/// <summary> /// 使用Sqlable处理SQL拼接(支持参数化) /// </summary> /// <param name="userRanksQuery"></param> /// <param name="pars"></param> /// <returns></returns> private string HandleQueryBySqlable(UserRanksQuery userRanksQuery, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); if (!string.IsNullOrWhiteSpace(userRanksQuery.Rank)) { sqlTable = sqlTable.Where("rank LIKE @Rank"); paramsDictionary.Add("Rank", $"%{userRanksQuery.Rank}%"); } if (!string.IsNullOrWhiteSpace(userRanksQuery.RankName)) { sqlTable = sqlTable.Where("rank_name LIKE @RankName"); paramsDictionary.Add("RankName", $"%{userRanksQuery.RankName}%"); } if (!string.IsNullOrWhiteSpace(userRanksQuery.PointLower)) { sqlTable = sqlTable.Where("point_lower = @PointLower"); paramsDictionary.Add("PointLower", userRanksQuery.PointLower); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
/// <summary> /// 获取gridtable数据源 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sable"></param> /// <param name="pars">查询参数</param> /// <param name="selectFields">查询字段</param> /// <param name="whereObj">参数条件</param> /// <returns></returns> public static JsonResultModel <T> GetWidgetsSource <T>(Sqlable sable, GridSearchParams pars, string selectFields = "*", object whereObj = null) where T : class { var query = System.Web.HttpContext.Current.Request.QueryString; Type type = typeof(T); string tableName = type.Name; sable = sable.Where(BuildQuery(query)); string orderBy = null; if (!string.IsNullOrEmpty(pars.sortorder)) { orderBy = (pars.sortdatafield + " " + pars.sortorder); } else { orderBy = "getdate()"; } var rows = sable.SelectToPageList <T>(selectFields, orderBy, pars.pagenum + 1, pars.pagesize, whereObj); var result = new JsonResultModel <T>() { TotalRows = sable.Count(whereObj), Rows = rows }; return(result); }
public JsonResult GetListSource(GridSearchParams pars) { if (pars.sortdatafield == null) { //默认按id降序 pars.sortdatafield = "id"; pars.sortorder = "desc"; } Sqlable sable = ls.GetListSqlable(); var model = JQXGrid.GetWidgetsSource <list>(sable, pars, "*");//根据grid的参数自动查询 return(Json(model, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 处理SQL /// </summary> /// <param name="goodsInfoQuery"></param> /// <param name="pars"></param> /// <returns></returns> private string HandleQueryBySqlable(GoodsInfoQuery goodsInfoQuery, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); sqlTable = sqlTable.Where("status = @Status"); paramsDictionary.Add("Status", (int)goodsInfoQuery.GoodsInfoStatus); if (!string.IsNullOrWhiteSpace(goodsInfoQuery.Keynum)) { sqlTable = sqlTable.Where("goodsid = @Goodsid"); paramsDictionary.Add("Goodsid", long.Parse(goodsInfoQuery.Keynum)); } if (!string.IsNullOrWhiteSpace(goodsInfoQuery.Keyword)) { sqlTable = sqlTable.Where("goods_name LIKE @GoodsName"); paramsDictionary.Add("GoodsName", $"%{goodsInfoQuery.Keyword}%"); } if (goodsInfoQuery.GoodsPriceLowerLimit.HasValue) { sqlTable = sqlTable.Where("goods_price >= @GoodsPriceLowerLimit"); paramsDictionary.Add("GoodsPriceLowerLimit", goodsInfoQuery.GoodsPriceLowerLimit); } if (goodsInfoQuery.GoodsPriceUpperLimit.HasValue) { sqlTable = sqlTable.Where("goods_price <= @GoodsPriceUpperLimit"); paramsDictionary.Add("GoodsPriceUpperLimit", goodsInfoQuery.GoodsPriceUpperLimit); } if (goodsInfoQuery.BuyCountLowerLimit.HasValue) { sqlTable = sqlTable.Where("goods_price >= @GoodsPriceLowerLimit"); paramsDictionary.Add("BuyCountLowerLimit", goodsInfoQuery.BuyCountLowerLimit); } if (goodsInfoQuery.BuyCountUpperLimit.HasValue) { sqlTable = sqlTable.Where("goods_price <= @GoodsPriceUpperLimit"); paramsDictionary.Add("BuyCountUpperLimit", goodsInfoQuery.BuyCountUpperLimit); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
public JsonResult DataChild(GridSearchParams pars) { using (SqlSugarClient db = SugarDao.GetInstance()) { if (pars.sortdatafield == null) { //默认按id降序 pars.sortdatafield = "id"; pars.sortorder = "desc"; } Sqlable sable = db.Sqlable().Form <GridTable>("g"); //查询表的sqlable对象 var model = JQXGrid.GetWidgetsSource <Models.GridTable>(sable, pars, "*"); //根据grid的参数自动查询 return(Json(model, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 使用Sqlable处理SQL拼接(支持参数化) /// </summary> /// <param name="operationLogsQuery"></param> /// <param name="pars"></param> /// <returns></returns> public string HandleQueryBySqlable(OperationLogsQuery operationLogsQuery, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); if (operationLogsQuery.ApplicationId.HasValue) { sqlTable = sqlTable.Where("applicationid = @ApplicationId"); paramsDictionary.Add("ApplicationId", operationLogsQuery.ApplicationId.Value); } if (!string.IsNullOrWhiteSpace(operationLogsQuery.OperationName)) { sqlTable = sqlTable.Where("operation_object_name LIKE @OperationName"); paramsDictionary.Add("OperationName", $"%{operationLogsQuery.OperationName}%"); } if (!string.IsNullOrWhiteSpace(operationLogsQuery.Username)) { sqlTable = sqlTable.Where("operator_username LIKE @Username"); paramsDictionary.Add("Username", $"%{operationLogsQuery.Username}%"); } if (!string.IsNullOrWhiteSpace(operationLogsQuery.OperationType)) { sqlTable = sqlTable.Where("operation_type = @OperationType"); paramsDictionary.Add("OperationType", operationLogsQuery.OperationType); } if (operationLogsQuery.TimeLowerLimit.HasValue) { sqlTable = sqlTable.Where("date_created >= @TimeLowerLimit"); paramsDictionary.Add("TimeLowerLimit", operationLogsQuery.TimeLowerLimit); } if (operationLogsQuery.TimeUpperLimit.HasValue) { sqlTable = sqlTable.Where("date_created <= @TimeUpperLimit"); paramsDictionary.Add("TimeUpperLimit", operationLogsQuery.TimeUpperLimit); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
/// <summary> /// 使用Sqlable处理SQL拼接(支持参数化) /// </summary> /// <param name="pointLogsQuery"></param> /// <param name="pars"></param> /// <returns></returns> private string HandleQueryBySqlable(PointLogsQuery pointLogsQuery, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); if (pointLogsQuery.IsIncome.HasValue) { sqlTable = sqlTable.Where("is_income = @IsIncome"); paramsDictionary.Add("IsIncome", pointLogsQuery.IsIncome); } if (!string.IsNullOrWhiteSpace(pointLogsQuery.UserName)) { sqlTable = sqlTable.Where("userid in (select userid from sc_user where username LIKE @UserName)"); paramsDictionary.Add("UserName", $"%{pointLogsQuery.UserName}%"); } if (!string.IsNullOrWhiteSpace(pointLogsQuery.Itemsname)) { sqlTable = sqlTable.Where("itemsname LIKE @Itemsname"); paramsDictionary.Add("itemsname", $"%{pointLogsQuery.Itemsname}%"); } if (pointLogsQuery.SexyPoints.HasValue) { sqlTable = sqlTable.Where("sexy_points = @SexyPoints"); paramsDictionary.Add("SexyPoints", pointLogsQuery.SexyPoints); } if (pointLogsQuery.ExperiencePoints.HasValue) { sqlTable = sqlTable.Where("experience_points = @ExperiencePoints"); paramsDictionary.Add("ExperiencePoints", pointLogsQuery.ExperiencePoints); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
private string HandleQueryBySqlable(GoodsSkuInoutQuery goodsSkuInoutQuery, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); if (!string.IsNullOrWhiteSpace(goodsSkuInoutQuery.GoodsName)) { sqlTable = sqlTable.Where("goodsid in (select goodsid from sc_goods_info where goods_name LIKE @GoodsName)"); paramsDictionary.Add("GoodsName", $"%{goodsSkuInoutQuery.GoodsName}%"); } if (!string.IsNullOrWhiteSpace(goodsSkuInoutQuery.SkuName)) { sqlTable = sqlTable.Where("skuid in (select skuid from sc_goods_sku_info where sku_name LIKE @SkuName)"); paramsDictionary.Add("SkuName", $"%{goodsSkuInoutQuery.SkuName}%"); } if (goodsSkuInoutQuery.InoutNumberMin.HasValue) { sqlTable = sqlTable.Where("inout_number >= @InoutNumberMin"); paramsDictionary.Add("InoutNumberMin", goodsSkuInoutQuery.InoutNumberMin); } if (goodsSkuInoutQuery.InoutNumberMax.HasValue) { sqlTable = sqlTable.Where("inout_number <= @InoutNumberMax"); paramsDictionary.Add("InoutNumberMax", goodsSkuInoutQuery.InoutNumberMax); } if (goodsSkuInoutQuery.IsOut.HasValue) { sqlTable = sqlTable.Where("is_out = @IsOut"); paramsDictionary.Add("IsOut", goodsSkuInoutQuery.IsOut); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
private string HandleQueryBySqlableAPI(Dictionary <string, object> parsms, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); sqlTable = sqlTable.Where("status = @Status"); paramsDictionary.Add("Status", (int)GoodsInfoStatus.Sale); if (parsms.ContainsKey("CategoryItemid")) { sqlTable = sqlTable.Where("categoryitemid = @CategoryItemid"); paramsDictionary.Add("CategoryItemid", Convert.ToInt32(parsms["CategoryItemid"])); } if (parsms.ContainsKey("Brandsid")) { sqlTable = sqlTable.Where("brandsid = @Brandsid"); paramsDictionary.Add("Brandsid", Convert.ToInt32(parsms["Brandsid"])); } if (parsms.ContainsKey("Charaid")) { sqlTable = sqlTable.Where("s2.charaid = @Charaid"); paramsDictionary.Add("Charaid", Convert.ToInt32(parsms["Charaid"])); } if (parsms.ContainsKey("Max") && parsms.ContainsKey("Min")) { sqlTable = sqlTable.Where("goods_real_price between @Min and @Max"); paramsDictionary.Add("Max", Convert.ToInt32(parsms["Max"])); paramsDictionary.Add("Min", Convert.ToInt32(parsms["Min"])); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
/// <summary> /// Apply /// </summary> /// <param name="applySql">apply主体内容</param> /// <param name="shotName">apply简写</param> /// <param name="type">Apply类型</param> /// <returns></returns> public ISqlable Apply(string applySql, string shotName, ApplyType type) { sqlable = sqlable.Apply(applySql, shotName, (SqlSugar.ApplyType)(int) type); return(this); }
public Sqlable GetListSqlable() { Sqlable sable = db.Sqlable().Form <list>("g");//查询表的sqlable对象 return(sable); }
/// <summary> /// OrderBy /// </summary> /// <param name="orderBy">排序字段,可以多个</param> /// <returns></returns> public ISqlable OrderBy(string orderBy) { sqlable = sqlable.OrderBy(orderBy); return(this); }
/// <summary> /// Where /// </summary> /// <param name="where">查询条件、开头无需写 AND或者WHERE</param> /// <returns></returns> public ISqlable Where(string where) { sqlable = sqlable.Where(where); return(this); }
/// <summary> /// Join /// </summary> /// <param name="shortName">表名简写</param> /// <param name="leftFiled">join左边连接字段</param> /// <param name="rightFiled">join右边连接字段</param> /// <param name="type">join类型</param> /// <returns></returns> public ISqlable Join <T>(string shortName, string leftFiled, string rightFiled, JoinType type) { sqlable = sqlable.Join <T>(shortName, leftFiled, rightFiled, (SqlSugar.JoinType)(int) type); return(this); }
/// <summary> /// Form /// </summary> /// <param name="shortName">表名简写</param> /// <returns></returns> public ISqlable From <T>(string shortName) { sqlable = sqlable.From <T>(shortName); return(this); }
/// <summary> /// Form /// </summary> /// <param name="tableName">表名</param> /// <param name="shortName">表名简写</param> /// <returns></returns> public ISqlable From(string tableName, string shortName) { sqlable = sqlable.From(tableName, shortName); return(this); }
/// <summary> /// 处理SQL条件 /// </summary> /// <param name="orderInfoQuery"></param> /// <param name="pars"></param> /// <returns></returns> private string HandleQueryBySqlable(OrderInfoQuery orderInfoQuery, out object pars) { Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); var sqlTable = new Sqlable(); sqlTable.Sql = new StringBuilder(); if (!string.IsNullOrWhiteSpace(orderInfoQuery.Buyers)) { sqlTable = sqlTable.Where("buyers_name = @Buyers"); paramsDictionary.Add("Buyers", orderInfoQuery.Buyers); } if (!string.IsNullOrWhiteSpace(orderInfoQuery.BuyersPhone)) { sqlTable = sqlTable.Where("buyers_phone = @BuyersPhone"); paramsDictionary.Add("BuyersPhone", orderInfoQuery.BuyersPhone); } if (!string.IsNullOrWhiteSpace(orderInfoQuery.OrderNumber)) { sqlTable = sqlTable.Where("order_number = @OrderNumber"); paramsDictionary.Add("OrderNumber", orderInfoQuery.OrderNumber); } if (!string.IsNullOrWhiteSpace(orderInfoQuery.WaybillNumber)) { sqlTable = sqlTable.Where("waybill_number = @WaybillNumber"); paramsDictionary.Add("WaybillNumber", orderInfoQuery.WaybillNumber); } if (!string.IsNullOrWhiteSpace(orderInfoQuery.OtherOrderNumber)) { sqlTable = sqlTable.Where("other_transaction_code = @OtherOrderNumber"); paramsDictionary.Add("OtherOrderNumber", orderInfoQuery.OtherOrderNumber); } if (orderInfoQuery.IsUse.HasValue) { sqlTable = sqlTable.Where("is_use = @IsUse"); paramsDictionary.Add("IsUse", orderInfoQuery.IsUse); } if (orderInfoQuery.IsCompleteComment.HasValue) { sqlTable = sqlTable.Where("is_complete_comment = @IsCompleteComment"); paramsDictionary.Add("IsCompleteComment", orderInfoQuery.IsCompleteComment); } if (orderInfoQuery.OrderType.HasValue) { sqlTable = sqlTable.Where("order_type = @OrderType"); paramsDictionary.Add("OrderType", (int)orderInfoQuery.OrderType.Value); } if (orderInfoQuery.OrderRightsStatus.HasValue) { sqlTable = sqlTable.Where("rights_status = @OrderRightsStatus"); paramsDictionary.Add("OrderRightsStatus", (int)orderInfoQuery.OrderRightsStatus.Value); } if (orderInfoQuery.OrderLogisticsMode.HasValue) { sqlTable = sqlTable.Where("logistics_type = @OrderLogisticsMode"); paramsDictionary.Add("OrderLogisticsMode", (int)orderInfoQuery.OrderLogisticsMode.Value); } if (orderInfoQuery.OrderInfoStatus.HasValue) { sqlTable = sqlTable.Where("status = @Status"); paramsDictionary.Add("Status", (int)orderInfoQuery.OrderInfoStatus.Value); } if (orderInfoQuery.OrderPayType.HasValue) { sqlTable = sqlTable.Where("pay_type = @PayType"); paramsDictionary.Add("PayType", (int)orderInfoQuery.OrderPayType.Value); } if (orderInfoQuery.RealPriceLowerLimit.HasValue) { sqlTable = sqlTable.Where("real_price >= @RealPriceLowerLimit"); paramsDictionary.Add("RealPriceLowerLimit", orderInfoQuery.RealPriceLowerLimit); } if (orderInfoQuery.RealPriceUpperLimit.HasValue) { sqlTable = sqlTable.Where("real_price <= @RealPriceUpperLimit"); paramsDictionary.Add("RealPriceUpperLimit", orderInfoQuery.RealPriceUpperLimit); } if (orderInfoQuery.OrderTimeLowerLimit.HasValue) { sqlTable = sqlTable.Where("dete_created >= @OrderTimeLowerLimit"); paramsDictionary.Add("OrderTimeLowerLimit", orderInfoQuery.OrderTimeLowerLimit.Value); } if (orderInfoQuery.OrderTimeUpperLimit.HasValue) { sqlTable = sqlTable.Where("dete_created <= @OrderTimeUpperLimit"); paramsDictionary.Add("OrderTimeUpperLimit", orderInfoQuery.OrderTimeUpperLimit.Value); } pars = paramsDictionary; foreach (var item in sqlTable.Where) { sqlTable.Sql.Append(item); } return(sqlTable.Sql.ToString().TrimStart(" AND".ToCharArray())); }
/// <summary> /// Join /// </summary> /// <param name="tableName">表名字符串</param> /// <param name="shortName">表名简写</param> /// <param name="leftFiled">join左边连接字段</param> /// <param name="rightFiled">join右边连接字段</param> /// <param name="type">join类型</param> /// <returns></returns> public ISqlable Join(string tableName, string shortName, string leftFiled, string rightFiled, JoinType type) { sqlable = sqlable.Join(tableName, shortName, leftFiled, rightFiled, (OracleSugar.JoinType)(int) type); return(this); }
/// <summary> /// 接近Sql的编程模式 /// </summary> private void SqlableDemo() { using (var db = SugarDao.GetInstance()) { //---------Sqlable,创建多表查询---------// //多表查询 List <School> dataList = db.Sqlable() .From("school", "s") .Join("student", "st", "st.id", "s.id", JoinType.INNER) .Join("student", "st2", "st2.id", "st.id", JoinType.LEFT) .Where("s.id>100 and s.id<@id") .Where("1=1")//可以多个WHERE .OrderBy("id") .SelectToList <School /*新的Model我这里没有所以写的School*/>("st.*", new { id = 1 }); //多表分页 List <School> dataPageList = db.Sqlable() .From("school", "s") .Join("student", "st", "st.id", "s.id", JoinType.INNER) .Join("student", "st2", "st2.id", "st.id", JoinType.LEFT) .Where("s.id>100 and s.id<100") .SelectToPageList <School>("st.*", "s.id", 1, 10); //多表分页WHERE加子查询 List <School> dataPageList2 = db.Sqlable() .From("school", "s") .Join("student", "st", "st.id", "s.id", JoinType.INNER) .Join("student", "st2", "st2.id", "st.id", JoinType.LEFT) .Where("s.id>100 and s.id<100 and s.id in (select 1 )" /*这里面写子查询都可以*/) .SelectToPageList <School>("st.*", "s.id", 1, 10); //--------转成List Dynmaic 或者 Json-----// //不分页 var list1 = db.Sqlable().From("student", "s").Join("school", "l", "s.sch_id", "l.id and l.id=@id", JoinType.INNER).SelectToDynamic("*", new { id = 1 }); var list2 = db.Sqlable().From("student", "s").Join("school", "l", "s.sch_id", "l.id and l.id=@id", JoinType.INNER).SelectToJson("*", new { id = 1 }); var list3 = db.Sqlable().From("student", "s").Join("school", "l", "s.sch_id", "l.id and l.id=@id", JoinType.INNER).SelectToDataTable("*", new { id = 1 }); //分页 var list4 = db.Sqlable().From("student", "s").Join("school", "l", "s.sch_id", "l.id and l.id=@id", JoinType.INNER).SelectToPageDynamic("s.*", "l.id", 1, 10, new { id = 1 }); var list5 = db.Sqlable().From("student", "s").Join("school", "l", "s.sch_id", "l.id and l.id=@id", JoinType.INNER).SelectToPageTable("s.*", "l.id", 1, 10, new { id = 1 }); var list6 = db.Sqlable().From("student", "s").Join("school", "l", "s.sch_id", "l.id and l.id=@id", JoinType.INNER).SelectToPageDynamic("s.*", "l.id", 1, 10, new { id = 1 }); //--------拼接-----// Sqlable sable = db.Sqlable().From <Student>("s").Join <School>("l", "s.sch_id", "l.id", JoinType.INNER); string name = "a"; int id = 1; if (!string.IsNullOrEmpty(name)) { sable = sable.Where("s.name=@name"); } if (!string.IsNullOrEmpty(name)) { sable = sable.Where("s.id=@id or s.id=100"); } if (id > 0) { sable = sable.Where("l.id in (select top 10 id from school)");//where加子查询 } var pars = new { id = id, name = name }; int pageCount = sable.Count(pars); var list7 = sable.SelectToPageList <Student>("s.*", "l.id desc", 1, 20, pars); } }
/// <summary> /// GroupBy /// </summary> /// <param name="groupBy">GroupBy字段,可以多个</param> /// <returns></returns> public ISqlable GroupBy(string groupBy) { sqlable = sqlable.GroupBy(groupBy); return(this); }