MainInviteController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * hdApp 门店邀请 / 我的分佣
  4. */
  5. namespace hd\controllers;
  6. use bizHd\shop\classes\MainInviteClass;
  7. use bizHd\shop\classes\MainInviteCommissionClass;
  8. use bizHd\shop\classes\MainInviteFlowClass;
  9. use common\components\util;
  10. use Yii;
  11. class MainInviteController extends BaseController
  12. {
  13. public $guestAccess = [];
  14. /**
  15. * 我的分佣首页:xhMainInvite + 待结算 + 最近佣金
  16. */
  17. public function actionIndex()
  18. {
  19. $mainId = (int) $this->mainId;
  20. $invite = MainInviteClass::ensureByMainId($mainId);
  21. $inviteData = [
  22. 'inviteCode' => '',
  23. 'inviteCodeMask' => '',
  24. 'totalCommission' => '0.00',
  25. 'ableCommission' => '0.00',
  26. 'commissionAmount' => '0.00',
  27. 'hdDiscountAmount' => '0.00',
  28. 'inviteCount' => 0,
  29. ];
  30. if (!empty($invite)) {
  31. $code = $invite['inviteCode'] ?? '';
  32. $inviteData = [
  33. 'inviteCode' => $code,
  34. 'inviteCodeMask' => MainInviteCommissionClass::maskInviteCode($code),
  35. 'totalCommission' => round((float) ($invite['totalCommission'] ?? 0), 2),
  36. 'ableCommission' => round((float) ($invite['ableCommission'] ?? 0), 2),
  37. 'commissionAmount' => round((float) ($invite['commissionAmount'] ?? 0), 2),
  38. 'hdDiscountAmount' => round((float) ($invite['hdDiscountAmount'] ?? 0), 2),
  39. 'inviteCount' => (int) ($invite['inviteCount'] ?? 0),
  40. ];
  41. }
  42. $recentRaw = MainInviteCommissionClass::getRecentList($mainId, 5);
  43. $recentList = [];
  44. foreach ($recentRaw as $row) {
  45. $recentList[] = MainInviteCommissionClass::formatRecentRow($row);
  46. }
  47. util::success([
  48. 'invite' => $inviteData,
  49. 'recentList' => $recentList,
  50. ]);
  51. }
  52. /**
  53. * 邀约花店列表(xhMainInviteCommission 按 inviterMainId)
  54. */
  55. public function actionInviteShopList()
  56. {
  57. $get = Yii::$app->request->get();
  58. $keyword = trim($get['keyword'] ?? '');
  59. $data = MainInviteCommissionClass::getInviteShopList($this->mainId, $keyword);
  60. util::success($data);
  61. }
  62. /**
  63. * 佣金变动明细分页(xhMainInviteFlow)
  64. */
  65. public function actionCommissionList()
  66. {
  67. $list = MainInviteFlowClass::getFlowList($this->mainId);
  68. util::success($list);
  69. }
  70. /**
  71. * 可提现佣金全额存入中央钱包余额
  72. * POST:无参,按当前登录 mainId 处理
  73. */
  74. public function actionDepositBalance()
  75. {
  76. $mainId = (int) $this->mainId;
  77. $shopId = (int) $this->shopId;
  78. $shopName = trim((string) ($this->shop->name ?? ''));
  79. try {
  80. $result = MainInviteClass::depositAbleCommissionToWallet($mainId, $shopId, $shopName);
  81. $invite = MainInviteClass::getByMainId($mainId);
  82. $inviteData = [
  83. 'totalCommission' => round((float) ($invite['totalCommission'] ?? 0), 2),
  84. 'ableCommission' => round((float) ($invite['ableCommission'] ?? 0), 2),
  85. ];
  86. util::success(array_merge($result, ['invite' => $inviteData]));
  87. } catch (\Exception $e) {
  88. util::fail($e->getMessage());
  89. }
  90. }
  91. }