From 10919fb275e73cf005610de8c66f169a8cf0af6a Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Tue, 27 Feb 2024 15:06:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=9F=E6=88=90=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/Common.php | 31 +++++++++++++++++ app/controller/api/user/User.php | 60 ++++++++++++++++++++------------ route/api.php | 1 + 3 files changed, 69 insertions(+), 23 deletions(-) diff --git a/app/controller/api/Common.php b/app/controller/api/Common.php index 17f29e07..c479c821 100644 --- a/app/controller/api/Common.php +++ b/app/controller/api/Common.php @@ -39,6 +39,7 @@ use crmeb\basic\BaseController; use crmeb\services\AlipayService; use crmeb\services\CopyCommand; use crmeb\services\MiniProgramService; +use crmeb\services\QrcodeService; use crmeb\services\UploadService; use crmeb\services\WechatService; use Exception; @@ -673,4 +674,34 @@ class Common extends BaseController return app('json')->success(); } + /** + * 生成二维码 + */ + public function Qrcode($data) + { + $siteUrl = systemConfig('site_url'); + $name = 'orcode'.$data['id'] .md5(date('Ymd')) . '.png'; + $attachmentRepository = app()->make(AttachmentRepository::class); + $imageInfo = $attachmentRepository->getWhere(['attachment_name' => $name]); + + if (isset($imageInfo['attachment_src']) && strstr($imageInfo['attachment_src'], 'http') !== false && curl_file_exist($imageInfo['attachment_src']) === false) { + $imageInfo->delete(); + $imageInfo = null; + } + if (!$imageInfo) { + $imageInfo = app()->make(QrcodeService::class)->getQRCodePath($data['code'], $name,['code'=>1]); + if (is_string($imageInfo)) throw new ValidateException('二维码生成失败'); + + $imageInfo['dir'] = tidy_url($imageInfo['dir'], null, $siteUrl); + $attachmentRepository->create(systemConfig('upload_type') ?: 1, -2, $data['id'], [ + 'attachment_category_id' => 0, + 'attachment_name' => $imageInfo['name'], + 'attachment_src' => $imageInfo['dir'] + ]); + $urlCode = $imageInfo['dir']; + } else $urlCode = $imageInfo['attachment_src']; + return $urlCode; + } + + } diff --git a/app/controller/api/user/User.php b/app/controller/api/user/User.php index 3a111584..277f9872 100644 --- a/app/controller/api/user/User.php +++ b/app/controller/api/user/User.php @@ -26,6 +26,7 @@ use app\common\repositories\user\UserBillRepository; use app\common\repositories\user\UserBrokerageRepository; use app\common\repositories\user\UserRepository; use app\common\repositories\user\UserVisitRepository; +use app\controller\api\Common; use app\validate\api\UserBaseInfoValidate; use crmeb\basic\BaseController; use crmeb\services\MiniProgramService; @@ -165,8 +166,8 @@ class User extends BaseController public function brokerage_list(UserBillRepository $billRepository) { [$page, $limit] = $this->getPage(); - [$start,$stop]= $this->request->params(['start','stop'],true); - $where['date'] = $start&&$stop ? date('Y/m/d',$start).'-'.date('Y/m/d',$stop) : ''; + [$start, $stop] = $this->request->params(['start', 'stop'], true); + $where['date'] = $start && $stop ? date('Y/m/d', $start) . '-' . date('Y/m/d', $stop) : ''; $where['category'] = 'brokerage'; return app('json')->success($billRepository->userList($where, $this->request->uid(), $page, $limit)); } @@ -182,10 +183,10 @@ class User extends BaseController public function spread_order() { [$page, $limit] = $this->getPage(); - $where= $this->request->params(['keyword']); - [$start,$stop]= $this->request->params(['start','stop'],true); - $where['create_time'] = $start&&$stop ? date('Y/m/d',$start).'-'.date('Y/m/d',$stop) : ''; - $data = $this->repository->subOrder($this->request->uid(), $page, $limit,$where); + $where = $this->request->params(['keyword']); + [$start, $stop] = $this->request->params(['start', 'stop'], true); + $where['create_time'] = $start && $stop ? date('Y/m/d', $start) . '-' . date('Y/m/d', $stop) : ''; + $data = $this->repository->subOrder($this->request->uid(), $page, $limit, $where); return app('json')->success($data); } @@ -239,6 +240,7 @@ class User extends BaseController $this->repository->update($this->request->uid(), $data); return app('json')->success('绑定成功'); } + /** * @return mixed * @throws DataNotFoundException @@ -250,14 +252,14 @@ class User extends BaseController public function spread_list() { - $where = $this->request->params([ 'sort', 'keyword']); - [$start,$stop]= $this->request->params(['start','stop'],true); - $where['spread_time'] = $start&&$stop ? date('Y/m/d',$start).'-'.date('Y/m/d',$stop) : ''; + $where = $this->request->params(['sort', 'keyword']); + [$start, $stop] = $this->request->params(['start', 'stop'], true); + $where['spread_time'] = $start && $stop ? date('Y/m/d', $start) . '-' . date('Y/m/d', $stop) : ''; $level = $this->request->param('level'); [$page, $limit] = $this->getPage(); return app('json')->success($level == 2 - ? $this->repository->getTwoLevelList($this->request->uid(),$where, $page, $limit) - : $this->repository->getOneLevelList($this->request->uid(),$where, $page, $limit)); + ? $this->repository->getTwoLevelList($this->request->uid(), $where, $page, $limit) + : $this->repository->getOneLevelList($this->request->uid(), $where, $page, $limit)); } /** @@ -358,7 +360,7 @@ class User extends BaseController public function changePassword() { - $data = $this->request->params(['repassword','password', 'sms_code']); + $data = $this->request->params(['repassword', 'password', 'sms_code']); if (!$this->user->phone) return app('json')->fail('请先绑定手机号'); @@ -386,7 +388,7 @@ class User extends BaseController $data['main_uid'] = 0; if ($user) { if ($this->request->userInfo()->account !== $data['phone']) { - $data['account'] = $this->request->userInfo()->account.'_'.$this->request->uid(); + $data['account'] = $this->request->userInfo()->account . '_' . $this->request->uid(); } } else { $data['account'] = $data['phone']; @@ -447,9 +449,9 @@ class User extends BaseController public function services() { $uid = $this->user->uid; - $where = $this->request->params(['is_verify', 'customer', 'is_goods', ['is_open',1]]); + $where = $this->request->params(['is_verify', 'customer', 'is_goods', ['is_open', 1]]); $is_sys = $this->request->param('is_sys'); - return app('json')->success(app()->make(StoreServiceRepository::class)->getServices($uid, $where,$is_sys)); + return app('json')->success(app()->make(StoreServiceRepository::class)->getServices($uid, $where, $is_sys)); } public function memberInfo() @@ -462,14 +464,14 @@ class User extends BaseController $data['member_value'] = $this->user->member_value; $data['member'] = $this->user->member; $next_level = $make->getNextLevel($this->user->member_level, 1); - if (!$next_level && $data['member']) { + if (!$next_level && $data['member']) { $next_level = $this->user->member->toArray(); $next_level['brokerage_rule']['value'] = 0; } $data['next_level'] = $next_level; $makeInteres = app()->make(MemberinterestsRepository::class); - $data['interests'] = systemConfig('member_interests_status') ? $makeInteres->getInterestsByLevel($makeInteres::TYPE_FREE,$this->user->member_level) : [] ; + $data['interests'] = systemConfig('member_interests_status') ? $makeInteres->getInterestsByLevel($makeInteres::TYPE_FREE, $this->user->member_level) : []; $data['today'] = app()->make(UserBillRepository::class)->search([ 'category' => 'sys_members', @@ -480,10 +482,10 @@ class User extends BaseController $config_key = ['member_pay_num', 'member_sign_num', 'member_reply_num', 'member_share_num']; if (systemConfig('community_status')) $config_key[] = 'member_community_num'; - $config= systemConfig($config_key); + $config = systemConfig($config_key); if ($this->user->is_svip > 0) { foreach ($config as $key => $item) { - $data['config'][$key] = $item .' x' . $makeInteres->getSvipInterestVal($makeInteres::HAS_TYPE_MEMBER).' '; + $data['config'][$key] = $item . ' x' . $makeInteres->getSvipInterestVal($makeInteres::HAS_TYPE_MEMBER) . ' '; } } else { $data['config'] = $config; @@ -494,7 +496,7 @@ class User extends BaseController public function notice() { - $type = $this->request->param('type',0); + $type = $this->request->param('type', 0); $arr = [ '0' => 'brokerage_level', '1' => 'member_level', @@ -530,14 +532,14 @@ class User extends BaseController if (!$nickname && !$avatar) return app('json')->fail('未做任何修改'); $user = $this->request->userInfo(); - if(!empty($nickname)) { + if (!empty($nickname)) { $validate->check(['nickname' => $nickname]); $data['nickname'] = $nickname; } - if(!empty($avatar)) { + if (!empty($avatar)) { $data['avatar'] = $avatar; } - $this->repository->updateBaseInfo($data,$user); + $this->repository->updateBaseInfo($data, $user); return app('json')->success('修改成功'); } @@ -575,4 +577,16 @@ class User extends BaseController return app('json')->success(['count' => $count, 'list' => $result]); } + /** + * 生成二维码 + */ + public function qrcode() + { + /** @var Common $common */ + $common = app()->make(Common::class); + $siteUrl = systemConfig('site_url'); + $data = $common->Qrcode(['code' => $siteUrl . 'download/index.html?code=shop_' . $this->user->uid, 'id' => $this->user->uid]); + return app('json')->success(['url' => $data]); + } + } diff --git a/route/api.php b/route/api.php index b3b16f52..bec9ef5f 100644 --- a/route/api.php +++ b/route/api.php @@ -37,6 +37,7 @@ Route::group('api/', function () { Route::post('logout', 'api.Auth/logout'); //用户信息 Route::get('user', 'api.Auth/userInfo'); + Route::get('qrcode', 'api.user.User/qrcode'); //绑定推荐人 Route::post('user/spread', 'api.Auth/spread');