Config.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\scenefestival\api\controller;
  11. use addon\scenefestival\model\Record;
  12. use addon\scenefestival\model\SceneFestival as Festival;
  13. use app\api\controller\BaseApi;
  14. use app\model\member\Member;
  15. /**
  16. * 会员节日有礼奖励
  17. */
  18. class Config extends BaseApi
  19. {
  20. /**
  21. * 计算信息
  22. */
  23. public function Config()
  24. {
  25. $token = $this->checkToken();
  26. if ($token[ 'code' ] < 0) return $this->response($token);
  27. //获取当前时间
  28. $time = time();
  29. //获取满足条件的节日有礼活动
  30. $game_condition = [
  31. [
  32. 'status', 'in', '0,1'
  33. ],
  34. [
  35. 'push_time', '<=', $time
  36. ],
  37. [
  38. 'festival_type', '=', 'scenefestival'
  39. ],
  40. [
  41. 'site_id', '=', $this->site_id
  42. ]
  43. ];
  44. $festival_model = new Festival();
  45. $member_model = new Member();
  46. $field = 'festival_id,festival_type,site_id,activity_name,festival_type_name,remark,status,start_time,end_time,level_id,level_name,join_type,join_frequency,push_time';
  47. $festival_list = $festival_model->getFestivalList($game_condition, $field);
  48. if (!empty($festival_list)) {
  49. foreach ($festival_list[ 'data' ] as $k => $v) {
  50. $flag = false;
  51. //获取会员信息
  52. if ($v[ 'level_id' ] == 0) {//所有会员
  53. $member_info = $member_model->getMemberInfo([ [ 'member_id', '=', $this->member_id ], [ 'site_id', '=', $this->site_id ] ], 'member_id,nickname,member_level,member_level_name')[ 'data' ];
  54. } else {
  55. $member_info = $member_model->getMemberInfo([ [ 'member_id', '=', $this->member_id ], [ 'site_id', '=', $this->site_id ], [ 'member_level', 'in', $v[ 'level_id' ] ] ], 'member_id,nickname,member_level,member_level_name')[ 'data' ];
  56. }
  57. // 判断今年有没有领取过
  58. $record = new Record();
  59. $start_year = date_to_time(date('Y-01-01 00:00:00'));
  60. $end_year = $start_year + 31535999;
  61. $record_condition[] = [ 'member_id', '=', $this->member_id ];
  62. $record_condition[] = [ 'festival_id', '=', $v[ 'festival_id' ] ];
  63. $record_condition[] = [ 'receive_time', '>', $start_year ];
  64. $record_condition[] = [ 'receive_time', '<', $end_year ];
  65. $record_data = $record->getFestivalDrawRecordList($record_condition, '*', 'receive_time desc')[ 'data' ];
  66. // 奖项
  67. $game_ward = $festival_model->getGameAward([ [ 'festival_id', '=', $v[ 'festival_id' ] ] ], 'award_id,award_type,coupon,point,balance,balance_type,balance_money')[ 'data' ];
  68. if (!empty($game_ward[ 'coupon_list' ])) {
  69. foreach ($game_ward[ 'coupon_list' ] as $coupon_k => &$coupon_v) {
  70. $coupon_flag = false;
  71. if ($coupon_v[ 'status' ] == 1) {
  72. if ($coupon_v[ 'count' ] == -1 || $coupon_v[ 'count' ] - $coupon_v[ 'lead_count' ] > 0) $coupon_flag = true;
  73. }
  74. $coupon_v[ 'coupon_flag' ] = $coupon_flag;
  75. }
  76. } else {
  77. $game_ward[ 'coupon_list' ] = [];
  78. }
  79. if (( isset($member_info) && !empty($member_info) ) && empty($record_data) && !empty($game_ward)) {
  80. $flag = true;
  81. }
  82. $festival_list[ 'data' ][ $k ][ 'award_list' ] = $game_ward;
  83. $festival_list[ 'data' ][ $k ][ 'nickname' ] = $member_info[ 'nickname' ];
  84. $festival_list[ 'data' ][ $k ][ 'flag' ] = $flag;
  85. }
  86. }
  87. return $this->response($festival_list);
  88. }
  89. public function getFestivalDrawRecordList()
  90. {
  91. $token = $this->checkToken();
  92. if ($token[ 'code' ] < 0) return $this->response($token);
  93. //获取当前时间
  94. $time = time();
  95. //获取满足条件的节日有礼活动
  96. $game_condition = [
  97. [
  98. 'status', 'in', '0,1'
  99. ],
  100. [
  101. 'push_time', '<=', $time
  102. ],
  103. [
  104. 'festival_type', '=', 'scenefestival'
  105. ],
  106. [
  107. 'site_id', '=', $this->site_id
  108. ]
  109. ];
  110. $festival_model = new Festival();
  111. $field = 'festival_id,festival_type,site_id,activity_name,festival_type_name,remark,status,start_time,end_time,level_id,level_name,join_type,join_frequency,push_time';
  112. $festival_list = $festival_model->getFestivalList($game_condition, $field);
  113. if (!empty($festival_list)) {
  114. foreach ($festival_list[ 'data' ] as $k => $v) {
  115. $flag = false;
  116. $record = new Record();
  117. $start_year = date_to_time(date('Y-01-01 00:00:00'));
  118. $end_year = $start_year + 31535999;
  119. $record_condition[] = [ 'member_id', '=', $this->member_id ];
  120. $record_condition[] = [ 'festival_id', '=', $v[ 'festival_id' ] ];
  121. $record_condition[] = [ 'receive_time', '>', $start_year ];
  122. $record_condition[] = [ 'receive_time', '<', $end_year ];
  123. $record_data = $record->getFestivalDrawRecordList($record_condition, '*', 'receive_time desc')[ 'data' ];
  124. if (empty($record_data)) {
  125. $flag = true;
  126. }
  127. $festival_list[ 'data' ][ $k ][ 'flag' ] = $flag;
  128. }
  129. }
  130. return $this->response($festival_list);
  131. }
  132. /**
  133. * 领取节日有礼奖励
  134. */
  135. public function receive()
  136. {
  137. $token = $this->checkToken();
  138. if ($token[ 'code' ] < 0) return $this->response($token);
  139. $festival_id = $this->params[ 'festival_id' ];
  140. if (empty($festival_id)) {
  141. return $this->response($this->error('', 'REQUEST_ID'));
  142. }
  143. $game = new Festival();
  144. $res = $game->receive($festival_id, $this->member_id, $this->site_id);
  145. return $this->response($res);
  146. }
  147. }