File: /www/wwwroot/bs.kntsleep.com/system/admin/member/orders.class.php
<?php
/*
* Copyright (c) Huyin Information Technology Co., Ltd. All Rights Reserved.
* BOSSCMS Content Management System (https://www.bosscms.net/)
*/
defined('IS_OK') or exit('Access Forbidden');
into::basic_class('admin');
class orders extends admin
{
public function init()
{
global $G;
$G['cover'] = $this->cover();
$where = $this->where($G['get']);
$rows = $G['rows'] = $this->rows(20);
$data = page::orders_pages(null,$rows,null,null,null,'pages','*',$where,null);
foreach($data['list'] as $k=>$v){
if(!isset($G['user'][$v['member']])){
$G['user'][$v['member']] = arrExist(mysql::select_one('username','member',"id='{$v['member']}'"),'username');
}
$data['list'][$k]['user'] = $G['user'][$v['member']];
}
$G['package'] = arrOption(page::package_list(1),'id','name');
echo $this->theme('member/orders',$data);
}
public function where($data)
{
$where = 1;
if($keyword = $data['keyword']){
if($m = mysql::select_one('id','member',"username='{$keyword}'")){
$where = "member='{$m['id']}' AND {$where}";
}else{
$where = "num='{$keyword}' AND {$where}";
}
}
if(is_numeric($data['type'])){
$where = "type='{$data['type']}' AND {$where}";
}
if(preg_match('/^[012]$/',$data['state'])){
$where = "state='{$data['state']}' AND {$where}";
}
return $where;
}
public function modify()
{
global $G;
$this->cover('member&orders','M');
if(isset($G['post']['id']) && preg_match('/^(1|2)$/',$G['get']['state'])){
$success = array();
$state = $G['get']['state'];
foreach($G['post']['id'] as $id){
if($res = mysql::select_one('*','orders',"id='{$id}' AND state<'{$state}'")){
if(mysql::update(array('state'=>$state),"orders","id='{$id}'")){
$success[] = $id;
if($state == 2){
$me = mysql::select_one('*','member',"id='{$res['member']}'");
$pa = mysql::select_one('*','package',"id='{$res['package']}'");
if($res['type']){
mysql::update(array('golds'=>$me['golds']+$pa['golds']),'member',"id='{$res['member']}'");
}else{
if($ge = mysql::select_one('*','grade',"id='{$pa['grade']}'")){
$data['utime'] = TIME;
if($pa['term'] == 0){
$data['etime'] = 0;
}else{
$data['etime'] = strtotime('+'.abs($pa['term']).' '.($pa['term']>0?'month':'day'),$ge['weight']>$me['weight']?TIME:setDefault($me['etime']*1,TIME));
}
$data['weight'] = $ge['weight'];
$data['golds'] = $me['golds']+$ge['golds'];
$data['points'] = $me['points']+$ge['points'];
mysql::update($data,'member',"id='{$res['member']}'");
}
}
}
}
}
}
if($success){
alert('修改成功'.(count($success)==count($G['post']['id'])?'':count($success).'个'), url::mpf('member','orders','init'));
}else{
alert('修改失败');
}
}else{
alert('没有提交信息');
}
}
public function delete()
{
global $G;
$this->cover('member&orders','D');
if(isset($G['post']['url']) && isset($G['get']['id'])){
$del = array();
$arr = explode(',',$G['get']['id']);
foreach($arr as $id){
if(is_numeric($id)){
$del[$id] = $id;
}
}
if($del){
$error=array();
foreach($del as $id=>$name){
if(is_numeric(mysql::delete("orders","id='{$id}'"))){
}else{
$error[]=$id;
}
}
if($error){
alert('ID为'.implode(',',$error).'删除失败');
}else{
alert('删除成功',url::mpf('member','orders','init',array('id'=>null)));
}
}else{
alert('没有删除对象id');
}
}
alert('没有提交信息');
}
public function csv()
{
global $G;
$this->cover('member&orders','R');
if($G['post']){
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="orders.csv"');
header('Cache-Control: max-age=0');
$where = $this->where($G['post']);
$rows = 1000;
if($total = mysql::total('orders', $where)){
$file = fopen('php://output','a');
$arr = array('编号','订单号','产品名称','产品类型','生成日期','价格','支付方式','状态','会员');
foreach($arr as $k=>$v){
$arr[$k] = iconv('utf-8','gbk',$v);
}
fputcsv($file,$arr);
$max = ceil($total/$rows);
for($i=0; $i<$max; $i++){
ob_flush();
flush();
$list = mysql::select_all('*', 'orders', $where, 'id ASC', ($i*$rows).','.$rows);
foreach($list as $v){
if($G['mb'][$v['member']]){
$member = $G['mb'][$v['member']];
}else{
$G['mb'][$v['member']] = $member = arrExist(mysql::select_one('username','member',"id='{$v['member']}'"),'username');
}
fputcsv($file, array(
$v['id'],
$v['num']."\t",
iconv('utf-8','gbk',$v['name']),
iconv('utf-8','gbk',$G['option']['supply'][$v['type']]),
date('Y-m-d H:i:s',$v['ctime']),
$v['price'],
iconv('utf-8','gbk',$G['option']['payment'][$v['payment']]),
iconv('utf-8','gbk',$G['option']['statebuy'][$v['state']]),
iconv('utf-8','gbk',$member)
));
}
}
fclose($file);
}else{
alert('数据为空');
}
}else{
alert('没有提交信息');
}
}
}
?>