提交 8edf72e2 编写于 作者: D devil_gong

新增订单导出,excel优化,订单详情表结构变更

上级 827d57fc
......@@ -106,11 +106,45 @@ class Order extends Common
// 评价状态
$this->assign('common_comments_status_list', lang('common_comments_status_list'));
// Excel地址
$this->assign('excel_url', MyUrl('admin/order/excelexport', input()));
// 参数
$this->assign('params', $params);
return $this->fetch();
}
/**
* [ExcelExport excel文件导出]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-10T15:46:00+0800
*/
public function ExcelExport()
{
// 参数
$params = input();
$params['admin'] = $this->admin;
$params['user_type'] = 'admin';
// 条件
$where = OrderService::OrderListWhere($params);
// 获取列表
$data_params = array(
'where' => $where,
'm' => 0,
'n' => 100000,
'is_excel_export' => 1,
);
$data = OrderService::OrderList($data_params);
// Excel驱动导出数据
$excel = new \base\Excel(array('filename'=>'order', 'title'=>lang('excel_order_title_list'), 'data'=>$data['data'], 'msg'=>'没有相关数据'));
return $excel->Export();
}
/**
* [Delete 订单删除]
* @author Devil
......
......@@ -86,7 +86,7 @@ class User extends Common
$this->assign('params', $params);
$this->assign('page_html', $page->GetPageHtml());
$this->assign('data', $data);
$this->assign('data', $data['data']);
return $this->fetch();
}
......@@ -111,7 +111,7 @@ class User extends Common
$data = UserService::UserList($data_params);
// Excel驱动导出数据
$excel = new \base\Excel(array('filename'=>'user', 'title'=>lang('excel_user_title_list'), 'data'=>$data, 'msg'=>'没有相关数据'));
$excel = new \base\Excel(array('filename'=>'user', 'title'=>lang('excel_user_title_list'), 'data'=>$data['data'], 'msg'=>'没有相关数据'));
return $excel->Export();
}
......@@ -136,12 +136,12 @@ class User extends Common
'n' => 1,
];
$data = UserService::UserList($data_params);
if(empty($data[0]))
if(empty($data['data'][0]))
{
return $this->error('用户信息不存在', MyUrl('admin/user/index'));
}
$data[0]['birthday_text'] = empty($data[0]['birthday']) ? '' : date('Y-m-d', $data[0]['birthday']);
$this->assign('data', $data[0]);
$data['data'][0]['birthday_text'] = empty($data['data'][0]['birthday']) ? '' : date('Y-m-d', $data['data'][0]['birthday']);
$this->assign('data', $data['data'][0]);
}
// 性别
......
......@@ -106,47 +106,182 @@ return array(
),
// 用户excel导出标题列表
'excel_user_title_list' => array(
'username' => array(
'excel_user_title_list' => [
'username' => [
'name' => '用户名',
'type' => 'string',
),
'nickname' => array(
],
'nickname' => [
'name' => '昵称',
'type' => 'int',
),
'gender_text' => array(
],
'gender_text' => [
'name' => '性别',
'type' => 'string',
),
'birthday_text'=> array(
],
'birthday_text'=> [
'name' => '生日',
'type' => 'string',
),
'mobile' => array(
],
'mobile' => [
'name' => '手机号码',
'type' => 'int',
),
'email' => array(
],
'email' => [
'name' => '电子邮箱',
'type' => 'string',
),
'province' => array(
],
'province' => [
'name' => '所在省',
'type' => 'string',
),
'city' => array(
],
'city' => [
'name' => '所在市',
'type' => 'string',
),
'address' => array(
],
'address' => [
'name' => '详细地址',
'type' => 'string',
),
'add_time' => array(
],
'add_time' => [
'name' => '注册时间',
'type' => 'string',
),
),
],
],
// 订单excel导出
'excel_order_title_list' => [
'order_no' => [
'name' => '订单编号',
'type' => 'string',
],
// 收件人信息
'receive_name' => [
'name' => '收件人姓名',
'type' => 'string',
],
'receive_tel' => [
'name' => '收件人电话',
'type' => 'string',
],
'receive_province_name'=> [
'name' => '收件人所在省',
'type' => 'string',
],
'receive_city_name' => [
'name' => '收件人所在市',
'type' => 'string',
],
'receive_county_name' => [
'name' => '收件人所在区县',
'type' => 'string',
],
'receive_address' => [
'name' => '收件人详细地址',
'type' => 'string',
],
// 用户留言
'user_note' => [
'name' => '用户留言',
'type' => 'string',
],
// 快递信息
'express_name' => [
'name' => '快递公司',
'type' => 'string',
],
'express_number' => [
'name' => '快递单号',
'type' => 'string',
],
// 支付信息
'payment_name' => [
'name' => '支付方式',
'type' => 'string',
],
'pay_status_name' => [
'name' => '支付状态',
'type' => 'string',
],
// 基础信息
'status_name' => [
'name' => '订单状态',
'type' => 'string',
],
'preferential_price' => [
'name' => '优惠金额',
'type' => 'string',
],
'price' => [
'name' => '订单单价',
'type' => 'string',
],
'total_price' => [
'name' => '订单总价(订单最终价格)',
'type' => 'string',
],
'pay_price' => [
'name' => '已支付金额',
'type' => 'string',
],
'excel_export_items' => [
'name' => '商品信息',
'type' => 'string',
],
'items_count' => [
'name' => '购买总数',
'type' => 'int',
],
'describe' => [
'name' => '描述',
'type' => 'string',
],
// 时间
'confirm_time' => [
'name' => '确认时间',
'type' => 'string',
],
'pay_time' => [
'name' => '支付时间',
'type' => 'string',
],
'delivery_time' => [
'name' => '发货时间',
'type' => 'string',
],
'collect_time' => [
'name' => '完成时间',
'type' => 'string',
],
'cancel_time' => [
'name' => '取消时间',
'type' => 'string',
],
'close_time' => [
'name' => '关闭时间',
'type' => 'string',
],
'add_time' => [
'name' => '创建时间',
'type' => 'string',
],
'upd_time' => [
'name' => '更新时间',
'type' => 'string',
],
// 评论
'user_is_comments_time' => [
'name' => '评论时间',
'type' => 'string',
],
],
);
?>
\ No newline at end of file
......@@ -49,6 +49,14 @@
</form>
<!-- form end -->
<!-- operation start -->
<div class="am-g m-t-15">
{{if !IsMobile()}}
<a href="{{$excel_url}}" class="am-btn am-btn-success am-btn-xs am-icon-file-excel-o am-radius"> 导出Excel</a>
{{/if}}
</div>
<!-- operation end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10 m-l-5">
<thead>
......
......@@ -186,6 +186,9 @@ class BuyService
$v['inventory'] = $goods_base['data']['inventory'];
$v['price'] = $goods_base['data']['price'];
$v['original_price'] = $goods_base['data']['original_price'];
$v['spec_weight'] = $goods_base['data']['weight'];
$v['spec_coding'] = $goods_base['data']['coding'];
$v['spec_barcode'] = $goods_base['data']['barcode'];
} else {
return $goods_base;
}
......@@ -366,6 +369,9 @@ class BuyService
$goods[0]['inventory'] = $goods_base['data']['inventory'];
$goods[0]['price'] = $goods_base['data']['price'];
$goods[0]['original_price'] = $goods_base['data']['original_price'];
$goods[0]['spec_weight'] = $goods_base['data']['weight'];
$goods[0]['spec_coding'] = $goods_base['data']['coding'];
$goods[0]['spec_barcode'] = $goods_base['data']['barcode'];
} else {
return $goods_base;
}
......@@ -630,6 +636,8 @@ class BuyService
$order['confirm_time'] = time();
}
//print_r($goods['data']);die;
// 开始事务
Db::startTrans();
......@@ -649,6 +657,9 @@ class BuyService
'original_price' => $v['original_price'],
'price' => $v['price'],
'spec' => empty($v['spec']) ? '' : json_encode($v['spec']),
'spec_weight' => $v['spec_weight'],
'spec_coding' => $v['spec_coding'],
'spec_barcode' => $v['spec_barcode'],
'buy_number' => $v['stock'],
'add_time' => time(),
];
......
......@@ -1752,7 +1752,7 @@ class GoodsService
// 获取基础值数据
if(!empty($base_id))
{
$base = Db::name('GoodsSpecBase')->field('id,goods_id,price,inventory,coding,barcode,original_price')->find($base_id);
$base = Db::name('GoodsSpecBase')->find($base_id);
if(!empty($base))
{
return DataReturn('操作成功', 0, $base);
......@@ -1761,7 +1761,7 @@ class GoodsService
}
}
} else {
$base = Db::name('GoodsSpecBase')->field('id,goods_id,price,inventory,coding,barcode,original_price')->where($where)->find();
$base = Db::name('GoodsSpecBase')->where($where)->find();
if(!empty($base))
{
return DataReturn('操作成功', 0, $base);
......
......@@ -11,7 +11,6 @@
namespace app\service;
use think\Db;
use app\service\GoodsService;
use app\service\PaymentService;
use app\service\BuyService;
use app\service\IntegralService;
......@@ -569,12 +568,12 @@ class OrderService
$n = isset($params['n']) ? intval($params['n']) : 10;
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
$is_items = isset($params['is_items']) ? intval($params['is_items']) : 1;
$is_excel_export = isset($params['is_excel_export']) ? intval($params['is_excel_export']) : 0;
// 获取订单
$data = Db::name('Order')->where($where)->limit($m, $n)->order($order_by)->select();
if(!empty($data))
{
$detail_field = 'id,goods_id,title,images,original_price,price,spec,buy_number';
$order_status_list = lang('common_order_user_status');
$order_pay_status = lang('common_order_pay_status');
foreach($data as &$v)
......@@ -638,19 +637,51 @@ class OrderService
// 订单详情
if($is_items == 1)
{
$items = Db::name('OrderDetail')->where(['order_id'=>$v['id']])->field($detail_field)->select();
$items = Db::name('OrderDetail')->where(['order_id'=>$v['id']])->select();
$excel_export_items = '';
if(!empty($items))
{
foreach($items as &$vs)
{
// 商品信息
$vs['images'] = ResourcesService::AttachmentPathViewHandle($vs['images']);
$vs['spec'] = empty($vs['spec']) ? null : json_decode($vs['spec'], true);
$vs['goods_url'] = MyUrl('index/goods/index', ['id'=>$vs['goods_id']]);
$vs['total_price'] = $vs['buy_number']*$vs['price'];
// 规格
if(!empty($vs['spec']))
{
$vs['spec'] = json_decode($vs['spec'], true);
$vs['spec_text'] = implode(',', array_map(function($spec)
{
return $spec['type'].':'.$spec['value'];
}, $vs['spec']));
} else {
$vs['spec'] = null;
$vs['spec_text'] = null;
}
// 是否excel导出
if($is_excel_export == 1)
{
$excel_export_items .= '名称:'.$vs['title']."\n";
$excel_export_items .= '图片:'.$vs['images']."\n";
$excel_export_items .= '地址:'.$vs['goods_url']."\n";
$excel_export_items .= '原价:'.$vs['original_price']."\n";
$excel_export_items .= '销售价:'.$vs['price']."\n";
$excel_export_items .= '总价:'.$vs['total_price']."\n";
$excel_export_items .= '规格:'.$vs['spec_text']."\n";
$excel_export_items .= '重量:'.$vs['spec_weight']."\n";
$excel_export_items .= '编码:'.$vs['spec_coding']."\n";
$excel_export_items .= '条形码:'.$vs['spec_barcode']."\n";
$excel_export_items .= '购买数量:'.$vs['buy_number']."\n";
$excel_export_items .= "\n";
}
}
}
$v['items'] = $items;
$v['items_count'] = count($items);
$v['excel_export_items'] = $excel_export_items;
// 描述
$v['describe'] = '共'.$v['items_count'].'件 合计:¥'.$v['total_price'].'元';
......
......@@ -67,7 +67,7 @@ class UserService
$v['gender_text'] = $common_gender_list[$v['gender']]['name'];
}
}
return $data;
return DataReturn('处理成功', 0, $data);
}
/**
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册