cards_helper.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php declare(strict_types=1);
  2. namespace mtopcard;
  3. use trans_wapper;
  4. use Exception;
  5. use Log;
  6. class cards_helper
  7. {
  8. static public function reserve($card_type, $amount, $userid, $user_card_no, $user_card_type,$order_id,$store_ids = [],$out_store_id = 0)
  9. {
  10. try
  11. {
  12. if($order_id <= 0) {
  13. return [false,'没有对应的订单号'];
  14. }
  15. $model = Model('card_key');
  16. $trans = new trans_wapper($model, __METHOD__);
  17. $info = $model->getUsable($card_type, $amount,$store_ids);
  18. if (empty($info)) {
  19. $trans->commit();
  20. Log::record("cards_helper::reserve 找不到可用的卡了", Log::ERR);
  21. return [false,"没有可用的卡密了"];
  22. }
  23. $card = new CardPaper($info);
  24. $card_id = $card->card_id();
  25. $model->reserve($card_id);
  26. $trans->commit();
  27. $ret = $model->where(['card_id' => $card_id])
  28. ->update(['member_id' => $userid,
  29. 'order_id' => $order_id,
  30. 'receive_card_no' => $user_card_no,
  31. 'receive_card_type' => $user_card_type,
  32. 'out_store_id' => $out_store_id,
  33. 'reserved_time' => time()]);
  34. $rows = $model->affected_rows();
  35. return [true,$card];
  36. } catch (Exception $e) {
  37. $trans->rollback();
  38. Log::record("cards_helper::reserve exception {$e}", Log::ERR);
  39. return [false,$e->getMessage()];
  40. }
  41. }
  42. static public function assign($order_id, $oper_name="")
  43. {
  44. try {
  45. if($order_id <= 0) return false;
  46. $model = Model('card_key');
  47. $ret = $model->assign($order_id, $oper_name);
  48. $rows = $model->affected_rows();
  49. return ($ret && $rows > 0);
  50. } catch (Exception $e) {
  51. Log::record("cards_helper::assign exception {$e}", Log::ERR);
  52. return false;
  53. }
  54. }
  55. static public function reuse_card($card_id)
  56. {
  57. try {
  58. $model = Model('card_key');
  59. $ret = $model->reuse_card($card_id);
  60. $rows = $model->affected_rows();
  61. return ($ret && $rows > 0);
  62. } catch (Exception $e) {
  63. Log::record("cards_helper::reuse exception {$e}", Log::ERR);
  64. return false;
  65. }
  66. }
  67. static public function reuse($order_id)
  68. {
  69. try
  70. {
  71. if($order_id <= 0) return false;
  72. $model = Model('card_key');
  73. $ret = $model->reuse($order_id);
  74. $rows = $model->affected_rows();
  75. return ($ret && $rows > 0);
  76. } catch (Exception $e) {
  77. Log::record("cards_helper::reuse exception {$e}", Log::ERR);
  78. return false;
  79. }
  80. }
  81. static public function freeze($order_id,$err_msg='')
  82. {
  83. try {
  84. if($order_id <= 0) return false;
  85. $model = Model('card_key');
  86. $ret = $model->freeze($order_id,$err_msg);
  87. $rows = $model->affected_rows();
  88. return ($ret && $rows > 0);
  89. } catch (Exception $e) {
  90. Log::record("cards_helper::freeze exception {$e}", Log::ERR);
  91. return false;
  92. }
  93. }
  94. static public function manual_freeze($card_id,$err_msg='')
  95. {
  96. try {
  97. $model = Model('card_key');
  98. $trans = new trans_wapper($model, __METHOD__);
  99. $ret = $model->manual_freeze($card_id,$err_msg);
  100. $rows = $model->affected_rows();
  101. $trans->commit();
  102. return ($ret && $rows > 0);
  103. } catch (Exception $e) {
  104. Log::record("cards_helper::manual_freeze exception {$e}", Log::ERR);
  105. $trans->rollback();
  106. return false;
  107. }
  108. }
  109. static public function unfreeze($card_id)
  110. {
  111. try {
  112. $model = Model('card_key');
  113. $ret = $model->unfreeze($card_id);
  114. $rows = $model->affected_rows();
  115. return ($ret && $rows > 0);
  116. } catch (Exception $e) {
  117. Log::record("cards_helper::unfreeze exception {$e}", Log::ERR);
  118. return false;
  119. }
  120. }
  121. }