|
|
@@ -0,0 +1,135 @@
|
|
|
+<?php
|
|
|
+/**
|
|
|
+ * ghsApp 门店邀请 / 我的分佣(邀请花店开店)
|
|
|
+ * 数据与 hd 共用 xhMainInvite、xhMainInviteFlow 等表
|
|
|
+ */
|
|
|
+namespace ghs\controllers;
|
|
|
+
|
|
|
+use bizHd\shop\classes\MainInviteClass;
|
|
|
+use bizHd\shop\classes\MainInviteCommissionClass;
|
|
|
+use bizHd\shop\classes\MainInviteFlowClass;
|
|
|
+use bizHd\wx\classes\WxOpenClass;
|
|
|
+use common\components\dict;
|
|
|
+use common\components\imgUtil;
|
|
|
+use common\components\miniUtil;
|
|
|
+use common\components\util;
|
|
|
+use Yii;
|
|
|
+
|
|
|
+class MainInviteController extends BaseController
|
|
|
+{
|
|
|
+
|
|
|
+ public $guestAccess = [];
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 我的分佣首页
|
|
|
+ */
|
|
|
+ public function actionIndex()
|
|
|
+ {
|
|
|
+ $mainId = (int) $this->mainId;
|
|
|
+ $invite = MainInviteClass::getByMainId($mainId);
|
|
|
+ $inviteData = [
|
|
|
+ 'inviteCode' => '',
|
|
|
+ 'inviteCodeMask' => '',
|
|
|
+ 'totalCommission' => '0.00',
|
|
|
+ 'ableCommission' => '0.00',
|
|
|
+ 'commissionAmount' => '0.00',
|
|
|
+ 'hdDiscountAmount' => '0.00',
|
|
|
+ 'inviteCount' => 0,
|
|
|
+ ];
|
|
|
+ if (!empty($invite)) {
|
|
|
+ $code = $invite['inviteCode'] ?? '';
|
|
|
+ $inviteData = [
|
|
|
+ 'inviteCode' => $code,
|
|
|
+ 'inviteCodeMask' => MainInviteCommissionClass::maskInviteCode($code),
|
|
|
+ 'totalCommission' => round((float) ($invite['totalCommission'] ?? 0), 2),
|
|
|
+ 'ableCommission' => round((float) ($invite['ableCommission'] ?? 0), 2),
|
|
|
+ 'commissionAmount' => round((float) ($invite['commissionAmount'] ?? 0), 2),
|
|
|
+ 'hdDiscountAmount' => round((float) ($invite['hdDiscountAmount'] ?? 0), 2),
|
|
|
+ 'inviteCount' => (int) ($invite['inviteCount'] ?? 0),
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ $recentRaw = MainInviteCommissionClass::getRecentList($mainId, 5);
|
|
|
+ $recentList = [];
|
|
|
+ foreach ($recentRaw as $row) {
|
|
|
+ $recentList[] = MainInviteCommissionClass::formatRecentRow($row);
|
|
|
+ }
|
|
|
+
|
|
|
+ util::success([
|
|
|
+ 'invite' => $inviteData,
|
|
|
+ 'recentList' => $recentList,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 邀约花店列表
|
|
|
+ */
|
|
|
+ public function actionInviteShopList()
|
|
|
+ {
|
|
|
+ $get = Yii::$app->request->get();
|
|
|
+ $keyword = trim($get['keyword'] ?? '');
|
|
|
+ $data = MainInviteCommissionClass::getInviteShopList($this->mainId, $keyword);
|
|
|
+ util::success($data);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 佣金变动明细分页
|
|
|
+ */
|
|
|
+ public function actionCommissionList()
|
|
|
+ {
|
|
|
+ $list = MainInviteFlowClass::getFlowList($this->mainId);
|
|
|
+ util::success($list);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 可提现佣金全额存入中央钱包余额
|
|
|
+ */
|
|
|
+ public function actionDepositBalance()
|
|
|
+ {
|
|
|
+ $mainId = (int) $this->mainId;
|
|
|
+ $shopId = (int) $this->shopId;
|
|
|
+ $shopName = trim((string) ($this->shop->name ?? ''));
|
|
|
+ try {
|
|
|
+ $result = MainInviteClass::depositAbleCommissionToWallet($mainId, $shopId, $shopName);
|
|
|
+ $invite = MainInviteClass::getByMainId($mainId);
|
|
|
+ $inviteData = [
|
|
|
+ 'totalCommission' => round((float) ($invite['totalCommission'] ?? 0), 2),
|
|
|
+ 'ableCommission' => round((float) ($invite['ableCommission'] ?? 0), 2),
|
|
|
+ ];
|
|
|
+ util::success(array_merge($result, ['invite' => $inviteData]));
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ util::fail($e->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成 hdApp 邀请开店小程序码(落地 applyInvite,scene 带 inviteCode)
|
|
|
+ * GET:可选 envVersion=develop|trial|release
|
|
|
+ */
|
|
|
+ public function actionInviteHdMiniCode()
|
|
|
+ {
|
|
|
+ $invite = MainInviteClass::getByMainId((int) $this->mainId);
|
|
|
+ $inviteCode = trim((string) ($invite['inviteCode'] ?? ''));
|
|
|
+ if ($inviteCode === '') {
|
|
|
+ util::fail('暂无邀请码');
|
|
|
+ }
|
|
|
+
|
|
|
+ $get = Yii::$app->request->get();
|
|
|
+ $envVersion = trim((string) ($get['envVersion'] ?? ''));
|
|
|
+ if ($envVersion === '') {
|
|
|
+ $envVersion = getenv('YII_ENV') === 'production' ? 'release' : 'develop';
|
|
|
+ }
|
|
|
+
|
|
|
+ $merchant = WxOpenClass::getWxInfo();
|
|
|
+ $page = 'pagesClient/official/applyInvite';
|
|
|
+ $ptStyle = dict::getDict('ptStyle', 'hd');
|
|
|
+ $scene = 'inviteCode=' . $inviteCode;
|
|
|
+ $imgPath = miniUtil::generateUnlimitedMiniCode($merchant, $page, $scene, $ptStyle, $envVersion);
|
|
|
+
|
|
|
+ util::success([
|
|
|
+ 'imgUrl' => imgUtil::groupImg($imgPath),
|
|
|
+ 'inviteCode' => $inviteCode,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|