| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?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,
- ]);
- }
- }
|