function trade_ticket() { $ticketId = IFilter::act(IReq::get('ticket_id', 'post'), 'int'); $message = ''; if (intval($ticketId) == 0) { $message = '请选择要兑换的代金券'; } else { $nowTime = ITime::getDateTime(); $ticketObj = new IModel('ticket'); $ticketRow = $ticketObj->getObj('id = ' . $ticketId . ' and point > 0 and start_time <= "' . $nowTime . '" and end_time > "' . $nowTime . '"'); if (empty($ticketRow)) { $message = '对不起,此代金券不能兑换'; } else { $memberObj = new IModel('member'); $where = 'user_id = ' . $this->user['user_id']; $memberRow = $memberObj->getObj($where, 'point'); if ($ticketRow['point'] > $memberRow['point']) { $message = '对不起,您的积分不足,不能兑换此类代金券'; } else { //生成红包 $dataArray = array('condition' => $ticketRow['id'], 'name' => $ticketRow['name'], 'card_name' => 'T' . IHash::random(8), 'card_pwd' => IHash::random(8), 'value' => $ticketRow['value'], 'start_time' => $ticketRow['start_time'], 'end_time' => $ticketRow['end_time'], 'is_send' => 1); $propObj = new IModel('prop'); $propObj->setData($dataArray); $insert_id = $propObj->add(); //用户prop字段值null时 $memberArray = array('prop' => ',' . $insert_id . ','); $memberObj->setData($memberArray); $result = $memberObj->update('user_id = ' . $this->user["user_id"] . ' and ( prop is NULL or prop = "" )'); //用户prop字段值非null时 if (!$result) { $memberArray = array('prop' => 'concat(prop,"' . $insert_id . ',")'); $memberObj->setData($memberArray); $result = $memberObj->update('user_id = ' . $this->user["user_id"], 'prop'); } //代金券成功 if ($result) { $pointConfig = array('user_id' => $this->user['user_id'], 'point' => '-' . $ticketRow['point'], 'log' => '积分兑换代金券,扣除了 -' . $ticketRow['point'] . '积分'); $pointObj = new Point(); $pointObj->update($pointConfig); } } } } //展示 if ($message != '') { $this->integral(); Util::showMessage($message); } else { $this->redirect('redpacket'); } }
/** * @brief 赠品促销规则奖励操作 * @param array 赠品促销规则奖励信息 */ private function giftAction($giftArray, $user_id) { foreach ($giftArray as $key => $val) { $award_type = $val['award_type']; $award_value = $val['award_value']; switch ($award_type) { //积分 case "3": $pointConfig = array('user_id' => $user_id, 'point' => $award_value, 'log' => '促销奖励,消费满' . $this->sum . '元,奖励' . $award_value . '积分'); $pointObj = new Point(); $pointObj->update($pointConfig); break; //代金券 //代金券 case "4": /*(1)修改prop表*/ $ticketObj = new IModel('ticket'); $where = 'id = ' . $award_value; $ticketRow = $ticketObj->getObj($where); //奖励的红包没有过期 $time = ITime::getDateTime(); if ($time > $ticketRow['start_time'] && $time < $ticketRow['end_time']) { $dataArray = array('condition' => $award_value, 'name' => $ticketRow['name'], 'card_name' => 'T' . IHash::random(8), 'card_pwd' => IHash::random(8), 'value' => $ticketRow['value'], 'start_time' => $ticketRow['start_time'], 'end_time' => $ticketRow['end_time'], 'is_send' => 1); $propObj = new IModel('prop'); $propObj->setData($dataArray); $insert_id = $propObj->add(); /*(2)修改member表*/ $memberObj = new IModel('member'); //用户prop字段值null时 $memberArray = array('prop' => ',' . $insert_id . ','); $memberObj->setData($memberArray); $result = $memberObj->update('user_id = ' . $user_id . ' and ( prop is NULL or prop = "" )'); //用户prop字段值非null时 if (!$result) { $memberArray = array('prop' => 'concat(prop,"' . $insert_id . ',")'); $memberObj->setData($memberArray); $memberObj->update('user_id = ' . $user_id, 'prop'); } } break; //赠送经验 //赠送经验 case "5": $memberObj = new IModel('member'); $memberArray = array('exp' => 'exp' + $award_value); $memberObj->setData($memberArray); $memberObj->update('user_id = ' . $user_id, 'exp'); break; } } }
function ticket_excel_pack() { if (class_exists('ZipArchive')) { //获取要打包的文件数组 $fileArray = IFilter::act(IReq::get('id')); if (!empty($fileArray)) { $fileName = 'T_' . date('YmdHis') . IHash::random(8) . '.zip'; $zip = new ZipArchive(); $zip->open($this->ticketDir . '/' . $fileName, ZIPARCHIVE::CREATE); foreach ($fileArray as $file) { $attachfile = $this->ticketDir . '/' . $file; $zip->addFile($attachfile, basename($attachfile)); } $zip->close(); $this->ticket_excel_download($fileName); @unlink($this->ticketDir . '/' . $fileName); } else { $this->ticket_excel_list(); Util::showMessage('请选择要打包的文件'); } } else { $this->ticket_excel_list(); Util::showMessage('您的php环境没有打包工具类库'); } }
function ticket_create() { $propObj = new IModel('prop'); $prop_num = intval(IReq::get('num')); $ticket_id = intval(IReq::get('ticket_id')); if ($prop_num && $ticket_id) { $prop_num = $prop_num > 5000 ? 5000 : $prop_num; $ticketObj = new IModel('ticket'); $where = 'id = ' . $ticket_id; $ticketRow = $ticketObj->getObj($where); for ($item = 0; $item < intval($prop_num); $item++) { $dataArray = array('condition' => $ticket_id, 'name' => $ticketRow['name'], 'card_name' => 'T' . IHash::random(8), 'card_pwd' => IHash::random(8), 'value' => $ticketRow['value'], 'start_time' => $ticketRow['start_time'], 'end_time' => $ticketRow['end_time']); //判断code码唯一性 $where = 'card_name = \'' . $dataArray['card_name'] . '\''; $isSet = $propObj->getObj($where); if (!empty($isSet)) { $item--; continue; } $propObj->setData($dataArray); $propObj->add(); } $logObj = new Log('db'); $logObj->write('operation', array("管理员:" . $this->admin['admin_name'], "生成了代金券", "面值:" . $ticketRow['value'] . "元,数量:" . $prop_num . "张")); } $this->redirect('ticket_list'); }