Пример #1
0
 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');
     }
 }
Пример #2
0
 /**
  * @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;
         }
     }
 }
Пример #3
0
 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环境没有打包工具类库');
     }
 }
Пример #4
0
 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');
 }