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'; } }