|
@@ -122,6 +122,8 @@ class OrderCostService{
|
122
|
122
|
'row' => $row,
|
123
|
123
|
'error' => $error
|
124
|
124
|
];
|
|
125
|
+
|
|
126
|
+ break;
|
125
|
127
|
}
|
126
|
128
|
}
|
127
|
129
|
|
|
@@ -170,144 +172,6 @@ class OrderCostService{
|
170
|
172
|
}
|
171
|
173
|
}
|
172
|
174
|
|
173
|
|
- /**
|
174
|
|
- * 订单导入
|
175
|
|
- */
|
176
|
|
- public static function orderCostImportNew($filePath) {
|
177
|
|
- try {
|
178
|
|
- ini_set("memory_limit",-1);
|
179
|
|
- ini_set('max_execution_time', 3600);
|
180
|
|
-
|
181
|
|
- $cacheMethod = \PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
|
182
|
|
- $cacheSettings = array( ' memoryCacheSize ' => '8MB');
|
183
|
|
- \PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
|
184
|
|
-
|
185
|
|
- $type = strtolower($filePath->getClientOriginalExtension());
|
186
|
|
- if( $type=='xlsx'||$type=='xls'){
|
187
|
|
- $objPHPExcel = \PHPExcel_IOFactory::load($filePath);
|
188
|
|
- }else{
|
189
|
|
- return [
|
190
|
|
- 'code' => 1102,
|
191
|
|
- 'info' => '',
|
192
|
|
- ];
|
193
|
|
- }
|
194
|
|
- $user = \Auth::user();
|
195
|
|
-
|
196
|
|
- # 查询所有媒体
|
197
|
|
- $mediaList = MediaConfig::query()->where('is_delete', 0)->get();
|
198
|
|
- $mediaNames = array_column($mediaList->toArray(), 'media_name');
|
199
|
|
- # 查询成本返点配置
|
200
|
|
- $costRate = CostTaxRate::query()->where('enable', 1)->get();
|
201
|
|
- $sheet = $objPHPExcel->getSheet(0); // 读取第一个工作表
|
202
|
|
- $highestRow = $sheet->getHighestRow(); // 取得总行数
|
203
|
|
-
|
204
|
|
- $data = [];
|
205
|
|
- $errorArr = [];
|
206
|
|
- $not_exists = [];
|
207
|
|
- $success = 0;
|
208
|
|
-
|
209
|
|
- for ($row = 2; $row <= $highestRow; $row ++) { // 行数是以第1行开始
|
210
|
|
- $item = [];
|
211
|
|
- $item['task_id'] = trim($sheet->getCell('D' . $row)->getFormattedValue());
|
212
|
|
- if( empty($item['task_id']) ){
|
213
|
|
- break;
|
214
|
|
- }
|
215
|
|
-
|
216
|
|
- #星图任务id特殊处理
|
217
|
|
- if(mb_substr($item['task_id'], 0, 2)=='星图'){
|
218
|
|
- preg_match_all('/\d{7,}/', $item['task_id'], $tres);
|
219
|
|
- if(isset($tres[0][1])){
|
220
|
|
- $item['task_id'] = $tres[0][1];
|
221
|
|
- }
|
222
|
|
- }
|
223
|
|
-
|
224
|
|
- $item['month'] = trim($sheet->getCell('K' . $row)->getValue());
|
225
|
|
- $item['internet_celebrity_name'] = trim($sheet->getCell('G' . $row)->getValue());
|
226
|
|
- $item['internet_celebrity_id'] = trim($sheet->getCell('H' . $row)->getFormattedValue());
|
227
|
|
- $item['if_public'] = trim($sheet->getCell('J' . $row)->getValue());
|
228
|
|
- $item['cost_type'] = trim($sheet->getCell('E' . $row)->getValue());
|
229
|
|
- $item['cost_money'] = trim($sheet->getCell('I' . $row)->getFormattedValue());
|
230
|
|
- $item['advertiser_account'] = trim($sheet->getCell('A' . $row)->getFormattedValue());
|
231
|
|
- $item['advertiser_id'] = trim($sheet->getCell('B' . $row)->getFormattedValue());
|
232
|
|
- $item['order_part_id'] = trim($sheet->getCell('F' . $row)->getFormattedValue()); //新加订单id
|
233
|
|
- $item['is_cash'] = trim($sheet->getCell('L' . $row)->getFormattedValue()); //现金还是授信
|
234
|
|
- $item['cost_sign_company'] = trim($sheet->getCell('N' . $row)->getFormattedValue()); //成本签约公司
|
235
|
|
- // 将任务id中的特殊字符过滤掉
|
236
|
|
- $item['task_id'] = preg_replace("/\s/u", '', $item['task_id']);
|
237
|
|
-
|
238
|
|
- $error = self::mjOrderVerify($item, $mediaNames, $mediaList, $costRate, $user);
|
239
|
|
-
|
240
|
|
- if($item['is_exists'] == 0){
|
241
|
|
- $task_id = $item['task_id']. '';
|
242
|
|
- if( !isset($not_exists[$task_id]) ){
|
243
|
|
- $not_exists[$task_id] = [
|
244
|
|
- 'task_id' => $item['task_id'],
|
245
|
|
- 'advertiser_account' => $item['advertiser_account'],
|
246
|
|
- 'advertiser_id' => $item['advertiser_id'],
|
247
|
|
- ];
|
248
|
|
- }
|
249
|
|
- } else {
|
250
|
|
- $success++;
|
251
|
|
- }
|
252
|
|
-
|
253
|
|
- $data[] = self::itemSqlFormat($item);
|
254
|
|
-
|
255
|
|
- if(!empty($error)){
|
256
|
|
- $errorArr[] = [
|
257
|
|
- 'row' => $row,
|
258
|
|
- 'error' => $error
|
259
|
|
- ];
|
260
|
|
- break;
|
261
|
|
- }
|
262
|
|
-
|
263
|
|
- Log::logInfo('成本数据记录', ['row' => $row, 'data' => $item], 'cost');
|
264
|
|
- }
|
265
|
|
-
|
266
|
|
-// Log::logInfo('成本数据记录', [$data], 'cost');
|
267
|
|
-
|
268
|
|
- if( !empty($errorArr) ){
|
269
|
|
- return [
|
270
|
|
- 'code' => 6001,
|
271
|
|
- 'info'=>$errorArr
|
272
|
|
- ];
|
273
|
|
- }
|
274
|
|
-
|
275
|
|
-// self::mjOrderStore($data);
|
276
|
|
-// $res = self::mjOrderInsert($data);
|
277
|
|
-
|
278
|
|
-// if($res){
|
279
|
|
- return [
|
280
|
|
- 'code' => 0,
|
281
|
|
- 'info' => '导入成功'.$success.'条',
|
282
|
|
- 'not_exists' => array_values($not_exists),
|
283
|
|
- ];
|
284
|
|
-// } else {
|
285
|
|
-// return [
|
286
|
|
-// 'code' => 1102,
|
287
|
|
-// 'info' => '操作失败',
|
288
|
|
-// ];
|
289
|
|
-// }
|
290
|
|
- } catch (\Exception $exception) {
|
291
|
|
- Log::logError('成本数据导入异常', [
|
292
|
|
- 'file' => $exception->getFile(),
|
293
|
|
- 'line' => $exception->getLine(),
|
294
|
|
- 'msg' => $exception->getMessage(),
|
295
|
|
- 'trace'=> $exception->getTraceAsString()
|
296
|
|
- ], 'orderCostImport');
|
297
|
|
-
|
298
|
|
- EmailQueue::rPush('成本数据导入异常', json_encode([
|
299
|
|
- 'file' => $exception->getFile(),
|
300
|
|
- 'line' => $exception->getLine(),
|
301
|
|
- 'msg' => $exception->getMessage(),
|
302
|
|
- 'trace'=> $exception->getTraceAsString()
|
303
|
|
- ]), ['song.shen@kuxuan-inc.com'], '消耗表系统');
|
304
|
|
- return [
|
305
|
|
- 'code' => 500,
|
306
|
|
- 'info' => '导入失败'
|
307
|
|
- ];
|
308
|
|
- }
|
309
|
|
- }
|
310
|
|
-
|
311
|
175
|
/*
|
312
|
176
|
* excel销售订单验证
|
313
|
177
|
*/
|