private SqlAndDps FarmInfoFilterSql(GetFarmInfoListCmd cmd) { var paras = new DynamicParameters(); var sql = " 1=1 "; if (cmd.Type.HasValue && (int)cmd.Type.Value != -1) { sql += " AND type = @type "; paras.Add("type", cmd.Type.Value); } if (!cmd.Name.IsNullOrWhiteSpace()) { sql += " AND name LIKE @name "; paras.Add("name", "%" + cmd.Name.Trim() + "%"); } if (!cmd.Remark.IsNullOrWhiteSpace()) { sql += " AND remark LIKE @remark "; paras.Add("remark", "%" + cmd.Remark.Trim() + "%"); } if (!cmd.Address.IsNullOrWhiteSpace()) { sql += " AND address LIKE @address "; paras.Add("address", "%" + cmd.Address.Trim() + "%"); } if (!cmd.Telephone.IsNullOrWhiteSpace()) { sql += " AND telephone LIKE @telephone "; paras.Add("telephone", "%" + cmd.Telephone.Trim() + "%"); } return(new SqlAndDps { Sql = sql, Dps = paras }); }
public async Task <IEnumerable <FarmInfo> > GetFarmInfosAsync(GetFarmInfoListCmd cmd, PagedListQuery plQuery) { using (var conn = CreateConnection()) { conn.Open(); var sql = "SELECT * FROM farm_info WHERE "; var demo = FarmInfoFilterSql(cmd); sql += demo.Sql; sql += " ORDER BY created_on DESC "; sql += plQuery.PostgresLimitPartialSql(); return(await conn.QueryAsync <FarmInfo>(sql, demo.Dps).ConfigureAwait(false)); } }