|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
} |