go-common/app/admin/main/esports/model/contest_data.go

57 lines
1.4 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package model
import (
"fmt"
"strings"
"go-common/library/xstr"
)
const (
_cDataInsertSQL = "INSERT INTO es_contests_data(cid,url,point_data) VALUES %s"
_cDataEditSQL = "UPDATE es_contests_data SET url = CASE %s END,point_data = CASE %s END WHERE id IN (%s)"
)
// ContestData .
type ContestData struct {
ID int64 `json:"id"`
CID int64 `json:"cid" gorm:"column:cid"`
URL string `json:"url"`
PointData int `json:"point_data"`
IsDeleted int `json:"is_deleted"`
}
// TableName es_contests_data.
func (t ContestData) TableName() string {
return "es_contests_data"
}
// BatchAddCDataSQL .
func BatchAddCDataSQL(cID int64, data []*ContestData) string {
if len(data) == 0 {
return ""
}
var rowStrings []string
for _, v := range data {
rowStrings = append(rowStrings, fmt.Sprintf("(%d,'%s',%d)", cID, v.URL, v.PointData))
}
return fmt.Sprintf(_cDataInsertSQL, strings.Join(rowStrings, ","))
}
// BatchEditCDataSQL .
func BatchEditCDataSQL(cDatas []*ContestData) string {
if len(cDatas) == 0 {
return ""
}
var (
urlStr, pDataStr string
ids []int64
)
for _, module := range cDatas {
urlStr = fmt.Sprintf("%s WHEN id = %d THEN '%s'", urlStr, module.ID, module.URL)
pDataStr = fmt.Sprintf("%s WHEN id = %d THEN '%d'", pDataStr, module.ID, module.PointData)
ids = append(ids, module.ID)
}
return fmt.Sprintf(_cDataEditSQL, urlStr, pDataStr, xstr.JoinInts(ids))
}