CardLog.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\giftcard\model\card;
  11. use addon\giftcard\model\membercard\MemberCard;
  12. use app\model\BaseModel;
  13. use app\model\member\Member;
  14. /**
  15. * 礼品卡操作日志
  16. *
  17. * @author Administrator
  18. *
  19. */
  20. class CardLog extends BaseModel
  21. {
  22. public function add($params)
  23. {
  24. $type = $params[ 'type' ];//操作类型
  25. $card_id = $params[ 'card_id' ];
  26. $type_id = $params[ 'type_id' ] ?? 0;
  27. $card_model = new Card();
  28. $card_condition = array (
  29. [ 'card_id', '=', $card_id ]
  30. );
  31. $card_info = $card_model->getCardInfo($card_condition)[ 'data' ] ?? [];
  32. if (empty($card_info))
  33. return $this->error();
  34. $site_id = $card_info[ 'site_id' ];
  35. $operator_type = $params[ 'operator_type' ] ?? '';
  36. $member_model = new Member();
  37. switch ( $operator_type ) {
  38. case 'member':
  39. $operator = $params[ 'operator' ] ?? 0;
  40. $member_condition = array (
  41. [ 'member_id', '=', $operator ]
  42. );
  43. $operator_name = $member_model->getMemberInfo($member_condition)[ 'data' ][ 'nickname' ] ?? '';
  44. break;
  45. case 'shop':
  46. $operator_info = $params[ 'operator_data' ] ?? [];
  47. $operator = $operator_info[ 'uid' ] ?? 0;
  48. $operator_name = $operator_info[ 'username' ] ?? '';
  49. break;
  50. case 'system':
  51. $operator = 0;
  52. $operator_name = '系统任务';
  53. break;
  54. }
  55. $data = array (
  56. 'card_id' => $card_id,
  57. 'site_id' => $site_id,
  58. 'type' => $type,
  59. 'type_id' => $type_id,
  60. 'giftcard_id' => $card_info[ 'giftcard_id' ],
  61. 'member_id' => $card_info[ 'member_id' ],
  62. 'create_time' => time(),
  63. 'operator_type' => $operator_type,
  64. 'operator' => $operator,
  65. 'operator_name' => $operator_name,
  66. );
  67. switch ( $type ) {
  68. case 'create'://制卡
  69. $remark = '店铺管理员' . $operator_name . '制成礼品卡';
  70. break;
  71. case 'buy'://购买卡
  72. $init_member_id = $card_info[ 'init_member_id' ];
  73. $member_condition = array (
  74. [ 'member_id', '=', $init_member_id ]
  75. );
  76. $init_member_name = $member_model->getMemberInfo($member_condition)[ 'data' ][ 'nickname' ] ?? '';
  77. $remark = '会员' . $init_member_name . '购买礼品卡';
  78. break;
  79. case 'transfer'://赠送
  80. $member_card_id = $type_id;
  81. $member_card_model = new MemberCard();
  82. $member_card_condition = array (
  83. [ 'member_card_id', '=', $member_card_id ]
  84. );
  85. $member_card_info = $member_card_model->getMemberCardInfo($member_card_condition)[ 'data' ] ?? [];
  86. if (empty($member_card_info)) {
  87. return $this->error();
  88. }
  89. $member_condition = array (
  90. [ 'member_id', '=', $member_card_info[ 'from_member_id' ] ]
  91. );
  92. $from_member_name = $member_model->getMemberInfo($member_condition)[ 'data' ][ 'nickname' ] ?? '';
  93. $member_condition = array (
  94. [ 'member_id', '=', $member_card_info[ 'member_id' ] ]
  95. );
  96. $member_name = $member_model->getMemberInfo($member_condition)[ 'data' ][ 'nickname' ] ?? '';
  97. $remark = '会员' . $from_member_name . '将礼品卡赠送给会员' . $member_name;
  98. break;
  99. case 'use'://使用
  100. $records_id = $type_id;
  101. $card_use_model = new CardUse();
  102. $use_condition = array (
  103. [ 'records_id', '=', $records_id ]
  104. );
  105. $card_use_info = $card_use_model->getCardUseRecordsInfo($use_condition)[ 'data' ] ?? [];
  106. if (empty($card_use_info))
  107. return $this->error();
  108. $use_member_id = $card_use_info[ 'member_id' ];
  109. $member_condition = array (
  110. [ 'member_id', '=', $use_member_id ]
  111. );
  112. $use_member_name = $member_model->getMemberInfo($member_condition)[ 'data' ][ 'nickname' ] ?? '';
  113. $remark = '会员' . $use_member_name . '使用礼品卡购买了';
  114. $card_use_list = $card_use_model->getCardUseRecordsGoodsList($use_condition)[ 'data' ] ?? [];
  115. $card_use_goods_array = [];
  116. foreach ($card_use_list as $v) {
  117. $card_use_goods_array[] = $v[ 'sku_name' ] . $v[ 'use_num' ] . '件';
  118. }
  119. $remark .= implode('、', $card_use_goods_array);
  120. break;
  121. case 'used':
  122. $remark = '礼品卡次数使用完毕,礼品卡已使用';
  123. break;
  124. case 'expire':
  125. $remark = '礼品卡过期';
  126. break;
  127. case 'invalid':
  128. $remark = '店铺管理员' . $operator_name . '将礼品卡作废';
  129. break;
  130. }
  131. $data[ 'remark' ] = $remark;
  132. $data[ 'extend' ] = json_encode($extend ?? []);
  133. model('giftcard_card_log')->add($data);
  134. return $this->success();
  135. }
  136. /**
  137. * 获取礼品卡日志记录信息
  138. * @param $condition
  139. * @param string $field
  140. * @return array
  141. */
  142. public function getCardLogInfo($condition, $field = '*', $alias = '', $join = [])
  143. {
  144. $info = model('giftcard_card_log')->getInfo($condition, $field, $alias, $join);
  145. return $this->success($info);
  146. }
  147. /**
  148. * 获取礼品卡日志记录列表
  149. * @param array $condition
  150. * @param string $field
  151. * @param string $order
  152. * @param null $limit
  153. * @return array
  154. */
  155. public function getCardLogList($condition = [], $field = '*', $order = '', $alias = '', $join = [], $limit = null)
  156. {
  157. $list = model('giftcard_card_log')->getList($condition, $field, $order, $alias, $join, '', $limit);
  158. return $this->success($list);
  159. }
  160. /**
  161. * 获取礼品卡日志记录分页列表
  162. * @param array $condition
  163. * @param int $page
  164. * @param int $page_size
  165. * @param string $order
  166. * @param string $field
  167. * @return array
  168. */
  169. public function getCardLogPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = '*', $alias = '', $join = [])
  170. {
  171. $list = model('giftcard_card_log')->pageList($condition, $field, $order, $page, $page_size, $alias, $join);
  172. return $this->success($list);
  173. }
  174. }