ajaxReturn($check['result']);//返回缺失字段 } $page = empty($post['page']) ? 1 : $post['page']; $page_size = empty($post['page_size']) ? 10 : $post['page_size']; $turntable = D('TurntableUse')->getTurntableWinList('', '', $post['vid'], $page, $page_size); //获取记录总数 $total = D('TurntableUse')->getTurntableWinCount('', '', $post['vid']); $page_info = [ 'page' => $page, 'page_size' => $page_size, 'data_total' => $total, ]; if (!empty($turntable)) { foreach ($turntable as &$val) { $val['add_time'] = date('Y.m.d H:i', $val['add_time']); } unset($val); } $data = [ 'data' => $turntable, 'page_info' => $page_info, ]; if (!$turntable) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::NO_DATA, ResultCodeManager::$messages[ResultCodeManager::NO_DATA])); } $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } //活动页面 我的奖品 public function TurntableMyPrize() { $post = I('post.');//接收前端传参 array $validParams = [ 'vid',// '会员ID', 'turntable_id',// '转盘活动ID', 'page',// 当前页数 'page_size',// 每页记录数 ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $page = empty($post['page']) ? 1 : $post['page']; $page_size = empty($post['page_size']) ? 10 : $post['page_size']; $turntable = D('TurntableUse')->getTurntableWinList('', $post['turntable_id'], $post['vid'], $page, $page_size); //获取记录总数 $total = D('TurntableUse')->getTurntableWinCount('', $post['turntable_id'], $post['vid']); $page_info = [ 'page' => $page, 'page_size' => $page_size, 'data_total' => $total, ]; if (!empty($turntable)) { foreach ($turntable as &$val) { $val['add_time'] = date('Y.m.d H:i', $val['add_time']); } unset($val); } $data = [ 'data' => $turntable, 'page_info' => $page_info, ]; if (!$turntable) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::NO_DATA, ResultCodeManager::$messages[ResultCodeManager::NO_DATA])); } $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } //查看实物奖品详情 public function winTurntablePrizeDetail() { $post = I('post.');//接收前端传参 array $validParams = [ 'win_id',// '中奖记录ID, 'vid',// '会员ID, ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } //查询奖品详情 $prize = D('TurntableUse')->getPrizeDetail($post['win_id'], $post['vid']); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $prize)); } //获取会员默认收货地址 public function getVipAddress() { $post = I('post.');//接收前端传参 array $validParams = [ 'vid',// '会员ID, ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $map = [ 'uid' => $post['vid'], 'state' => 0, 'status' => 1, ]; $prize = D('Address')->getFind($map, 'id,address,house_number,name,phone,province,city,area'); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $prize)); } //获取会员收货地址列表 public function getVipAddressList() { $post = I('post.');//接收前端传参 array $validParams = [ 'vid',// '会员ID, ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $map = [ 'uid' => $post['vid'], 'state' => 0, ]; $prize = D('Address')->getSelect($map, 'id,address,house_number,name,phone,province,city,area'); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $prize)); } //获取奖品配送方式 public function getPrizeDeliveryType() { $post = I('post.');//接收前端传参 array $validParams = [ 'prize_id',// '奖品ID, ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $map = [ 'id' => $post['prize_id'], ]; //查询奖品详情 $prize = D('TurntablePrize')->getFind($map, 'id,prize_name,prize_img,type,delivery_type,receive_auth,receive_start,receive_end'); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $prize)); } //添加奖品领取收货地址 public function addPrizeAddress() { $post = I('post.');//接收前端传参 array $validParams = [ 'vid',// '会员ID, 'name',// '收货人姓名, 'phone',// '收货人手机, 'address',// '收货地址, ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $data = [ 'uid' => $post['vid'], 'address' => $post['address'], 'name' => $post['name'], 'phone' => $post['phone'], ]; //添加收货地址 $prize = D('Address')->addOrder($data); //查询收货地址 $address = D('Address')->getFind(['id' => $prize]); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $address)); } //自提信息页面查看门店 public function getDeliveryStore() { $post = I('post.');//接收前端传参 array $validParams = [ 'win_id',// '中奖记录ID, 'latitude',// '维度, 'longitude',// '经度, ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $record = D('TurntableUse')->getFind(['id' => $post['win_id']]); //判断当前奖品是否可以自提 $prize = D('TurntablePrize')->getFind(['id' => $record['turntable_prize_id']]); if ($prize['delivery_type'] != 2 && $prize['delivery_type'] != 3) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::DELIVERY_TYPE_ERROR, ResultCodeManager::$messages[ResultCodeManager::DELIVERY_TYPE_ERROR])); } $lat = $post['latitude']; $lng = $post['longitude']; //查询大转盘活动限制的门店信息 $Turntable = D('Turntable')->getFind(['id' => $prize['turntable_id']]); if ($Turntable['turntable_type'] == 5) {//任务类型活动不限制门店 查询所有门店 $map['merchantid'] = $Turntable['merchant_id']; $filed = 'id,storetag,latitude,longitude,ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((' . $lat . ' * PI() / 180 - latitude * PI() / 180) / 2),2) + COS(' . $lat . ' * PI() / 180) * COS(latitude * PI() / 180) * POW(SIN((' . $lng . ' * PI() / 180 - longitude * PI() / 180) / 2),2))) * 1000) AS juli,business_time'; $storeList = M('retail_store')->where($map)->field($filed)->order('juli ASC')->select(); } else {//查询中奖所在门店 $mop['id'] = $record['store_id']; $filed = 'id,storetag,latitude,longitude,ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((' . $lat . ' * PI() / 180 - latitude * PI() / 180) / 2),2) + COS(' . $lat . ' * PI() / 180) * COS(latitude * PI() / 180) * POW(SIN((' . $lng . ' * PI() / 180 - longitude * PI() / 180) / 2),2))) * 1000) AS juli,business_time'; $storeList = D('Store')->getSelect($mop, $filed); } $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $storeList)); } //领取信息提交 public function updateReceiveInfo() { $post = I('post.');//接收前端传参 array $validParams = [ 'win_id',// 中奖记录ID, 'prize_id',// 奖品ID, // 'store_id',// 门店ID, // 'username',// 中奖人姓名, // 'phone',// 手机号, // 'address',// 地址, 'delivery_type',// 1配送 2自提, 'prize_type',// 奖品类型:1实物 2门店商品 , ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } //判断中奖记录是否存在 $mp = [ 'id' => $post['win_id'], 'turntable_prize_id' => $post['prize_id'], 'prize_type' => $post['prize_type'], 'status' => 1 ]; $prize_record = D('TurntableUse')->getFind($mp); if (!$prize_record) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::NO_WIN_PRIZE_RECORD, ResultCodeManager::$messages[ResultCodeManager::NO_WIN_PRIZE_RECORD])); } //判断当前奖品是否领取时间过期 $prize = D('TurntablePrize')->getFind(['id' => $post['prize_id']]); if ($prize['receive_auth'] == 2) { if ($prize['receive_start'] > time() || $prize['receive_end'] < time()) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::RECEIVE_TIMEOUT, ResultCodeManager::$messages[ResultCodeManager::RECEIVE_TIMEOUT])); } } //更新中奖记录表 $save_data = [ 'status' => 2, 'receive_time' => time(), 'delivery_status' => 1, 'username' => isset($post['username']) ? $post['username'] : '', 'phone' => isset($post['phone']) ? $post['phone'] : '', 'delivery_type' => $post['delivery_type'], ]; if ($post['delivery_type'] == 2) { //生成核销码 $save_data['receive_code'] = getPickCode(); $save_data['store_id'] = $post['store_id']; } else { $save_data['address'] = $post['address']; } //更新中奖记录 $Turntable = D('TurntableUse')->updateOrder(['id' => $prize_record['id']], $save_data); if (!$Turntable) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::E_SAVE_ERROR, ResultCodeManager::$messages[ResultCodeManager::E_SAVE_ERROR])); } $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS])); } //查看奖品配送信息 public function getDeliveryOrder() { $post = I('post.');//接收前端传参 array $validParams = [ 'win_id',// '中奖记录ID, 'delivery_type',// '用户领取时所选配送方式:1配送 2自提 , ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $record = D('TurntableUse')->getFind(['id' => $post['win_id']]); if (empty($record)) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::THE_DATA_NO_HAVE, ResultCodeManager::$messages[ResultCodeManager::THE_DATA_NO_HAVE])); } $prize = D('TurntablePrize')->getFind(['id' => $record['turntable_prize_id']]); if ($post['delivery_type'] == 1) { $data = [ 'delivery_status' => $record['delivery_status'], 'order_num' => $record['order_num'], 'receive_time' => $record['receive_time'], 'delivery_type' => $record['delivery_type'], 'prize_id' => $prize['id'], 'prize_img' => $prize['prize_img'], 'prize_name' => $prize['prize_name'], 'prize_type' => $prize['type'], ]; } else { $store = D('Store')->getFind(['id' => $record['store_id']]); $data = [ 'delivery_status' => $record['delivery_status'], 'order_num' => $record['order_num'], 'receive_time' => $record['receive_time'], 'delivery_type' => $record['delivery_type'], 'prize_id' => $prize['id'], 'prize_img' => $prize['prize_img'], 'prize_name' => $prize['prize_name'], 'prize_type' => $prize['type'], 'shop_name' => $store['storetag'], 'shop_lat' => $store['latitude'], 'shop_lng' => $store['longitude'], 'username' => $record['username'], 'phone' => $record['phone'], 'receive_code' => $record['receive_code'], ]; } $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } //小程序我的页面 查询任务模式转盘信息 public function getTaskTurntable() { $post = I('post.');//接收前端传参 array $validParams = [ 'merchant_id',// 商户ID 'vid',// 会员ID ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } //查询转盘活动 $mop['merchant_id'] = $post['merchant_id']; $mop['turntable_type'] = 5; $mop['status'] = 1; $fields = 'id,turntable_name,start_time,end_time,strategy,explain,task_type,one_consume,one_month_num'; $turntable = D('Turntable')->getFind($mop, $fields); //获取对应奖品数据 if (!$turntable) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::NO_DATA, ResultCodeManager::$messages[ResultCodeManager::NO_DATA])); } $map['turntable_id'] = $turntable['id']; $field = 'id,prize_name,prize_img,prize_num,prize_total,prob,type'; $prize_list = D('TurntablePrize')->getSelect($map, $field); $turntable['prize_list'] = $prize_list; //查询用户拥有抽奖次数 $user_num = D('TurntableTaskChance')->getFind(['uid' => $post['vid'], 'turntable_id' => $turntable['id']]); $turntable['user_num'] = $user_num; $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $turntable)); } //获取大转盘信息 public function getTurntableInfo() { $post = I('post.');//接收前端传参 array $validParams = [ 'turntable_id',// 转盘ID ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } //查询转盘活动 $mop['id'] = $post['turntable_id']; $mop['status'] = 1; $fields = 'id,turntable_name,start_time,end_time,strategy,explain,turntable_type'; $turntable = D('Turntable')->getFind($mop, $fields); //获取对应奖品数据 if (!$turntable) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::NO_DATA, ResultCodeManager::$messages[ResultCodeManager::NO_DATA])); } $map['turntable_id'] = $turntable['id']; $field = 'id,prize_name,prize_img,prize_num,prize_total,prob,type'; $prize_list = D('TurntablePrize')->getSelect($map, $field); $turntable['prize_list'] = $prize_list; $turntable['user_num'] = [ "id" => "0", "turntable_id" => $turntable['id'], "uid" => "", "num" => "1", "use_num" => "0", "near_time" => "" ]; $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $turntable)); } //大转盘抽奖 public function getRunTurntable() { $post = I('post.');//接收前端传参 array $validParams = [ 'turntable_id',// 转盘活动ID 'vid',// 会员ID 'merchant_id',// 商户ID // 'bill_order_id',// 用户支付订单ID ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } //查询转盘活动 $turntable = D('Turntable')->getFind(['id' => $post['turntable_id'], 'status' => 1]); if (!$turntable) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::TURNTABLE_CLOSE, ResultCodeManager::$messages[ResultCodeManager::TURNTABLE_CLOSE])); } //查询订单是否已使用 if (isset($post['bill_order_id'])) { $order_record = D('TurntableUse')->getCount(['turntable_id' => $post['turntable_id'], 'bill_id' => $post['bill_order_id']]); if ($order_record) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::WIN_NUM_NULL, ResultCodeManager::$messages[ResultCodeManager::WIN_NUM_NULL])); } } //判断转盘类型 if ($turntable['turntable_type'] == 5) {//任务模式 需要判断抽奖次数 $t_uid_num = D('TurntableTaskChance')->getFind(['uid' => $post['vid'], 'turntable_id' => $post['turntable_id']]); if (!$t_uid_num) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::WIN_NUM_NULL, ResultCodeManager::$messages[ResultCodeManager::WIN_NUM_NULL])); } if ($t_uid_num['num'] <= 0) {//没有抽奖次数 $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::WIN_NUM_NULL, ResultCodeManager::$messages[ResultCodeManager::WIN_NUM_NULL])); } else { //修改剩余抽奖数 $t_save = [ 'num' => $t_uid_num['num'] - 1, 'use_num' => $t_uid_num['use_num'] + 1 ]; D('TurntableTaskChance')->updateOrder(['id' => $t_uid_num['id']], $t_save); } } //查询用户当日抽奖次数 $today_start = strtotime(date('Y-m-d', time())); $today_end = $today_start + (24 * 3600); $map['add_time'] = array('between', array($today_start, $today_end)); $map['user_id'] = $post['vid']; $map['turntable_id'] = $post['turntable_id']; $today = D('TurntableUse')->getCount($map); //查询用户活动期间总的抽奖次数 $map['user_id'] = $post['vid']; $map['turntable_id'] = $post['turntable_id']; $total = D('TurntableUse')->getCount($map); //判断转盘每日次数限制 if ($turntable['day_num'] != 0 && $today >= $turntable['day_num']) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::TODAY_TO_MAX, ResultCodeManager::$messages[ResultCodeManager::TODAY_TO_MAX])); } //判断转盘总的抽奖次数限制 if ($turntable['max_num'] != 0 && $total >= $turntable['max_num']) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::TURNTABLE_TO_MAX, ResultCodeManager::$messages[ResultCodeManager::TURNTABLE_TO_MAX])); } //查询转盘奖品 $prize_arr = D('TurntablePrize')->getSelect(['turntable_id' => $post['turntable_id']], '*', 'prob ASC'); $run_prize = []; $total_prob = 0; $i = 0; $rand_max = 0; foreach ($prize_arr as $val) { //记录尚余库存的奖品 $prize_count = D('TurntableUse')->getCount(['turntable_id' => $post['turntable_id'], 'turntable_prize_id' => $val['id']]); if ($val['prize_total'] - $prize_count > 0) { $total_prob += $val['prob'] * 100; if ($i == 0) { $run_prize[$i] = $val; $run_prize[$i]['prob_start'] = 0; $run_prize[$i]['prob_end'] = $val['prob'] * 100; $rand_max = $run_prize[$i]['prob_end']; } else { $run_prize[$i] = $val; $run_prize[$i]['prob_start'] = $run_prize[$i - 1]['prob_end']; $run_prize[$i]['prob_end'] = $run_prize[$i]['prob_start'] + ($val['prob'] * 100); $rand_max = $run_prize[$i]['prob_end']; } $i++; } } // print_r($run_prize);die(); if (empty($run_prize)) {//所有奖品均被抽完 //关闭转盘活动 D('Turntable')->updateOrder(['id' => $post['turntable_id']], ['status' => 2]); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::ALL_PRIZE_IS_NULL, ResultCodeManager::$messages[ResultCodeManager::ALL_PRIZE_IS_NULL])); } $prob_win = mt_rand(0, $rand_max); //print_r($prob_win);die(); //返回前端的奖品信息 $win_prize_info = []; foreach ($run_prize as $vvl) { if ($prob_win >= $vvl['prob_start'] && $prob_win < $vvl['prob_end']) { //中奖 //再次判断奖品库存 $prize_stock = D('TurntableUse')->getCount(['turntable_id' => $post['turntable_id'], 'turntable_prize_id' => $vvl['id']]); if ($vvl['prize_total'] - $prize_stock <= 0) {//库存不足 $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::PRIZE_IS_NULL, ResultCodeManager::$messages[ResultCodeManager::PRIZE_IS_NULL])); } else { //判断奖品类型 switch ($vvl['type']) { case 3://积分 //增加用户积分 D('RetailVip')->toSetInc(['id' => $post['vid']], 'integral', $vvl['prize_num']); //新增中奖记录 $win_data = [ 'user_id' => $post['vid'], 'add_time' => time(), 'status' => 1, 'merchant_id' => $post['merchant_id'], 'turntable_prize_id' => $vvl['id'], 'turntable_id' => $post['turntable_id'], 'delivery_status' => 2, 'delivery_type' => 3, 'store_id' => empty($post['store_id']) ? '' : $post['store_id'], 'prize_type' => $vvl['type'] ]; if (isset($post['bill_order_id'])) { $win_data['bill_id'] = $post['bill_order_id']; } $record_id = D('TurntableUse')->addOrder($win_data); //生成中奖订单号 更新中奖记录 $order_num = orderNumber($record_id); $sace_data = [ 'order_num' => 'T' . $order_num ]; D('TurntableUse')->updateOrder(['id' => $record_id], $sace_data); //更新奖品库存 D('TurntablePrize')->toSetDec(['id' => $vvl['id']], 'prize_total',1); break; case 4://余额 //增加用户积分 D('RetailVip')->toSetInc(['id' => $post['vid']], 'balance', $vvl['prize_num']); //新增中奖记录 $win_data = [ 'user_id' => $post['vid'], 'add_time' => time(), 'status' => 1, 'merchant_id' => $post['merchant_id'], 'turntable_prize_id' => $vvl['id'], 'turntable_id' => $post['turntable_id'], 'delivery_status' => 2, 'delivery_type' => 3, 'store_id' => empty($post['store_id']) ? '' : $post['store_id'], 'prize_type' => $vvl['type'] ]; if (isset($post['bill_order_id'])) { $win_data['bill_id'] = $post['bill_order_id']; } $record_id = D('TurntableUse')->addOrder($win_data); //生成中奖订单号 更新中奖记录 $order_num = orderNumber($record_id); $sace_data = [ 'order_num' => 'T' . $order_num ]; D('TurntableUse')->updateOrder(['id' => $record_id], $sace_data); //更新奖品库存 D('TurntablePrize')->toSetDec(['id' => $vvl['id']], 'prize_total',1); break; default: //新增中奖记录 $win_data = [ 'user_id' => $post['vid'], 'add_time' => time(), 'status' => 1, 'merchant_id' => $post['merchant_id'], 'turntable_prize_id' => $vvl['id'], 'turntable_id' => $post['turntable_id'], 'delivery_status' => 1, 'store_id' => empty($post['store_id']) ? '' : $post['store_id'], 'prize_type' => $vvl['type'] ]; if (isset($post['bill_order_id'])) { $win_data['bill_id'] = $post['bill_order_id']; } $record_id = D('TurntableUse')->addOrder($win_data); //生成中奖订单号 更新中奖记录 $order_num = orderNumber($record_id); $sace_data = [ 'order_num' => 'T' . $order_num ]; D('TurntableUse')->updateOrder(['id' => $record_id], $sace_data); //更新奖品库存 D('TurntablePrize')->toSetDec(['id' => $vvl['id']], 'prize_total',1); break; } $win_prize_info = [ 'id' => $vvl['id'], 'prize_name' => $vvl['prize_name'], 'prize_img' => $vvl['prize_img'], 'type' => $vvl['type'], ]; } } } $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $win_prize_info)); } //小程序门店首页 查询是否有转盘或红包活动 public function checkTurntable() { $post = I('post.');//接收前端传参 array $validParams = [ 'merchant_id',// 商户ID 'uid',// 用户ID 'store_id',// 门店ID ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } $data = searchTurntableOrReward(2, $post['merchant_id'], $post['store_id'], $post['vid'], $post['uid'], ''); if (!empty($data) && $data['activity_type'] == 1) {//转盘活动 //查询用户当日抽奖次数 $today_start = strtotime(date('Y-m-d', time())); $today_end = $today_start + (24 * 3600); $map['add_time'] = array('between', array($today_start, $today_end)); $map['user_id'] = $post['vid']; $map['turntable_id'] = $data['activity_id']; $today = D('TurntableUse')->getCount($map); //查询用户活动期间总的抽奖次数 $map['user_id'] = $post['vid']; $map['turntable_id'] = $data['activity_id']; $total = D('TurntableUse')->getCount($map); $turntable = D('Turntable')->getFind(['id' => $data['activity_id']]); //判断转盘每日次数限制 if ($turntable['day_num'] != 0 && $today >= $turntable['day_num']) { $data = []; $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } //判断转盘总的抽奖次数限制 if ($turntable['max_num'] != 0 && $total >= $turntable['max_num']) { $data = []; $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } } //判断红包活动 if (!empty($data) && $data['activity_type'] == 2) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } //支付成功页面 查询是否有转盘或红包活动 public function payCheckTurntable() { $post = I('post.');//接收前端传参 array $validParams = [ 'merchant_id',// 商户ID 'uid',// 用户ID 'store_id',// 门店ID 'vid',// 会员ID 'order_no',// 用户支付订单号 ];//定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) {//值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']);//返回缺失字段 } //查询订单ID $mmp['pay_state'] = 1; $mmp['vid'] = $post['vid']; $mmp['uid'] = $post['uid']; $mmp['order_no'] = $post['order_no']; $order = D('RetailBillOrder')->getFind($mmp); $data = searchTurntableOrReward(3, $post['merchant_id'], $post['store_id'], $post['vid'], $post['uid'], $order['id']); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $data)); } }