BookOrderService.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. namespace App\Modules\Subscribe\Services;
  3. use App\Modules\Subscribe\Models\BookOrder;
  4. use DB;
  5. class BookOrderService
  6. {
  7. /**
  8. * 获取订购记录
  9. * @param $uid
  10. * @return mixed
  11. */
  12. public static function getRecord($uid, $page_size = 15)
  13. {
  14. return BookOrder::getRecord($uid, $page_size);
  15. }
  16. /**
  17. * 获取订购记录
  18. * @param $uid
  19. * @return mixed
  20. */
  21. public static function getRecordByuidBid($uid, $bid)
  22. {
  23. return BookOrder::getRecordByuidBid($uid, $bid);
  24. }
  25. /**
  26. * 是否订阅短片
  27. * @param $uid
  28. * @return mixed
  29. */
  30. public static function isHasBookOrder($uid){
  31. $result = BookOrder::where('uid',$uid)->select('id')->first();
  32. if($result){
  33. return true;
  34. }
  35. return false;
  36. }
  37. /**
  38. * 根据用户id获取用户的订购记录
  39. * @param $uid 用户id
  40. * @param string $startTime 开始时间
  41. * @param string $endTime 结束时间
  42. * @param bool $isAll 获取所有
  43. * @return mixed
  44. */
  45. public static function getRecordByUid($uid, $startTime = "", $endTime = "", $isAll = false)
  46. {
  47. return BookOrder::getRecordByUid($uid, $startTime, $endTime, $isAll);
  48. }
  49. static function save_book_order($data)
  50. {
  51. $insert_data = array();
  52. $insert_data['uid'] = $data['uid'];
  53. $insert_data['distribution_channel_id'] = $data['distribution_channel_id'];
  54. $insert_data['fee'] = $data['fee'];
  55. $insert_data['bid'] = $data['bid'];
  56. $insert_data['book_name'] = $data['book_name'];
  57. $insert_data['send_order_id'] = $data['send_order_id'];
  58. $insert_data['charge_balance'] = $data['charge_balance'];
  59. $insert_data['reward_balance'] = $data['reward_balance'];
  60. return BookOrder::save_book_order($insert_data);
  61. }
  62. /**
  63. * data = [uid,fee,u,distribution_channel_id,bid,book_name,send_order_id]
  64. * 单本订购并扣余额
  65. * @param $uid
  66. * @return mixed
  67. */
  68. public static function addOrderRecodeAndDecrUserBalance(array $data, $uid)
  69. {
  70. return BookOrder::addOrderRecodeAndDecrUserBalance($data, $uid);
  71. }
  72. public static function getBookTotalConsume($uid)
  73. {
  74. return BookOrder::where('uid', $uid)->sum('fee');
  75. }
  76. /**
  77. * 根据用户id获取用户的一段时间内的消费总额
  78. * @param $uid 用户id
  79. * @param string $startTime 开始时间
  80. * @param string $endTime 结束时间
  81. * @return mixed
  82. */
  83. public static function getBookTotalConsumeByUserIdAndTime($uid, $startTime = "", $endTime = "")
  84. {
  85. return BookOrder::getBookTotalConsumeByUserIdAndTime($uid, $startTime, $endTime);
  86. }
  87. /**
  88. * @param $send_order_id
  89. * @param $start_time
  90. * @param $end_time
  91. * @return array ['total'=>133,'charge_balance'=>45,'reward_balance'=>$reward_balance]
  92. */
  93. public static function getSendorderTotal($send_order_id, $start_time, $end_time)
  94. {
  95. //$charge_balance = BookOrder::where('send_order_id', $send_order_id)->whereBetween('created_at', [$start_time, $end_time])->sum('charge_balance');
  96. //$reward_balance = BookOrder::where('send_order_id', $send_order_id)->whereBetween('created_at', [$start_time, $end_time])->sum('reward_balance');
  97. //$fee = BookOrder::where('send_order_id', $send_order_id)->whereBetween('created_at', [$start_time, $end_time])->sum('fee');
  98. $res = BookOrder::select(DB::raw('sum(charge_balance) as charge_balance_sum,sum(reward_balance) as reward_balance_sum,sum(fee) as fee_sum'))
  99. ->where('send_order_id', $send_order_id)
  100. ->whereBetween('created_at', [$start_time, $end_time])
  101. ->first();
  102. return [
  103. 'total' => $res->fee_sum,
  104. 'charge_balance' => $res->charge_balance_sum,
  105. 'reward_balance' => $res->reward_balance_sum
  106. ];
  107. //return ['total' => $fee, 'charge_balance' => $charge_balance, 'reward_balance' => $reward_balance];
  108. }
  109. public static function getOrderInfos($id_begin, $id_end)
  110. {
  111. return BookOrder::getOrderInfos($id_begin, $id_end);
  112. }
  113. public static function getCount()
  114. {
  115. return BookOrder::getOrderInfoCount();
  116. }
  117. }