UserRecharge.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace app\controller\api\user;
  3. use ln\basic\BaseController;
  4. use app\common\repositories\system\groupData\GroupDataRepository;
  5. use app\common\repositories\user\UserRechargeRepository;
  6. use app\common\repositories\user\UserRepository;
  7. use app\common\repositories\wechat\WechatUserRepository;
  8. use ln\services\WechatService;
  9. use think\App;
  10. class UserRecharge extends BaseController
  11. {
  12. protected $repository;
  13. public function __construct(App $app, UserRechargeRepository $repository)
  14. {
  15. parent::__construct($app);
  16. $this->repository = $repository;
  17. }
  18. public function brokerage(UserRepository $userRepository)
  19. {
  20. $brokerage = (float)$this->request->param('brokerage');
  21. if ($brokerage <= 0)
  22. return app('json')->fail('请输入正确的充值金额!');
  23. $user = $this->request->userInfo();
  24. if ($user->brokerage_price < $brokerage)
  25. return app('json')->fail('剩余可用佣金不足' . $brokerage);
  26. $config = systemConfig(['recharge_switch', 'balance_func_status']);
  27. if (!$config['recharge_switch'] || !$config['balance_func_status'])
  28. return app('json')->fail('余额充值功能已关闭');
  29. $userRepository->switchBrokerage($user, $brokerage);
  30. return app('json')->success('转换成功');
  31. }
  32. public function recharge(GroupDataRepository $groupDataRepository)
  33. {
  34. [$type, $price, $rechargeId, $return_url] = $this->request->params(['type', 'price', 'recharge_id', 'return_url'], true);
  35. if (!in_array($type, ['weixin', 'routine', 'h5', 'alipay', 'alipayQr', 'weixinQr']))
  36. return app('json')->fail('请选择正确的支付方式!');
  37. $app = $this->request->isApp();
  38. $user = $this->request->userInfo();
  39. $wechatUserId = $user['wechat_user_id'];
  40. if (!$wechatUserId && in_array($type, ['weixin', 'routine']) && !$app)
  41. return app('json')->fail('请关联微信' . ($type == 'weixin' ? '公众号' : '小程序') . '!');
  42. $config = systemConfig(['store_user_min_recharge', 'recharge_switch', 'balance_func_status']);
  43. if (!$config['recharge_switch'] || !$config['balance_func_status'])
  44. return app('json')->fail('余额充值功能已关闭');
  45. if ($rechargeId) {
  46. if (!intval($rechargeId))
  47. return app('json')->fail('请选择充值金额!');
  48. $rule = $groupDataRepository->merGet(intval($rechargeId), 0);
  49. if (!$rule || !isset($rule['price']) || !isset($rule['give']))
  50. return app('json')->fail('您选择的充值方式已下架!');
  51. $give = floatval($rule['give']);
  52. $price = floatval($rule['price']);
  53. if ($price <= 0)
  54. return app('json')->fail('请选择正确的充值金额!');
  55. } else {
  56. $price = floatval($price);
  57. if ($price <= 0)
  58. return app('json')->fail('请输入正确的充值金额!');
  59. if ($price < $config['store_user_min_recharge'])
  60. return app('json')->fail('最低充值' . floatval($config['store_user_min_recharge']));
  61. $give = 0;
  62. }
  63. $recharge = $this->repository->create($this->request->uid(), $price, $give, $type);
  64. return app('json')->success($this->repository->pay($type, $user, $recharge, $return_url, $app));
  65. }
  66. }