|
- package main
-
- import (
- "database/sql"
- "log"
- "strconv"
-
- "github.com/go-sql-driver/mysql"
- )
-
- type RpnIn struct {
- Id int64
- Leanwork int64
- Order_id string
- Order_time string
- Order_amount string
- Deal_id string
- Deal_time string
- Pay_amount string
- Pay_result string
- Signature string
- Ts mysql.NullTime
- }
-
- //get given RpnIn record based on ID
- func getRpnInById(id int64) (ret RpnIn, err error) {
- if err = db.conn(Config); err != nil {
- return
- }
- defer db.close()
-
- q := "SELECT * FROM rpnIn WHERE id = ? "
- err = db.h.QueryRow(q, id).Scan(
- &ret.Id, &ret.Leanwork, &ret.Order_id,
- &ret.Order_time, &ret.Order_amount, &ret.Deal_id,
- &ret.Deal_time, &ret.Pay_amount, &ret.Pay_result,
- &ret.Signature, &ret.Ts)
- if err != nil {
- if err == sql.ErrNoRows {
- log.Println("trying to retrieve rpnIn(" + strconv.FormatInt(id, 10) + ") but not found")
- } else {
- log.Println("Error retrieving rpnIn(" + strconv.FormatInt(id, 10) + ") encountered : " + err.Error())
- }
- }
- return
- }
-
- //add to database
- func (m *RpnIn) add() (ret RpnIn, err error) {
- if err = db.conn(Config); err != nil {
- return
- }
- defer db.close()
-
- q := `"INSERT INTO rpnIn(
- leanwork, order_id, order_time, order_amount, deal_id,
- deal_time, pay_amount, pay_result, signature)
- VALUES(?,?,?,?,?,?,?,?,?)
- `
- insForm, err := db.h.Prepare(q)
- if err != nil {
- log.Printf("Failed to prepare SQL statment for insert")
- return
- }
- res, err := insForm.Exec(
- m.Leanwork, m.Order_id, m.Order_time, m.Order_amount, m.Deal_id,
- m.Deal_time, m.Pay_amount, m.Pay_result, m.Signature)
- if err != nil {
- log.Printf("Error inserting rpnIn with orderNo =%s \n", m.Order_id)
- return
- }
- id, err := res.LastInsertId()
- if err != nil {
- log.Printf("Cannot retrieve lastInsertId for orderID %s", m.Order_id)
- return
- }
-
- return getRpnInById(id)
- }
-
- func (m *RpnIn) signature() string {
- s := "order_id=" + m.Order_id
- s += "|order_time=" + m.Order_time
- s += "|order_amount=" + m.Order_amount
- s += "|deal_id=" + m.Deal_id
- s += "|deal_time=" + m.Deal_time
- s += "|pay_amount=" + m.Pay_amount
- s += "|pay_result=" + m.Pay_result
-
- return s
- }
|