Exemple #1
0
 function end($result = true, $message = null, $url_params = null, $params = array())
 {
     if (!$this->transaction_start) {
         trigger_error('The transaction has not started yet', E_USER_ERROR);
     }
     $this->transaction_start = false;
     $db = kernel::database();
     restore_error_handler();
     if (is_null($url_params)) {
         $url = $this->_action_url;
     } elseif (is_array($url_params)) {
         $url = $this->app->router()->gen_url($url_params);
     } else {
         $url = $url_params;
     }
     if ($result) {
         $db->commit($this->transaction_status);
         $status = 'success';
         $message = $message == '' ? app::get('base')->_('操作成功!') : app::get('base')->_('成功:') . $message;
     } else {
         $db->rollback();
         $status = 'error';
         $message = $message ? $message : app::get('base')->_("操作失败: 对不起,无法执行您要求的操作");
     }
     $this->_end_message = $message;
     $this->splash($status, $url, $message, 'redirect', $params);
 }
Exemple #2
0
 /**
  * 售后服务单创建
  * @param array sdf
  * @param string message
  * @return boolean success or failure
  */
 public function create(&$sdf, &$thisObj)
 {
     if (!$sdf['order_bn'] || !$sdf['return_bn']) {
         $thisObj->send_user_error(app::get('b2c')->_('售后服务单数据异常!'), array('tid' => $sdf['order_bn'], 'return_id' => $sdf['return_bn']));
     } else {
         $is_save = true;
         $obj_return_product = $this->app->model('return_product');
         $return_id = $obj_return_product->gen_id();
         $arr_product_data = json_decode($sdf['return_product_items'], true);
         $str_product_data = serialize($arr_product_data);
         $tmp = $obj_return_product->getList('*', array('return_bn' => $sdf['return_bn'], 'order_id' => $sdf['order_bn']));
         if ($tmp) {
             $thisObj->send_user_error(app::get('b2c')->_('售后服务单已经存在!'), array('tid' => $sdf['order_bn'], 'return_id' => $sdf['return_bn']));
         }
         // 开始事务
         $db = kernel::database();
         $transaction_status = $db->beginTransaction();
         $arr_data = array('order_id' => $sdf['order_bn'], 'return_bn' => $sdf['return_bn'], 'return_id' => $return_id, 'title' => $sdf['title'], 'content' => $sdf['content'], 'comment' => $sdf['comment'], 'status' => $sdf['status'], 'product_data' => $str_product_data, 'member_id' => $sdf['member_id'], 'add_time' => $sdf['add_time']);
         if ($sdf['url'] && strpos($sdf['url'], '/') !== false) {
             $mdl_img = app::get('image')->model('image');
             $image_name = substr($sdf['url'], strrpos($sdf['url'], '/') + 1);
             $image_id = $mdl_img->store($sdf['url'], null, null, $image_name);
             $arr_data['image_file'] = $image_id;
         }
         $is_save = $obj_return_product->save($arr_data);
         if ($is_save) {
             $db->commit($transaction_status);
             return array('tid' => $sdf['order_bn'], 'return_id' => $sdf['return_bn']);
         } else {
             $db->rollback();
             $thisObj->send_user_error(app::get('b2c')->_('售后服务单添加失败!'), array('tid' => $sdf['order_bn'], 'return_id' => $sdf['return_bn']));
         }
     }
 }
Exemple #3
0
 private function get_pager($page_no, $page_size, $sTableName, $sWhere = '')
 {
     $page_no = intval($page_no);
     $page_size = intval($page_size);
     $limit = '';
     $rs_count = 0;
     $sql = 'select count(*) as c from `' . $sTableName . '` ' . $sWhere;
     //-------------------------------------------------
     $db = kernel::database();
     $rs = $db->selectrow($sql);
     if ($rs && is_array($rs)) {
         $rs_count = intval($rs['c']);
     }
     $str_limit = '';
     $offset = 0;
     $limit = -1;
     $page_count = 0;
     if ($rs_count > 0) {
         $page_count = ceil($rs_count / $page_size);
         if ($page_no < 1) {
             $page_no = 1;
         } else {
             if ($page_no > $page_count) {
                 $page_no = $page_count;
             }
         }
         $offset = ($page_no - 1) * $page_size;
         $limit = $page_size;
         $str_limit = ' LIMIT ' . $offset . ',' . $limit;
     } else {
         $page_no = 1;
     }
     return array('rs_count' => $rs_count, 'page_count' => $page_count, 'page_no' => $page_no, 'page_size' => $page_size, 'offset' => $offset, 'limit' => $limit, 'str_limit' => $str_limit);
 }
Exemple #4
0
 /**
  * 退款单创建
  * @param array sdf
  * @return boolean success or failure
  */
 public function create(&$sdf, $thisObj)
 {
     // 退款单创建是和中心的交互
     $is_payed = false;
     $obj_refund = $this->app->model('refunds');
     $obj_order = $this->app_b2c->model('orders');
     $objMath = kernel::single('ectools_math');
     if (!isset($sdf['order_bn']) || !$sdf['order_bn']) {
         $thisObj->send_user_error(app::get('b2c')->_('退款单tid没有收到!'), array());
     }
     $obj_order_bills = $this->app->model('order_bills');
     $sql = 'SELECT * FROM ' . $obj_refund->table_name(1) . ' AS refunds' . ' LEFT JOIN ' . $obj_order_bills->table_name(1) . ' AS bill ON bill.bill_id=refunds.refund_id' . ' WHERE refunds.t_begin=' . $sdf['t_begin'] . ' AND bill.bill_type="refunds" AND bill.rel_id=\'' . $sdf['order_bn'] . '\'';
     if (!$obj_order_bills->db->select($sql)) {
         $refund_id = $sdf['refund_id'] = $obj_refund->gen_id();
         $refundArr = array('refund_id' => $sdf['refund_id'], 'refund_bn' => $sdf['refund_bn'], 'order_id' => $sdf['order_bn'], 'account' => $sdf['account'], 'bank' => $sdf['bank'], 'pay_account' => $sdf['pay_account'] ? $sdf['pay_account'] : app::get('b2c')->_('付款帐号'), 'currency' => $sdf['currency'], 'money' => $sdf['money'], 'paycost' => $sdf['paycost'], 'cur_money' => $sdf['cur_money'], 'pay_type' => $sdf['pay_type'], 'pay_app_id' => $sdf['payment_tid'], 'pay_name' => $sdf['pay_name'], 'pay_ver' => '1.0', 'op_id' => '0', 'ip' => $sdf['ip'], 't_begin' => $sdf['t_begin'], 't_payed' => $sdf['t_begin'], 't_confirm' => $sdf['t_confirm'], 'status' => 'ready', 'trade_no' => $sdf['trade_no'], 'memo' => $sdf['memo'], 'return_url' => '', 'orders' => array(array('rel_id' => $sdf['order_bn'], 'bill_type' => 'refunds', 'pay_object' => 'order', 'bill_id' => $sdf['refund_id'], 'money' => $sdf['money'])));
         $is_save = $obj_refund->save($refundArr);
     } else {
         $sdf['refund_id'] = $refund_id = $tmp[0]['bill_id'];
     }
     // 更改支付单状态
     $filter = array('refund_id' => $refund_id, 'status|in' => array('failed', 'cancel', 'error', 'invalid', 'timeout', 'ready'));
     $is_save = $obj_refund->update(array('status' => 'succ'), $filter);
     $affect_row = $obj_refund->db->affect_row();
     if ($is_save) {
         $db = kernel::database();
         $transaction_status = $db->beginTransaction();
         // 防止重复充值
         if ($affect_row) {
             $tmp_refunds = $obj_refund->getList('*', array('refund_id' => $refund_id));
             if (!$tmp_refunds) {
                 $thisObj->send_user_error(app::get('b2c')->_('退款单不存在!'), array('tid' => $sdf['order_bn'], 'refund_id' => $refund_id));
             }
             $refundArr = $tmp_refunds[0];
             $refundArr['order_id'] = $sdf['order_bn'];
             // 修改订单状态.
             $refundArr['op_name'] = 'ome' . app::get('b2c')->_('管理员');
             $refundArr['payment'] = $refundArr['pay_app_id'];
             $obj_refund_finish = kernel::single('b2c_order_refund');
             $is_payed = $obj_refund_finish->order_refund_finish($refundArr, 'succ', 'font', $msg);
         } else {
             $db->rollback();
             $filter = array('refund_id' => $refund_id);
             $obj_refund->update(array('status' => 'failed'), $filter);
             $thisObj->send_user_error(app::get('b2c')->_('退款多次重复请求!'), array('tid' => $sdf['order_bn'], 'refund_id' => $sdf['refund_id']));
         }
     }
     if (!$is_save || !$is_payed) {
         $db->rollback();
         $msg = $msg ? $msg : app::get('b2c')->_('退款单生成失败!');
         $filter = array('refund_id' => $refund_id);
         $obj_refund->update(array('status' => 'failed'), $filter);
         $thisObj->send_user_error($msg, array('tid' => $sdf['order_bn'], 'refund_id' => $sdf['refund_id']));
     }
     $db->commit($transaction_status);
     $obj_refund_finish->send_request($refundArr);
     $obj_apiv = kernel::single('b2c_apiv_exchanges_request');
     $req_arr = array('order_id' => $sdf['order_bn']);
     $obj_apiv->rpc_caller_request($req_arr, 'orderupdate');
     return array('tid' => $sdf['order_bn'], 'refund_id' => $sdf['refund_id']);
 }
function getTreeList($pid = 0, $listMark = 'all')
{
    $var_pid = $pid;
    $var_listMark = $listMark;
    $a = kernel::database();
    if ($listMark == 'all') {
        $aCat = $a->select('SELECT cat_name,cat_id,o.parent_id AS pid,o.p_order,o.cat_path,o.is_leaf AS cls,o.type_id as type
                    FROM sdb_b2c_goods_cat o WHERE o.disabled=\'false\' ORDER BY o.cat_path,o.p_order,o.cat_id');
        foreach ($aCat as $k => $row) {
            if ($row['cat_path'] != '' && $row['cat_path'] != ',') {
                $aCat[$k]['cat_path'] = substr($row['cat_path'], 1);
            }
        }
    } else {
        if ($pid === 0) {
            $sqlWhere = '(parent_id IS NULL OR parent_id=' . intval($pid) . ')';
        } else {
            $sqlWhere = 'parent_id=' . intval($pid);
        }
        $sqlWhere .= " AND o.disabled='false'";
        $aCat = $a->select('SELECT cat_name, cat_id, o.parent_id AS pid, o.p_order, o.cat_path, o.is_leaf AS cls,o.type_id, t.name AS type_name FROM sdb_b2c_goods_cat o
                    LEFT JOIN sdb_b2c_goods_type t ON o.type_id = t.type_id
                    WHERE ' . $sqlWhere . ' ORDER BY o.cat_path,o.p_order,o.cat_id');
        foreach ($aCat as $k => $row) {
            $aCat[$k]['pid'] = intval($aCat[$k]['pid']);
            if ($row['cat_path'] == '' || $row['cat_path'] == ',') {
                $aCat[$k]['step'] = 1;
            } else {
                $aCat[$k]['step'] = substr_count($row['cat_path'], ',') + 1;
            }
            $aCat[$k]['url'] =& kernel::router()->gen_url(array('app' => 'b2c', 'ctl' => 'gallery', 'act' => $render->app->getConf('gallery.default_view'), 'args' => array($aCat[$k]['cat_id']), null, $app->base_url()));
        }
    }
    return $aCat;
}
Exemple #6
0
 public function offline_point($arr, $rpcService)
 {
     $sql = 'SELECT login_account AS mobile, offline_cardno FROM sdb_b2c_members AS bm LEFT JOIN sdb_pam_members as pm ON bm.member_id = pm.member_id WHERE bm.member_id = ' . $this->app->member_id . ' AND login_type =  \'mobile\'';
     $memberData = kernel::database()->select($sql);
     $mobile = $memberData['mobile'];
     /*
     $pamMemberData = app::get('pam')->model('members')->getList('*',array('member_id'=>$this->app->member_id));
     foreach ($pamMemberData as $row) {
         if ($row['login_type'] == 'mobile') {
             $mobile = $row['login_account'];
         }
     }
     */
     //$mobile = '13910510236';
     if ($mobile) {
         $client = new SoapClient("http://202.106.132.100/AppTest/WMAppCommWebService.asmx?wsdl");
         $arrPara = array((object) array('authKey' => '', 'accountNo' => '2-' . $mobile, 'password' => null));
         $result = $client->__Call("SearchMemberCardInfo", $arrPara);
         $xml = kernel::single('site_utility_xml');
         $arrData = $xml->xml2arrayValues($result->SearchMemberCardInfoResult, 0);
         $params = $arrData['OutputResult'];
         if ($params['ResultFlag'] == 1) {
             # 写入卡号到会员
             if ($params['CardNo']) {
                 app::get('b2c')->model('members')->update(array('offline_cardno' => $params['CardNo']), array('member_id' => $this->app->member_id));
             }
             return $params;
         }
     }
     return '手机号码不存在!';
 }
Exemple #7
0
 /**
  * 
  * @params $gid 商品id
  * @params $pid 货品id
  * @return bool
  **/
 public function is_delete($gid, $pid = null)
 {
     $filter = array();
     #if( $pid )
     #    $filter['product_id'] = $pid;
     if ($gid) {
         $filter['gid'] = $gid;
     }
     if (!$filter) {
         return true;
     }
     $objProducts = app::get('b2c')->model('products');
     $ret = $objProducts->getList('product_id', array('goods_id' => $gid));
     foreach ($ret as $val) {
         $product_ids[] = $val['product_id'];
     }
     $db = kernel::database();
     $count = $db->select('SELECT pid FROM  `sdb_groupactivity_purchase` where pid in(' . implode(',', $product_ids) . ')');
     //$count = $this->o_purchase->dump( $filter );
     if (count($count)) {
         $this->error_msg = '该商品在团购中存在!无法删除!';
         return false;
     }
     return true;
 }
Exemple #8
0
 function count($filter = null)
 {
     $filter['type'] = 'sto';
     $filter['object_type'] = 'goods';
     $row = kernel::database()->select('SELECT count(*) AS _count FROM sdb_b2c_member_goods WHERE ' . $this->_filter($filter));
     return intval($row[0]['_count']);
 }
Exemple #9
0
 public function archive($return_ids)
 {
     $db = kernel::database();
     $transaction_status = $db->beginTransaction();
     $insert_error_code = 0;
     $delete_error_code = 0;
     // 归档数据到新表
     try {
         $this->op_archive($return_ids, false);
     } catch (Exception $e) {
         $insert_error_code = $e->getCode();
     }
     if ($insert_error_code == 30002) {
         $db->rollback();
     } else {
         // 删除老数据
         try {
             $this->op_archive($return_ids, true);
         } catch (Exception $e) {
             $delete_error_code = $e->getCode();
         }
         if ($delete_error_code == 30003) {
             $db->rollback();
         } else {
             $db->commit($transaction_status);
         }
     }
 }
Exemple #10
0
 public function get_sale_num($filter = null)
 {
     //商品销售总量
     $sql = 'SELECT sum(I.nums) as sale_num FROM ' . kernel::database()->prefix . 'b2c_orders as O LEFT JOIN ' . kernel::database()->prefix . 'b2c_order_items as I ON O.order_id=I.order_id WHERE ' . 'O.disabled="false" and ' . $this->_filter($filter);
     $row = $this->db->select($sql);
     return $row[0]['sale_num'];
 }
Exemple #11
0
 /**
  * 库存修改
  * @param array sdf
  * @return boolean success of failure
  */
 public function updateStore(&$sdf, $thisObj)
 {
     if (!isset($sdf['list_quantity']) || !$sdf['list_quantity']) {
         $thisObj->send_user_error(app::get('b2c')->_('需要更新的货品的库存不存在!'), array());
     } else {
         $has_error = false;
         $arr_store = json_decode($sdf['list_quantity'], true);
         $product = $this->app->model('products');
         $obj_goods = $this->app->model('goods');
         $fail_products = array();
         $db = kernel::database();
         if (isset($arr_store) && $arr_store) {
             foreach ($arr_store as $arr_product_info) {
                 if ($arr_product_info['bn'] && is_numeric($arr_product_info['quantity'])) {
                     $arr_product = $product->dump(array('bn' => $arr_product_info['bn']));
                     if ($arr_product) {
                         $store_increased = $this->objMath->number_minus(array(floatval($arr_product_info['quantity']), floatval($arr_product['store'])));
                         $arr_goods = $db->selectrow('SELECT store,goods_id from sdb_b2c_goods where goods_id =' . $arr_product['goods_id']);
                         $goods_store = $this->objMath->number_plus(array($arr_goods['store'], $store_increased, $arr_product['freez']));
                         $arr_goods['store'] = $goods_store == '0' ? 0 : $goods_store;
                         $arr_product['store'] = $this->objMath->number_plus(array($arr_product_info['quantity'], $arr_product['freez']));
                         $arr_product['last_modify'] = time();
                         $storage_enable = $this->app->getConf('site.storage.enabled');
                         if (!is_null($arr_product['store']) && $storage_enable != 'true') {
                             $is_save = $product->save($arr_product);
                             if ($is_save) {
                                 $obj_goods->update($arr_goods, array('goods_id' => $arr_goods['goods_id']));
                             }
                         } else {
                             $is_save = true;
                         }
                         if (!$is_save) {
                             $msg = $this->app->_('商品库存更新失败!');
                             $has_error = true;
                             $fail_products[] = $arr_product_info['bn'];
                             continue;
                         }
                     } else {
                         $has_error = true;
                         $fail_products[] = $arr_product_info['bn'];
                         continue;
                     }
                 } else {
                     $has_error = true;
                     continue;
                 }
             }
             if (!$has_error) {
                 return true;
             } else {
                 // 更新部分失败.
                 $fail_products = array('error_response' => $fail_products);
                 $thisObj->send_user_error(app::get('b2c')->_('更新库存部分失败!'), $fail_products);
             }
         } else {
             $thisObj->send_user_error(app::get('b2c')->_('更新的商品的库存信息不存在!'), array());
         }
     }
 }
Exemple #12
0
    function goodslist($brand_id = 0)
    {
        $sql = 'SELECT * FROM test_goods g 
		LEFT JOIN test_rebate r on g.brand_id = r.rebate_id' . $brand_id == 0 ? '' : 'WHERE g.brand_id =' . $brand_id;
        // $retult = $this->db->select($sql);
        $retult = kernel::database()->select($sql);
        return $retult;
    }
Exemple #13
0
 function get_mysql_status()
 {
     $aResult = array('mysql.server_host' => DB_HOST, 'mysql.server_dbname' => DB_NAME, 'mysql.server_user' => DB_USER);
     foreach (kernel::database()->select("show status") as $row) {
         $aResult['mysql.' . strtolower($row["Variable_name"])] = $row["Value"];
     }
     return $aResult;
 }
Exemple #14
0
 function table_name($real = false)
 {
     if ($real) {
         return kernel::database()->prefix . $this->app->app_id . '_app_content';
     } else {
         return 'app_content';
     }
 }
Exemple #15
0
 function __construct()
 {
     $sql = "select * from sdb_dbeav_meta_register";
     $arr_rows = kernel::database()->select($sql);
     foreach ($arr_rows as $row) {
         $this->_meta_columns[$row['tbl_name']][$row['col_name']] = $row;
     }
 }
 function getProduct()
 {
     if ($_GET['product_bn']) {
         $sql = "select product_id,goods_id,bn,name from sdb_b2c_products where bn ='{$_GET['product_bn']}'";
     }
     $product = kernel::database()->select($sql);
     $product = $product[0];
     echo json_encode($product);
 }
Exemple #17
0
 public function get_data()
 {
     $pri_settings = kernel::database()->select('select app, `key`, value from sdb_base_setting');
     $settings = array();
     foreach ($pri_settings as $setting) {
         $settings['setting/' . $setting['app'] . '-' . $setting['key']] = unserialize($setting['value']);
     }
     return $settings;
 }
Exemple #18
0
 function get_goods_salesimage($goods_id = null)
 {
     $db = kernel::database();
     $salesgoodsimage = $db->select("SELECT gpr.`goods_id`,gpr.`description`,srg.`image` FROM `sdb_b2c_goods_promotion_ref` as gpr\n                                                                left join sdb_b2c_sales_rule_goods as srg on gpr.rule_id = srg.rule_id\n                                                                WHERE gpr.`goods_id`=" . $goods_id . "");
     foreach ($salesgoodsimage as $k => $v) {
         $simage = $v['image'];
     }
     return $simage;
 }
function _ex_vertical_getLinkBrandIds($typeids)
{
    $sql = 'SELECT b.brand_id FROM ' . kernel::database()->prefix . 'b2c_type_brand ty_b LEFT JOIN ' . kernel::database()->prefix . 'b2c_brand b ON ty_b.brand_id=b.brand_id WHERE type_id  in(' . implode(',', array_unique($typeids)) . ') order by ordernum desc';
    $res = app::get('b2c')->model('brand')->db->select($sql);
    foreach ($res as $key => $value) {
        $_return[] = $value['brand_id'];
    }
    return array_unique($_return);
}
Exemple #20
0
 public function setUp()
 {
     $this->db = kernel::database();
     $this->model = app::get('b2c')->model('member_addrs');
     if (!$this->_is_exist_table('sdb_b2c_member_addrs')) {
         $table = new base_application_dbtable();
         $table->detect('b2c', 'member_addrs')->install();
     }
 }
Exemple #21
0
 public function table_name($real = false)
 {
     $table_name = substr(get_class($this), strlen($this->app->app_id) + 5);
     if ($real) {
         return kernel::database()->prefix . $this->app->app_id . '_' . $table_name;
     } else {
         return $table_name;
     }
 }
Exemple #22
0
 function get_all_list()
 {
     $db = kernel::database();
     $sql = "select kw_name  FROM `sdb_mobileapi_keywords` order by ordernum asc;";
     $keywords = $db->select($sql);
     $ret['items'] = $keywords ? $keywords : array();
     $ret['show_num'] = count($keywords) > 10 ? 10 : count($keywords);
     return $ret;
 }
Exemple #23
0
 function table_name($real = false)
 {
     $object = $this->app->model('member_goods');
     $table_name = substr(get_class($object), strlen($this->app->app_id) + 5);
     if ($real) {
         return kernel::database()->prefix . $this->app->app_id . '_' . $table_name;
     } else {
         return $table_name;
     }
 }
Exemple #24
0
 protected function check_vary_list()
 {
     if (!isset($this->_vary_list)) {
         $rs = kernel::database()->exec('SELECT UPPER(`type`) AS `type`, UPPER(`name`) AS `name`, `expire` FROM sdb_base_cache_expires', true);
         while ($row = mysql_fetch_assoc($rs['rs'])) {
             $this->_vary_list[$row['type']][$row['name']] = $row['expire'];
         }
         mysql_free_result($rs['rs']);
     }
 }
Exemple #25
0
 function drop($table, $col)
 {
     $mrId = kernel::database()->selectrow('SELECT mr_id FROM sdb_dbeav_meta_register WHERE tbl_name = "' . $table . '" AND col_name = "' . $col . '"');
     if (!$mrId) {
         return true;
     }
     $mrId = $mrId['mr_id'];
     $this->delete(array('mr_id' => $mrId));
     return kernel::database()->exec('DELETE FROM sdb_dbeav_meta_register WHERE mr_id = ' . $mrId);
 }
Exemple #26
0
 static function get_meta_column($tbl_name)
 {
     $sql = "select col_name,col_desc from sdb_dbeav_meta_register where tbl_name='{$tbl_name}'";
     $rows = kernel::database()->select($sql);
     foreach ($rows as $row) {
         $meta['metaColumn'][] = $row['col_name'];
         $meta['columns'][$row['col_name']] = unserialize($row['col_desc']);
     }
     return $meta;
 }
Exemple #27
0
 public function table_name($real = false)
 {
     $class_name = get_class($this);
     $table_name = substr($class_name, 5 + strpos($class_name, '_mdl_'));
     if ($real) {
         return kernel::database()->prefix . $this->app->app_id . '_' . $table_name;
     } else {
         return $table_name;
     }
 }
Exemple #28
0
 function checkAskdelete()
 {
     $type_id = $_POST['type_id'];
     $db =& kernel::database();
     $row = $db->select("select comment_id from sdb_b2c_member_comments where object_type='ask' and for_comment_id='0' and gask_type=" . $type_id);
     if ($row) {
         echo "true";
     } else {
         echo "false";
     }
 }
Exemple #29
0
 private function auto_delete_kvstore()
 {
     $rows = kernel::database()->select('SELECT `prefix`, `key` FROM sdb_base_kvstore WHERE ttl>0 AND (dateline+ttl)<' . time());
     foreach ($rows as $row) {
         $single = base_kvstore::instance($row['prefix']);
         $single->get_controller()->delete($row['key']);
         if (get_class($single->get_controller()) != 'base_kvstore_mysql') {
             kernel::single('base_kvstore_mysql', $row['prefix'])->delete($row['key']);
         }
         //todo: 删除持久化数据
     }
 }
Exemple #30
0
 public function fetch($key, &$value, $timeout_version = null)
 {
     $rows = kernel::database()->select(sprintf("SELECT * FROM `sdb_base_kvstore` WHERE `prefix` = %s AND `key` = %s", kernel::database()->quote($this->prefix), kernel::database()->quote($key)), true);
     if ($rows[0]['id'] > 0 && $timeout_version < $rows[0]['dateline']) {
         if ($rows[0]['ttl'] > 0 && $rows[0]['dateline'] + $rows[0]['ttl'] < time()) {
             return false;
         }
         $value = unserialize($rows[0]['value']);
         return true;
     }
     return false;
 }