Index.php 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | [ WE CAN DO IT MORE SIMPLE ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2018-2020 rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: TABLE ME
  8. // +----------------------------------------------------------------------
  9. // | Date: 2020-08-31 20:43
  10. // +----------------------------------------------------------------------
  11. namespace app\system\controller\v1;
  12. use app\BaseController;
  13. use app\model\api\MemberDetail;
  14. use app\model\api\Order;
  15. use app\model\system\AllTotal;
  16. use app\model\system\OrderInfo;
  17. use app\model\system\SiteDetail;
  18. use app\model\system\Tx;
  19. use app\Request;
  20. use library\services\UtilService;
  21. use think\Cache;
  22. class Index extends BaseController
  23. {
  24. /**
  25. * 获取统计数据
  26. */
  27. public function getIndex(){
  28. $reids = \think\facade\Cache::store('redis');
  29. $postStr = $reids->get('system_totalv1');
  30. if(empty($postStr)) {
  31. //今日订单量
  32. $post['today_order_count'] = Order::where('status', '>', 0)->whereTime('pay_time', 'today')->count();
  33. //订单总量
  34. $post['all_order_count'] = Order::where('status', '>', 0)->count();
  35. //今日子订单量
  36. $post['today_t_order_count'] = OrderInfo::where('status', '>', 0)->whereTime('time', 'today')->count();
  37. //子订单总量
  38. $post['all_t_order_count'] = OrderInfo::where('status', '>', 0)->count();
  39. //今日销售额
  40. $post['today_money'] = Order::where('status', '>', 0)->whereTime('pay_time', 'today')->sum('all_price');
  41. //总销售额
  42. $post['all_money'] = Order::where('status', '>', 0)->sum('all_price');
  43. //新增会员
  44. $post['today_user'] = (new \app\model\system\Member)->whereDay('regtime', 'today')->count();
  45. //总会员
  46. $post['user_count'] = (new \app\model\system\Member)->count();
  47. //分站佣金
  48. $post['fz_total'] = (new SiteDetail)->where('type', 1)->sum('v');
  49. //今日分站佣金
  50. $post['today_fz_total'] = (new SiteDetail)->whereTime('time', 'today')->where('type', 1)->sum('v');
  51. //分站已提现
  52. $post['fz_tx'] = (new Tx)->where('type', 2)->sum('money');
  53. //分站今日已提现
  54. $post['today_fz_tx'] = (new Tx)->whereTime('time', 'today')->where('type', 2)->sum('money');
  55. //会员总佣金
  56. $post['user_commission'] = (new MemberDetail)->where('code', 'income')->sum('v');
  57. //今日佣金
  58. $post['today_user_commission'] = (new MemberDetail)->whereTime('time', 'today')->where('code', 'income')->sum('v');
  59. //会员已提现
  60. $post['user_tx'] = (new Tx)->where('type', 1)->sum('money');
  61. //会员今日已提现
  62. $post['today_user_tx'] = (new Tx)->whereTime('time', 'today')->where('type', 1)->sum('money');
  63. //未打单
  64. $post['no_order_count'] = Order::where('status', '=', 1)->count();
  65. //已打单
  66. $post['order_count'] = Order::where('status', '>', 1)->count();
  67. $reids->set('system_totalv1',serialize($post),60 * 5);
  68. } else {
  69. $post = unserialize($postStr);
  70. }
  71. return app('json')->success($post);
  72. }
  73. /**
  74. * site状态
  75. */
  76. public function getSite(Request $request){
  77. $pageCount = 10;
  78. [$page] = UtilService::getMore([
  79. ['page',1]
  80. ],$request,true);
  81. $siteData = (new \app\model\system\Site)
  82. ->field("s.name,s.sassid,s.money,(SELECT count(*) from table_order where sassid = s.sassid AND status > 0) as orderCount,
  83. (SELECT count(*) FROM table_member where sassid = s.sassid) as memberCount,
  84. (SELECT SUM(v) FROM table_recharge where sassid = s.sassid and status = 1) as recharge_count
  85. ")
  86. ->alias("s")
  87. ->order("orderCount","desc")
  88. ->paginate(['list_rows'=>$pageCount,'page'=>$page])
  89. ->toArray();
  90. $post = [];
  91. $post['pageSize'] = $pageCount;
  92. $post['pageCount'] = $siteData['total'];
  93. $post['data'] = (array)$siteData['data'];
  94. return app('json')->success($post);
  95. }
  96. public function getOrderTotal(Request $request){
  97. [$visitDate] = UtilService::getMore([
  98. ['visitDate','thirtyday']
  99. ],$request,true);
  100. $order = (new \app\model\system\Order());
  101. $orderInfo = (new OrderInfo());
  102. //30天
  103. $tAr = ['name'=>[],'order_money'=>[],'order_info_count'=>[]];
  104. if($visitDate == 'thirtyday') {
  105. for ($i = 30;$i>=0;$i--) {
  106. $time = date('Y-m-d',strtotime('-'.$i.' day'));
  107. $tAr['name'][] = $time;
  108. $tAr['order_money'][] = $order->whereDay('time',$time)->where('status','>',0)->sum('all_price');
  109. $tAr['order_info_count'][] = $orderInfo->where('status','>',0)->whereDay('time',$time)->count();
  110. }
  111. }
  112. return app('json')->success($tAr);
  113. }
  114. public function xh(Request $request){
  115. $pageCount = 14;
  116. [$page] = UtilService::getMore([
  117. ['page',1]
  118. ],$request,true);
  119. $siteData = (new AllTotal)
  120. ->order("time","desc")
  121. ->paginate(['list_rows'=>$pageCount,'page'=>$page])
  122. ->toArray();
  123. $post = [];
  124. $post['pageSize'] = $pageCount;
  125. $post['pageCount'] = $siteData['total'];
  126. $post['data'] = UtilService::getParam([
  127. 'khs_total',
  128. 'dr_total',
  129. 'ls_lv',
  130. 'dr_money',
  131. 'khs_money',
  132. 'dr_order',
  133. 'dr_avg',
  134. ['time','time',"date('Y-m-d',$1)"]
  135. ],$siteData['data']);
  136. return app('json')->success($post);
  137. }
  138. public function xhDetail(Request $request){
  139. $pageCount = 20;
  140. [$page,$date,$start,$end] = UtilService::getMore([
  141. ['page',1],
  142. ['date',''],
  143. ['start',''],
  144. ['end','']
  145. ],$request,true);
  146. if($date!=''){
  147. $time = strtotime($date);
  148. $endTime = $time + 3600 * 24;
  149. }else{
  150. $time = strtotime($start);
  151. $endTime = strtotime($end) + 3600 * 24;
  152. }
  153. $data = OrderInfo::alias("i")
  154. ->leftjoin('order o','o.id=i.o_id')
  155. ->leftjoin('member m','m.uid=i.uid')
  156. ->field('m.uid,m.mobile,m.weixin_name,m.nickname,m.label,sum(i.money) as money,count(i.id) as count')
  157. ->where('i.status', '>', 0)
  158. ->where('o.pay_time','between',[$time,$endTime])
  159. ->group('i.uid')
  160. ->order('money desc')
  161. ->paginate(['list_rows'=>$pageCount,'page'=>$page])
  162. ->toArray();
  163. $post = [];
  164. $post['pageSize'] = $pageCount;
  165. $post['pageCount'] = $data['total'];
  166. $post['data'] = UtilService::getParam([
  167. 'uid',
  168. 'mobile',
  169. 'weixin_name',
  170. 'nickname',
  171. 'money',
  172. 'count',
  173. 'label'
  174. ],$data['data']);
  175. return app('json')->success($post);
  176. }
  177. public function totalRecharge(Request $request){
  178. $recharge = new \app\model\system\Recharge;
  179. $tAr = ['label'=>[],'total'=>[]];
  180. for ($i = 30;$i>=0;$i--) {
  181. $time = date('Y-m-d',strtotime('-'.$i.' day'));
  182. $tAr['label'][] = $time;
  183. $sum = $recharge
  184. ->whereDay('time',$time)
  185. ->where('status',1)
  186. ->sum('v');
  187. $tAr['total'][] = $sum > 0 ? $sum : 0;
  188. }
  189. return app('json')->success($tAr);
  190. }
  191. public function totalUser(Request $request) {
  192. $Member = new \app\model\system\Member;
  193. $tAr = ['label'=>[],'total'=>[]];
  194. for ($i = 30;$i>=0;$i--) {
  195. $time = date('Y-m-d',strtotime('-'.$i.' day'));
  196. $tAr['label'][] = $time;
  197. $sum = $Member
  198. ->whereDay('regtime',$time)
  199. ->count();
  200. $tAr['total'][] = $sum > 0 ? $sum : 0;
  201. }
  202. return app('json')->success($tAr);
  203. }
  204. }