feat: sql解析器替换、工单统一由‘我的流程’发起、流程定义支持自定义条件触发审批、资源隐藏编号、model支持物理删除等

This commit is contained in:
meilin.huang
2024-10-16 17:24:50 +08:00
parent 43edef412c
commit e135e4ce64
170 changed files with 397197 additions and 1251 deletions

View File

@@ -0,0 +1,76 @@
package sqlstmt
import "strings"
type QuoteChar struct {
StartDelimiter string
EndDelimiter string
}
/**
* Wrap value with quote character.
*
* @param value value to be wrapped
* @return wrapped value
*/
func (qc *QuoteChar) Wrap(value string) string {
return qc.StartDelimiter + value + qc.EndDelimiter
}
/**
* Unwrap value with quote character.
*
* @param value value to be unwrapped
* @return unwrapped value
*/
func (qc *QuoteChar) Unwrap(value string) string {
if qc.IsWrapped(value) {
return value[len(qc.StartDelimiter) : len(value)-len(qc.EndDelimiter)]
}
return value
}
/**
* Is wrapped by quote character.
*
* @param value value to be judged
* @return is wrapped or not
*/
func (qc *QuoteChar) IsWrapped(value string) bool {
return strings.HasPrefix(value, qc.StartDelimiter) && strings.HasSuffix(value, qc.EndDelimiter)
}
func NewQuoteChar(startDelimiter, endDelimiter string) *QuoteChar {
return &QuoteChar{
StartDelimiter: startDelimiter,
EndDelimiter: endDelimiter,
}
}
var (
BACK_QUOTE = NewQuoteChar("`", "`")
SINGLE_QUOTE = NewQuoteChar("'", "'")
QUOTE = NewQuoteChar("\"", "\"")
BRACKETS = NewQuoteChar("[", "]")
PARENTHESES = NewQuoteChar("(", ")")
NONE = NewQuoteChar("", "")
BY_FIRST_CHAR = map[string]*QuoteChar{
BACK_QUOTE.StartDelimiter: BACK_QUOTE,
SINGLE_QUOTE.StartDelimiter: SINGLE_QUOTE,
QUOTE.StartDelimiter: QUOTE,
BRACKETS.StartDelimiter: BRACKETS,
PARENTHESES.StartDelimiter: PARENTHESES,
}
)
func GetQuoteChar(value string) *QuoteChar {
if value == "" {
return NONE
}
if qc := BY_FIRST_CHAR[value[0:1]]; qc != nil {
return qc
} else {
return NONE
}
}