contract.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package dao
  2. import (
  3. "context"
  4. "database/sql"
  5. "go-common/app/service/main/tv/internal/model"
  6. xsql "go-common/library/database/sql"
  7. "go-common/library/log"
  8. "github.com/pkg/errors"
  9. )
  10. const (
  11. _getUserContractByMid = "SELECT `id`, `mid`, `contract_id`, `order_no`, `is_deleted`, `ctime`, `mtime` FROM `tv_user_contract` WHERE `mid`=? AND `is_deleted`=0"
  12. _getUserContractByContractId = "SELECT `id`, `mid`, `contract_id`, `order_no`, `is_deleted`, `ctime`, `mtime` FROM `tv_user_contract` WHERE `contract_id`=? AND `is_deleted`=0"
  13. _deleteUserContract = "UPDATE `tv_user_contract` SET `is_deleted`=1 WHERE `id`=?"
  14. _insertUserContract = "INSERT INTO tv_user_contract (`mid`, `contract_id`, `order_no`) VALUES (?,?,?)"
  15. )
  16. // UserContractByMid quires one row from tv_user_contract.
  17. func (d *Dao) UserContractByMid(c context.Context, mid int64) (uc *model.UserContract, err error) {
  18. row := d.db.QueryRow(c, _getUserContractByMid, mid)
  19. uc = &model.UserContract{}
  20. err = row.Scan(&uc.ID, &uc.Mid, &uc.ContractId, &uc.OrderNo, &uc.IsDeleted, &uc.Ctime, &uc.Mtime)
  21. if err == sql.ErrNoRows {
  22. return nil, nil
  23. }
  24. if err != nil {
  25. log.Error("rows.Scan(%s) error(%v)", _getUserContractByMid, err)
  26. err = errors.WithStack(err)
  27. return nil, err
  28. }
  29. return uc, nil
  30. }
  31. // UserContractByContractId quires one row from tv_user_contract.
  32. func (d *Dao) UserContractByContractId(c context.Context, contractId string) (uc *model.UserContract, err error) {
  33. row := d.db.QueryRow(c, _getUserContractByContractId, contractId)
  34. uc = &model.UserContract{}
  35. err = row.Scan(&uc.ID, &uc.Mid, &uc.ContractId, &uc.OrderNo, &uc.IsDeleted, &uc.Ctime, &uc.Mtime)
  36. if err == sql.ErrNoRows {
  37. return nil, nil
  38. }
  39. if err != nil {
  40. log.Error("rows.Scan(%s) error(%v)", _getUserContractByContractId, err)
  41. err = errors.WithStack(err)
  42. return nil, err
  43. }
  44. return uc, nil
  45. }
  46. // TxDeleteUserContract deletes one user contract record.
  47. func (d *Dao) TxDeleteUserContract(ctx context.Context, tx *xsql.Tx, id int32) (err error) {
  48. if _, err = tx.Exec(_deleteUserContract, id); err != nil {
  49. log.Error("rows.Scan(%s) error(%v)", _deleteUserContract, err)
  50. err = errors.WithStack(err)
  51. return
  52. }
  53. return
  54. }
  55. // TxInsertUserContract insert one row into tv_user_contract.
  56. func (d *Dao) TxInsertUserContract(ctx context.Context, tx *xsql.Tx, uc *model.UserContract) (id int64, err error) {
  57. var (
  58. res sql.Result
  59. )
  60. if res, err = tx.Exec(_insertUserContract, uc.Mid, uc.ContractId, uc.OrderNo); err != nil {
  61. log.Error("d.TxInsertUserContract(%+v) err(%+v)", uc, err)
  62. err = errors.WithStack(err)
  63. return
  64. }
  65. if id, err = res.LastInsertId(); err != nil {
  66. log.Error("d.TxInsertUserContract(%+v) err(%+v)", uc, err)
  67. err = errors.WithStack(err)
  68. return
  69. }
  70. return
  71. }