|
|
@@ -1844,42 +1844,34 @@ class FinanceRepository extends BaseRepository
|
|
1844
|
1844
|
*/
|
|
1845
|
1845
|
public function vr_list($mer_id = 0)
|
|
1846
|
1846
|
{
|
|
1847
|
|
- $page = input('page');
|
|
1848
|
|
- $limit = input('limit');
|
|
|
1847
|
+ $page = input('page', 1);
|
|
|
1848
|
+ $limit = input('limit', 20);
|
|
1849
|
1849
|
$where = request()->params(['date']);
|
|
1850
|
|
- $params = request()->params(['type', 'uid', 'pm', 'phone','status']);
|
|
|
1850
|
+ $params = request()->params(['type', 'uid', 'pm', 'phone', 'status']);
|
|
1851
|
1851
|
|
|
1852
|
|
- $date = [];
|
|
1853
|
|
- //商户ID
|
|
|
1852
|
+ // 1. 基础查询构建
|
|
1854
|
1853
|
$query = Db::name('user_sign_vr')
|
|
1855
|
|
- ->alias('uss')
|
|
1856
|
|
- ->leftJoin('user u', 'u.uid=uss.uid')
|
|
1857
|
|
- ->where('u.test_user', '<>', 1)
|
|
1858
|
|
- ->leftJoin('store_order o', 'o.order_id=uss.order_id')
|
|
1859
|
|
- ->where('o.test_order', '<>', 1)
|
|
1860
|
|
- ->when(isset($params['uid']) && $params['uid'] != '', function ($query) use ($params) {
|
|
1861
|
|
- $query->where('uss.uid', $params['uid']);
|
|
1862
|
|
- })
|
|
1863
|
|
- // ->when(isset($params['pm']) && $params['pm'] != '', function ($query) use ($params) {
|
|
1864
|
|
- // $query->where('uss.pm', $params['pm']);
|
|
1865
|
|
- // })
|
|
1866
|
|
- // ->when(isset($params['status']) && $params['status'] != '', function ($query) use ($params) {
|
|
1867
|
|
- // $query->where('uss.status', $params['status']);
|
|
1868
|
|
- // })
|
|
1869
|
|
- ->when(isset($params['phone']) && $params['phone'] != '', function ($query) use ($params) {
|
|
1870
|
|
- $query->whereLike('u.phone', '%' . $params['phone'] . '%');
|
|
1871
|
|
- })
|
|
1872
|
|
- ->when(isset($params['type']) && $params['type'] != '', function ($query) use ($params) {
|
|
1873
|
|
- $query->where('type', $params['type']);
|
|
1874
|
|
- });
|
|
|
1854
|
+ ->alias('uss')
|
|
|
1855
|
+ ->leftJoin('user u', 'u.uid = uss.uid')
|
|
|
1856
|
+ ->leftJoin('store_order o', 'o.order_id = uss.order_id')
|
|
|
1857
|
+ ->where(' AND u.test_user <> 1')
|
|
|
1858
|
+ ->when(isset($params['uid']) && $params['uid'] != '', function ($query) use ($params) {
|
|
|
1859
|
+ $query->where('uss.uid', $params['uid']);
|
|
|
1860
|
+ })
|
|
|
1861
|
+ ->when(isset($params['phone']) && $params['phone'] != '', function ($query) use ($params) {
|
|
|
1862
|
+ $query->whereLike('u.phone', '%' . $params['phone'] . '%');
|
|
|
1863
|
+ })
|
|
|
1864
|
+ ->when(isset($params['type']) && $params['type'] != '', function ($query) use ($params) {
|
|
|
1865
|
+ $query->where('uss.type', $params['type']);
|
|
|
1866
|
+ });
|
|
1875
|
1867
|
|
|
1876
|
1868
|
//导出数据
|
|
1877
|
1869
|
$is_excel = request()->param('is_excel', 0);
|
|
1878
|
1870
|
if($is_excel == 1){
|
|
1879
|
1871
|
$date['list'] = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
|
|
1880
|
|
- ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,uss.type,uss.mark,u.score')
|
|
1881
|
|
- ->order('uss.id', 'desc')
|
|
1882
|
|
- ->select();
|
|
|
1872
|
+ ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,uss.type,uss.mark,u.score')
|
|
|
1873
|
+ ->order('uss.id', 'desc')
|
|
|
1874
|
+ ->select();
|
|
1883
|
1875
|
$arr = [];
|
|
1884
|
1876
|
foreach ($date['list'] as $k=>$item){
|
|
1885
|
1877
|
switch ($item['type']) {
|
|
|
@@ -1905,50 +1897,78 @@ class FinanceRepository extends BaseRepository
|
|
1905
|
1897
|
], $arr, 'VR统计');
|
|
1906
|
1898
|
}
|
|
1907
|
1899
|
|
|
1908
|
|
- // $date['list'] = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2)
|
|
1909
|
|
- // ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,uss.type,uss.mark,u.score')
|
|
1910
|
|
- // ->page($page, $limit)
|
|
1911
|
|
- // ->order('uss.id', 'desc')
|
|
1912
|
|
- // ->select()
|
|
1913
|
|
- // ->each(function ($item) {
|
|
1914
|
|
- // $item['mark'] = $item['mark'];
|
|
1915
|
|
- // $item['addtime'] = date('Y-m-d H:i:s', $item['addtime']);
|
|
1916
|
|
- // return $item;
|
|
1917
|
|
- // });
|
|
1918
|
|
- // $date['count'] = $query->count();
|
|
1919
|
|
- // $date['statistics']['all'] = decimal2($query1->sum('number'));
|
|
1920
|
|
- // $date['statistics']['nclear'] = decimal2($query3->where('uss.type', 2)->sum('number'));
|
|
1921
|
|
- // $date['statistics']['transfervr'] = decimal2($query4->whereLike('uss.mark', '%消耗VR%')->sum('number'));
|
|
1922
|
|
- // $date['statistics']['acquirevr'] = decimal2($query5->whereLike('uss.mark', '%到账VR%')->sum('number'));
|
|
1923
|
|
- // $date['statistics']['transitionvr'] = decimal2($query6->whereLike('uss.mark', '%佣金转VR%')->sum('number'));
|
|
1924
|
|
- // $date['statistics']['jcshqvr'] = decimal2($query7->whereLike('uss.mark', '%购买精彩%')->sum('number'));
|
|
1925
|
|
- // $date['statistics']['hyzqvr'] = decimal2($query8->whereLike('uss.mark', '%购买会员%')->sum('number'));
|
|
1926
|
|
- // $date['statistics']['allbuyvr'] = decimal2($query9->whereLike('uss.mark', '%购买%')->sum('number'));
|
|
1927
|
|
- //支持时间筛选条件
|
|
1928
|
|
- $query = $this->date_where($query, $where['date'], 'uss.addtime', '-', 2);
|
|
1929
|
|
- $date['list'] = $query
|
|
1930
|
|
- ->field('uss.id,uss.addtime,u.nickname,u.phone,uss.number,o.order_sn,uss.type,uss.mark,u.score')
|
|
|
1900
|
+ // 4. 分页查询
|
|
|
1901
|
+ $date['list'] = $query->field([
|
|
|
1902
|
+ 'uss.id',
|
|
|
1903
|
+ 'uss.addtime',
|
|
|
1904
|
+ 'u.nickname',
|
|
|
1905
|
+ 'u.phone',
|
|
|
1906
|
+ 'uss.number',
|
|
|
1907
|
+ 'o.order_sn',
|
|
|
1908
|
+ 'uss.type',
|
|
|
1909
|
+ 'uss.mark',
|
|
|
1910
|
+ 'u.score'
|
|
|
1911
|
+ ])
|
|
1931
|
1912
|
->page($page, $limit)
|
|
1932
|
1913
|
->order('uss.id', 'desc')
|
|
1933
|
1914
|
->select()
|
|
1934
|
1915
|
->each(function ($item) {
|
|
1935
|
|
- $item['mark'] = $item['mark'];
|
|
1936
|
1916
|
$item['addtime'] = date('Y-m-d H:i:s', $item['addtime']);
|
|
1937
|
1917
|
return $item;
|
|
1938
|
1918
|
});
|
|
|
1919
|
+
|
|
|
1920
|
+ // 5. 统计信息提取到单独方法
|
|
1939
|
1921
|
$date['count'] = $query->count();
|
|
1940
|
|
- $date['statistics']['all'] = decimal2((clone $query)->sum('number'));
|
|
1941
|
|
- $date['statistics']['nclear'] = decimal2((clone $query)->where('uss.type', 2)->sum('number'));
|
|
1942
|
|
- $date['statistics']['transfervr'] = decimal2((clone $query)->whereLike('uss.mark', '%消耗VR%')->sum('number'));
|
|
1943
|
|
- $date['statistics']['acquirevr'] = decimal2((clone $query)->whereLike('uss.mark', '%到账VR%')->sum('number'));
|
|
1944
|
|
- $date['statistics']['transitionvr'] = decimal2((clone $query)->whereLike('uss.mark', '%佣金转VR%')->sum('number'));
|
|
1945
|
|
- $date['statistics']['jcshqvr'] = decimal2((clone $query)->whereLike('uss.mark', '%购买精彩%')->sum('number'));
|
|
1946
|
|
- $date['statistics']['hyzqvr'] = decimal2((clone $query)->whereLike('uss.mark', '%购买会员%')->sum('number'));
|
|
1947
|
|
- $date['statistics']['allbuyvr'] = decimal2((clone $query)->whereLike('uss.mark', '%购买%')->sum('number'));
|
|
1948
|
|
-
|
|
|
1922
|
+ $date['statistics'] = $this->getVrStatistics($query);
|
|
|
1923
|
+
|
|
1949
|
1924
|
return $date;
|
|
1950
|
1925
|
}
|
|
1951
|
1926
|
|
|
|
1927
|
+ /**
|
|
|
1928
|
+ * 获取VR统计信息
|
|
|
1929
|
+ */
|
|
|
1930
|
+ private function getVrStatistics($query)
|
|
|
1931
|
+ {
|
|
|
1932
|
+ $statistics = [];
|
|
|
1933
|
+ $conditions = [
|
|
|
1934
|
+ 'all' => [],
|
|
|
1935
|
+ 'nclear' => ['uss.type' => 2],
|
|
|
1936
|
+ 'transfervr' => function ($subQuery) {
|
|
|
1937
|
+ $subQuery->where('uss.type', '=', 2)
|
|
|
1938
|
+ ->where(function ($q) {
|
|
|
1939
|
+ $q->where('uss.mark', 'like', '%消耗%')
|
|
|
1940
|
+ ->whereOr('uss.mark', 'like', '%管理员调整vr%');
|
|
|
1941
|
+ });
|
|
|
1942
|
+ },
|
|
|
1943
|
+ 'acquirevr' => function ($subQuery) {
|
|
|
1944
|
+ $subQuery->where('uss.type', '=', 1)
|
|
|
1945
|
+ ->where(function ($q) {
|
|
|
1946
|
+ $q->where('uss.mark', 'like', '%到账%')
|
|
|
1947
|
+ ->whereOr('uss.mark', 'like', '%管理员调整vr%');
|
|
|
1948
|
+ });
|
|
|
1949
|
+ },
|
|
|
1950
|
+ 'transitionvr' => [['uss.mark', 'like', '%佣金转VR%']],
|
|
|
1951
|
+ 'jcshqvr' => [['uss.mark', 'like', '%购买精彩%']],
|
|
|
1952
|
+ 'hyzqvr' => [['uss.mark', 'like', '%购买会员%']],
|
|
|
1953
|
+ 'allbuyvr' => [['uss.mark', 'like', '%购买%']],
|
|
|
1954
|
+ ];
|
|
|
1955
|
+
|
|
|
1956
|
+ foreach ($conditions as $key => $condition) {
|
|
|
1957
|
+ $subQuery = clone $query;
|
|
|
1958
|
+ if (is_callable($condition)) {
|
|
|
1959
|
+ // 如果是闭包函数,直接调用
|
|
|
1960
|
+ $condition($subQuery);
|
|
|
1961
|
+ } elseif (!empty($condition)) {
|
|
|
1962
|
+ // 如果是数组条件,使用where
|
|
|
1963
|
+ $subQuery->where($condition);
|
|
|
1964
|
+ }
|
|
|
1965
|
+ $statistics[$key] = decimal2($subQuery->sum('uss.number'));
|
|
|
1966
|
+ }
|
|
|
1967
|
+
|
|
|
1968
|
+ return $statistics;
|
|
|
1969
|
+ }
|
|
|
1970
|
+
|
|
|
1971
|
+
|
|
1952
|
1972
|
|
|
1953
|
1973
|
|
|
1954
|
1974
|
|