MainInviteAdminController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /**
  3. * ghs Web 门店邀请分佣管理
  4. * 基础分佣只读 dict;批发商独立比例与佣金明细分页/详情
  5. */
  6. namespace ghs\controllers;
  7. use bizHd\shop\classes\MainInviteAdminClass;
  8. use common\components\util;
  9. use Yii;
  10. class MainInviteAdminController extends BaseController
  11. {
  12. public $guestAccess = [];
  13. /**
  14. * 基础分佣设置(只读 hdRegisterConfig)
  15. */
  16. public function actionRegisterConfig()
  17. {
  18. util::success(MainInviteAdminClass::getRegisterConfigForAdmin());
  19. }
  20. /**
  21. * 批发商独立比例列表
  22. */
  23. public function actionWholesalerRatioList()
  24. {
  25. $keyword = Yii::$app->request->get('keyword', '');
  26. util::success(MainInviteAdminClass::getWholesalerRatioList($keyword));
  27. }
  28. /**
  29. * 批发商搜索(新增比例下拉)
  30. */
  31. public function actionWholesalerSearch()
  32. {
  33. $keyword = Yii::$app->request->get('keyword', '');
  34. $list = MainInviteAdminClass::searchWholesaler($keyword, 30);
  35. util::success(['list' => $list]);
  36. }
  37. /**
  38. * 保存批发商独立比例
  39. */
  40. public function actionSaveWholesalerRatio()
  41. {
  42. $post = Yii::$app->request->post();
  43. $mainId = (int) ($post['mainId'] ?? 0);
  44. $price = MainInviteAdminClass::getRegisterConfigForAdmin()['price'];
  45. // 支持传固定金额或等效比例
  46. if (isset($post['commissionRatio']) && $post['commissionRatio'] !== '') {
  47. $commissionAmount = MainInviteAdminClass::ratioToAmount($post['commissionRatio'], $price);
  48. } else {
  49. $commissionAmount = (float) ($post['commissionAmount'] ?? 0);
  50. }
  51. if (isset($post['discountRatio']) && $post['discountRatio'] !== '') {
  52. $hdDiscountAmount = MainInviteAdminClass::ratioToAmount($post['discountRatio'], $price);
  53. } else {
  54. $hdDiscountAmount = (float) ($post['hdDiscountAmount'] ?? 0);
  55. }
  56. try {
  57. $row = MainInviteAdminClass::saveWholesalerRatio($mainId, $commissionAmount, $hdDiscountAmount);
  58. util::success($row);
  59. } catch (\Throwable $e) {
  60. util::fail($e->getMessage());
  61. }
  62. }
  63. /**
  64. * 佣金汇总卡片
  65. */
  66. public function actionCommissionSummary()
  67. {
  68. $filters = Yii::$app->request->get();
  69. util::success(MainInviteAdminClass::getCommissionSummary($filters));
  70. }
  71. /**
  72. * 佣金分成明细分页
  73. */
  74. public function actionCommissionList()
  75. {
  76. $get = Yii::$app->request->get();
  77. $export = (int) ($get['export'] ?? 0);
  78. $filters = [
  79. 'searchTime' => $get['searchTime'] ?? '',
  80. 'startTime' => $get['startTime'] ?? '',
  81. 'endTime' => $get['endTime'] ?? '',
  82. 'inviterKeyword' => $get['inviterKeyword'] ?? ($get['inviterName'] ?? ''),
  83. 'inviteeKeyword' => $get['inviteeKeyword'] ?? ($get['inviteeName'] ?? ''),
  84. 'inviteCode' => $get['inviteCode'] ?? '',
  85. ];
  86. if ($export === 1) {
  87. $file = MainInviteAdminClass::exportCommissionList($filters);
  88. util::success($file);
  89. return;
  90. }
  91. util::success(MainInviteAdminClass::getCommissionAdminList($filters));
  92. }
  93. /**
  94. * 佣金分成详情
  95. */
  96. public function actionCommissionDetail()
  97. {
  98. $id = (int) Yii::$app->request->get('id', 0);
  99. try {
  100. util::success(MainInviteAdminClass::getCommissionDetail($id));
  101. } catch (\Throwable $e) {
  102. util::fail($e->getMessage());
  103. }
  104. }
  105. }