@ -1,11 +1,19 @@
package customerform
import (
"appPlatform/models/modelAppPlatform"
"appPlatform/models/modelshr"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"encoding/json"
"errors"
"fmt"
"strconv"
"strings"
"time"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
/ *
@ -560,3 +568,786 @@ func (f *FormUnitInfo) GainMasterAndSunFormUnitNameKey() (mastNameKey map[string
// fmt.Printf("自定义表单结果值!tableName:%v---->%T\n", sunTypeAry, sunTypeAry)
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 03 - 26 13 : 46 : 27
@ 功能 : 获取数据库表字段
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) GainTableField ( c * gin . Context ) {
var requestData publicmethod . PublicId
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if requestData . Id == "" {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!" )
return
}
var customerFormMaster modelAppPlatform . CustomerFormView
err = customerFormMaster . GetCont ( map [ string ] interface { } { "`cfid`" : requestData . Id , "`status`" : 1 } , "`tablekey`" , "`table_structure`" , "`mastesform`" , "`mastesformjson`" )
if err != nil {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!" )
return
}
masterTable , err := GainFormTableField ( customerFormMaster . TableKey )
if err != nil {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!" )
return
}
sendTableList := publicmethod . MapOut [ string ] ( )
sendTableList [ "masterTable" ] = masterTable
if customerFormMaster . TableStructure != "" { //判断是否有主体子表单
var sunTable map [ string ] interface { }
err = json . Unmarshal ( [ ] byte ( customerFormMaster . TableStructure ) , & sunTable )
if err == nil {
sunTableMap := publicmethod . MapOut [ string ] ( )
for _ , v := range sunTable { //遍历子表单名称
if vStr , ok := v . ( string ) ; ok {
sunTableMap [ vStr ] , err = GainFormTableField ( vStr )
}
}
sendTableList [ "sunTable" ] = sunTableMap
}
}
publicmethod . Result ( 0 , sendTableList , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 03 - 20 15 : 0 9 : 59
@ 功能 : 获取表格字段
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) GainFormTableField ( c * gin . Context ) {
var requestData publicmethod . PublicId
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if requestData . Id == "" {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!" )
return
}
var customerFormMaster modelAppPlatform . CustomerFormView
err = customerFormMaster . GetCont ( map [ string ] interface { } { "`cfid`" : requestData . Id , "`status`" : 1 } , "`tablekey`" , "`table_structure`" , "`mastesform`" , "`mastesformjson`" )
if err != nil {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!" )
return
}
masterTable , err := GainFormTableField ( customerFormMaster . TableKey )
if err != nil {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!" )
return
}
var unitCont map [ string ] interface { }
json . Unmarshal ( [ ] byte ( customerFormMaster . MastesFormJson ) , & unitCont )
var formFieldAry FormJsonFieldInfo
if list , ok := unitCont [ "list" ] ; ok {
if listAry , ok := list . ( [ ] interface { } ) ; ok {
formFieldAry . AnalyzingFormJson ( "" , listAry )
}
}
sendTableList := publicmethod . MapOut [ string ] ( )
if len ( formFieldAry . MasterInfo ) > 0 {
sendTableList [ "masterTable" ] = TableFieldCompare ( masterTable , formFieldAry . MasterInfo )
} else {
sendTableList [ "masterTable" ] = masterTable
}
if customerFormMaster . TableStructure != "" { //判断是否有主体子表单
var sunTable map [ string ] interface { }
err = json . Unmarshal ( [ ] byte ( customerFormMaster . TableStructure ) , & sunTable )
if err == nil {
sunTableMap := publicmethod . MapOut [ string ] ( )
for _ , v := range sunTable { //遍历子表单名称
if vStr , ok := v . ( string ) ; ok {
sunField := GainSunFormTableField ( vStr , formFieldAry . SunFormInfo )
if len ( sunField ) > 0 {
sunTableForm , formErr := GainFormTableField ( vStr )
if formErr == nil {
sunTableMap [ vStr ] = TableFieldCompare ( sunTableForm , sunField )
} else {
sunTableMap [ vStr ] , _ = GainFormTableField ( vStr ) //获取表单字段
}
} else {
sunTableMap [ vStr ] , _ = GainFormTableField ( vStr ) //获取表单字段
}
}
}
sendTableList [ "sunTable" ] = sunTableMap
}
}
publicmethod . Result ( 0 , sendTableList , c )
}
// 获取子表表单数据
func GainSunFormTableField ( tableName string , SunFormInfo [ ] SunFormFieldInfoList ) ( fieldList [ ] FormFieldInfo ) {
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 03 - 25 0 9 : 01 : 12
@ 功能 : 表单数据对照
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func TableFieldCompare ( tableFieldList [ ] Result , jsonFieldList [ ] FormFieldInfo ) ( fieldList [ ] FormFieldInfo ) {
if len ( tableFieldList ) > 0 {
if len ( jsonFieldList ) > 0 {
var writeTableField [ ] string
for _ , tv := range tableFieldList {
for _ , jv := range jsonFieldList {
if tv . Field == jv . Id {
if ! publicmethod . IsInTrue [ string ] ( tv . Field , writeTableField ) {
writeTableField = append ( writeTableField , tv . Field )
}
var fieldInfo FormFieldInfo
fieldInfo . Id = jv . Id
if tv . Comment == "" {
fieldInfo . Label = jv . Label
} else {
fieldInfo . Label = tv . Comment
}
fieldInfo . Field = tv . Field //field"`
attFiled := strings . Split ( tv . Type , " " )
fmt . Printf ( "attFiled---->%v=========>%v\n" , tv . Type , attFiled )
if len ( attFiled ) > 0 {
fieldInfo . Types = attFiled [ 0 ]
}
if len ( attFiled ) >= 2 {
fieldInfo . Attribute = attFiled [ 1 ]
}
patternInfo := strings . Split ( tv . Type , "(" )
if len ( patternInfo ) >= 1 {
fieldInfo . Pattern = patternInfo [ 0 ]
}
fieldInfo . FieldClass = jv . FieldClass //fieldClass"`
fieldInfo . ActiveValue = jv . ActiveValue //activeValue"`
fieldInfo . InactiveValue = jv . InactiveValue //inactiveValue"`
fieldInfo . Options = jv . Options //options"`
fieldList = append ( fieldList , fieldInfo )
}
}
}
if len ( writeTableField ) > 0 {
for _ , tv := range tableFieldList {
if ! publicmethod . IsInTrue [ string ] ( tv . Field , writeTableField ) {
var fieldInfo FormFieldInfo
fieldInfo . Id = tv . Field
if tv . Comment == "" {
fieldInfo . Label = tv . Field
} else {
fieldInfo . Label = tv . Comment
}
fieldInfo . Field = tv . Field //field"`
attFiled := strings . Split ( tv . Type , " " )
if len ( attFiled ) > 0 {
fieldInfo . Types = attFiled [ 0 ]
}
if len ( attFiled ) >= 2 {
fieldInfo . Attribute = attFiled [ 1 ]
}
patternInfo := strings . Split ( tv . Type , "(" )
if len ( patternInfo ) >= 1 {
fieldInfo . Pattern = patternInfo [ 0 ]
}
fieldInfo . FieldClass = tv . Field //fieldClass"`
// fieldInfo.ActiveValue = v. //activeValue"`
// fieldInfo.InactiveValue = v. //inactiveValue"`
// fieldInfo.Options = v. //options"`
fieldList = append ( fieldList , fieldInfo )
}
}
for _ , jv := range jsonFieldList {
if ! publicmethod . IsInTrue [ string ] ( jv . Id , writeTableField ) {
fieldList = append ( fieldList , jv )
}
}
}
} else {
for _ , v := range tableFieldList {
var fieldInfo FormFieldInfo
fieldInfo . Id = v . Field
fieldInfo . Label = v . Comment
fieldInfo . Field = v . Field //field"`
attFiled := strings . Split ( v . Type , " " )
if len ( attFiled ) >= 2 {
fieldInfo . Attribute = attFiled [ 1 ]
fieldInfo . Types = attFiled [ 0 ]
}
patternInfo := strings . Split ( v . Type , "(" )
if len ( patternInfo ) >= 1 {
fieldInfo . Pattern = patternInfo [ 0 ]
}
// fieldInfo.FieldClass = v. //fieldClass"`
// fieldInfo.ActiveValue = v. //activeValue"`
// fieldInfo.InactiveValue = v. //inactiveValue"`
// fieldInfo.Options = v. //options"`
fieldList = append ( fieldList , fieldInfo )
}
}
} else {
fieldList = jsonFieldList
}
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 03 - 22 0 9 : 00 : 27
@ 功能 : 获取表单字段
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func GainFormTableField ( formTableName string ) ( fieldList [ ] Result , err error ) {
gormDb := overall . CONSTANT_DB_CustomerForm
sqlStr := fmt . Sprintf ( "SHOW FULL COLUMNS FROM `%v`" , formTableName )
err = gormDb . Raw ( sqlStr ) . Scan ( & fieldList ) . Error
if err != nil {
return
}
for i , v := range fieldList {
attFiled := strings . Split ( v . Type , " " )
if len ( attFiled ) >= 2 {
fieldList [ i ] . Attribute = attFiled [ 1 ]
fieldList [ i ] . Type = attFiled [ 0 ]
}
patternInfo := strings . Split ( v . Type , "(" )
if len ( patternInfo ) >= 1 {
fieldList [ i ] . Pattern = patternInfo [ 0 ]
}
}
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 03 - 23 15 : 15 : 17
@ 功能 : 解析表单字段
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( f * FormJsonFieldInfo ) AnalyzingFormJson ( tableName string , unitList [ ] interface { } ) {
if len ( unitList ) > 0 {
var fieldInfo [ ] FormFieldInfo
for _ , listVal := range unitList {
if listInfo , ok := listVal . ( map [ string ] interface { } ) ; ok {
if unitType , ok := listInfo [ "type" ] ; ok {
var unitInfo FormFieldInfo
if unitName , ok := listInfo [ "name" ] ; ok {
if unitNameStr , ok := unitName . ( string ) ; ok {
unitInfo . Id = unitNameStr
}
}
if itemVal , ok := listInfo [ "item" ] ; ok {
if itemInfo , ok := itemVal . ( map [ string ] interface { } ) ; ok {
if itemName , ok := itemInfo [ "label" ] ; ok {
if itemNameStr , ok := itemName . ( string ) ; ok {
unitInfo . Label = itemNameStr
}
}
}
}
switch unitType {
case "flex" , "table" :
if list , ok := listInfo [ "list" ] ; ok {
if listAry , ok := list . ( [ ] interface { } ) ; ok {
f . AnalyzingFormJson ( unitInfo . Id , listAry )
}
}
case "grid" , "tabs" :
if list , ok := listInfo [ "columns" ] ; ok {
if listAry , ok := list . ( [ ] interface { } ) ; ok {
for _ , colVal := range listAry {
if colList , ok := colVal . ( map [ string ] interface { } ) ; ok {
if listMap , ok := colList [ "list" ] ; ok {
if colListAry , ok := listMap . ( [ ] interface { } ) ; ok {
f . AnalyzingFormJson ( unitInfo . Id , colListAry )
}
}
}
}
}
}
case "card" , "div" :
case "title" , "txt" , "button" :
default :
if unitTypeStr , ok := unitType . ( string ) ; ok {
unitInfo . FieldClass = unitTypeStr
}
// fmt.Printf("unitList---->%T====>%v\n", listInfo["control"], listInfo["control"])
if controlVal , ok := listInfo [ "control" ] ; ok {
if controlMap , ok := controlVal . ( map [ string ] interface { } ) ; ok {
if activeVal , ok := controlMap [ "activeValue" ] ; ok {
if activeValStr , ok := activeVal . ( string ) ; ok {
unitInfo . ActiveValue = activeValStr
}
}
if InactiveVal , ok := controlMap [ "inactiveValue" ] ; ok {
if InactiveValStr , ok := InactiveVal . ( string ) ; ok {
unitInfo . InactiveValue = InactiveValStr
}
}
}
}
if optionsVal , ok := listInfo [ "options" ] ; ok {
if optionsMap , ok := optionsVal . ( [ ] interface { } ) ; ok {
for _ , optv := range optionsMap {
if optvMap , ok := optv . ( map [ string ] interface { } ) ; ok {
var optInfo OptionsInfo
fmt . Printf ( "optvMap---->%T====>%v\n" , optvMap [ "label" ] , optvMap [ "label" ] )
if labelVal , ok := optvMap [ "label" ] ; ok {
if labelValStr , ok := labelVal . ( string ) ; ok {
optInfo . Label = labelValStr
}
}
if valueVal , ok := optvMap [ "value" ] ; ok {
if valueValStr , ok := valueVal . ( string ) ; ok {
optInfo . Value = valueValStr
}
}
unitInfo . Options = append ( unitInfo . Options , optInfo )
}
}
}
}
fieldInfo = append ( fieldInfo , unitInfo )
}
}
}
}
if len ( fieldInfo ) > 0 {
if tableName != "" {
if len ( f . SunFormInfo ) > 0 {
isNewData := true
for i , v := range f . SunFormInfo {
if v . TableName == tableName {
f . SunFormInfo [ i ] . UbitInfo = append ( f . SunFormInfo [ i ] . UbitInfo , fieldInfo ... )
isNewData = false
}
}
if isNewData {
var sunFormInfo SunFormFieldInfoList
sunFormInfo . TableName = tableName
sunFormInfo . UbitInfo = fieldInfo
f . SunFormInfo = append ( f . SunFormInfo , sunFormInfo )
}
} else {
var sunFormInfo SunFormFieldInfoList
sunFormInfo . TableName = tableName
sunFormInfo . UbitInfo = fieldInfo
f . SunFormInfo = append ( f . SunFormInfo , sunFormInfo )
}
} else {
f . MasterInfo = append ( f . MasterInfo , fieldInfo ... )
}
}
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 03 - 29 16 : 43 : 17
@ 功能 : 编辑自定义表单列表数据
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) EditCustomerFormList ( c * gin . Context ) {
var requestData EditCustFormList
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if requestData . Id == "" {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!2" )
return
}
if requestData . Data == "" {
publicmethod . Result ( 1 , err , c , "未知列表数据!无法获取字段!1" )
return
}
var customerFormInfo modelAppPlatform . CustomerForm
err = customerFormInfo . GetCont ( map [ string ] interface { } { "`id`" : requestData . Id } , "`listjson`" )
if err != nil {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!3" )
return
}
editInfo := publicmethod . MapOut [ string ] ( )
editInfo [ "listjson" ] = requestData . Data
editInfo [ "edit_time" ] = time . Now ( ) . Unix ( )
err = customerFormInfo . EiteCont ( map [ string ] interface { } { "`id`" : requestData . Id } , editInfo )
if err != nil {
publicmethod . Result ( 1 , err , c , "编辑失败!请重新提交!" )
return
}
publicmethod . Result ( 0 , err , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 04 - 01 0 8 : 34 : 0 8
@ 功能 : 获取表单列表数据
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) GainFormListCont ( c * gin . Context ) {
var requestData publicmethod . PublicId
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if requestData . Id == "" {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!2" )
return
}
var customerFormInfo modelAppPlatform . CustomerForm
err = customerFormInfo . GetCont ( map [ string ] interface { } { "`id`" : requestData . Id } )
if err != nil {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!3" )
return
}
publicmethod . Result ( 0 , customerFormInfo , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 04 - 01 16 : 03 : 50
@ 功能 : 获取表单列表翻页数据
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) GainFormPageListCont ( c * gin . Context ) {
var requestData FormPageListAttr
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if requestData . FormId == "" {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!2" )
return
}
if requestData . Page == 0 {
requestData . Page = 1
}
if requestData . PageSize == 0 {
requestData . Page = 20
}
var formInfo modelAppPlatform . CustomerFormView
err = formInfo . GetCont ( map [ string ] interface { } { "`cfid`" : requestData . FormId , "`status`" : 1 } , "`tablekey`" , "`table_structure`" , "`mastesform`" , "`mastesformjson`" , "`listjson`" , "`flowIsOpen`" , "`flowkey`" )
if err != nil {
publicmethod . Result ( 1 , err , c , "未知表单!无法获取字段!" )
return
}
// why, err := AnalysisSerachTerm(requestData.SearchData)
// fmt.Printf("why---->%v\n", why)
var formList [ ] map [ string ] interface { }
gormDb := overall . CONSTANT_DB_CustomerForm . Table ( formInfo . TableKey )
// gormDb := overall.CONSTANT_DB_CustomerForm.Table(formInfo.TableKey).Where("`states` BETWEEN ? AND ?", 1, 2)
// if err == nil {
// gormDb = gormDb.Where(why)
// }
gormDb = AnalysisSerachTermSql ( requestData . SearchData , gormDb )
var total int64
totalErr := gormDb . Count ( & total ) . Error
if totalErr != nil {
total = 0
}
gormDb = publicmethod . PageTurningSettings ( gormDb , requestData . Page , requestData . PageSize )
err = gormDb . Order ( "`id` DESC" ) . Find ( & formList ) . Error
if err != nil && len ( formList ) < 1 {
publicmethod . Result ( 0 , err , c )
return
}
// for i, _ := range formList {
// // formList[i]["flowIsOpen"] = formInfo.FlowIsOpen
// formList[i]["flowkey"] = strconv.FormatInt(formInfo.Flowkey, 10)
// }
if formInfo . ListJson != "" {
var listFieldsMap ListPageFields
err = json . Unmarshal ( [ ] byte ( formInfo . ListJson ) , & listFieldsMap )
fmt . Printf ( "%T----------->%v----------->%v\n" , listFieldsMap , err , listFieldsMap )
if err == nil {
// fmt.Printf("%T----------->%v\n", listFieldsMap, listFieldsMap)
formList = listFieldsMap . DevelopSpecificationsSend ( formList )
// formList = DevelopSpecificationsSend(formList, listFieldsMap)
}
}
// publicmethod.Result(100, formList, c)
publicmethod . ResultList ( 0 , requestData . Page , requestData . PageSize , total , int64 ( len ( formList ) ) , formList , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 04 - 02 0 8 : 14 : 10
@ 功能 : 按照制定列表字段输出
* /
func ( l * ListPageFields ) DevelopSpecificationsSend ( listData [ ] map [ string ] interface { } ) [ ] map [ string ] interface { } {
var sendList [ ] map [ string ] interface { }
for _ , v := range listData {
sendInfo := publicmethod . MapOut [ string ] ( )
for mi , mv := range v {
fmt . Printf ( "%v = %v\n" , mi , mv )
switch mi {
case "creater" :
var myInfo modelshr . PersonArchives
myInfo . GetCont ( map [ string ] interface { } { "`key`" : mv } , "`name`" )
sendInfo [ mi ] = myInfo . Name
case "creater_time" :
timeInt , _ := publicmethod . StringToInt64 ( mv )
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeInt , 27 )
case "edit_time" :
timeInt , _ := publicmethod . StringToInt64 ( mv )
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeInt , 27 )
default :
sendInfo [ mi ] = l . BaseTableAttrField ( mi , mv )
// sendInfo[mi] = publicmethod.TypeToInterface(mv)
}
}
fmt . Printf ( "================================\n" )
sendList = append ( sendList , sendInfo )
}
return sendList
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 04 - 02 11 : 42 : 20
@ 功能 : 根据字段显示格式处理数据
* /
func ( l * ListPageFields ) BaseTableAttrField ( key string , val interface { } ) interface { } {
if len ( l . TableData . Columns ) < 0 {
return val
}
for _ , v := range l . TableData . Columns {
if v . Id == key {
switch v . FieldClass {
case "checkbox" :
if val != nil {
var checkboxStrAry [ ] interface { }
var checkboxAry [ ] string
if valStr , ok := val . ( string ) ; ok {
err := json . Unmarshal ( [ ] byte ( valStr ) , & checkboxStrAry )
if err == nil {
for _ , v := range checkboxStrAry {
checkboxAry = append ( checkboxAry , publicmethod . TypeToInterface ( v ) )
}
}
}
if len ( checkboxAry ) > 0 {
var jieGuo [ ] string
for _ , ov := range v . Options {
if publicmethod . IsInTrue [ string ] ( ov . Value , checkboxAry ) {
jieGuo = append ( jieGuo , ov . Label )
}
}
val = strings . Join ( jieGuo , "," )
}
}
case "orgCentent" :
var orgCont modelshr . AdministrativeOrganization
orgCont . GetCont ( map [ string ] interface { } { "`id`" : val } , "name" )
return orgCont . Name
case "baidumap" :
var mapAry [ ] string
if valStr , ok := val . ( string ) ; ok {
mapAry = strings . Split ( valStr , "|*@*|" )
}
if len ( mapAry ) > 0 {
return mapAry [ 0 ]
}
default :
return publicmethod . TypeToInterface ( val )
}
}
}
return publicmethod . TypeToInterface ( val )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 04 - 01 16 : 16 : 28
@ 功能 : 拆析查询条件
* /
func AnalysisSerachTerm ( why string ) ( whereMap map [ string ] interface { } , err error ) {
err = nil
if why == "" {
return
}
var listField [ ] SearchButtonInfo
err = json . Unmarshal ( [ ] byte ( why ) , & listField )
if err != nil {
return
}
whyMap := publicmethod . MapOut [ string ] ( )
for _ , v := range listField {
// fmt.Printf("%v: %v\n", v.Field, v.Values)
if v . Values != nil && v . Values != "" {
whyMap [ v . Field ] = v . Values
}
}
if len ( whyMap ) < 1 {
err = errors . New ( "没有要查询的内容!" )
return
}
whereMap = whyMap
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 04 - 02 13 : 26 : 45
@ 功能 : 查询条件
* /
func AnalysisSerachTermSql ( why string , gormDb * gorm . DB ) * gorm . DB {
if why == "" {
return gormDb
}
var listField [ ] SearchButtonInfo
err := json . Unmarshal ( [ ] byte ( why ) , & listField )
if err != nil {
return gormDb
}
for _ , v := range listField {
if v . Values != nil && v . Values != "" && v . Values != "" {
switch v . Pattern {
case "int" :
likeSql := fmt . Sprintf ( "`%v` = %v" , v . Field , v . Values )
gormDb = gormDb . Where ( likeSql )
case "bigint" :
likeSql := fmt . Sprintf ( "`%v` = %v" , v . Field , v . Values )
gormDb = gormDb . Where ( likeSql )
default :
likeSql := fmt . Sprintf ( "%v LIKE %v%v%v" , v . Field , "'%" , v . Values , "%'" )
gormDb = gormDb . Where ( likeSql )
}
}
}
return gormDb
}