52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package dao
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.rosy.net.cn/baseapi/utils/errlist"
|
|
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
)
|
|
|
|
func QueryConfigs(db *DaoDB, key, configType, keyword string) (configList []*model.NewConfig, err error) {
|
|
sql := `
|
|
SELECT
|
|
t1.*
|
|
FROM new_config t1
|
|
WHERE t1.deleted_at = ?`
|
|
sqlParams := []interface{}{
|
|
utils.DefaultTimeValue,
|
|
}
|
|
if key != "" {
|
|
sql += " AND t1.key = ?"
|
|
sqlParams = append(sqlParams, key)
|
|
}
|
|
if configType != "" {
|
|
sql += " AND t1.type = ?"
|
|
sqlParams = append(sqlParams, configType)
|
|
}
|
|
if keyword != "" {
|
|
keywordLike := "%" + keyword + "%"
|
|
sql += " AND (t1.type LIKE ? OR t1.key LIKE ? OR value LIKE ?)"
|
|
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike)
|
|
}
|
|
|
|
err = GetRows(db, &configList, sql, sqlParams...)
|
|
if err == nil && len(configList) == 0 && key != "" {
|
|
err = fmt.Errorf("条件:key:%s,type:%s,keyword:%s不能找到配置", key, configType, keyword)
|
|
}
|
|
return configList, err
|
|
}
|
|
|
|
func ValidateRoles(db *DaoDB, roles ...string) (err error) {
|
|
errList := errlist.New()
|
|
for _, v := range roles {
|
|
if v != "" {
|
|
_, err2 := QueryConfigs(db, v, model.ConfigTypeRole, "")
|
|
errList.AddErr(err2)
|
|
}
|
|
}
|
|
return errList.GetErrListAsOne()
|
|
}
|