|
|
@@ -1940,10 +1940,14 @@ class FinanceRepository extends BaseRepository
|
|
1940
|
1940
|
$query = Db::name('user_sign_fenrun')
|
|
1941
|
1941
|
->alias('uss')
|
|
1942
|
1942
|
->leftJoin('user u', 'u.uid=uss.uid')
|
|
1943
|
|
- ->leftJoin('store_order o', 'o.order_id=uss.order_id')
|
|
1944
|
|
- ->leftJoin('merchant m', 'm.mer_id=o.mer_id')
|
|
|
1943
|
+ ->leftJoin('store_order o', 'o.order_id = uss.order_id AND uss.order_type = 0')
|
|
|
1944
|
+ // 条件关联 order_merchant 表 (只在 uss.order_type = 10 时尝试关联 om)
|
|
|
1945
|
+ ->leftJoin('rrx_order_merchant om', 'om.id = uss.order_id AND uss.order_type = 10') // 注意这里的表名和字段
|
|
|
1946
|
+ ->leftJoin('merchant m', 'm.mer_id=u.mer_id')
|
|
1945
|
1947
|
->when(isset($mer_id) && $mer_id != '' && $mer_id != 0, function ($query) use ($mer_id) {
|
|
1946
|
|
- $query->where('o.mer_id', $mer_id);
|
|
|
1948
|
+ $query->where(function ($query) use($mer_id) {
|
|
|
1949
|
+ $query->where('o.mer_id', $mer_id)->whereOr('om.mer_id', $mer_id);
|
|
|
1950
|
+ });
|
|
1947
|
1951
|
})
|
|
1948
|
1952
|
->when(isset($params['uid']) && $params['uid'] != '', function ($query) use ($params) {
|
|
1949
|
1953
|
$query->where('uss.uid', $params['uid']);
|
|
|
@@ -1998,7 +2002,30 @@ class FinanceRepository extends BaseRepository
|
|
1998
|
2002
|
}
|
|
1999
|
2003
|
|
|
2000
|
2004
|
$date['list'] = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
|
|
2001
|
|
- ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,o.total_price,uss.status,uss.mark,u.score,m.mer_name')
|
|
|
2005
|
+ // ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,o.total_price,uss.status,uss.mark,u.score,m.mer_name')
|
|
|
2006
|
+ ->field([
|
|
|
2007
|
+ 'uss.id',
|
|
|
2008
|
+ 'uss.addtime',
|
|
|
2009
|
+ 'u.nickname',
|
|
|
2010
|
+ 'u.phone',
|
|
|
2011
|
+ 'uss.number',
|
|
|
2012
|
+ 'uss.status',
|
|
|
2013
|
+ 'uss.mark',
|
|
|
2014
|
+ 'u.score',
|
|
|
2015
|
+ 'm.mer_name', // 商户名称 (依赖 o 表是否存在)
|
|
|
2016
|
+ 'uss.order_type', // 也可以选择 uss.order_type 方便判断
|
|
|
2017
|
+ // 使用 CASE 表达式选择订单号
|
|
|
2018
|
+ // 当 uss.order_type = 0, 选取 o.order_sn
|
|
|
2019
|
+ // 当 uss.order_type = 10, 选取 om.out_trade_no
|
|
|
2020
|
+ // 否则为 NULL,并别名为 order_number
|
|
|
2021
|
+ Db::raw('CASE WHEN uss.order_type = 0 THEN o.order_sn WHEN uss.order_type = 10 THEN om.out_trade_no ELSE NULL END AS order_sn'),
|
|
|
2022
|
+
|
|
|
2023
|
+ // 使用 CASE 表达式选择订单金额
|
|
|
2024
|
+ // 当 uss.order_type = 0, 选取 o.total_price
|
|
|
2025
|
+ // 当 uss.order_type = 10, 选取 om.money
|
|
|
2026
|
+ // 否则为 NULL,并别名为 order_amount
|
|
|
2027
|
+ Db::raw('CASE WHEN uss.order_type = 0 THEN o.total_price WHEN uss.order_type = 10 THEN om.money ELSE NULL END AS total_price'),
|
|
|
2028
|
+ ])
|
|
2002
|
2029
|
->page($page, $limit)
|
|
2003
|
2030
|
->order('uss.id', 'desc')
|
|
2004
|
2031
|
->select()
|