BusinessChannelDayStatService.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tandunzhao
  5. * Date: 2017/12/26
  6. * Time: 下午4:05
  7. */
  8. namespace App\Modules\Channel\Services;
  9. use App\Modules\Channel\Models\BusinessChannelDayStat;
  10. use DB;
  11. class BusinessChannelDayStatService
  12. {
  13. /**
  14. * 创建商务渠道日报表数据
  15. * @param $params [distribution_channel_id, date, register_user_num, send_order_num]
  16. * @return mixed
  17. */
  18. public static function createBusinessChannelDayStat($params) {
  19. $data = BusinessChannelDayStat::create($params);
  20. return $data;
  21. }
  22. /**
  23. * 商务渠道数据日统计列表
  24. * @param $params[]
  25. * channel_id:渠道ID 可选
  26. * channel_name:渠道名称 可选
  27. * search_name: 搜索名称
  28. * start_date:开始时间 可选
  29. * end_date:结束时间 可选
  30. * start_dateA:统计开始时间 可选
  31. * end_dateA:统计结束时间 可选
  32. * is_enabled: 是否开通 0:未审核; 1:审核通过
  33. * distribution_manages_id: 管理员 可选
  34. * @param $isAll
  35. * @return mixed
  36. */
  37. public static function getList($params, $isAll = '') {
  38. $data = BusinessChannelDayStat::getList($params, $isAll);
  39. return $data;
  40. }
  41. public static function getAutoForceSubUserNum($channel_id,$start,$end){
  42. return DB::table('force_subscribe_users')
  43. ->where('distribution_channel_id',$channel_id)
  44. ->whereBetween('created_at',[$start,$end])
  45. ->where('official_account_id','<>',1)
  46. ->where('is_subscribed',1)
  47. ->count();
  48. }
  49. public static function getSelfForceSubUserNum($channel_id,$start,$end){
  50. return DB::table('force_subscribe_users')
  51. ->where('distribution_channel_id',$channel_id)
  52. ->whereBetween('created_at',[$start,$end])
  53. ->where('official_account_id','=',1)
  54. ->where('is_subscribed',1)
  55. ->count();
  56. }
  57. public static function getChannelSubscribeNum($channelId,$start,$end){
  58. $users = DB::table('users')
  59. ->where('distribution_channel_id',$channelId)
  60. ->get();
  61. $user_num = 0;
  62. foreach ($users as $user){
  63. $uid = ($user->id)%512;
  64. $chapter_orders = DB::connect('chapter_order_mysql')
  65. ->table('chapter_orders'.$uid)
  66. ->where('uid',$user->id)
  67. ->whereBetween('created_at',[$start,$end])
  68. ->first();
  69. if($chapter_orders){
  70. $user_num++;
  71. continue;
  72. }
  73. $book_orders = DB::table('book_orders')
  74. ->where('uid',$user->id)
  75. ->whereBetween('created_at',[$start,$end])
  76. ->first();
  77. if($book_orders){
  78. $user_num++;
  79. }
  80. }
  81. return $user_num;
  82. }
  83. public static function getChannelSubscribeRecharge($channelId,$start,$end){
  84. $users = DB::table('users')
  85. ->where('distribution_channel_id',$channelId)
  86. ->get();
  87. $fee = 0;
  88. foreach ($users as $user){
  89. $uid = ($user->id)%512;
  90. $chapter_orders = DB::connect('chapter_order_mysql')
  91. ->table('chapter_orders'.$uid)
  92. ->where('uid',$user->id)
  93. ->whereBetween('created_at',[$start,$end])
  94. ->sum('fee');
  95. $book_orders = DB::table('book_orders')
  96. ->where('uid',$user->id)
  97. ->whereBetween('created_at',[$start,$end])
  98. ->sum('fee');
  99. $fee=$fee+$chapter_orders+$book_orders;
  100. }
  101. return $fee;
  102. }
  103. }