| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- <?php
- /**
- * Created by PhpStorm.
- *
- * User: king/QQ:995265288
- * Date: 2018/7/20 下午3:23
- * Email: livsyitian@163.com
- */
- namespace app\frontend\modules\income\controllers;
- use app\common\components\ApiController;
- use app\common\exceptions\AppException;
- use app\common\helpers\QrCodeHelper;
- use app\common\services\SmallQrCode;
- use app\frontend\models\Income;
- use app\frontend\models\Member;
- use app\frontend\models\MemberRelation;
- use Carbon\Carbon;
- use GuzzleHttp\Client;
- use Illuminate\Support\Facades\Redis;
- use Yunshop\Poster\models\Qrcode;
- class SharePageController extends ApiController
- {
- private $memberModel;
- private $relationSet;
- public function preAction()
- {
- parent::preAction();
- $this->relationSet = $this->getRelationSet();
- }
- public function index()
- {
- if ($this->getSharePageStatus()) {
- $this->memberModel = $this->getMemberModel();
- return $this->successJson('ok', $this->getResultData());
- }
- return $this->errorJson('我的收入页面未开启');
- }
- private function getResultData()
- {
- return [
- 'avatar' => $this->memberModel->avatar,
- 'share_qr' => $this->getShareQrUrl(),
- 'nickname' => $this->getNickname(),
- 'member_id' => $this->getMemberId(),
- 'member_level' => $this->getLevelName(),
- 'today_income' => $this->getTodayIncome(),
- 'month_income' => $this->getMonthIncome(),
- 'total_income' => $this->getTotalIncome(),
- ];
- }
- /**
- * 今日收入
- *
- * @return double
- */
- private function getTodayIncome()
- {
- $start_time = Carbon::today()->startOfDay()->timestamp;
- $end_time = Carbon::today()->endOfDay()->timestamp;
- return Income::whereBetween('created_at', [$start_time, $end_time])->sum('amount');
- }
- /**
- * 本月收入
- *
- * @return double
- */
- private function getMonthIncome()
- {
- $start_time = Carbon::now()->startOfMonth()->timestamp;
- $end_time = Carbon::now()->endOfMonth()->timestamp;
- return Income::whereBetween('created_at', [$start_time, $end_time])->sum('amount');
- }
- /**
- * 累计收入
- *
- * @return double
- */
- private function getTotalIncome()
- {
- return Income::sum('amount');
- }
- private function getShareQrUrl()
- {
- if ($this->memberModel->yzMember->is_agent == 1 && $this->memberModel->yzMember->status == 2) {
- $url = yzAppFullUrl('member', ['mid' => $this->memberModel->uid]);
- if(request()->type == 2){
- return $this->getMiniCode();
- }
- return \QrCode::size(240)->get($url,'app/public/qr/share')['url'];
- }
- return "";
- /*if (app('plugins')->isEnabled('poster')) {
- $member_id = $this->getMemberId();
- $qrCodeModel = Qrcode::uniacid()->where('scene_str', 'like', '%' . $member_id)->orderBy('createtime', 'desc')->first();
- if ($qrCodeModel) {
- $url = "https://mp.weixin.qq.com/cgi-bin/showqrcode";
- return $url . "?ticket={$qrCodeModel->ticket}";
- }
- }
- return '';*/
- }
- /**
- * 会员昵称
- *
- * @return string
- */
- private function getNickname()
- {
- return $this->memberModel->realname ?: $this->memberModel->nickname;
- }
- /**
- * 会员等级名称
- *
- * @return string
- */
- private function getLevelName()
- {
- $level_name = $this->memberModel->yzMember->level->level_name;
- return $level_name ?: $this->getDefaultMemberLevel();
- }
- /**
- * 会员默认等级名称
- *
- * @return string
- */
- private function getDefaultMemberLevel()
- {
- $member_set = \Setting::get('shop.member');
- return $member_set['level_name'] ?: '普通会员';
- }
- /**
- *
- *
- * @return Member
- * @throws AppException
- */
- private function getMemberModel()
- {
- $member_id = $this->getMemberId();
- $memberModel = Member::getUserInfos($member_id)->first();
- if (!$memberModel) {
- throw new AppException('会员信息错误,请重试!');
- }
- return $memberModel;
- }
- private function getMemberId()
- {
- $member_id = \YunShop::app()->getMemberId();
- if (!$member_id) {
- throw new AppException('Please login in.');
- }
- return $member_id;
- }
- private function getSharePageStatus()
- {
- if (is_null($this->relationSet) || 1 == $this->relationSet->share_page) {
- return true;
- }
- return false;
- }
- private function getRelationSet()
- {
- return MemberRelation::uniacid()->first();
- }
- //获取小程序二维码
- private function getMiniCode()
- {
- $uid = \Yunshop::app()->getMemberId();
- $result = Redis::get('WechatQrIncome'.$uid);
- if (!$result){
- $small_qr = new SmallQrCode();
- $small_name = "income_code_".$uid;
- $data['scene'] = 'mid='.$uid;
- $data['page'] = 'packageG/member_v2/member_v2';
- $code = $small_qr->getSmallQrCode($small_name, $data);
- if ($code['code'] == 0) {
- Redis::setex('WechatQrIncome'.$uid, 60 * 60 * 24, $code['file_path']);
- return $code['file_path'];
- }
- return '';
- }
- return $result;
- }
- }
|