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')
|
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';
|
// 解决GROUP BY问题:只查询主键ID,避免ONLY_FULL_GROUP_BY错误
|
||||||
$list = model('fenxiao_order')->pageList($condition, $field, $order, $page, $page_size, 'fo', [], 'order_id');
|
$field = 'DISTINCT fo.order_id';
|
||||||
|
$list = model('fenxiao_order')->pageList($condition, $field, $order, $page, $page_size, 'fo', [], 'fo.order_id');
|
||||||
if (!empty($list[ 'list' ])) {
|
if (!empty($list[ 'list' ])) {
|
||||||
$order_id_arr = [];
|
$order_id_arr = [];
|
||||||
foreach ($list['list'] as $k => $v)
|
foreach ($list['list'] as $k => $v)
|
||||||
{
|
{
|
||||||
$order_id_arr[] = $v['order_id'];
|
$order_id_arr[] = $v['order_id'];
|
||||||
}
|
}
|
||||||
|
if (!empty($order_id_arr)) {
|
||||||
$order_ids = implode(',', $order_id_arr);
|
$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) {
|
$fenxiao_orders = model('fenxiao_order')->getList([ [ 'fo.order_id', 'in', $order_ids ] ],
|
||||||
foreach ($order_list as $k_order => $v_order)
|
'fo.order_id, fo.order_no, fo.site_name, fo.member_name, fo.create_time, fo.is_settlement, fo.fenxiao_order_id',
|
||||||
{
|
'', 'fo');
|
||||||
if($item['order_id'] == $v_order['order_id'])
|
|
||||||
{
|
// 重新组织数据
|
||||||
$list[ 'list' ][ $k ] = array_merge($list[ 'list' ][ $k ], $v_order);
|
$new_list = [];
|
||||||
}
|
foreach ($fenxiao_orders as $fenxiao_order) {
|
||||||
}
|
$order_list = model('order')->getInfo([ [ 'order_id', '=', $fenxiao_order['order_id'] ] ],
|
||||||
$list[ 'list' ][ $k ][ 'order_goods' ] = [];
|
'name,full_address,mobile,order_status_name');
|
||||||
foreach ($order_goods_list as $k_order_goods => $v_order_goods)
|
$order_goods_list = model('fenxiao_order')->getList([ [ 'order_id', '=', $fenxiao_order['order_id'] ] ]);
|
||||||
{
|
|
||||||
if($item['order_id'] == $v_order_goods['order_id'])
|
// 合并数据
|
||||||
{
|
$new_item = array_merge($fenxiao_order, [
|
||||||
$list[ 'list' ][ $k ][ 'order_goods' ][] = $v_order_goods;
|
'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);
|
return $this->success($list);
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ class Model
|
|||||||
/**
|
/**
|
||||||
* 获取分页列表数据
|
* 获取分页列表数据
|
||||||
* @param array $condition
|
* @param array $condition
|
||||||
* @param bool $field
|
* @param bool | string $field
|
||||||
* @param string $order
|
* @param string $order
|
||||||
* @param int $page
|
* @param int $page
|
||||||
* @param int $list_rows
|
* @param int $list_rows
|
||||||
|
|||||||
Reference in New Issue
Block a user