1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package tables
- import (
- "Wine-Server/utils"
- )
- type VersionTable struct {
- Ver uint32 `json:"ver"`
- Name string `json:"name"`
- Url string `json:"url"`
- }
- func CreateVersionTable() error {
- sql := "CREATE TABLE IF NOT EXISTS `version` (" +
- "`ver` INT UNSIGNED PRIMARY KEY NOT NULL," +
- "`name` VARCHAR(32)," +
- "`url` VARCHAR(128) NOT NULL);"
- _, err := utils.Mysql.Exec(sql)
- return err
- }
- func (row *VersionTable) Insert() error {
- sql := "INSERT INTO `version` (`ver`,`name`,`url`) VALUES(?,?,?);"
- pre, err := utils.Mysql.Prepare(sql)
- if err != nil {
- return err
- }
- _, err = pre.Exec(row.Ver, row.Name, row.Url)
- return err
- }
- func (row *VersionTable) Delete() error {
- pre, err := utils.Mysql.Prepare("DELETE FROM `version` WHERE `ver`=?;")
- if err != nil {
- return err
- }
- _, err = pre.Exec(row.Ver)
- return err
- }
- func (row *VersionTable) Update(args utils.JsonType) error {
- keys, values := utils.UnZip(args)
- sql := utils.Format("UPDATE `version` SET %s WHERE `ver`=%d;", utils.SqlFields(keys), row.Ver)
- pre, err := utils.Mysql.Prepare(sql)
- if err != nil {
- return err
- }
- _, err = pre.Exec(values...)
- return err
- }
- func (row *VersionTable) UpdateSelf() error {
- sql := "UPDATE `version` SET `name`=?,`url`=? WHERE `ver`=?;"
- pre, err := utils.Mysql.Prepare(sql)
- if err != nil {
- return err
- }
- _, err = pre.Exec(row.Name, row.Url, row.Ver)
- return err
- }
- func (row *VersionTable) GetLatest() error {
- sql := "SELECT `ver`,`name`,`url` FROM `version` ORDER BY `ver` DESC LIMIT 1;"
- err := utils.Mysql.QueryRow(sql).Scan(&row.Ver, &row.Name, &row.Url)
- return err
- }
- func VersionListAll() ([]VersionTable, error) {
- var res []VersionTable
- query, err := utils.Mysql.Query("SELECT `ver`,`name`,`url` FROM `version`;")
- if err != nil {
- return nil, err
- }
- for query.Next() {
- var one VersionTable
- err = query.Scan(&one.Ver, &one.Name, &one.Url)
- if err != nil {
- return nil, err
- }
- res = append(res, one)
- }
- return res, nil
- }
|