Browse Source

Merge branch 'dm' of http://8.136.199.33:3000/eta_server/eta_api into dm

kobe6258 3 weeks ago
parent
commit
edf5d378ef

+ 7 - 0
models/cloud_disk_resource.go

@@ -4,6 +4,7 @@ import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
+	"gorm.io/gorm"
 	"strings"
 	"time"
 )
@@ -124,6 +125,11 @@ type CloudDiskListItem struct {
 	ButtonAuth  *CloudDiskListButton `description:"按钮权限" gorm:"-"`
 }
 
+func (m *CloudDiskListItem) AfterFind(db *gorm.DB) (err error) {
+	m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
+	return
+}
+
 // CloudDiskListButton 云盘列表按钮权限
 type CloudDiskListButton struct {
 	RenameAuth bool `description:"重命名文件夹的权限"`
@@ -153,6 +159,7 @@ func GetCloudDiskMenuAndResourceList(menuCond, resourceCond string, menuPars, re
 	sql := fmt.Sprintf(base, menuCond, resourceCond, order)
 	pars := make([]interface{}, 0)
 	pars = append(pars, menuPars, resourcePars)
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 15 - 17
models/data_manage/chart_classify.go

@@ -10,23 +10,21 @@ import (
 )
 
 type ChartClassify struct {
-	ChartClassifyId       int       `orm:"column(chart_classify_id);pk" gorm:"primaryKey" `
-	ChartClassifyName     string    `description:"分类名称"`
-	ParentId              int       `description:"父级id"`
-	HasData               int       `description:"是否含有指标数据"`
-	CreateTime            time.Time `description:"创建时间"`
-	ModifyTime            time.Time `description:"修改时间"`
-	SysUserId             int       `description:"创建人id"`
-	SysUserRealName       string    `description:"创建人姓名"`
-	Level                 int       `description:"层级"`
-	UniqueCode            string    `description:"唯一编码"`
-	Sort                  int       `description:"排序字段,越小越靠前,默认值:10"`
-	Source                int       `description:"1:ETA图库;2:商品价格曲线"`
-	IsJoinPermission      int       `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
-	ChartClassifyNameEn   string    `description:"英文分类名称"`
-	RootId                int       `description:"顶级ID"`
-	ChartClassifyNamePath string    `description:"分类名称的完整路径,格式为:父级分类名称|当前分类名称"`
-	ChartClassifyIdPath   string    `description:"分类的完整路径,格式为:父级ID,当前ID"`
+	ChartClassifyId     int       `orm:"column(chart_classify_id);pk" gorm:"primaryKey" `
+	ChartClassifyName   string    `description:"分类名称"`
+	ParentId            int       `description:"父级id"`
+	HasData             int       `description:"是否含有指标数据"`
+	CreateTime          time.Time `description:"创建时间"`
+	ModifyTime          time.Time `description:"修改时间"`
+	SysUserId           int       `description:"创建人id"`
+	SysUserRealName     string    `description:"创建人姓名"`
+	Level               int       `description:"层级"`
+	UniqueCode          string    `description:"唯一编码"`
+	Sort                int       `description:"排序字段,越小越靠前,默认值:10"`
+	Source              int       `description:"1:ETA图库;2:商品价格曲线"`
+	IsJoinPermission    int       `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	ChartClassifyNameEn string    `description:"英文分类名称"`
+	RootId              int       `description:"顶级ID"`
 }
 
 func AddChartClassify(item *ChartClassify) (lastId int64, err error) {

+ 3 - 3
models/data_manage/chart_info.go

@@ -1711,10 +1711,10 @@ type BalanceSeasonChartLegendPreviewResp struct {
 
 // 判断图表指标是否已经存在
 func ChartInfoExist(condition, edbInfoIdStr string) (count int, err error) {
-	sql := `SELECT COUNT(1) AS count FROM (
-		SELECT GROUP_CONCAT(edb_info_id ORDER BY edb_info_id ASC  SEPARATOR ',') AS edb_info_id_str 
+	sql := fmt.Sprintf(`SELECT COUNT(1) AS count FROM (
+		SELECT %s AS edb_info_id_str 
 		 FROM chart_edb_mapping AS a
-         WHERE 1=1`
+         WHERE 1=1`, utils.GroupUnitFunc(utils.DbDriverName, "edb_info_id", ",", true, "edb_info_id", "ASC", false))
 	if condition != "" {
 		sql += condition
 	}

+ 0 - 2
models/data_manage/chart_theme/chart_theme_default_data.go

@@ -58,7 +58,6 @@ func (m *ChartThemeDefaultData) Update(cols []string) (err error) {
 // @return err error
 func GetChartThemeDefaultDataItemList(endInfoId int, startDate string) (list []*data_manage.EdbDataList, err error) {
 	sql := `SELECT edb_data_id,edb_info_id,data_time,value,data_timestamp FROM chart_theme_default_data WHERE edb_info_id=? `
-	sql = utils.ReplaceDriverKeywords("", sql)
 	var pars []interface{}
 	if startDate != "" {
 		sql += ` AND data_time>=? `
@@ -67,7 +66,6 @@ func GetChartThemeDefaultDataItemList(endInfoId int, startDate string) (list []*
 
 	sql += ` ORDER BY data_time ASC `
 	sql = utils.ReplaceDriverKeywords("", sql)
-
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, utils.ForwardPars(pars, endInfoId)...).Find(&list).Error
 	return
 }

+ 19 - 0
models/data_manage/future_good/future_good_edb_info.go

@@ -4,6 +4,7 @@ import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"github.com/beego/beego/v2/client/orm"
+	"gorm.io/gorm"
 	"time"
 )
 
@@ -32,11 +33,29 @@ type FutureGoodEdbInfo struct {
 	ModifyTime          time.Time
 }
 
+func (m *FutureGoodEdbInfo) AfterFind(db *gorm.DB) (err error) {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	return
+}
+
+func (m *FutureGoodEdbInfo) ConvertTimeStr() {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	return
+}
+
 // GetFutureGoodEdbInfo 期货指标
 func GetFutureGoodEdbInfo(edbInfoId int) (item *FutureGoodEdbInfo, err error) {
 	sql := `SELECT * FROM future_good_edb_info WHERE future_good_edb_info_id = ? `
 	sql += ` ORDER BY future_good_edb_info_id DESC `
 	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).First(&item).Error
+	if err != nil {
+		return
+	}
+	if item != nil {
+		item.ConvertTimeStr()
+	}
 	return
 }
 

+ 10 - 10
models/data_manage/my_chart.go

@@ -491,12 +491,12 @@ func GetMyChartListByAdminId(adminId int) (item []*MyChartView, err error) {
 
 func GetMyChartSearchByCondition(condition string, pars []interface{}) (item []*MyChartList, err error) {
 	o := global.DbMap[utils.DbNameIndex]
-	sql := ` SELECT a.my_chart_id,c.sort,b.*,GROUP_CONCAT(DISTINCT d.my_chart_classify_name) AS my_chart_classify_name,GROUP_CONCAT(DISTINCT d.my_chart_classify_id) AS my_chart_classify_id
+	sql := fmt.Sprintf(` SELECT a.my_chart_id,c.sort,b.*,%s AS my_chart_classify_name,%s AS my_chart_classify_id
 			FROM  my_chart AS a
 			INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
 			INNER JOIN my_chart_classify_mapping AS c ON a.my_chart_id=c.my_chart_id
 			INNER JOIN my_chart_classify AS d ON c.my_chart_classify_id=d.my_chart_classify_id
-			WHERE 1=1 `
+			WHERE 1=1 `, utils.GroupUnitFunc(utils.DbDriverName, "d.my_chart_classify_name", ",", false, "", "", true), utils.GroupUnitFunc(utils.DbDriverName, "d.my_chart_classify_id", ",", false, "", "", true))
 
 	if condition != "" {
 		sql += condition
@@ -549,11 +549,11 @@ func GetMyChartSort(adminId, myChartClassifyId, sort int) (item *MyChartClassify
 func GetMyChartByCondition(condition string, pars []interface{}) (item []*MyChartView, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	//sql := ` SELECT * FROM my_chart WHERE 1=1 `
-	sql := `SELECT a.*,GROUP_CONCAT(c.my_chart_classify_id SEPARATOR ',') AS my_chart_classify_id FROM my_chart AS a
+	sql := fmt.Sprintf(`SELECT a.*,%s AS my_chart_classify_id FROM my_chart AS a
 			LEFT JOIN  my_chart_classify_mapping AS b ON a.my_chart_id=b.my_chart_id AND a.admin_id=b.admin_id
 			LEFT JOIN my_chart_classify AS c ON b.my_chart_classify_id=c.my_chart_classify_id AND b.admin_id=c.admin_id
 			WHERE 1=1 
-			`
+			`, utils.GroupUnitFunc(utils.DbDriverName, "c.my_chart_classify_id", ",", false, "", "", false))
 	if condition != "" {
 		sql += condition
 	}
@@ -879,12 +879,12 @@ func AddMyChartToMyChartClassify(adminId, myChartId int, myChartClassifyId []int
 // GetMyChartListGroupByCharyInfoIdAndAdminIdByCondition 获取MY ETA 图表数据,根据图表id和操作员id
 func GetMyChartListGroupByCharyInfoIdAndAdminIdByCondition(condition string, pars []interface{}) (item []*MyChartList, err error) {
 	o := global.DbMap[utils.DbNameIndex]
-	sql := ` SELECT a.admin_id,a.my_chart_id,c.sort,b.*,GROUP_CONCAT(DISTINCT d.my_chart_classify_name) AS my_chart_classify_name,GROUP_CONCAT(DISTINCT d.my_chart_classify_id) AS my_chart_classify_id
+	sql := fmt.Sprintf(` SELECT a.admin_id,a.my_chart_id,c.sort,b.*,%s AS my_chart_classify_name,%s AS my_chart_classify_id
 			FROM  my_chart AS a
 			INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
 			INNER JOIN my_chart_classify_mapping AS c ON a.my_chart_id=c.my_chart_id
 			INNER JOIN my_chart_classify AS d ON c.my_chart_classify_id=d.my_chart_classify_id
-			WHERE 1=1 `
+			WHERE 1=1 `, utils.GroupUnitFunc(utils.DbDriverName, "d.my_chart_classify_name", ",", false, "", "", true), utils.GroupUnitFunc(utils.DbDriverName, "d.my_chart_classify_id", ",", false, "", "", true))
 
 	if condition != "" {
 		sql += condition
@@ -1002,7 +1002,7 @@ func GetMyChartClassifyIdAndNum(cond string, pars []interface{}) (items []*MyCha
 
 func GetChartClassifyByIds(chartClassifyIds []string) (chart_classify_ids string, err error) {
 	o := global.DbMap[utils.DbNameIndex]
-	sql := `SELECT GROUP_CONCAT(DISTINCT t.chart_classify_id) AS chart_classify_ids
+	sql := fmt.Sprintf(`SELECT %s AS chart_classify_ids
 FROM (
     SELECT chart_classify_id
     FROM chart_classify
@@ -1013,19 +1013,19 @@ FROM (
         FROM chart_classify
         WHERE parent_id IN (` + utils.GetOrmInReplace(len(chartClassifyIds)) + `)
     )
-) AS t;`
+) AS t;`, utils.GroupUnitFunc(utils.DbDriverName, "chart_classify_id", ",", false, "", "", true))
 	err = o.Raw(sql, chartClassifyIds, chartClassifyIds, chartClassifyIds).Scan(&chart_classify_ids).Error
 	return
 }
 
 func GetChartClassifyByIdsNoSubClassify(chartClassifyIds []string) (chart_classify_ids string, err error) {
 	o := global.DbMap[utils.DbNameIndex]
-	sql := `SELECT GROUP_CONCAT(DISTINCT t.chart_classify_id) AS chart_classify_ids
+	sql := fmt.Sprintf(`SELECT %s AS chart_classify_ids
 FROM (
     SELECT chart_classify_id
     FROM chart_classify
     WHERE chart_classify_id IN (` + utils.GetOrmInReplace(len(chartClassifyIds)) + `)
-) AS t;`
+) AS t;`, utils.GroupUnitFunc(utils.DbDriverName, "chart_classify_id", ",", false, "", "", true))
 	err = o.Raw(sql, chartClassifyIds).Scan(&chart_classify_ids).Error
 	return
 }

+ 2 - 1
models/permission.go

@@ -120,7 +120,8 @@ type ChartPermissionSearchKeyWordMappingAndPermissionName struct {
 func GetPermissionByClassifyId(classifyId int) (items []*ChartPermissionSearchKeyWordMappingAndPermissionName, err error) {
 	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.chart_permission_name,a.permission_name,b.chart_permission_id,b.key_word,b.classify_id FROM chart_permission AS a 
- join chart_permission_search_key_word_mapping AS b ON a.chart_permission_id=b.chart_permission_id WHERE b.from='rddp' AND b.classify_id = ? `
+ join chart_permission_search_key_word_mapping AS b ON a.chart_permission_id=b.chart_permission_id WHERE b.from ='rddp' AND b.classify_id = ? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, classifyId).Find(&items).Error
 	return
 }

+ 5 - 3
models/roadshow/calendar.go

@@ -21,23 +21,25 @@ type ResearcherGroup struct {
 
 func GetResearcherGroup() (list []*ResearcherGroup, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := ` SELECT group_id,group_name FROM "admin" AS a
+	sql := ` SELECT group_id,group_name FROM admin AS a
 			WHERE a.role_type_code IN('researcher','ficc_researcher','ficc_admin')
 			AND a.enabled=1
 			AND a.group_id>0
 			AND a.group_name<>'无'
 			GROUP BY a.group_id 
             ORDER BY a.group_id ASC `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
 func GetResearcher() (list []*Researcher, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	//sql := ` SELECT * FROM "admin" AS a
+	//sql := ` SELECT * FROM admin AS a
 	//		WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')
 	//		AND a.enabled=1 AND a.real_name<>'于菲' `
-	sql := ` SELECT * FROM "admin" AS a WHERE a.enabled=1 `
+	sql := ` SELECT * FROM admin AS a WHERE a.enabled=1 `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql).Find(&list).Error
 	return
 }

+ 6 - 4
models/system/research_group.go

@@ -3,6 +3,7 @@ package system
 import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
+	"fmt"
 	"time"
 )
 
@@ -70,11 +71,12 @@ func GetResearchGroupRelationList(include int) (list []*ResearchGroupRelationIte
 				b.real_name AS admin_name
 			FROM
 				research_group_relation AS a
-			INNER JOIN "admin" AS b ON a.admin_id = b.admin_id `
+			INNER JOIN admin AS b ON a.admin_id = b.admin_id `
 	sql += condition
 	sql += ` ORDER BY
 				a.research_group_id ASC,
 				a.admin_id ASC`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql).Find(&list).Error
 	return
 }
@@ -113,16 +115,16 @@ func GetAdminResearchGroupListByAdminId(adminIds []int) (list []*AdminResearchGr
 		return
 	}
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT
+	sql := fmt.Sprintf(`SELECT
 				a.admin_id,
-				GROUP_CONCAT(b.research_group_name) AS group_name_str
+				%s AS group_name_str
 			FROM
 				research_group_relation AS a
 			INNER JOIN research_group AS b ON a.research_group_id = b.research_group_id
 			WHERE
 				a.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `)
 			GROUP BY
-				a.admin_id`
+				a.admin_id`, utils.GroupUnitFunc(utils.DbDriverName, "b.research_group_name", ",", false, "", "", false))
 	err = o.Raw(sql, adminIds).Find(&list).Error
 	return
 }

+ 34 - 17
models/system/sys_admin.go

@@ -51,18 +51,20 @@ func GetAdminItemByIdList(adminId []int) (items []*AdminItem, err error) {
 		return
 	}
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE admin_id IN (` + utils.GetOrmInReplace(len(adminId)) + `) ORDER BY created_time DESC`
+	sql := `SELECT * FROM admin WHERE admin_id IN (` + utils.GetOrmInReplace(len(adminId)) + `) ORDER BY created_time DESC`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, adminId).Find(&items).Error
 	return
 }
 
 func GetSysuserList(condition string, pars []interface{}, startSize, pageSize int) (items []*AdminItem, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE 1=1 `
+	sql := `SELECT * FROM admin WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY enabled DESC, last_updated_time DESC, created_time DESC LIMIT ?,?`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	pars = append(pars, startSize, pageSize)
 	err = o.Raw(sql, pars...).Find(&items).Error
 	return
@@ -70,10 +72,11 @@ func GetSysuserList(condition string, pars []interface{}, startSize, pageSize in
 
 func GetSysuserListCount(condition string, pars []interface{}) (count int, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT COUNT(1) AS count FROM "admin" WHERE 1=1 `
+	sql := `SELECT COUNT(1) AS count FROM admin WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
@@ -135,21 +138,24 @@ type SysuserAddReq struct {
 }
 
 func GetSysAdminCount(adminName string) (count int, err error) {
-	sql := `SELECT COUNT(1) AS count FROM "admin" WHERE admin_name=? `
+	sql := `SELECT COUNT(1) AS count FROM admin WHERE admin_name=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, adminName).Scan(&count).Error
 	return
 }
 
 func GetSysAdminByName(adminName string) (item *Admin, err error) {
-	sql := `SELECT * FROM "admin" WHERE admin_name=? `
+	sql := `SELECT * FROM admin WHERE admin_name=? `
 	o := global.DbMap[utils.DbNameMaster]
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, adminName).First(&item).Error
 	return
 }
 
 func GetSysAdminById(adminId int) (item *Admin, err error) {
-	sql := `SELECT * FROM "admin" WHERE admin_id=? `
+	sql := `SELECT * FROM admin WHERE admin_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, adminId).First(&item).Error
 	return
@@ -224,18 +230,20 @@ type SysuserDeleteReq struct {
 }
 
 func DeleteSysuser(adminId int) (err error) {
-	sql := `DELETE FROM "admin" WHERE admin_id=? `
+	sql := `DELETE FROM admin WHERE admin_id=? `
 	o := global.DbMap[utils.DbNameMaster]
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Exec(sql, adminId).Error
 	return
 }
 
 // GetSysAdminCountByMobile 查询系统中是否存在该手机号(如果有传入用户id,那么排除该用户)
 func GetSysAdminCountByMobile(mobile string, adminId int) (count int, err error) {
-	sql := `SELECT COUNT(1) AS count FROM "admin" WHERE mobile=? `
+	sql := `SELECT COUNT(1) AS count FROM admin WHERE mobile=? `
 	if adminId > 0 {
 		sql += ` AND admin_id != ` + fmt.Sprint(adminId)
 	}
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, mobile).Scan(&count).Error
 	return
@@ -243,11 +251,12 @@ func GetSysAdminCountByMobile(mobile string, adminId int) (count int, err error)
 
 func GetSysUserItems(condition string, pars []interface{}) (items []*AdminItem, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE 1=1 `
+	sql := `SELECT * FROM admin WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY last_updated_time DESC `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
@@ -255,7 +264,8 @@ func GetSysUserItems(condition string, pars []interface{}) (items []*AdminItem,
 // GetGroupSysUserList 根据分组id获取系统用户列表
 func GetGroupSysUserList(groupId int) (items []*AdminItem, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE group_id=? ORDER BY created_time DESC `
+	sql := `SELECT * FROM admin WHERE group_id=? ORDER BY created_time DESC `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, groupId).Find(&items).Error
 	return
 }
@@ -263,11 +273,12 @@ func GetGroupSysUserList(groupId int) (items []*AdminItem, err error) {
 // GetDepartmentGroupSysUserList 根据部门id和分组id获取系统用户列表
 func GetDepartmentGroupSysUserList(departmentId, groupId int, roleTypeCodes string) (items []*AdminItem, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE department_id = ? and group_id=? and enabled=1 `
+	sql := `SELECT * FROM admin WHERE department_id = ? and group_id=? and enabled=1 `
 	if roleTypeCodes != "" {
 		sql += ` and role_type_code in (` + roleTypeCodes + `) `
 	}
 	sql += ` ORDER BY created_time asc `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, departmentId, groupId).Find(&items).Error
 	return
 }
@@ -275,7 +286,7 @@ func GetDepartmentGroupSysUserList(departmentId, groupId int, roleTypeCodes stri
 // GetGrooupsysUserList 根据大组id和小组id获取系统用户列表
 func GetGrooupsysUserList(groupId int, roleTypeCodes string, enabled int) (items []*AdminItem, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE group_id = ? `
+	sql := `SELECT * FROM admin WHERE group_id = ? `
 	if roleTypeCodes != "" {
 		sql += ` and role_type_code in (` + roleTypeCodes + `) `
 	}
@@ -283,6 +294,7 @@ func GetGrooupsysUserList(groupId int, roleTypeCodes string, enabled int) (items
 		sql += fmt.Sprint(` AND enabled=`, enabled, ` `)
 	}
 	sql += ` ORDER BY created_time asc `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, groupId).Find(&items).Error
 	return
 }
@@ -292,7 +304,8 @@ func GetSysAdminByIdSlice(adminIdList []string) (items []*Admin, err error) {
 	if len(adminIdList) <= 0 {
 		return
 	}
-	sql := `SELECT * FROM "admin" WHERE admin_id in (` + strings.Join(adminIdList, ",") + `) `
+	sql := `SELECT * FROM admin WHERE admin_id in (` + strings.Join(adminIdList, ",") + `) `
+	sql = utils.ReplaceDriverKeywords("", sql)	
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql).Find(&items).Error
 	return
@@ -301,11 +314,12 @@ func GetSysAdminByIdSlice(adminIdList []string) (items []*Admin, err error) {
 // GetTeamSysUserList 根据小组id获取系统用户列表
 func GetTeamSysUserList(teamId, enabled int) (items []*AdminItem, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE group_id=? `
+	sql := `SELECT * FROM admin WHERE group_id=? `
 	if enabled >= 0 {
 		sql += fmt.Sprint(` AND enabled=`, enabled, ` `)
 	}
 	sql += ` ORDER BY created_time DESC `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, teamId).Find(&items).Error
 	return
 }
@@ -319,7 +333,8 @@ func GetGroupIdByParentId(groupId int) (items []*string, err error) {
 
 func GetAdminByGroupId(groupId int) (items []*AdminItem, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := `SELECT * FROM "admin" WHERE group_id=? ORDER BY created_time DESC`
+	sql := `SELECT * FROM admin WHERE group_id=? ORDER BY created_time DESC`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, groupId).Find(&items).Error
 	return
 }
@@ -384,7 +399,8 @@ func GetSysAdminList(condition string, pars []interface{}, fieldArr []string, or
 	if orderRule != "" {
 		order = orderRule
 	}
-	sql := fmt.Sprintf(`SELECT %s FROM "admin" WHERE 1=1 %s ORDER BY %s`, fields, condition, order)
+	sql := fmt.Sprintf(`SELECT %s FROM admin WHERE 1=1 %s ORDER BY %s`, fields, condition, order)
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, pars...).Find(&items).Error
 	return
@@ -402,7 +418,8 @@ func GetSysAdminByIdList(adminIdList []int) (items []*Admin, err error) {
 	if num <= 0 {
 		return
 	}
-	sql := `SELECT * FROM "admin" WHERE admin_id in (` + utils.GetOrmInReplace(num) + `) `
+	sql := `SELECT * FROM admin WHERE admin_id in (` + utils.GetOrmInReplace(num) + `) `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, adminIdList).Find(&items).Error
 	return

+ 2 - 1
models/system/sys_department.go

@@ -68,7 +68,8 @@ func ModifySysDepartment(departmentName string, departmentId int) (err error) {
 	if err != nil {
 		return
 	}
-	sql = `UPDATE "admin" SET department_name=? WHERE department_id=? `
+	sql = `UPDATE admin SET department_name=? WHERE department_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = to.Exec(sql, departmentName, departmentId).Error
 	return
 }

+ 4 - 2
models/system/sys_group.go

@@ -68,7 +68,8 @@ func ModifySysGroup(groupName string, groupId int) (err error) {
 	}()
 	sql := `UPDATE sys_group SET group_name=? WHERE group_id=? `
 	err = to.Exec(sql, groupName, groupId).Error
-	sql = `UPDATE "admin" SET group_name=? WHERE group_id=? `
+	sql = `UPDATE admin SET group_name=? WHERE group_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = to.Exec(sql, groupName, groupId).Error
 	return
 }
@@ -111,7 +112,8 @@ func GetSysGroupListByDepartmentId(departmentId int) (items []*SysGroupList, err
 }
 
 func ClearSysUserGroup(groupId int) (err error) {
-	sql := `UPDATE "admin" SET group_id=0,group_name='' WHERE group_id=? `
+	sql := `UPDATE admin SET group_id=0,group_name='' WHERE group_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Exec(sql, groupId).Error
 	return

+ 12 - 6
models/system/sys_role_admin.go

@@ -68,12 +68,13 @@ func GetRoleAdminList(condition string, pars []interface{}, startSize, pageSize
 	a.group_name
 FROM
 	sys_role_admin s
-	INNER JOIN "admin" a ON s.admin_id = a.admin_id 
+	INNER JOIN admin a ON s.admin_id = a.admin_id 
 where 1=1`
 	if condition != "" {
 		sql += condition
 	}
 	sql += ` ORDER BY s.id DESC limit ?, ?`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	pars = append(pars, startSize, pageSize)
 	err = global.DbMap[utils.DbNameMaster].Raw(sql, pars...).Find(&list).Error
 	return
@@ -85,11 +86,12 @@ func GetRoleAdminListTotal(condition string, pars []interface{}) (total int64, e
 	count(*)
 FROM
 	sys_role_admin s
-	INNER JOIN "admin" a ON s.admin_id = a.admin_id 
+	INNER JOIN admin a ON s.admin_id = a.admin_id 
 where 1=1`
 	if condition != "" {
 		sql += condition
 	}
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = global.DbMap[utils.DbNameMaster].Raw(sql, pars...).Scan(&total).Error
 	return
 }
@@ -100,8 +102,9 @@ func CheckRoleAdminByAdminIds(adminIds string, roleId int) (list []*SysRoleAdmin
 	s.*
 FROM
 	sys_role_admin s
-	LEFT JOIN "admin" a ON s.admin_id = a.admin_id 
+	LEFT JOIN admin a ON s.admin_id = a.admin_id 
 where s.role_id=? and s.admin_id in (` + adminIds + `)`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = global.DbMap[utils.DbNameMaster].Raw(sql, roleId).Find(&list).Error
 	return
 }
@@ -152,9 +155,10 @@ func GetEnglishAuthRoleAdminList(condition string, pars []interface{}, startSize
 			FROM
 				sys_role_admin AS s
 			JOIN sys_role AS r ON s.role_id = r.role_id
-			JOIN "admin" AS a ON s.admin_id = a.admin_id
+			JOIN admin AS a ON s.admin_id = a.admin_id
 			WHERE
 				1 = 1 `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	sql += condition
 	sql += ` GROUP BY s.admin_id `
 
@@ -191,11 +195,12 @@ func CheckEnglishAuthRoleAdminByAdminIds(adminIds []int, roleCodes []string) (li
 			FROM
 				sys_role_admin AS s
 			JOIN sys_role AS r ON s.role_id = r.role_id
-			JOIN "admin" AS a ON s.admin_id = a.admin_id
+			JOIN admin AS a ON s.admin_id = a.admin_id
 			WHERE
 				s.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `) AND r.role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)
 			GROUP BY
 				s.admin_id`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, adminIds, roleCodes).Find(&list).Error
 	return
 }
@@ -217,9 +222,10 @@ func GetAdminEnglishAuthRoleDetail(adminId int, roleCodes []string) (list []*Eng
 			FROM
 				sys_role_admin AS s
 			JOIN sys_role AS r ON s.role_id = r.role_id
-			JOIN "admin" AS a ON s.admin_id = a.admin_id
+			JOIN admin AS a ON s.admin_id = a.admin_id
 			WHERE
 				s.admin_id = ? AND r.role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, adminId, roleCodes).Find(&list).Error
 	return
 }

+ 4 - 2
models/system/sys_team.go

@@ -51,7 +51,8 @@ func ModifySysTeam(teamName string, teamId int) (err error) {
 	}()
 	sql := `UPDATE sys_group SET group_name=? WHERE group_id=? `
 	err = to.Exec(sql, teamName, teamId).Error
-	sql = `UPDATE "admin" SET group_name=? WHERE group_id=? `
+	sql = `UPDATE admin SET group_name=? WHERE group_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = to.Exec(sql, teamName, teamId).Error
 	return
 }
@@ -75,7 +76,8 @@ func GetSysTeamByDepartmentId(groupId int) (items []*SysTeamList, err error) {
 }
 
 func ClearSysUserTeam(groupId int) (err error) {
-	sql := `UPDATE "admin" SET group_id=0,group_name='' WHERE group_id=? `
+	sql := `UPDATE admin SET group_id=0,group_name='' WHERE group_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Exec(sql, groupId).Error
 	return

+ 20 - 10
models/system/sys_user.go

@@ -74,22 +74,25 @@ func (item *Admin) Update(cols []string) (err error) {
 }
 
 func CheckSysUser(userName, password string) (item *Admin, err error) {
-	sql := ` SELECT a.*,b.role_type_code FROM "admin" AS a
+	sql := ` SELECT a.*,b.role_type_code FROM admin AS a
 			 INNER JOIN sys_role AS b ON a.role_id=b.role_id WHERE a.admin_name=? AND a.password=? LIMIT 1`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, userName, password).First(&item).Error
 	return
 }
 
 func GetSysUserById(sysUserId int) (item *Admin, err error) {
-	sql := `SELECT * FROM "admin" WHERE admin_id=?`
+	sql := `SELECT * FROM admin WHERE admin_id=?`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, sysUserId).First(&item).Error
 	return
 }
 
 func ModifyPwd(sysUserId int, newPwd string) (err error) {
-	sql := `UPDATE "admin" SET password=?,last_updated_time=NOW() WHERE admin_id=? `
+	sql := `UPDATE admin SET password=?,last_updated_time=NOW() WHERE admin_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Exec(sql, newPwd, sysUserId).Error
 	return
@@ -114,7 +117,8 @@ func GetAdminListByIdList(idList []int) (items []*Admin, err error) {
 	if lenNum <= 0 {
 		return
 	}
-	sql := `SELECT * FROM "admin" WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) and enabled=1 `
+	sql := `SELECT * FROM admin WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) and enabled=1 `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, idList).Find(&items).Error
 	return
@@ -126,7 +130,8 @@ func GetAdminListByIdListWithoutEnable(idList []int) (items []*Admin, err error)
 	if lenNum <= 0 {
 		return
 	}
-	sql := `SELECT * FROM "admin" WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) `
+	sql := `SELECT * FROM admin WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DbMap[utils.DbNameMaster]
 	err = o.Raw(sql, idList).Find(&items).Error
 	return
@@ -134,7 +139,8 @@ func GetAdminListByIdListWithoutEnable(idList []int) (items []*Admin, err error)
 
 func (item *Admin) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
 	o := global.DbMap[utils.DbNameMaster]
-	sql := fmt.Sprintf(`SELECT COUNT(1) FROM "admin" WHERE 1=1 %s`, condition)
+	sql := fmt.Sprintf(`SELECT COUNT(1) FROM admin WHERE 1=1 %s`, condition)
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
@@ -149,7 +155,8 @@ func (item *Admin) GetItemsByCondition(condition string, pars []interface{}, fie
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
-	sql := fmt.Sprintf(`SELECT %s FROM "admin" WHERE 1=1 %s %s`, fields, condition, order)
+	sql := fmt.Sprintf(`SELECT %s FROM admin WHERE 1=1 %s %s`, fields, condition, order)
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
@@ -160,11 +167,12 @@ func GetSysUserByMobile(mobile string) (item *Admin, err error) {
 	sql := `SELECT
 				a.*, b.role_type_code
 			FROM
-				"admin" AS a
+				admin AS a
 			INNER JOIN sys_role AS b ON a.role_id = b.role_id
 			WHERE
 				a.mobile = ?
 			LIMIT 1`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, mobile).First(&item).Error
 	return
 }
@@ -175,11 +183,12 @@ func GetSysUserByEmail(email string) (item *Admin, err error) {
 	sql := `SELECT
 				a.*, b.role_type_code
 			FROM
-				"admin" AS a
+				admin AS a
 			INNER JOIN sys_role AS b ON a.role_id = b.role_id
 			WHERE
 				a.email = ?
 			LIMIT 1`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, email).First(&item).Error
 	return
 }
@@ -190,11 +199,12 @@ func GetSysUserByAdminName(adminName string) (item *Admin, err error) {
 	sql := `SELECT
 				a.*, b.role_type_code
 			FROM
-				"admin" AS a
+				admin AS a
 			INNER JOIN sys_role AS b ON a.role_id = b.role_id
 			WHERE
 				a.admin_name = ?
 			LIMIT 1`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, adminName).First(&item).Error
 	return
 }

+ 4 - 2
models/target.go

@@ -702,8 +702,9 @@ type ResearcherListResp struct {
 }
 
 func GetResearcherEntry() (items []*Researcher, err error) {
-	sql := ` SELECT admin_id,admin_name,real_name,mobile,0 as target_count FROM "admin" WHERE role_type=1 `
+	sql := ` SELECT admin_id,admin_name,real_name,mobile,0 as target_count FROM admin WHERE role_type=1 `
 	o := global.DEFAULT_DB
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql).Find(&items).Error
 	researchLen := len(items)
 	edbO := global.DbMap[utils.DbNameManualIndex]
@@ -728,10 +729,11 @@ func GetResearcherEntry() (items []*Researcher, err error) {
 }
 
 func GetResearcherEntryByMobile(mobile string) (items []*Researcher, err error) {
-	sql := ` SELECT admin_id,admin_name,real_name,mobile,0 as target_count FROM "admin" WHERE  role_type=1 `
+	sql := ` SELECT admin_id,admin_name,real_name,mobile,0 as target_count FROM admin WHERE  role_type=1 `
 	if mobile != "" {
 		sql += ` AND mobile IN(` + mobile + `)`
 	}
+	sql = utils.ReplaceDriverKeywords("", sql)
 	o := global.DEFAULT_DB
 	err = o.Raw(sql).Find(&items).Error
 	researchLen := len(items)

+ 2 - 1
models/variety_tag.go

@@ -131,11 +131,12 @@ func GetResearchVarietyTagRelationList(include int) (list []*ResearchVarietyTagR
 				b.real_name AS admin_name
 			FROM
 				research_variety_tag_relation AS a
-			INNER JOIN "admin" AS b ON a.admin_id = b.admin_id `
+			INNER JOIN admin AS b ON a.admin_id = b.admin_id `
 	sql += condition
 	sql += ` ORDER BY
 				a.variety_tag_id ASC,
 				a.admin_id ASC`
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql).Find(&list).Error
 	return
 }

+ 8 - 1
utils/common.go

@@ -2896,7 +2896,10 @@ func GormDateStrToDateStr(originalString string) (formatStr string) {
 		fmt.Println("Error parsing time:", err)
 		return
 	}
-
+	if t.IsZero() {
+		formatStr = ""
+		return
+	}
 	// 重新格式化时间
 	formatStr = t.Format(FormatDate)
 
@@ -2919,6 +2922,10 @@ func GormDateStrToDateTimeStr(originalString string) (formatStr string) {
 		fmt.Println("Error parsing time:", err)
 		return
 	}
+	if t.IsZero() {
+		formatStr = ""
+		return
+	}
 
 	// 重新格式化时间
 	formatStr = t.Format(FormatDateTime)

+ 2 - 0
utils/sql.go

@@ -257,6 +257,8 @@ func ReplaceDriverKeywords(driver string, sql string) string {
 			"admin":    `"admin"`,
 			"value":    `"value"`,
 			"exchange": `"exchange"`,
+			"b.from":   `b."from"`,
+			"size":     `"size"`,
 		},
 	}
 	replacements, ok := rules[dbDriver]