SendOrderService.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. 注册派单id:第一次的环境派单id,在用户表里面,以后不再更新
  42. 环境派单id:
  43. 1)有30天保护期,保护期到期后,更新为下个环境派单id(针对uid级别的保护)
  44. 2)保护期间,用户点击派单,表记录还存在,只是是否生效为否
  45. 3)派单id生效期间,后面重复点击,是否生效为否,以第一次的点击时间为准,只是为了不再更新到期时间
  46. $send_order_id = Redis::hget('book_read:' . $uid, 'send_order_id');
  47. 这个字段也根据保护期间逻辑来,如果保护期内,则点击新的不更新这个字段
  48. */
  49. static function recordUserSendOrder($uid,$send_order_id){
  50. /*$info = QappUserSendOrderId::where('uid',$uid)
  51. ->where('end_time','>',date('Y-m-d H:i:s'))
  52. ->orderBy('id')->first();*/
  53. $redis_time = UserService::getUserSendOrderTime($uid);
  54. if($redis_time && ($redis_time+30*86400) > time()){
  55. return false;
  56. }
  57. $info = DB::table('qapp_user_valid_send_order_id_v2')->where('uid',$uid)
  58. ->where('end_time','>',date('Y-m-d H:i:s'))
  59. ->where('is_valid',1)
  60. ->orderBy('id')->first();
  61. if($info){
  62. /*QappUserSendOrderId::create([
  63. 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s'),'is_valid'=>0
  64. ]);*/
  65. return false;
  66. }
  67. /*QappUserSendOrderId::create([
  68. 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1
  69. ]);*/
  70. myLog('recordUserSendOrder')->info('uid:'.$uid.',send_order_id:'.$send_order_id);
  71. try{
  72. DB::table('qapp_user_valid_send_order_id_v2')->insert([
  73. 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1,
  74. 'created_at'=>date('Y-m-d H:i:s'),'updated_at'=>date('Y-m-d H:i:s')
  75. ]);
  76. }catch (\Exception $e){
  77. myLog('recordUserSendOrder')->info('uid:'.$uid.' error:'.$e->getMessage());
  78. }
  79. return true;
  80. }
  81. }