添加:供应商申请入驻

This commit is contained in:
wuhui_zzw 2024-01-30 14:50:57 +08:00
parent 7aba307a8d
commit 24fe60facd
7 changed files with 229 additions and 3 deletions

View File

@ -50,6 +50,16 @@ class AgentRepository extends BaseRepository{
$query = $this->dao->searchList($params);
return $query->select()->toArray();
}
/**
* Common: 获取单条代理人员信息
* Author: wu-hui
* Time: 2024/01/30 9:27
* @param $id
* @return array
*/
public function getSingleInfo($id){
return $this->dao->searchList(['id'=>$id])->findOrEmpty()->toArray();
}
/**
* Common: 生成对应的二维码
* Author: wu-hui

View File

@ -50,6 +50,21 @@ class Agent extends BaseController{
return app('json')->fail('小程序码生成失败!');
}
/**
* Common: 获取单条代理人员信息
* Author: wu-hui
* Time: 2024/01/30 9:27
* @param $id
* @return mixed
*/
public function singleAgentInfo($id){
$res = $this->repository->getSingleInfo($id);
return app('json')->success($res);
}

View File

@ -0,0 +1,97 @@
<?php
namespace app\controller\api;
use app\services\supplier\SystemSupplierApplyServices;
use app\services\supplier\SystemSupplierServices;
use crmeb\basic\BaseController;
use think\App;
use think\exception\ValidateException;
class Supplier extends BaseController{
protected $services;
public function __construct(App $app, SystemSupplierServices $services){
parent::__construct($app);
$this->services = $services;
}
/**
* Common: 申请入驻
* Author: wu-hui
* Time: 2024/01/30 14:28
* @return mixed
*/
public function applyJoin(){
// 参数获取
$data = $this->checkParam();
if((int)$data['supplierApplyId'] > 0){
// 编辑账号信息
app()->make(SystemSupplierApplyServices::class)->editInfo((array)$data);
}else{
// 添加账号
app()->make(SystemSupplierApplyServices::class)->createApplyInfo((array)$data);
}
return app('json')->success('操作成功');
}
/**
* Common: 申请信息接收
* Author: wu-hui
* Time: 2024/01/30 14:18
* @return array
*/
private function checkParam():array{
// 接收表单参数
$supplierApplyId = (int)$this->request->param('id');
$applyInfo = $this->request->params([
'invite_agent_id',
'winery_name',
'scale',
'cellar_size',
'corporation_name',
'corporation_phone',
['corporation_id_card',[]],
'chairman_name',
'chairman_phone',
['chairman_id_card',[]],
'contacts_name',
'contacts_phone',
'business_license',
'production_icense',
'circulative_license',
]);
// 数据校验
if (empty($applyInfo['invite_agent_id'])) throw new ValidateException('非法请求,无有效邀请人!');
if (empty($applyInfo['winery_name'])) throw new ValidateException('请输入酒厂名称!');
if (empty($applyInfo['scale'])) throw new ValidateException('请输入年产量多少吨!');
if (empty($applyInfo['cellar_size'])) throw new ValidateException('请输入窖池大小!');
if (empty($applyInfo['corporation_name'])) throw new ValidateException('请输入法人姓名!');
if (empty($applyInfo['corporation_phone'])) throw new ValidateException('请输入法人电话!');
if (isPhone($applyInfo['corporation_phone'])) throw new ValidateException('请输入正确的法人电话!');
if (empty($applyInfo['corporation_id_card'])) throw new ValidateException('请上传法人身份证正反面图片!');
if (empty($applyInfo['chairman_name'])) throw new ValidateException('请输入董事长姓名!');
if (empty($applyInfo['chairman_phone'])) throw new ValidateException('请输入董事长电话!');
if (isPhone($applyInfo['chairman_phone'])) throw new ValidateException('请输入正确的董事长电话!');
if (empty($applyInfo['chairman_id_card'])) throw new ValidateException('请上传董事长身份证正反面图片!');
if (empty($applyInfo['contacts_name'])) throw new ValidateException('请输入联系人姓名!');
if (empty($applyInfo['contacts_phone'])) throw new ValidateException('请输入联系人电话!');
if (isPhone($applyInfo['contacts_phone'])) throw new ValidateException('请输入正确的联系人电话!');
if (empty($applyInfo['business_license'])) throw new ValidateException('请上传营业执照!');
if (empty($applyInfo['production_icense'])) throw new ValidateException('请上传生产许可证!');
if (empty($applyInfo['circulative_license'])) throw new ValidateException('请上传流通许可证!');
// 联系人及联系人手机号
$isHas = app()->make(SystemSupplierApplyServices::class)->searchModel(['contacts_phone'=>$applyInfo['contacts_phone']])->count();
if($isHas >= 1) throw new ValidateException('联系人已经存在,请勿重复申请!');
return compact('supplierApplyId','applyInfo');
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace app\dao\supplier;
use app\dao\BaseDao;
use app\model\supplier\SystemSupplierApply;
class SystemSupplierApplyDao extends BaseDao{
protected function setModel(): string{
return SystemSupplierApply::class;
}
// 公共搜索模型
public function searchModel(array $search){
return $this->getModel()
->when(isset($search['id']) && $search['id'] !== '', function ($query) use ($search) {
$query->where('id',$search['id']);
})
->when(isset($search['contacts_phone']) && $search['contacts_phone'] !== '', function ($query) use ($search) {
$query->where('contacts_phone', $search['contacts_phone']);
});
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace app\model\supplier;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
class SystemSupplierApply extends BaseModel{
use ModelTrait;
protected $pk = 'id';
protected $name = 'system_supplier_apply';
}

View File

@ -0,0 +1,44 @@
<?php
namespace app\services\supplier;
use app\dao\supplier\SystemSupplierApplyDao;
use app\services\BaseServices;
use crmeb\exceptions\AdminException;
class SystemSupplierApplyServices extends BaseServices{
public function __construct(SystemSupplierApplyDao $dao){
$this->dao = $dao;
}
/**
* Common: 查询模型
* Author: wu-hui
* Time: 2024/01/30 14:46
* @param $where
* @return \crmeb\basic\BaseModel
*/
public function searchModel($where){
return $this->dao->searchModel($where);
}
/**
* Common: 添加申请信息
* Author: wu-hui
* Time: 2024/01/30 14:28
* @param array $data
* @return mixed
*/
public function createApplyInfo(array $data){
return $this->transaction(function() use ($data){
// 添加供应商信息
$relation_id = $this->dao->save($data['applyInfo'])->id;
if(!$relation_id) throw new AdminException('申请失败');
return $relation_id;
});
}
}

View File

@ -382,11 +382,11 @@ Route::group('api/', function () {
Route::get('promote_qr_code', 'Merchant/promoteQrCode');// 推广二维码
Route::get('online_payment_qr_code', 'Merchant/onlinePaymentQrCode');// 买单二维码
})->prefix('api.store.merchant.');
// 代理中心
// 代理中心相关
Route::group('agent', function () {
Route::get('agent_list', 'agentList');// 我的代理身份列表
Route::get('qr_code_invite_supplier', 'qrCodeInviteSupplier');// 推广二维码
Route::get('qr_code_invite_supplier', 'qrCodeInviteSupplier');// 供应商邀请二维码
Route::get('single_agent_info/:id', 'singleAgentInfo');// 获取单个代理人员信息
@ -394,12 +394,21 @@ Route::group('api/', function () {
})->prefix('api.Agent/');
// 供应商相关
Route::group('supplier', function () {
Route::post('apply', 'applyJoin');// 申请成为供应商
})->prefix('api.Supplier/');
})->middleware(UserTokenMiddleware::class, true);
//非强制登录