查询
if ($request->filled('keyword')) {
$store_ids = Store::where([
'business_no' => $this->business_no,
['store_name', 'LIKE', '%' . $request->keyword . '%'],
])->pluck('id')->toArray();
$guide_ids = StoreGuide::where([
'business_no' => $this->business_no,
['guide_name', 'LIKE', '%' . $request->keyword . '%'],
])->pluck('id')->toArray();
$customer_ids = Customer::where([
'business_no' => $this->business_no,
])->where(function ($query) use ($request) {
$query->orWhere('customer_name', 'LIKE', '%' . $request->keyword . '%');
$query->orWhere('phone', 'LIKE', '%' . $request->keyword . '%');
})->pluck('id')->toArray();
$query->where(function ($query) use ($request, $store_ids, $guide_ids, $customer_ids) {
$query->orWhere('order_no', 'LIKE', '%' . $request->keyword . '%');
if (!empty($store_ids)) {
$query->orWhereIn('store_id', $store_ids);
}
if (!empty($guide_ids)) {
$query->orWhereIn('guide_id', $guide_ids);
}
if (!empty($customer_ids)) {
$query->orWhereIn('customer_id', $customer_ids);
}
});
}
$query->with([
'customer' => function ($query) {
$query->select('id', 'customer_name', 'nickname', 'phone', 'head_image');
},
'guide' => function ($query) {
$query->select('id', 'guide_name', 'guide_nickname', 'phone');
},
'goods' => function ($query) {
$query->select('order_no', \DB::raw('Sum(number) as number'))->groupBy('order_no');
},
'store' => function ($query) {
$query->select('id', 'store_name', 'store_no');
},
'activity' => function ($query) {
$query->select('id', 'activity_no');
},
]);
$query->select($fields)->orderBy('order_time','desc');
$orders = $query->paginate($page_size)->toArray();
$query = Customers::query()->where([
'business_no' => $this->business_no,
'is_delete' => 0,
]);
$query->whereHas('guide', function ($query) use ($request) {
$query->where('guide_id', $request->guide_id);
});
查询某个月份生日的会员:sql语句
// 查询某个月份生日的会员:sql语句
SELECT * FROM `user_detail` where FROM_UNIXTIME(UNIX_TIMESTAMP(birthday), "%m")=10 ORDER BY ctime DESC
laravel 数据 导出 到excel
- 注意:3.1版本的excel导出没有create方法了,需要用旧版本2.1或以下 $ composer require maatwebsite/excel ~2.1
先安装完成excel扩展,然后在config里面添加两条excel的配置和别名
/**
* 测试导出到excel功能
*/
public function exportToExcel(){
$cellData = [
['学号','姓名','成绩'],
['10001','AAAAA','99'],
['10002','BBBBB','92'],
['10003','CCCCC','95'],
['10004','DDDDD','89'],
['10005','EEEEE','96'],
];
// Excel::create('users',function($excel) use ($cellData){
// $excel->sheet('score', function($sheet) use ($cellData){
// $sheet->rows($cellData);
// });
// })->export('csv');
// 导出 Excel 并能直接在浏览器下载
$export_file_name = 'student';
// Excel::create($export_file_name, function ($excel) {
// $excel->sheet('score', function ($sheet) {
// $sheet->appendRow(['data 1', 'data 2']);
// $sheet->appendRow(['data 3', 'data 4']);
// $sheet->appendRow(['data 5', 'data 6']);
// });
// })->download('csv');
// 导出 Excel 并存储到指定目录
Excel::create($export_file_name, function ($excel) use ($cellData) {
$excel->sheet('score', function ($sheet) use ($cellData){
$sheet->rows($cellData);
});
})->store('csv', 'D:/');
}
laravel 合成图片
/**
* 合成图片
* 将导购头像和二维码,以及背景图合成成一个海报图
*/
public function composePoster(Request $request){
$guide = $this->guide;
$store_name = $guide['store_name'];
$business_no = $this->business_no;
// 圆形头像
$client = new \GuzzleHttp\Client();
$avatarResponse = $client->get($guide['head_image']);
$avatar = \Image::make($avatarResponse->getBody()->getContents());
$img =Image::make($avatar)->resize(148,148);
$new = Image::canvas(148,148,'#fff');
$r=$img->width() /2;
for($x=0;$x<$img->width();$x++) {
for($y=0;$y<$img->height();$y++) {
$c=$img->pickColor($x,$y,'array'); // 取色
if(((($x-$r) * ($x-$r) + ($y-$r) * ($y-$r)) < ($r*$r))) {
$new->pixel($c,$x,$y); // 根据每个像素点的颜色画图
}
}
}
$avatar = $new ;
$file_path = 'https://crm.pinkr.com/'.urlencode($guide['qrcode']); // 二维码
$qrcode = Image::make($file_path)->fit(450,450);
$img_bg = Image::make(public_path('poster-bg.jpg'));
$img_bg->insert($avatar,'top-center',0,160);
$img_bg->insert($qrcode,'bottom-center',0,400);
$img_bg->text($guide['guide_name'], 380, 350, function($font) {
$font->file(public_path('SimHei.ttf'));
$font->size(25);
$font->color('#000');
$font->align('center');
$font->valign('top');
});
$img_bg->text('- '.$store_name.' -', 380, 425, function($font) {
$font->file(public_path('SimHei.ttf'));
$font->size(20);
$font->color('#fff');
$font->align('center');
$font->valign('top');
});
// 线上
$img_bg->save(public_path('/poster/poster_'.$guide['guide_name'].'.jpg'));
$res = 'https://crm.xxx.com/poster/poster_'.$guide['guide_name'].'.jpg';
return $this->returnJsonMsg(200,$res);
// 本地
// $img_bg->save(public_path('poster_'.$guide['guide_name'].'.jpg'));
// return $img_bg->response('jpg');
}
网友评论