1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php namespace Place_order\Manage\Lib;
- use Dever;
- use Dever\Helper\Secure;
- class Excel
- {
- # 导出资源订单
- public function outSource($data)
- {
- $result = $this->getTemplate();
- foreach ($data['body'] as $k => $v) {
- $detail = Dever::db('source_detail', 'place_order')->select(['order_id' => $v['id']]);
- if ($detail) {
- if ($v['address_id']) {
- $address = Dever::load('address', 'place_user')->getInfo($v['address_id'], $v['uid']);
- $v['address'] = $address['full'];
- } else {
- $user = Dever::db('info', 'place_user')->find($v['uid']);
- $v['address'] = $user['name'] . ',' . $user['mobile'];
- }
- $s = [0, $v['order_num'], $v['address']];
- foreach ($detail as $v1) {
- $s[0] = Secure::encode($v1['id']);
- $s[] = $v1['name'] . '-' . $v1['sku_name'];
- $s[] = $v1['num'];
- $result['body'][] = $s;
- }
- }
- }
- $result['file'] = '111';
- return $result;
- }
- # 导出一个模板出来
- public function getTemplate($out = false, $import = false)
- {
- $result = [];
- if ($import) {
- # 导入时的字段,一定要和下面的else里的对应
- $result['head'][0] = ['detail_code', 'order_num', 'address', 'sku', 'num', 'delivery_name', 'delivery_content'];
- } else {
- # 这是导入时的模板
- $delivery = Dever::db('delivery', 'sector')->columns(['type' => 1], 'name');
- $result['head'][0] = ['标识码', '订单号', '收货人', '规格', '数量', ['快递公司', $delivery], '快递单号'];
- }
- $result['body'] = [];
- if ($out) {
- return Dever::load('export', 'excel')->act($result['body'], $result['head'], '发货单导入模板');
- }
- return $result;
- }
- # 导入
- public function import_commit(){}
- public function import($db, $data)
- {
- if (empty($data['import'])) {
- Dever::error('请选择导入文件');
- }
- $file = $data['import'];
- # 当前登录的管理员id
- $muid = Dever::$data['muser']['id'];
- $mname = Dever::$data['muser']['name'];
- $mdesc = $mname . '在' . date('Y-m-d H:i:s') . '导入';
- $type = array_flip(Dever::db('info', 'place_source')->config['struct']['type']['value']);
- $result = $this->getTemplate(false, true);
- $file = Dever::load('view', 'upload')->local($file);
- $import = Dever::load('import', 'excel');
- $i = 0;
- foreach ($import->act($file, 0, 1, $result['head'][0]) as $row) {
- $code = Secure::decode($row['detail_code']);
- $detail = Dever::db('source_detail', 'place_order')->find(['id' => $code]);
- if (!$detail) {
- continue;
- }
- $order = Dever::db('source', 'place_order')->find(['id' => $detail['order_id']]);
- if (!$order) {
- continue;
- }
- if ($order['order_num'] != $row['order_num']) {
- continue;
- }
- Dever::load('source/delivery', 'place_order')->up($order['id'], $detail, $row['delivery_name'], $row['delivery_content'], 2, $muid);
-
- }
- return 'end';
- }
- }
|