Add SqlFunc.NewUid

This commit is contained in:
sunkaixuan
2023-08-13 15:25:00 +08:00
parent 0f41acb3d5
commit 19d442fb15
8 changed files with 32 additions and 1 deletions

View File

@@ -1064,5 +1064,10 @@ namespace SqlSugar
var parameterNameA = mode.Args[0].MemberName;
return $" CEILING({parameterNameA}) ";
}
public virtual string NewUid(MethodCallExpressionModel mode)
{
return " REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n REPLACE(\r\n '6C050346-B632-47B4-B29F-9CE39AC22792',\r\n '6', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n 'C', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n '0', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n '5', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n '0', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n '3', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n '4', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n 'B', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n '2', SUBSTRING('0123456789ABCDEF', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ),\r\n '9', SUBSTRING('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', (FLOOR(RANDOM() * 16)::INTEGER % 16) + 1, 1)\r\n ) ";
}
}
}

View File

@@ -120,6 +120,7 @@ namespace SqlSugar
string Right(MethodCallExpressionModel mode);
string PadLeft(MethodCallExpressionModel mode);
string Floor(MethodCallExpressionModel mode);
string Ceil(MethodCallExpressionModel mode);
string Ceil(MethodCallExpressionModel mode);
string NewUid(MethodCallExpressionModel mode);
}
}

View File

@@ -303,6 +303,7 @@ namespace SqlSugar
public static string ToVarchar(object value) { return value.ObjToString(); }
public static decimal ToDecimal(object value) { return value.ObjToDecimal(); }
public static Guid ToGuid(object value) { return Guid.Parse(value.ObjToString()); }
public static Guid NewUid() { throw new NotSupportedException("Can only be used in expressions"); }
public static double ToDouble(object value) { return value.ObjToMoney(); }
public static bool ToBool(object value) { return value.ObjToBool(); }
public static string Substring(object value, int index, int length) { return value.ObjToString().Substring(index, length); }

View File

@@ -259,5 +259,10 @@ namespace SqlSugar
var parameterNameA = mode.Args[0].MemberName;
return $" CEIL({parameterNameA}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " SYS_GUID() ";
}
}
}

View File

@@ -245,6 +245,10 @@ namespace SqlSugar
return $" JSON_CONTAINS({model.Args[0].MemberName},'{{\"{model.Args[1].MemberValue}\":\"{model.Args[2].MemberValue.ObjToStringNoTrim().ToSqlFilter()}\"}}')";
}
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " CONCAT(\r\n SUBSTR(UPPER(HEX(RANDOM_BYTES(4))), 1, 8), '-',\r\n SUBSTR(UPPER(HEX(RANDOM_BYTES(2))), 1, 4), '-',\r\n '4', SUBSTR(UPPER(HEX(RANDOM_BYTES(2))), 2, 3), '-',\r\n SUBSTR('89ab', 1 + (ABS(RANDOM()) % 4), 1), SUBSTR(UPPER(HEX(RANDOM_BYTES(2))), 2, 3), '-',\r\n SUBSTR(UPPER(HEX(RANDOM_BYTES(6))), 1, 12)\r\n) ";
}
//public override string TrimEnd(MethodCallExpressionModel mode)
//{
// var parameterNameA = mode.Args[0].MemberName;

View File

@@ -385,5 +385,10 @@ namespace SqlSugar
var parameterNameA = mode.Args[0].MemberName;
return $" CEIL({parameterNameA}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " SYS_GUID() ";
}
}
}

View File

@@ -130,6 +130,11 @@ namespace SqlSugar
var parameterNameC = mode.Args[2].MemberName;
return $" CONCAT(REPLICATE({parameterNameC}, {parameterNameB} - LEN({parameterNameA})), {parameterNameA}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " NEWID() ";
}
}

View File

@@ -319,5 +319,10 @@ namespace SqlSugar
var parameterNameB = mode.Args[1].MemberName;
return $" SUBSTR({parameterNameA}, -2, {parameterNameB}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " substr(upper(hex(randomblob(4))), 1, 8) || '-' ||\r\n substr(upper(hex(randomblob(2))), 1, 4) || '-' ||\r\n '4' || substr(upper(hex(randomblob(2))), 2, 3) || '-' ||\r\n substr('89ab', 1 + (abs(random()) % 4), 1) || substr(upper(hex(randomblob(2))), 2, 3) || '-' ||\r\n substr(upper(hex(randomblob(6))), 1, 12) ";
}
}
}