Blessing.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. namespace addon\giftcard\model\transfer;
  3. use addon\giftcard\model\card\Card;
  4. use addon\giftcard\model\membercard\MemberCard;
  5. use app\model\BaseModel;
  6. use app\model\member\Member;
  7. class Blessing extends BaseModel
  8. {
  9. /**
  10. * 祝福语
  11. */
  12. public function blessing($params)
  13. {
  14. $site_id = $params[ 'site_id' ] ?? 0;
  15. $member_id = $params[ 'member_id' ];
  16. $member_card_id = $params[ 'member_card_id' ];
  17. $condition = array (
  18. [ 'member_id', '=', $member_id ],
  19. [ 'member_card_id', '=', $member_card_id ]
  20. );
  21. if ($site_id > 0) {
  22. $condition[] = [ 'site_id', '=', $site_id ];
  23. }
  24. $member_card_model = new MemberCard();
  25. $member_card_info = $member_card_model->getMemberCardInfo($condition)[ 'data' ] ?? [];
  26. if (empty($member_card_info))
  27. return $this->error([], '礼品卡不存在或已转赠');
  28. $is_transfer = $member_card_info[ 'is_transfer' ];
  29. if ($is_transfer == 1)
  30. return $this->error([], '礼品卡不存在或已转赠');
  31. $blessing_id = model('giftcard_card_blessing')->update([ 'status' => 1 ], $condition);
  32. $site_id = $member_card_info[ 'site_id' ];
  33. $card_id = $member_card_info[ 'card_id' ];
  34. $code = substr(md5(microtime(true) . $blessing_id), 0, 6);
  35. $data = array (
  36. 'blessing' => $params[ 'blessing' ],
  37. 'member_id' => $member_id,
  38. 'member_card_id' => $member_card_id,
  39. 'site_id' => $site_id,
  40. 'card_id' => $card_id,
  41. 'create_time' => time(),
  42. 'no' => $code
  43. );
  44. model('giftcard_card_blessing')->add($data);
  45. return $this->success($code);
  46. }
  47. /**
  48. * 使祝福语失效
  49. * @param $condition
  50. * @return array
  51. */
  52. public function blessingToVoid($condition)
  53. {
  54. model('giftcard_card_blessing')->update([ 'status' => 1 ], $condition);
  55. return $this->success();
  56. }
  57. /**
  58. * 祝福语详情
  59. * @param $params
  60. * @return array
  61. */
  62. public function getBlessingDetail($params)
  63. {
  64. $no = $params[ 'no' ] ?? '';
  65. $site_id = $params[ 'site_id' ] ?? 0;
  66. $blessing_id = $params[ 'blessing_id' ] ?? 0;
  67. $member_id = $params[ 'member_id' ] ?? 0;
  68. $condition = array (
  69. [ 'no', '=', $no ]
  70. );
  71. if ($blessing_id > 0) {
  72. $condition[] = [ 'blessing_id', '=', $blessing_id ];
  73. }
  74. if (!empty($code)) {
  75. $condition[] = [ 'code', '=', $code ];
  76. }
  77. if ($site_id > 0) {
  78. $condition[] = [ 'site_id', '=', $site_id ];
  79. }
  80. $info = model('giftcard_card_blessing')->getInfo($condition);
  81. if (empty($info))
  82. return $this->error([], '礼品卡祝福不存在或已失效');
  83. $member_model = new Member();
  84. if ($info[ 'to_member_id' ] > 0) {
  85. $to_member_info = $member_model->getMemberInfo([ [ 'member_id', '=', $info[ 'to_member_id' ] ] ], 'nickname,headimg')[ 'data' ] ?? [];
  86. $info[ 'to_member_nickname' ] = $to_member_info[ 'nickname' ];
  87. $info[ 'to_member_headimg' ] = $to_member_info[ 'headimg' ];
  88. }
  89. if ($info[ 'member_id' ] > 0) {
  90. $member_info = $member_model->getMemberInfo([ [ 'member_id', '=', $info[ 'member_id' ] ] ], 'nickname,headimg')[ 'data' ] ?? [];
  91. $info[ 'member_nickname' ] = $member_info[ 'nickname' ];
  92. $info[ 'member_headimg' ] = $member_info[ 'headimg' ];
  93. }
  94. $info[ 'is_self' ] = $member_id == $info[ 'member_id' ] ? 1 : 0;
  95. $card_id = $info[ 'card_id' ];
  96. $card_model = new Card();
  97. $card_info = $card_model->getCardDetail([ 'card_id' => $card_id ])[ 'data' ] ?? [];
  98. if (empty($card_info))
  99. return $this->error([], '礼品卡祝福不存在或已失效');
  100. $member_card_model = new MemberCard();
  101. $member_card_info = $member_card_model->getMemberCardInfo([ [ 'member_card_id', '=', $info[ 'member_card_id' ] ] ])[ 'data' ] ?? [];
  102. $info[ 'is_transfer' ] = $member_card_info[ 'is_transfer' ];
  103. return $this->success(array_merge($card_info, $info));
  104. }
  105. public function setBlessingToMember($params)
  106. {
  107. $blessing_id = $params[ 'blessing_id' ] ?? 0;
  108. $site_id = $params[ 'site_id' ] ?? 0;
  109. $to_member_id = $params[ 'to_member_id' ] ?? 0;
  110. $condition = array (
  111. [ 'blessing_id', '=', $blessing_id ]
  112. );
  113. $data = array (
  114. 'to_member_id' => $to_member_id,
  115. 'to_time' => time(),
  116. 'status' => 2
  117. );
  118. model('giftcard_card_blessing')->update($data, $condition);
  119. return $this->success();
  120. }
  121. /**
  122. * 获取会员礼品卡祝福信息
  123. * @param $condition
  124. * @param string $field
  125. * @return array
  126. */
  127. public function getMemberCardBlessingInfo($condition, $field = '*')
  128. {
  129. $info = model('giftcard_card_blessing')->getInfo($condition, $field);
  130. return $this->success($info);
  131. }
  132. /**
  133. * 获取会员礼品卡祝福列表
  134. * @param array $condition
  135. * @param string $field
  136. * @param string $order
  137. * @param null $limit
  138. * @return array
  139. */
  140. public function getMemberCardBlessingList($condition = [], $field = '*', $order = '', $limit = null)
  141. {
  142. $list = model('giftcard_card_blessing')->getList($condition, $field, $order, '', '', '', $limit);
  143. return $this->success($list);
  144. }
  145. /**
  146. * 获取会员礼品卡祝福分页列表
  147. * @param array $condition
  148. * @param int $page
  149. * @param int $page_size
  150. * @param string $order
  151. * @param string $field
  152. * @return array
  153. */
  154. public function getMemberCardBlessingPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = '*')
  155. {
  156. $list = model('giftcard_card_blessing')->pageList($condition, $field, $order, $page, $page_size);
  157. return $this->success($list);
  158. }
  159. }