57 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php namespace Gdoo\Customer\Controllers;
 | |
| 
 | |
| use DB;
 | |
| use Request;
 | |
| 
 | |
| use Gdoo\Index\Controllers\DefaultController;
 | |
| 
 | |
| class WidgetController extends DefaultController
 | |
| {
 | |
|     public $permission = ['birthday'];
 | |
| 
 | |
|     // 生日提醒
 | |
|     public function birthday()
 | |
|     {
 | |
|         if (Request::method() == 'POST') {
 | |
| 
 | |
|             $model = DB::table('customer');
 | |
|             $region = regionCustomer();
 | |
|             if ($region['authorise']) {
 | |
|                 foreach ($region['whereIn'] as $key => $where) {
 | |
|                     $model->whereIn($key, $where);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             if ($this->dbType == 'sqlsrv') {
 | |
|                 $model->whereRaw('
 | |
|                     (datediff(dd, getdate(), dateadd(year, datediff(year, head_birthday, getdate()), head_birthday)) between 0 and 7)
 | |
|                     OR
 | |
|                     (datediff(dd, getdate(), dateadd(year, datediff(year, head_birthday, getdate())+1, head_birthday)) between 0 and 7)')
 | |
|                 ->selectRaw('id, code, name, head_name, head_phone, head_birthday')
 | |
|                 ->get();
 | |
|             } else if($this->dbType == 'pgsql') {
 | |
|                 $model->whereRaw("
 | |
|                     (concat(date_part('year', current_date), '-', date_part('month', head_birthday), '-', date_part('day', head_birthday))::date - current_date between 0 and 7) 
 | |
|                     OR
 | |
|                     (concat(date_part('year', current_date) + 1, '-', date_part('month', head_birthday), '-', date_part('day', head_birthday))::date - current_date between 0 and 7)")
 | |
|                 ->selectRaw("id, code, name, head_name, head_phone, concat(date_part('year', current_date), '-', date_part('month', head_birthday), '-', date_part('day', head_birthday))::date as head_birthday");
 | |
|             }
 | |
| 
 | |
|             else if($this->dbType == 'mysql') {
 | |
|                 $model->whereRaw("
 | |
|                     (concat(year(now()), DATE_FORMAT(birthday,'-%m-%d')) BETWEEN DATE_FORMAT(now(),'%Y-%m-%d') AND DATE_FORMAT(DATE_ADD(now(), interval 10 day),'%Y-%m-%d'))
 | |
|                     OR 
 | |
|                     (concat(year(now()) + 1, DATE_FORMAT(birthday,'-%m-%d')) BETWEEN DATE_FORMAT(now(),'%Y-%m-%d') AND DATE_FORMAT(DATE_ADD(now(), interval 10 day),'%Y-%m-%d'))")
 | |
|                 ->selectRaw("id, code, name, head_name, head_phone, concat(year(now()), DATE_FORMAT(birthday,'-%m-%d')) as head_birthday");
 | |
|             }
 | |
| 
 | |
|             $rows = $model->get();
 | |
| 
 | |
|             $json['total'] = sizeof($rows);
 | |
|             $json['data'] = $rows;
 | |
|             return $json;
 | |
|         }
 | |
|         return $this->render();
 | |
|     }
 | |
| }
 |