orderDetail.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package model
  2. import (
  3. "crawler/config"
  4. "crawler/service"
  5. "database/sql"
  6. "log"
  7. )
  8. type OrderDetailModel struct {
  9. OrderDetail
  10. }
  11. type OrderDetail struct {
  12. ID int `json:"id"`
  13. OrderID int `json:"order_id"`
  14. ProductID int `json:"product_id"`
  15. ProductOptionID int `json:"product_option_id"`
  16. GamePos int `json:"game_pos"`
  17. GameID int `json:"game_id"`
  18. OrderProductID string `json:"OrderProductID"`
  19. }
  20. func (this *OrderDetailModel) IsExists(orderID, orderDetailID int) bool {
  21. var (
  22. db = service.DB_PLAYR
  23. conn = db.SQLDB
  24. query = "SELECT IF(COUNT(*) <= 0, 0, 1) AS `exists` FROM tb_order_detail WHERE id = ? AND order_id = ?;"
  25. exists = false
  26. )
  27. stmt, err := conn.Prepare(query)
  28. if err != nil {
  29. log.Fatal(err)
  30. }
  31. err = stmt.QueryRow(orderDetailID, orderID).Scan(&exists)
  32. if err != nil {
  33. db.SetErrorLog(err, query)
  34. return exists
  35. }
  36. db.SetGeneralLog(config.GL_ACTION_SELECT, query, "select exists order detail")
  37. return exists
  38. }
  39. func (this *OrderDetailModel) Info(orderID, orderDetailID int) (OrderDetail, error) {
  40. var (
  41. db = service.DB_PLAYR
  42. conn = db.SQLDB
  43. query = `SELECT id, order_id, product_id, product_option_id, game_pos, game_id,
  44. (CASE WHEN game_pos = 1 THEN
  45. (SELECT CWS.code FROM tb_cws_product CWS WHERE CWS.id = game_id LIMIT 1)
  46. WHEN game_pos = 2 THEN
  47. (SELECT G2A.id FROM tb_g2a_product G2A WHERE G2A.index = game_id LIMIT 1)
  48. ELSE
  49. NULL
  50. END) AS OrderProductID
  51. FROM tb_order_detail WHERE id = ? AND order_id = ?;`
  52. info OrderDetail
  53. )
  54. err := conn.QueryRow(query, orderDetailID, orderID).Scan(
  55. &info.ID, &info.OrderID, &info.ProductID, &info.ProductOptionID, &info.GamePos, &info.GameID, &info.OrderProductID,
  56. )
  57. if err != nil && err != sql.ErrNoRows {
  58. db.SetErrorLog(err, query)
  59. return info, err
  60. }
  61. db.SetGeneralLog(config.GL_ACTION_SELECT, query, "select order detail info")
  62. return info, nil
  63. }