Marketmanage.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <?php
  2. namespace app\api\controller;
  3. use think\facade\Lang;
  4. /**
  5. * ============================================================================
  6. *
  7. * ============================================================================
  8. *
  9. * ----------------------------------------------------------------------------
  10. *
  11. * ============================================================================
  12. * 营销活动控制器
  13. */
  14. class Marketmanage extends MobileMall
  15. {
  16. public function initialize()
  17. {
  18. parent::initialize();
  19. Lang::load(base_path() . 'home/lang/' . config('lang.default_lang') . '/marketmanage.lang.php');
  20. }
  21. /**
  22. * @api {POST} api/Marketmanage/get_info 营销活动详情
  23. * @apiVersion 1.0.0
  24. * @apiGroup Marketmanage
  25. *
  26. * @apiParam {Int} marketmanage_id 活动ID
  27. *
  28. * @apiSuccess {String} code 返回码,10000为成功
  29. * @apiSuccess {String} message 返回消息
  30. * @apiSuccess {Object} result 返回数据
  31. */
  32. public function get_info()
  33. {
  34. $marketmanage_id = intval(input('param.marketmanage_id'));
  35. if ($marketmanage_id < 0) {
  36. ds_json_encode(10001, lang('param_error'));
  37. }
  38. $marketmanage_model = model('marketmanage');
  39. $condition = array();
  40. $condition[] = array('marketmanage_id', '=', $marketmanage_id);
  41. $marketmanage = $marketmanage_model->getOneMarketmanage($condition);
  42. if (!$marketmanage) {
  43. ds_json_encode(10001, lang('market_activity_not_exist'));
  44. }
  45. if ($marketmanage['marketmanage_begintime'] > TIMESTAMP) {
  46. ds_json_encode(10001, lang('market_activity_not_begin'));
  47. }
  48. if ($marketmanage['marketmanage_endtime'] < TIMESTAMP) {
  49. ds_json_encode(10001, lang('market_activity_not_end'));
  50. }
  51. $marketmanage['marketmanage_begintime_text'] = date('Y.m.d', $marketmanage['marketmanage_begintime']);
  52. $marketmanage['marketmanage_endtime_text'] = date('Y.m.d', $marketmanage['marketmanage_endtime']);
  53. //获取奖项设置
  54. $marketmanageaward_list = $marketmanage_model->getMarketmanageAwardList(array(array('marketmanage_id', '=', $marketmanage_id), array('marketmanageaward_count', '>', 0)));
  55. if (!$marketmanageaward_list) {
  56. ds_json_encode(10001, lang('market_award_set_error'));
  57. }
  58. foreach ($marketmanageaward_list as $k => $v) {
  59. switch ($v['marketmanageaward_type']) {
  60. case 1:
  61. $marketmanageaward_list[$k]['marketmanageaward_text'] = $v['marketmanageaward_point'] . lang('ds_point');
  62. break;
  63. case 2:
  64. $bonus_model = model('bonus');
  65. $condition = array();
  66. $condition[] = array('bonus_id', '=', $v['bonus_id']);
  67. $bonus = $bonus_model->getOneBonus($condition); //获取当前红包的领取金额
  68. if (!$bonus) {
  69. ds_json_encode(10001, lang('bonus_set_error'));
  70. }
  71. if ($bonus['bonus_type'] != 3) {
  72. ds_json_encode(10001, lang('bonus_set_error'));
  73. }
  74. if ($bonus['bonus_pricetype']) {
  75. $marketmanageaward_list[$k]['marketmanageaward_text'] = floatval($bonus['bonus_fixedprice']) . lang('bonus_fixedprice_notice');
  76. } else {
  77. $marketmanageaward_list[$k]['marketmanageaward_text'] = floatval($bonus['bonus_randomprice_start']) . '~' . floatval($bonus['bonus_randomprice_end']) . lang('bonus_randomprice_notice');
  78. }
  79. break;
  80. case 3:
  81. $voucher_model = model('voucher');
  82. //验证是否可以兑换代金券
  83. $where = array();
  84. $where[] = array('vouchertemplate_id', '=', $v['vouchertemplate_id']);
  85. $where[] = array('vouchertemplate_state', '=', 1);
  86. $where[] = array('vouchertemplate_enddate', '>', TIMESTAMP);
  87. $template_info = $voucher_model->getVouchertemplateInfo($where);
  88. if (empty($template_info)) {
  89. ds_json_encode(10001, lang('vouchertemplate_set_error'));
  90. }
  91. $marketmanageaward_list[$k]['marketmanageaward_text'] = $template_info['vouchertemplate_price'] . lang('vouchertemplate_notice');
  92. break;
  93. default:
  94. ds_json_encode(10001, lang('bargain_not_exist'));
  95. }
  96. }
  97. $can_draw = true;
  98. $message = '';
  99. $count_left = 0;
  100. $memeber_id = $this->getMemberIdIfExists();
  101. if ($marketmanage['marketmanage_jointype'] != 2 && $memeber_id) { //有参与次数限制
  102. //判断当前用户是否参与过
  103. $condition = array();
  104. $condition[] = array('marketmanage_id', '=', $marketmanage_id);
  105. $condition[] = array('member_id', '=', $memeber_id);
  106. $marketmanage_joincount = $marketmanage['marketmanage_joincount'];
  107. switch ($marketmanage['marketmanage_jointype']) {
  108. case 0:
  109. break;
  110. case 1:
  111. $condition[] = array('marketmanagelog_time', 'between', array(strtotime(date('Y-m-d 0:0:0')), TIMESTAMP));
  112. break;
  113. default:
  114. ds_json_encode(10001, lang('marketmanage_jointype_set_error'));
  115. }
  116. $marketmanagelog = $marketmanage_model->getMarketmanageLogList($condition);
  117. if (count($marketmanagelog) >= $marketmanage_joincount) {
  118. $can_draw = false;
  119. $message = sprintf(lang('marketmanage_joincount_error'), count($marketmanagelog));
  120. } else {
  121. $count_left = $marketmanage_joincount - count($marketmanagelog);
  122. }
  123. }
  124. $result = array('marketmanage_info' => $marketmanage, 'marketmanageaward_list' => $marketmanageaward_list, 'can_draw' => $can_draw, 'count_left' => $count_left);
  125. ds_json_encode(10000, $message, $result);
  126. }
  127. /**
  128. * @api {POST} api/Marketmanage/get_list 营销活动列表
  129. * @apiVersion 1.0.0
  130. * @apiGroup Marketmanage
  131. *
  132. * @apiSuccess {String} code 返回码,10000为成功
  133. * @apiSuccess {String} message 返回消息
  134. * @apiSuccess {Object} result 返回数据
  135. */
  136. public function get_list()
  137. {
  138. $marketmanage_model = model('marketmanage');
  139. $type = intval(input('param.type'));
  140. if (!empty($type)) {
  141. $condition[] = array('marketmanage_type', '=', $type);
  142. }
  143. //获取活动列表
  144. $condition[] = array('marketmanage_endtime', '>', TIMESTAMP);
  145. $marketmanage_list = $marketmanage_model->getMarketmanageList($condition, 10);
  146. foreach ($marketmanage_list as $k => $v) {
  147. switch ($v['marketmanage_type']) {
  148. case 1:
  149. $marketmanage_list[$k]['marketmanage_type'] = lang('market_1');
  150. break;
  151. case 2:
  152. $marketmanage_list[$k]['marketmanage_type'] = lang('market_2');
  153. break;
  154. case 3:
  155. $marketmanage_list[$k]['marketmanage_type'] = lang('market_3');
  156. break;
  157. case 4:
  158. $marketmanage_list[$k]['marketmanage_type'] = lang('market_4');
  159. break;
  160. default:
  161. }
  162. $marketmanage_list[$k]['marketmanage_begintime'] = date("Y-m-d H:i:s", $marketmanage_list[$k]['marketmanage_begintime']);
  163. $marketmanage_list[$k]['marketmanage_endtime'] = date("Y-m-d H:i:s", $marketmanage_list[$k]['marketmanage_endtime']);
  164. }
  165. $result = array_merge(array('marketmanage_list' => $marketmanage_list), mobile_page($marketmanage_model->page_info));
  166. ds_json_encode(10000, '', $result);
  167. }
  168. }