sql查询
/**
* 获取订单配送留言板列表
*
* @param int $deliveryOrderId 配送订单ID
* @param int $orderId 订单ID
* @param int $size 每页显示数量
* @param int $current 当前页码
* @return void
*/
public function order_delivery_message_board_list($deliveryOrderId,$orderId=0,$size=10, $current=1)
{
list($uid, $organization_id, $group_id, $user_rs) = $this->get_user_info();
$header = $this->request->header(); //获取header信息
$os = isset($header['platform'])?$header['platform']:'';
var_dump($os);
$list = Db::name('order_delivery_message_board')
->alias('a')
->field("a.id,organization_id as organizationId,uname,role_id as roleId,role_name as roleName,order_id as orderId,order_type as orderType,delivery_order_id as deliveryOrderId,images,message_type as messageType,message,view_msg as viewMsg,create_time as createTime")
->where('a.organization_id', $organization_id)
->where(function($query)use($deliveryOrderId){
if($deliveryOrderId)
{
$query->where('a.delivery_order_id', '=', $deliveryOrderId);
}
})
->where(function($query)use($orderId){
if($orderId)
{
$query->where('a.order_id', '=', $orderId);
}
})
->where(function($query)use($orderNamesArr){
if(count($orderNamesArr)>0)
{
foreach ($orderNamesArr as $index => $orderName) {
$query->whereOr('order_name', 'like', '%' . $orderName . '%');
}
}
})
->where(' ( ( a.follow_uid IN (0,'.$uid.') and find_in_set(4, a.operation_roles)>0 ) or ( a.second_follow_uid='.$uid.' and find_in_set(4, a.second_operation_roles)>0 ) ) ')
->whereOr(function($query)use($transfer_order_ids){
if($transfer_order_ids)
{
$query->where('a.order_id', 'IN', $transfer_order_ids);
$query->where('a.follow_status', '>=', 10);
$query->where('b.status', '>=', 10);
}
})
->where(function($query)use($fTime, $keyword, $surgeryStartDate, $surgeryEndDate,$saleUid){
if($keyword)
{
$query->where('b.order_number|b.hospital_name|b.hospital_department_name|b.hospital_doctor_name|b.patient_name|b.surgerys|b.sale_user_name', 'LIKE', '%'.$keyword.'%');
}
if($surgeryStartDate && $surgeryEndDate)
{
$query->where('b.surgery_time', '>=', $surgeryStartDate.' 00:00:00');
$query->where('b.surgery_time', '<=', $surgeryEndDate.' 23:59:59');
}
if($saleUid)
{
$query->where('b.sale_uid', $saleUid);
}
if($fTime)
{
if(substr($fTime,0,1)=='m')
{
$num = substr($fTime, 1);
$query_start = date('Y-m-01 00:00:00');
$query_end = date('Y-m-'.date('t').' 23:59:59');
if($num>1)
{
$query_start = date('Y-m-01 00:00:00', strtotime('-'.($num-1).' month'));
$query_end = date('Y-m-d H:i:s');
}
$query->where('b.create_time', '>=', $query_start)->where('b.create_time', '<=', $query_end);
}
if(substr($fTime,0,1)=='y')
{
$num = substr($fTime, 1);
$query_start = date($num.'-01-01 00:00:00');
$query_end = date($num.'-12-31 23:59:59');
$query->where('b.create_time', '>=', $query_start)->where('b.create_time', '<=', $query_end);
}
}
})
->where('organization_id', 'in', [1,2])
->order('create_time asc')
// ->fetchSql(true) // 为true 打印sql,而不是真的执行,但不能配合paginate()使用
->paginate(['list_rows'=>intval($size), 'page'=>intval($current)]);
// var_dump($list);die;
$list = $list->toArray();
$list['total'] = intval($list['total']);
$list['last_page'] = intval($list['last_page']);
$data['records'] = $list['data'];
$data['total'] = $list['total'];
$data['size'] = intval($list['per_page']);
$data['current'] = $list['current_page'];
$data['pages'] = $list['last_page'];
$this->success('处理成功', $data);
}
}