SendOrderService.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: hp
  5. * Date: 2017/12/2
  6. * Time: 15:36
  7. */
  8. namespace App\Modules\SendOrder\Services;
  9. use App\Modules\SendOrder\Models\QappUserSendOrderId;
  10. use App\Modules\SendOrder\Models\QuickAppSendOrder;
  11. use App\Modules\SendOrder\Models\SendOrder;
  12. use App\Modules\User\Services\UserService;
  13. use DB;
  14. class SendOrderService
  15. {
  16. public static function getSendOrderStatic(int $id)
  17. {
  18. return SendOrder::find($id);
  19. }
  20. public function getQuickAppSendOrder(int $send_order_id)
  21. {
  22. return QuickAppSendOrder::where('send_order_id', $send_order_id)->first();
  23. }
  24. /**
  25. * 根据id获取信息
  26. * @param $id
  27. * @return mixed
  28. */
  29. static function getById($id)
  30. {
  31. return SendOrder::find($id);
  32. }
  33. /*
  34. * 更新派单时间
  35. */
  36. static function updateSendOrderTime($send_order_id)
  37. {
  38. return SendOrder::where('id', $send_order_id)->update(['send_time' => date('Y-m-d H:i:s')]);
  39. }
  40. /**
  41. * 废弃不用
  42. * 记录用户派单id
  43. * @param $uid
  44. * @param $send_order_id
  45. */
  46. static function recordUserSendOrder_($uid,$send_order_id){
  47. $info = QappUserSendOrderId::where('uid',$uid)->select('send_order_id')->orderBy('id','desc')->first();
  48. if($info && $info->send_order_id == $send_order_id){
  49. return ;
  50. }
  51. QappUserSendOrderId::create([
  52. 'uid'=>$uid,'send_order_id'=>$send_order_id
  53. ]);
  54. }
  55. /*
  56. 注册派单id:第一次的环境派单id,在用户表里面,以后不再更新
  57. 环境派单id:
  58. 1)有30天保护期,保护期到期后,更新为下个环境派单id(针对uid级别的保护)
  59. 2)保护期间,用户点击派单,表记录还存在,只是是否生效为否
  60. 3)派单id生效期间,后面重复点击,是否生效为否,以第一次的点击时间为准,只是为了不再更新到期时间
  61. $send_order_id = Redis::hget('book_read:' . $uid, 'send_order_id');
  62. 这个字段也根据保护期间逻辑来,如果保护期内,则点击新的不更新这个字段
  63. */
  64. static function recordUserSendOrder($uid,$send_order_id){
  65. /*$info = QappUserSendOrderId::where('uid',$uid)
  66. ->where('end_time','>',date('Y-m-d H:i:s'))
  67. ->orderBy('id')->first();*/
  68. $redis_time = UserService::getUserSendOrderTime($uid);
  69. if($redis_time && ($redis_time+30*86400) > time()){
  70. return false;
  71. }
  72. $info = DB::table('qapp_user_valid_send_order_id')->where('uid',$uid)
  73. ->where('end_time','>',date('Y-m-d H:i:s'))
  74. ->where('is_valid',1)
  75. ->orderBy('id')->first();
  76. if($info){
  77. /*QappUserSendOrderId::create([
  78. 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s'),'is_valid'=>0
  79. ]);*/
  80. return false;
  81. }
  82. /*QappUserSendOrderId::create([
  83. 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1
  84. ]);*/
  85. try{
  86. DB::table('qapp_user_valid_send_order_id')->insert([
  87. 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1,
  88. 'created_at'=>date('Y-m-d H:i:s'),'updated_at'=>date('Y-m-d H:i:s')
  89. ]);
  90. }catch (\Exception $e){
  91. }
  92. return true;
  93. }
  94. }