Card.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\giftcard\shop\controller;
  11. use addon\giftcard\model\card\Card as CardModel;
  12. use addon\giftcard\model\card\CardImport as CardImportModel;
  13. use addon\giftcard\model\card\CardLog;
  14. use addon\giftcard\model\card\CardOperation;
  15. use addon\giftcard\model\giftcard\GiftCard as GiftCardModel;
  16. use addon\giftcard\model\membercard\MemberCard;
  17. /**
  18. * 礼品卡控制器
  19. */
  20. class Card extends Giftcard
  21. {
  22. /**
  23. * 兑换卡列表
  24. * @return array|mixed
  25. */
  26. public function lists()
  27. {
  28. $giftcard_id = input('giftcard_id', 0);
  29. $import_id = input('import_id', 0);
  30. if (request()->isAjax()) {
  31. $page = input('page', 1);
  32. $page_size = input('page_size', PAGE_LIST_ROWS);
  33. $search_text = input('search_text', '');
  34. $status = input('status', 'all');
  35. $import_name = input('import_name', '');
  36. $condition = array (
  37. [ 'gc.site_id', '=', $this->site_id ],
  38. );
  39. if (!empty($search_text)) {
  40. $condition[] = [ 'gc.card_no', 'like', '%' . $search_text . '%' ];
  41. }
  42. if ($status != 'all') {
  43. $condition[] = [ 'gc.status', '=', $status ];
  44. }
  45. if (!empty($card_type)) {
  46. $condition[] = [ 'gc.card_type', '=', $card_type ];
  47. }
  48. if ($giftcard_id > 0) {
  49. $condition[] = [ 'gc.giftcard_id', '=', $giftcard_id ];
  50. }
  51. if ($import_name) {
  52. $import_model = new CardImportModel();
  53. $import_ids = $import_model->getCardImportColumn([ [ 'name', '=', $import_name ] ], 'import_id')[ 'data' ] ?? [];
  54. if (!empty($import_id)) {
  55. $import_id = array_merge($import_ids, [ $import_id, '-1' ]);
  56. } else {
  57. $import_id = array_merge($import_ids, [ -1 ]);
  58. }
  59. }
  60. if (!empty($import_id)) {
  61. $condition[] = [ 'gc.import_id', 'in', $import_id ];
  62. }
  63. $card_model = new CardModel();
  64. $list = $card_model->getCardPageList($condition, $page, $page_size, 'gc.create_time desc', 'gc.*,go.order_no', 'gc', [
  65. [ 'giftcard_order go', 'gc.order_id=go.order_id', 'left' ]
  66. ])[ 'data' ];
  67. foreach ($list[ 'list' ] as $k => $v) {
  68. $list[ 'list' ][ $k ] = $card_model->tran($v);
  69. }
  70. return $card_model->success($list);
  71. } else {
  72. $this->assign('import_id', $import_id);
  73. $this->assign('giftcard_id', $giftcard_id);
  74. $giftcard_info = ( new GiftCardModel() )->getGiftcardInfo([ [ 'giftcard_id', '=', $giftcard_id ] ], 'card_type')[ 'data' ] ?? [];
  75. $this->assign('status_list', ( new CardModel() )->getStatusList($giftcard_info[ 'card_type' ]));
  76. return $this->fetch("card/lists");
  77. }
  78. }
  79. /**
  80. * 详情
  81. */
  82. public function detail()
  83. {
  84. $card_id = input('card_id', 0);
  85. $card_model = new CardModel();
  86. $member_card = new MemberCard();
  87. $detail = $card_model->getCardDetail([ 'card_id' => $card_id, 'site_id' => $this->site_id ])[ 'data' ] ?? [];
  88. if (empty($detail))
  89. $this->error('找不到礼品卡项');
  90. $detail[ 'status_name' ] = $card_model->getStatusList($detail[ 'card_type' ])[ $detail[ 'status' ] ] ?? '';
  91. $this->assign('detail', $detail);
  92. $member_card_list = $member_card->getMemberCardDetailList([ [ 'gmc.card_id', '=', $card_id ], [ 'gmc.site_id', '=', $this->site_id ] ])[ 'data' ] ?? [];
  93. $this->assign('member_card_list', $member_card_list);
  94. $card_log_model = new CardLog();
  95. $card_log_condition = array (
  96. [ 'card_id', '=', $card_id ],
  97. [ 'site_id', '=', $this->site_id ]
  98. );
  99. $card_log_list = $card_log_model->getCardLogList($card_log_condition, '*', 'create_time desc')[ 'data' ] ?? [];
  100. $this->assign('card_log_list', $card_log_list);
  101. return $this->fetch('card/detail');
  102. }
  103. /**
  104. * 删除
  105. * @return array|mixed
  106. */
  107. public function delete()
  108. {
  109. $card_id = input('card_id', 0);
  110. $card_model = new CardModel();
  111. $params = array (
  112. 'site_id' => $this->site_id,
  113. 'card_id' => $card_id
  114. );
  115. $result = $card_model->delete($params);
  116. return $result;
  117. }
  118. /**
  119. * 卡作废
  120. * @return array
  121. */
  122. public function invalid()
  123. {
  124. $card_id = input('card_id', 0);
  125. $card_operation_model = new CardOperation();
  126. $params = array (
  127. 'site_id' => $this->site_id,
  128. 'card_id' => $card_id,
  129. 'operator_data' => $this->user_info
  130. );
  131. $result = $card_operation_model->cardInvalid($params);
  132. return $result;
  133. }
  134. }