Modules_Api_Controllers_DemoController.proxy.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. use \Hyperf\Di\Aop\ProxyTrait;
  12. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  13. function __construct()
  14. {
  15. if (method_exists(parent::class, '__construct')) {
  16. parent::__construct(...func_get_args());
  17. }
  18. $this->__handlePropertyHandler(__CLASS__);
  19. }
  20. public function vipOrder(Request $request)
  21. {
  22. $inputData = $request->all();
  23. $orderItem = VipOrderModel::query()->where(['id' => $inputData['data']['id']])->first();
  24. if (empty($orderItem)) {
  25. return json_fail('没有查到测试订单');
  26. }
  27. $orderItem = $orderItem->toArray();
  28. $package = json_decode($orderItem['package_info'], true);
  29. $houseCount = 0;
  30. foreach ($package['jdata']['feature'] as $packVal) {
  31. if ($packVal['type'] == 'house') {
  32. $houseCount = $packVal['count'];
  33. }
  34. }
  35. //加会员天数
  36. $userInfo = make(UserRepository::class)->getUserInfoFromCache($orderItem['user_code']);
  37. if ($userInfo['is_vip'] == 'y') {
  38. $vipTime = Carbon::parse($userInfo['vip_expired'])->addDays($orderItem['vip_days'])->toDateTimeString();
  39. } else {
  40. $vipTime = Carbon::now()->addDays($orderItem['vip_days'])->toDateTimeString();
  41. }
  42. $houseCount = $userInfo['max_open_house'] + $houseCount;
  43. UserModel::query()->where('id', $orderItem['user_id'])->update(['vip_expired' => $vipTime, 'vip_level' => $orderItem['vip_id'], 'max_open_house' => $houseCount]);
  44. $orderMoney = floatval($orderItem['order_amount']);
  45. make(QueueService::class)->rebateUserJob(['amount' => $orderMoney, 'user_id' => $orderItem['user_code']], 1);
  46. VipOrderModel::query()->where(['id' => $inputData['data']['id']])->update(['status' => 1]);
  47. make(UserRepository::class)->delUserCache($orderItem['user_code']);
  48. return json_success([]);
  49. }
  50. public function coinOrder(Request $request)
  51. {
  52. }
  53. }