|
@@ -11,8 +11,11 @@ use App\Admin;
|
11
|
11
|
use Illuminate\Http\Request;
|
12
|
12
|
use App\Templates;
|
13
|
13
|
use App\TemplatesSalers;
|
|
14
|
+use App\TemplatesSource;
|
|
15
|
+use App\TemplatesSourceSalers;
|
14
|
16
|
use App\AdminRole;
|
15
|
17
|
use App\TemplatesLog;
|
|
18
|
+use App\TemplatesBackimg;
|
16
|
19
|
use App\CustDetail;
|
17
|
20
|
use App\Order;
|
18
|
21
|
use App\Services\OssServices as oss;
|
|
@@ -147,7 +150,7 @@ class TemplateController extends Controller
|
147
|
150
|
*/
|
148
|
151
|
public function assignSalers(Request $request)
|
149
|
152
|
{
|
150
|
|
- $t_id = (int)$request->input('id');
|
|
153
|
+ $s_id = (int)$request->input('id');
|
151
|
154
|
$salers = $request->input('salers');
|
152
|
155
|
$assign_type = (int)$request->input('assign_type');
|
153
|
156
|
|
|
@@ -178,7 +181,7 @@ class TemplateController extends Controller
|
178
|
181
|
}
|
179
|
182
|
|
180
|
183
|
//如果已经有 ,删除未选中
|
181
|
|
- TemplatesSalers::where('t_id', $t_id)->whereNotIn('admin_id',$salers)->update(['is_del'=>1]);
|
|
184
|
+ TemplatesSourceSalers::where('s_id', $s_id)->whereNotIn('admin_id',$salers)->update(['is_del'=>1]);
|
182
|
185
|
foreach( $salers as $k=>$admin_id ){
|
183
|
186
|
if($assign_type == 1){
|
184
|
187
|
$weight = $weight_avg;
|
|
@@ -186,10 +189,10 @@ class TemplateController extends Controller
|
186
|
189
|
$weight = $weights[$k];
|
187
|
190
|
}
|
188
|
191
|
|
189
|
|
- TemplatesSalers::updateOrCreate( ['t_id'=>$t_id, 'admin_id'=>$admin_id], ['is_del'=>0, 'weight'=>$weight] );
|
|
192
|
+ TemplatesSourceSalers::updateOrCreate( ['s_id'=>$s_id, 'admin_id'=>$admin_id], ['is_del'=>0, 'weight'=>$weight] );
|
190
|
193
|
}
|
191
|
194
|
|
192
|
|
- exit('<script>parent.layer.msg("操作成功!",{icon:1,time:1000}); var index=parent.layer.getFrameIndex(window.name); parent.location.href="/admin/template/index";parent.layer.close(index);</script>');
|
|
195
|
+ exit('<script>parent.layer.msg("操作成功!",{icon:1,time:1000}); var index=parent.layer.getFrameIndex(window.name); parent.location.href="/admin/template/sourceindex";parent.layer.close(index);</script>');
|
193
|
196
|
}
|
194
|
197
|
|
195
|
198
|
/**
|
|
@@ -204,7 +207,7 @@ class TemplateController extends Controller
|
204
|
207
|
$query->whereNotNull('qrcode')->where('qrcode', '<>', '');
|
205
|
208
|
})->get();
|
206
|
209
|
$adminList = json_decode(json_encode($adminList), true);
|
207
|
|
- $assign_admin = TemplatesSalers::where('t_id', $id)->where('is_del', 0)->lists('weight', 'admin_id');
|
|
210
|
+ $assign_admin = TemplatesSourceSalers::where('s_id', $id)->where('is_del', 0)->lists('weight', 'admin_id');
|
208
|
211
|
|
209
|
212
|
$team_info = DB::table('teams')->lists('name', 'id');
|
210
|
213
|
foreach($adminList as &$admin){
|
|
@@ -396,8 +399,199 @@ class TemplateController extends Controller
|
396
|
399
|
$indexKey = ['day','admin_name','pv_count','long_count','fan_add','click_rate','change_rate','new_reply','new_consult','old_consult'];
|
397
|
400
|
$title = ['日期', '销售名', 'PV量', '长按次数', '加粉数', '点击率', '转化率', '新粉回复数', '新粉询价数', '老粉询价数'];
|
398
|
401
|
$filename = 'xiaoshoudaofen_'.date('Y-m-d_H').'.xlsx';
|
399
|
|
- return Order::export_excel($result, $filename, $indexKey, $title);
|
400
|
|
-
|
|
402
|
+ return Order::export_excel($result, $filename, $indexKey, $title);
|
|
403
|
+ }
|
|
404
|
+
|
|
405
|
+ /*
|
|
406
|
+ * @return \Illuminate\View\View
|
|
407
|
+ */
|
|
408
|
+ public function sourceindex(Request $request)
|
|
409
|
+ {
|
|
410
|
+ $page = (int)$request->input('page');
|
|
411
|
+ $pageSize = 20;
|
|
412
|
+ if($page<=0){
|
|
413
|
+ $page = 1;
|
|
414
|
+ }
|
|
415
|
+
|
|
416
|
+ $offset = ($page-1) * $pageSize;
|
|
417
|
+
|
|
418
|
+ $count = TemplatesSource::where('is_del',0)->count();
|
|
419
|
+ if ($count > 1) {
|
|
420
|
+ // 总页数
|
|
421
|
+ $pages = ceil($count/$pageSize);
|
|
422
|
+ }else{
|
|
423
|
+ // 总页数
|
|
424
|
+ $pages = 1;
|
|
425
|
+ }
|
|
426
|
+
|
|
427
|
+ $result = TemplatesSource::where('is_del',0)->orderBy('id', 'desc')->offset($offset)->limit($pageSize)->get();
|
|
428
|
+ $result = json_decode(json_encode($result),true);
|
|
429
|
+
|
|
430
|
+ foreach($result as $k=>&$v){
|
|
431
|
+ # 获取销售
|
|
432
|
+ $salers = TemplatesSourceSalers::select('templates_source_salers.*', 'admin.realname as admin_name')->leftJoin('admin', 'admin.id', '=', 'templates_source_salers.admin_id')->where('templates_source_salers.s_id', $v['id'])->where('templates_source_salers.is_del', 0)->get();
|
|
433
|
+ $v['salers'] = $salers;
|
|
434
|
+ $v['salers_k'] = count($salers);
|
|
435
|
+ # 获取模板图
|
|
436
|
+ $v['img'] = Templates::where('id', $v['t_id'])->pluck('img');
|
|
437
|
+ }
|
|
438
|
+
|
|
439
|
+ return view('template/sourceindex', ['result' =>$result,
|
|
440
|
+ 'page' =>$page,
|
|
441
|
+ 'count' =>$count,
|
|
442
|
+ 'pages' =>$pages,
|
|
443
|
+ ]);
|
|
444
|
+ }
|
|
445
|
+
|
|
446
|
+ /**
|
|
447
|
+ * @return \Illuminate\View\View
|
|
448
|
+ */
|
|
449
|
+ public function sourcecreate()
|
|
450
|
+ {
|
|
451
|
+ $templates = Templates::where('is_del', 0)->whereNotNull('url')->get();
|
|
452
|
+ $back_imgs = TemplatesBackimg::where('is_del', 0)->whereNotNull('back_img')->where('t_id', 1)->lists('back_img');
|
|
453
|
+ return view('template/sourcecreate', ['templates'=>$templates, 'back_imgs'=>$back_imgs]);
|
|
454
|
+ }
|
|
455
|
+
|
|
456
|
+ /**
|
|
457
|
+ * @param Request $request
|
|
458
|
+ * @return \Illuminate\Http\RedirectResponse
|
|
459
|
+ */
|
|
460
|
+ public function sourcestore(Request $request)
|
|
461
|
+ {
|
|
462
|
+ $this->validate($request, [
|
|
463
|
+ 't_id' => 'required',
|
|
464
|
+ 'back_img' => 'required',
|
|
465
|
+ ], [
|
|
466
|
+ 't_id.required' => '模板不能为空',
|
|
467
|
+ 'back_img.required' => '背景图不能为空',
|
|
468
|
+
|
|
469
|
+ ]);
|
|
470
|
+ $template = new TemplatesSource();
|
|
471
|
+ $template->t_id = intval($request->input('t_id'));
|
|
472
|
+ $template->note = trim($request->input('note'));
|
|
473
|
+
|
|
474
|
+ $template->back_img = trim($request->input('back_img'));
|
|
475
|
+ //图片上传 阿里云oss
|
|
476
|
+ /*
|
|
477
|
+ if ($request->hasFile('img') && $request->file('img')->isValid()) {
|
|
478
|
+ $file = $request->file('img');
|
|
479
|
+ $ossClient=new oss();
|
|
480
|
+ // 上传阿里云
|
|
481
|
+ $file = $ossClient->upload($file->getClientOriginalExtension(), $file->getRealPath(), 'upload/seafoodPic'.date("Y-m-d",time()).'/'.date('His'));
|
|
482
|
+ $img=$file['oss-request-url'];
|
|
483
|
+ $template->back_img=str_replace("kx-youhuiquan.oss-cn-beijing.aliyuncs.com","imgs.726p.com",$img);
|
|
484
|
+ #保存背景图
|
|
485
|
+ TemplatesBackimg::insert(['back_img'=>$template->back_img]);
|
|
486
|
+ }
|
|
487
|
+ */
|
|
488
|
+
|
|
489
|
+ if($template->save()){
|
|
490
|
+ //生成连接
|
|
491
|
+ $template->url = $this->createSourceUrl($template->t_id, $template->id);
|
|
492
|
+ $template->save();
|
|
493
|
+ }
|
|
494
|
+
|
|
495
|
+ return redirect('/admin/template/sourceindex')->with('info', '添加模板成功');
|
|
496
|
+ }
|
|
497
|
+
|
|
498
|
+ /**
|
|
499
|
+ * @param $id
|
|
500
|
+ * @return \Illuminate\View\View
|
|
501
|
+ */
|
|
502
|
+ public function sourceedit($id)
|
|
503
|
+ {
|
|
504
|
+ $templates = Templates::where('is_del', 0)->whereNotNull('url')->get();
|
|
505
|
+ $template = TemplatesSource::findOrFail($id);
|
|
506
|
+ $back_imgs = TemplatesBackimg::where('is_del', 0)->whereNotNull('back_img')->where('t_id', $template->t_id)->lists('back_img');
|
|
507
|
+ return view('template/sourceedit', ['template' => $template, 'id'=>$id, 'templates' => $templates, 'back_imgs'=>$back_imgs]);
|
|
508
|
+ }
|
|
509
|
+
|
|
510
|
+ /**
|
|
511
|
+ * @param Request $request
|
|
512
|
+ * @return \Illuminate\Http\RedirectResponse
|
|
513
|
+ */
|
|
514
|
+ public function sourceupdate(Request $request)
|
|
515
|
+ {
|
|
516
|
+ $id = (int)$request->input('id');
|
|
517
|
+ $this->validate($request, [
|
|
518
|
+ //'t_id' => 'required',
|
|
519
|
+ 'back_img' => 'required',
|
|
520
|
+ ], [
|
|
521
|
+ //'t_id.required' => '模板不能为空',
|
|
522
|
+ 'back_img.required' => '背景图不能为空',
|
|
523
|
+
|
|
524
|
+ ]);
|
|
525
|
+
|
|
526
|
+ $template = TemplatesSource::findOrFail($id);
|
|
527
|
+ /*
|
|
528
|
+ $t_id = (int)$request->input('t_id');
|
|
529
|
+ if( $template->t_id != $t_id ){
|
|
530
|
+ //模板更改,生成新连接
|
|
531
|
+ $template->t_id = $t_id;
|
|
532
|
+ $template->url = $this->createSourceUrl($t_id, $template->id);
|
|
533
|
+ }
|
|
534
|
+ */
|
|
535
|
+ $template->note = trim($request->input('note'));
|
|
536
|
+ $template->back_img = trim($request->input('back_img'));
|
|
537
|
+ //图片上传 阿里云oss
|
|
538
|
+ /*
|
|
539
|
+ if ($request->hasFile('img') && $request->file('img')->isValid()) {
|
|
540
|
+ $file = $request->file('img');
|
|
541
|
+ $ossClient=new oss();
|
|
542
|
+ // 上传阿里云
|
|
543
|
+ $file = $ossClient->upload($file->getClientOriginalExtension(), $file->getRealPath(), 'upload/seafoodPic'.date("Y-m-d",time()).'/'.date('His'));
|
|
544
|
+ $img=$file['oss-request-url'];
|
|
545
|
+ $template->back_img=str_replace("kx-youhuiquan.oss-cn-beijing.aliyuncs.com","imgs.726p.com",$img);
|
|
546
|
+ #保存背景图
|
|
547
|
+ TemplatesBackimg::insert(['back_img'=>$template->back_img]);
|
|
548
|
+ }
|
|
549
|
+ */
|
|
550
|
+
|
|
551
|
+ $template->save();
|
|
552
|
+ return redirect('/admin/template/sourceindex')->with('info', '修改成功');
|
|
553
|
+ }
|
|
554
|
+
|
|
555
|
+ public function createSourceUrl($t_id, $id){
|
|
556
|
+ $url = Templates::where('id', $t_id)->pluck('url');
|
|
557
|
+ if($url){
|
|
558
|
+ return $url . '?id='.$id;
|
|
559
|
+ }
|
|
560
|
+ return false;
|
|
561
|
+ }
|
|
562
|
+
|
|
563
|
+ public function uploadBack(Request $request){
|
|
564
|
+ $img = $request->input('img');
|
|
565
|
+ if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img, $res)) {
|
|
566
|
+ //获取图片类型
|
|
567
|
+ $type = $res[2];
|
|
568
|
+ // 临时文件
|
|
569
|
+ $tmpfname = tempnam("/image/", "FOO");
|
|
570
|
+ //保存图片
|
|
571
|
+ $handle = fopen($tmpfname, "w");
|
|
572
|
+ //阿里云oss上传的文件目录
|
|
573
|
+ if (fwrite($handle, base64_decode(str_replace($res[1], '', $img))))
|
|
574
|
+ {
|
|
575
|
+ $ossClient=new oss();
|
|
576
|
+ // 上传阿里云
|
|
577
|
+ $file = $ossClient->upload($type, $tmpfname, 'upload/seafoodPic'.date("Y-m-d",time()).'/'.date('His'));
|
|
578
|
+ fclose($handle);
|
|
579
|
+ unlink($tmpfname);
|
|
580
|
+ $img=$file['oss-request-url'];
|
|
581
|
+ $back_img=str_replace("kx-youhuiquan.oss-cn-beijing.aliyuncs.com","imgs.726p.com",$img);
|
|
582
|
+ #保存背景图
|
|
583
|
+ $t_id = (int)$request->input('t_id');
|
|
584
|
+ $res = TemplatesBackimg::insert(['back_img'=>$back_img, 't_id'=>$t_id]);
|
|
585
|
+ exit($back_img);
|
|
586
|
+ }
|
|
587
|
+
|
|
588
|
+ exit('0');
|
|
589
|
+ }
|
|
590
|
+ }
|
|
591
|
+
|
|
592
|
+ public function getTempback($t_id){
|
|
593
|
+ $result = TemplatesBackimg::where('t_id', $t_id)->lists('back_img');
|
|
594
|
+ exit(json_encode($result));
|
401
|
595
|
}
|
402
|
596
|
|
403
|
597
|
|