fix(src): 解决GROUP BY问题:只查询主键ID,避免ONLY_FULL_GROUP_BY错误
This commit is contained in:
@@ -381,33 +381,40 @@ class FenxiaoOrder extends BaseModel
|
||||
*/
|
||||
public function getFenxiaoOrderPage($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'order_id DESC')
|
||||
{
|
||||
$field = 'order_id,order_no,site_name,member_name,create_time,is_settlement,fenxiao_order_id';
|
||||
$list = model('fenxiao_order')->pageList($condition, $field, $order, $page, $page_size, 'fo', [], 'order_id');
|
||||
// 解决GROUP BY问题:只查询主键ID,避免ONLY_FULL_GROUP_BY错误
|
||||
$field = 'DISTINCT fo.order_id';
|
||||
$list = model('fenxiao_order')->pageList($condition, $field, $order, $page, $page_size, 'fo', [], 'fo.order_id');
|
||||
if (!empty($list[ 'list' ])) {
|
||||
$order_id_arr = [];
|
||||
foreach ($list['list'] as $k => $v)
|
||||
{
|
||||
$order_id_arr[] = $v['order_id'];
|
||||
}
|
||||
$order_ids = implode(',', $order_id_arr);
|
||||
$order_list = model('order')->getList([ [ 'order_id', 'in', $order_ids ] ], 'order_id,name,full_address,mobile,order_status_name');
|
||||
$order_goods_list = model('fenxiao_order')->getList([ [ 'order_id', 'in', $order_ids ] ]);
|
||||
foreach ($list[ 'list' ] as $k => $item) {
|
||||
foreach ($order_list as $k_order => $v_order)
|
||||
{
|
||||
if($item['order_id'] == $v_order['order_id'])
|
||||
{
|
||||
$list[ 'list' ][ $k ] = array_merge($list[ 'list' ][ $k ], $v_order);
|
||||
}
|
||||
}
|
||||
$list[ 'list' ][ $k ][ 'order_goods' ] = [];
|
||||
foreach ($order_goods_list as $k_order_goods => $v_order_goods)
|
||||
{
|
||||
if($item['order_id'] == $v_order_goods['order_id'])
|
||||
{
|
||||
$list[ 'list' ][ $k ][ 'order_goods' ][] = $v_order_goods;
|
||||
}
|
||||
if (!empty($order_id_arr)) {
|
||||
$order_ids = implode(',', $order_id_arr);
|
||||
|
||||
// 重新查询完整的分销订单数据
|
||||
$fenxiao_orders = model('fenxiao_order')->getList([ [ 'fo.order_id', 'in', $order_ids ] ],
|
||||
'fo.order_id, fo.order_no, fo.site_name, fo.member_name, fo.create_time, fo.is_settlement, fo.fenxiao_order_id',
|
||||
'', 'fo');
|
||||
|
||||
// 重新组织数据
|
||||
$new_list = [];
|
||||
foreach ($fenxiao_orders as $fenxiao_order) {
|
||||
$order_list = model('order')->getInfo([ [ 'order_id', '=', $fenxiao_order['order_id'] ] ],
|
||||
'name,full_address,mobile,order_status_name');
|
||||
$order_goods_list = model('fenxiao_order')->getList([ [ 'order_id', '=', $fenxiao_order['order_id'] ] ]);
|
||||
|
||||
// 合并数据
|
||||
$new_item = array_merge($fenxiao_order, [
|
||||
'address' => $order_list['full_address'] ?? '',
|
||||
'mobile' => $order_list['mobile'] ?? '',
|
||||
'order_status_name' => $order_list['order_status_name'] ?? '',
|
||||
'order_goods' => $order_goods_list
|
||||
]);
|
||||
$new_list[] = $new_item;
|
||||
}
|
||||
$list['list'] = $new_list;
|
||||
}
|
||||
}
|
||||
return $this->success($list);
|
||||
|
||||
@@ -121,7 +121,7 @@ class Model
|
||||
/**
|
||||
* 获取分页列表数据
|
||||
* @param array $condition
|
||||
* @param bool $field
|
||||
* @param bool | string $field
|
||||
* @param string $order
|
||||
* @param int $page
|
||||
* @param int $list_rows
|
||||
|
||||
Reference in New Issue
Block a user