DemoController.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace Modules\Api\Controllers;
  3. use App\Model\UserModel;
  4. use App\Model\VipOrderModel;
  5. use App\Repositories\Service\QueueService;
  6. use App\Repositories\UserRepository;
  7. use Carbon\Carbon;
  8. use Hyperf\HttpServer\Request;
  9. class DemoController extends BaseController
  10. {
  11. public function vipOrder(Request $request)
  12. {
  13. $inputData = $request->all();
  14. $orderItem = VipOrderModel::query()->where(['id' => $inputData['data']['id']])
  15. ->first();
  16. if (empty($orderItem)) {
  17. return json_fail('没有查到测试订单');
  18. }
  19. $orderItem = $orderItem->toArray();
  20. $package = json_decode($orderItem['package_info'], true);
  21. $houseCount = 0;
  22. foreach ($package['jdata']['feature'] as $packVal) {
  23. if ($packVal['type'] == 'house') {
  24. $houseCount = $packVal['count'];
  25. }
  26. }
  27. //加会员天数
  28. $userInfo = make(UserRepository::class)
  29. ->getUserInfoFromCache($orderItem['user_code']);
  30. if ($userInfo['is_vip'] == 'y') {
  31. $vipTime = Carbon::parse($userInfo['vip_expired'])
  32. ->addDays($orderItem['vip_days'])
  33. ->toDateTimeString();
  34. } else {
  35. $vipTime = Carbon::now()
  36. ->addDays($orderItem['vip_days'])
  37. ->toDateTimeString();
  38. }
  39. $houseCount = $userInfo['max_open_house'] + $houseCount;
  40. UserModel::query()
  41. ->where('id', $orderItem['user_id'])
  42. ->update(['vip_expired' => $vipTime, 'vip_level' => $orderItem['vip_id'], 'max_open_house' => $houseCount]);
  43. $orderMoney =floatval($orderItem['order_amount']);
  44. make(QueueService::class)->rebateUserJob(['amount' => $orderMoney, 'user_id' =>$orderItem['user_code']], 1);
  45. VipOrderModel::query()->where(['id' => $inputData['data']['id']])->update(['status' => 1]);
  46. make(UserRepository::class)->delUserCache($orderItem['user_code']);
  47. return json_success([]);
  48. }
  49. public function coinOrder(Request $request)
  50. {
  51. }
  52. }