From 1310ea97b169007b70cbdd084879efdac8487d44 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Sat, 9 Mar 2024 17:55:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E5=85=91=E6=8D=A2?= =?UTF-8?q?=E7=A0=81=E4=BD=9C=E5=BA=9F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/VipExchangeCodeRepository.php | 59 ++++++++++++++++++- app/controller/admin/user/ExchangeCode.php | 27 +++++++++ app/controller/api/user/Svip.php | 5 +- route/admin/member.php | 7 +++ route/merchant/users.php | 4 ++ 5 files changed, 98 insertions(+), 4 deletions(-) diff --git a/app/common/repositories/user/VipExchangeCodeRepository.php b/app/common/repositories/user/VipExchangeCodeRepository.php index 3604eb7..7908344 100644 --- a/app/common/repositories/user/VipExchangeCodeRepository.php +++ b/app/common/repositories/user/VipExchangeCodeRepository.php @@ -137,14 +137,14 @@ class VipExchangeCodeRepository extends BaseRepository{ 'type' => 'div', 'style' => ['color' => '#999999'], 'domProps' => [ - 'innerHTML' => '例:输入 15 则ID大于15 小于等于结束ID的兑换码都会激活', + 'innerHTML' => '例:输入 15 则ID大于15 小于等于结束ID的兑换码都会进行分配', ] ]), Elm::number('end_id','结束ID')->required()->appendRule('suffix',[ 'type' => 'div', 'style' => ['color' => '#999999'], 'domProps' => [ - 'innerHTML' => '例:输入 80 则ID小于等于80 大于开始ID的兑换码都会激活', + 'innerHTML' => '例:输入 80 则ID小于等于80 大于开始ID的兑换码都会进行分配', ] ]), Elm::select('mer_id','绑定商户')->options($merList), @@ -242,7 +242,62 @@ class VipExchangeCodeRepository extends BaseRepository{ 'staff_id' => $params['staff_id'], ]); } + /** + * Common: 作废兑换码 + * Author: wu-hui + * Time: 2024/03/09 17:21 + * @return \FormBuilder\Form + * @throws \FormBuilder\Exception\FormBuilderException + */ + public function cancelFormData($merId){ + $formData = []; + if($merId > 0) $url = Route::buildUrl('systemUserVipExchangeCodeCancelInfo')->build(); + else $url = Route::buildUrl('systemUserVipExchangeCodeCancelInfo')->build(); + + $form = Elm::createForm($url); + $rules = [ + Elm::number('start_id','开始ID')->required()->appendRule('suffix',[ + 'type' => 'div', + 'style' => ['color' => '#999999'], + 'domProps' => [ + 'innerHTML' => '例:输入 15 则ID大于15 小于等于结束ID的兑换码都会作废', + ] + ]), + Elm::number('end_id','结束ID')->required()->appendRule('suffix',[ + 'type' => 'div', + 'style' => ['color' => '#999999'], + 'domProps' => [ + 'innerHTML' => '例:输入 80 则ID小于等于80 大于开始ID的兑换码都会作废', + ] + ]), + ]; + $form->setRule($rules); + return $form->setTitle( '作废兑换码')->formData($formData); + } + /** + * Common: 作废兑换码 + * Author: wu-hui + * Time: 2024/03/09 17:25 + * @param $params + * @param $merId + * @return UserVipExchangeCode + */ + public function cancelExchangeCode($params, $merId){ + // 是否允许生成兑换码 + if($params['end_id'] <= 0) throw new ValidateException('结束id必须大于0'); + if($params['end_id'] <= $params['start_id']) throw new ValidateException('结束id必须大于开始id'); + + return UserVipExchangeCode::where('id','>',$params['start_id']) + ->where('id','<=',$params['end_id']) + ->where('status','<>', 2) + ->when($merId > 0,function($query) use ($merId){ + $query->where('mer_id', $merId); + }) + ->update([ + 'status' => 3, + ]); + } } diff --git a/app/controller/admin/user/ExchangeCode.php b/app/controller/admin/user/ExchangeCode.php index df962e3..e5372dd 100644 --- a/app/controller/admin/user/ExchangeCode.php +++ b/app/controller/admin/user/ExchangeCode.php @@ -175,6 +175,33 @@ class ExchangeCode extends BaseController{ return app('json')->success($data); } + /** + * Common: 兑换码作废 - 表单 + * Author: wu-hui + * Time: 2024/03/09 17:21 + * @return mixed + * @throws \FormBuilder\Exception\FormBuilderException + */ + public function cancelForm(){ + $merId = $this->request->merId(); + $data = $this->repository->cancelFormData($merId); + + return app('json')->success(formToData($data)); + } + /** + * Common: 兑换码作废 - 提交表单并且进行处理 + * Author: wu-hui + * Time: 2024/03/09 17:25 + * @return mixed + */ + public function cancelInfo(){ + $merId = $this->request->merId(); + $params = $this->request->params(['start_id','end_id']); + $this->repository->cancelExchangeCode($params, $merId); + + return app('json')->success('作废成功'); + } + } diff --git a/app/controller/api/user/Svip.php b/app/controller/api/user/Svip.php index cb09320..adec9c8 100644 --- a/app/controller/api/user/Svip.php +++ b/app/controller/api/user/Svip.php @@ -184,8 +184,9 @@ class Svip extends BaseController ->findOrEmpty() ->toArray(); if(empty($exchangeCodeInfo)) throw new ValidateException('兑换码不存在!'); - if($exchangeCodeInfo['status'] == 0) throw new ValidateException('未激活!'); - if($exchangeCodeInfo['status'] == 2) throw new ValidateException('已使用!'); + if($exchangeCodeInfo['status'] == 0) throw new ValidateException('兑换码未激活!'); + if($exchangeCodeInfo['status'] == 2) throw new ValidateException('兑换码已被使用,请勿重复使用!'); + if($exchangeCodeInfo['status'] == 3) throw new ValidateException('兑换码已作废!'); // 下单并且使用 $res = $groupDataRepository->getWhere(['group_data_id' => $exchangeCodeInfo['group_data_id'], 'status' => 1]); if (!$res) throw new ValidateException('会员卡不存在!'); diff --git a/route/admin/member.php b/route/admin/member.php index 9a8583d..75155f1 100644 --- a/route/admin/member.php +++ b/route/admin/member.php @@ -61,6 +61,13 @@ Route::group(function () { Route::get('activateForm', 'admin.user.ExchangeCode/activateForm')->name('systemUserVipExchangeCodeActivateForm'); // 提交激活表单 Route::post('activateInfo', 'admin.user.ExchangeCode/activateInfo')->name('systemUserVipExchangeCodeActivateInfo'); + // 作废表单 + Route::get('cancelForm', 'admin.user.ExchangeCode/cancelForm')->name('systemUserVipExchangeCodeCancelForm'); + // 提交作废表单 + Route::post('cancelInfo', 'admin.user.ExchangeCode/cancelInfo')->name('systemUserVipExchangeCodeCancelInfo'); + + + })->append(['type' => 1])->option([ '_path' => '/user/member/exchangeCode', diff --git a/route/merchant/users.php b/route/merchant/users.php index a69df47..197ecdf 100644 --- a/route/merchant/users.php +++ b/route/merchant/users.php @@ -100,6 +100,10 @@ Route::group(function () { Route::post('activateInfo', 'admin.user.ExchangeCode/activateInfo')->name('systemUserVipExchangeCodeActivateInfo'); // 搜索条件对象列表 Route::get('getSearchData', 'admin.user.ExchangeCode/getSearchData')->name('systemUserVipExchangeCodeGetSearchData'); + // 作废表单 + Route::get('cancelForm', 'admin.user.ExchangeCode/cancelForm')->name('systemUserVipExchangeCodeCancelForm'); + // 提交作废表单 + Route::post('cancelInfo', 'admin.user.ExchangeCode/cancelInfo')->name('systemUserVipExchangeCodeCancelInfo'); })->append(['type' => 1])->option([ '_path' => '/user/member/exchangeCode',