apiserver/racs/racs.go

91 lines
2.4 KiB
Go
Raw Normal View History

2024-11-14 16:47:43 +08:00
package racs
import (
"APIServer/cnf"
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
type RACS struct{}
type StorageInfo struct {
USN string
Storage string
UpdateTime string
Mark1 string
Mark2 string
Mark3 string
}
func (r *RACS) Inbound(cfg cnf.Cfg, logger *log.Logger, addr string, uri string, params map[string]string) map[string]string {
rst := map[string]string{"Result": "OK", "ErrMsg": ""}
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s",
cfg.MySQL.User,
cfg.MySQL.Password,
cfg.MySQL.Server,
cfg.MySQL.Port,
cfg.MySQL.Database,
)
dbo, err := sql.Open("mysql", dsn)
if err != nil {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error())
rst["Result"] = "NG"
rst["ErrMsg"] = "racs.Inbound: " + err.Error()
return rst
}
dmlInbound := fmt.Sprintf(`INSERT INTO %s (usn,storage,update_time,mark1,mark2,mark3) VALUES ('%s','%s',%s,'%s','%s','%s');`,
cfg.MySQL.StorageTable,
params["USN"],
"Inbound",
"NOW()",
params["MARK1"],
params["MARK2"],
params["MARK3"],
)
_, err = dbo.Exec(dmlInbound)
if err != nil {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error())
rst["Result"] = "NG"
rst["ErrMsg"] = "racs.Inbound: " + err.Error()
return rst
}
return rst
}
func (r *RACS) Outbound(cfg cnf.Cfg, logger *log.Logger, addr string, uri string, params map[string]string) map[string]string {
rst := map[string]string{"Result": "OK", "ErrMsg": ""}
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s",
cfg.MySQL.User,
cfg.MySQL.Password,
cfg.MySQL.Server,
cfg.MySQL.Port,
cfg.MySQL.Database,
)
dbo, err := sql.Open("mysql", dsn)
if err != nil {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error())
rst["Result"] = "NG"
rst["ErrMsg"] = "racs.Outbound: " + err.Error()
return rst
}
dmlOutbound := fmt.Sprintf(`INSERT INTO %s (usn,storage,update_time,mark1,mark2,mark3) VALUES ('%s','%s',%s,'%s','%s','%s');`,
cfg.MySQL.StorageTable,
params["USN"],
"Outbound",
"NOW()",
params["MARK1"],
params["MARK2"],
params["MARK3"],
)
_, err = dbo.Exec(dmlOutbound)
if err != nil {
logger.Printf("[ERR] %s; %s; %#v; %s\r\n", addr, uri, params, err.Error())
rst["Result"] = "NG"
rst["ErrMsg"] = "racs.Outbound: " + err.Error()
return rst
}
return rst
}