Hotel/Common/Data/Filter/FilterTranslator.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common.Data.Filter
{
    public class FilterTranslator
    {

        /// <summary>
        /// 將操作符代碼轉換為SQL的操作符號
        /// </summary>
        /// <param name="op"></param>
        /// <returns></returns>
        private static string GetOperatorQueryText(string op)
        {
            switch (op.ToLower())
            {
                case "eq": return " = ";
                case "gt": return " > ";
                case "ge": return " >= ";
                case "nu": return " IS NULL ";
                case "nn": return " IS NOT NULL ";
                case "lt": return " < ";
                case "le": return " <= ";
                case "cn": return " like ";
                case "bw": return " like ";
                case "ew": return " like ";
                case "ne": return " <> ";
                case "in": return " IN ";
                case "ni": return " NOT IN ";
                default: return " = ";
            }
        }

        public static string ToSql(string jsonFilter)
        {
            if (string.IsNullOrEmpty(jsonFilter))
                return " 1=1 ";
            FilterGroup fg = Common.JSONhelper.ConvertToObject<FilterGroup>(jsonFilter);
            return ToSql(fg);
        }

        private static string ToSql(FilterGroup fg)
        {
            StringBuilder sb = new StringBuilder();

            if (fg == null)
                return " 1=1 ";

            sb.Append("(");
            bool flag = false;
            if (fg.Rules != null)
            {
                foreach (var rule in fg.Rules)
                {
                    if (flag)
                        sb.Append(" " + fg.groupOp.ToString() + " ");
后面还有 57 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。