This commit is contained in:
mkm 2023-12-04 16:40:55 +08:00
parent b7491efc4a
commit b70ddddbbc

View File

@ -47,7 +47,7 @@ class Merchant extends BaseController
{ {
parent::__construct($app); parent::__construct($app);
$this->repository = $repository; $this->repository = $repository;
$this->userInfo =$this->request->isLogin() ? $this->request->userInfo():null; $this->userInfo = $this->request->isLogin() ? $this->request->userInfo() : null;
} }
/** /**
@ -58,21 +58,21 @@ class Merchant extends BaseController
public function lst() public function lst()
{ {
[$page, $limit] = $this->getPage(); [$page, $limit] = $this->getPage();
$where = $this->request->params(['store_category_id','keyword', 'order', 'is_best', 'location', 'category_id', 'type_id', 'type_code', 'is_trader', 'street_id', 'credit_buy']); $where = $this->request->params(['merchant_category_id', 'keyword', 'order', 'is_best', 'location', 'category_id', 'type_id', 'type_code', 'is_trader', 'street_id', 'credit_buy']);
if (empty($where['type_id'])) { if (empty($where['type_id'])) {
$where['type_id'] =[10,17]; $where['type_id'] = [10, 17];
} }
if($where['store_category_id']>0){ if ($where['merchant_category_id'] > 0) {
$arr= Db::name('store_category')->where(['pid'=>$where['store_category_id'],'mer_id'=>0,'level'=>1,'is_show'=>1])->column('cate_name'); // $arr= Db::name('store_category')->where(['pid'=>$where['store_category_id'],'mer_id'=>0,'level'=>1,'is_show'=>1])->column('cate_name');
if($arr){ // if($arr){
$category_id=Db::name('merchant_category')->whereIn('category_name',$arr)->column('merchant_category_id'); // $category_id=Db::name('merchant_category')->whereIn('category_name',$arr)->column('merchant_category_id');
if($category_id){ // if($category_id){
$where['category_id']=implode(',',$category_id); // $where['category_id']=implode(',',$category_id);
// }
// }
$where['category_id'] = $where['merchant_category_id'];
unset($where['merchant_category_id']);
} }
}
unset($where['store_category_id']);
}
// $where['category_id']=$where['store_category_id']??'';
return app('json')->success($this->repository->getList($where, $page, $limit, $this->userInfo)); return app('json')->success($this->repository->getList($where, $page, $limit, $this->userInfo));
} }
@ -96,7 +96,7 @@ class Merchant extends BaseController
public function systemDetail() public function systemDetail()
{ {
$config = systemConfig(['site_logo', 'site_name','login_logo']); $config = systemConfig(['site_logo', 'site_name', 'login_logo']);
return app('json')->success([ return app('json')->success([
'mer_avatar' => $config['login_logo'], 'mer_avatar' => $config['login_logo'],
'mer_name' => $config['site_name'], 'mer_name' => $config['site_name'],
@ -115,9 +115,9 @@ class Merchant extends BaseController
public function productList($id) public function productList($id)
{ {
[$page, $limit] = $this->getPage(); [$page, $limit] = $this->getPage();
$where = $this->request->params(['keyword','order','mer_cate_id','cate_id', 'order', 'price_on', 'price_off', 'brand_id', 'pid']); $where = $this->request->params(['keyword', 'order', 'mer_cate_id', 'cate_id', 'order', 'price_on', 'price_off', 'brand_id', 'pid']);
if(!$this->repository->apiGetOne($id)) return app('json')->fail(' 店铺已打烊'); if (!$this->repository->apiGetOne($id)) return app('json')->fail(' 店铺已打烊');
return app('json')->success($this->repository->productList($id,$where, $page, $limit,$this->userInfo)); return app('json')->success($this->repository->productList($id, $where, $page, $limit, $this->userInfo));
} }
/** /**
@ -128,35 +128,34 @@ class Merchant extends BaseController
*/ */
public function categoryList($id) public function categoryList($id)
{ {
if(!$this->repository->merExists((int)$id)) if (!$this->repository->merExists((int)$id))
return app('json')->fail('店铺已打烊'); return app('json')->fail('店铺已打烊');
return app('json')->success($this->repository->categoryList($id)); return app('json')->success($this->repository->categoryList($id));
} }
public function qrcode($id) public function qrcode($id)
{ {
if(!$this->repository->merExists($id)) if (!$this->repository->merExists($id))
return app('json')->fail('店铺已打烊'); return app('json')->fail('店铺已打烊');
if ($this->request->param('type') == 'routine') { if ($this->request->param('type') == 'routine') {
$url= $this->repository->routineQrcode(intval($id)); $url = $this->repository->routineQrcode(intval($id));
}elseif($this->request->param('type') == 'app'){ } elseif ($this->request->param('type') == 'app') {
$attachmentRepository = app()->make(AttachmentRepository::class); $attachmentRepository = app()->make(AttachmentRepository::class);
$name='merchant_code_'.$id.'.png'; $name = 'merchant_code_' . $id . '.png';
$imageInfo = $attachmentRepository->getWhere(['attachment_name' => $name]); $imageInfo = $attachmentRepository->getWhere(['attachment_name' => $name]);
if($imageInfo){ if ($imageInfo) {
$url=$imageInfo['attachment_src']; $url = $imageInfo['attachment_src'];
}else{ } else {
$info = app()->make(QrcodeService::class)->getQRCodePath(systemConfig('site_url').'pages/store/home/index?id=' . $id, $name); $info = app()->make(QrcodeService::class)->getQRCodePath(systemConfig('site_url') . 'pages/store/home/index?id=' . $id, $name);
$attachmentRepository->create(systemConfig('upload_type') ?: 1, -2, $id, [ $attachmentRepository->create(systemConfig('upload_type') ?: 1, -2, $id, [
'attachment_category_id' => 0, 'attachment_category_id' => 0,
'attachment_name' => $info['name'], 'attachment_name' => $info['name'],
'attachment_src' => $info['dir'] 'attachment_src' => $info['dir']
]); ]);
$url=$info['dir']; $url = $info['dir'];
} }
} } else {
else{ $url = $this->repository->wxQrcode(intval($id));
$url= $this->repository->wxQrcode(intval($id));
} }
return app('json')->success(compact('url')); return app('json')->success(compact('url'));
} }
@ -177,13 +176,13 @@ class Merchant extends BaseController
public function update(MerchantUpdateValidate $validate, MerchantTakeValidate $takeValidate, MerchantTakeRepository $repository) public function update(MerchantUpdateValidate $validate, MerchantTakeValidate $takeValidate, MerchantTakeRepository $repository)
{ {
$type = $this->request->param('type',1); $type = $this->request->param('type', 1);
$id = $this->request->param('id'); $id = $this->request->param('id');
if(empty($id)){ if (empty($id)) {
return app('json')->fail('参数错误'); return app('json')->fail('参数错误');
} }
$merchant = Db::name('merchant')->where('mer_id',$id)->find(); $merchant = Db::name('merchant')->where('mer_id', $id)->find();
if ($type == 2) { if ($type == 2) {
$data = $this->request->params([ $data = $this->request->params([
'mer_info', 'mer_info',
@ -197,17 +196,17 @@ class Merchant extends BaseController
'mer_address', 'mer_address',
'long', 'long',
'lat', 'lat',
['delivery_way',[2]], ['delivery_way', [2]],
'credit_buy', 'credit_buy',
'settle_cycle', 'settle_cycle',
'interest_rate', 'interest_rate',
]); ]);
if(empty($data['service_phone'])) { if (empty($data['service_phone'])) {
return app('json')->fail('客户电话不能为空'); return app('json')->fail('客户电话不能为空');
} }
// 如果手机号不存在,则使用入驻时的手机号 // 如果手机号不存在,则使用入驻时的手机号
$data['service_phone'] = empty($data['service_phone'])?$merchant['mer_phone']:$data['service_phone']; $data['service_phone'] = empty($data['service_phone']) ? $merchant['mer_phone'] : $data['service_phone'];
$validate->check($data); $validate->check($data);
$sys_bases_status = systemConfig('sys_bases_status') === '0' ? 0 : 1; $sys_bases_status = systemConfig('sys_bases_status') === '0' ? 0 : 1;
@ -216,7 +215,7 @@ class Merchant extends BaseController
$merCertificate = merchantConfig($id, 'mer_certificate'); $merCertificate = merchantConfig($id, 'mer_certificate');
if (!is_array($merCertificate)) { if (!is_array($merCertificate)) {
$merCertificate = explode( ',', $merCertificate); $merCertificate = explode(',', $merCertificate);
} }
$merCertificate[0] = $data['mer_certificate']; $merCertificate[0] = $data['mer_certificate'];
app()->make(ConfigValueRepository::class)->setFormData([ app()->make(ConfigValueRepository::class)->setFormData([
@ -235,15 +234,14 @@ class Merchant extends BaseController
break; break;
} }
} }
$delivery_way = implode(',',$data['delivery_way']); $delivery_way = implode(',', $data['delivery_way']);
if (count($data['delivery_way']) == 1 && $data['delivery_way'] != $merchant['delivery_way']) { if (count($data['delivery_way']) == 1 && $data['delivery_way'] != $merchant['delivery_way']) {
app()->make(ProductRepository::class)->getSearch([]) app()->make(ProductRepository::class)->getSearch([])
->where('mer_id',$merchant['mer_id']) ->where('mer_id', $merchant['mer_id'])
->update(['delivery_way' => $delivery_way]); ->update(['delivery_way' => $delivery_way]);
} }
$data['delivery_way'] = $delivery_way; $data['delivery_way'] = $delivery_way;
} else { } else {
$data = $this->request->params(['mer_state']); $data = $this->request->params(['mer_state']);
@ -253,7 +251,7 @@ class Merchant extends BaseController
if ($data['mer_state'] && !$merchant['sub_mchid'] && systemConfig('open_wx_combine')) if ($data['mer_state'] && !$merchant['sub_mchid'] && systemConfig('open_wx_combine'))
return app('json')->fail('开启店铺前请先完成微信子商户入驻'); return app('json')->fail('开启店铺前请先完成微信子商户入驻');
} }
Db::name('merchant')->where('mer_id',$id)->update($data); Db::name('merchant')->where('mer_id', $id)->update($data);
Queue::push(ChangeMerchantStatusJob::class, $id); Queue::push(ChangeMerchantStatusJob::class, $id);
return app('json')->success('修改成功'); return app('json')->success('修改成功');
@ -267,11 +265,11 @@ class Merchant extends BaseController
public function info(MerchantTakeRepository $repository) public function info(MerchantTakeRepository $repository)
{ {
$id = $this->request->param('id'); $id = $this->request->param('id');
if(empty($id)){ if (empty($id)) {
return app('json')->fail('参数错误'); return app('json')->fail('参数错误');
} }
$data = Db::name('merchant')->where('mer_id',$id)->find(); $data = Db::name('merchant')->where('mer_id', $id)->find();
$data['mer_certificate'] = merchantConfig($id, 'mer_certificate'); $data['mer_certificate'] = merchantConfig($id, 'mer_certificate');
$data['mer_certificate'] = $data['mer_certificate'][0] ?? ''; $data['mer_certificate'] = $data['mer_certificate'][0] ?? '';
// $append = ['merchantCategory', 'merchantType', 'mer_certificate']; // $append = ['merchantCategory', 'merchantType', 'mer_certificate'];
@ -280,7 +278,7 @@ class Merchant extends BaseController
// $data = $merchant->append($append)->hidden(['mark', 'reg_admin_id', 'sort'])->toArray(); // $data = $merchant->append($append)->hidden(['mark', 'reg_admin_id', 'sort'])->toArray();
$delivery = $repository->get($id) + systemConfig(['tx_map_key']); $delivery = $repository->get($id) + systemConfig(['tx_map_key']);
$data = array_merge($data,$delivery); $data = array_merge($data, $delivery);
$data['sys_bases_status'] = systemConfig('sys_bases_status') === '0' ? 0 : 1; $data['sys_bases_status'] = systemConfig('sys_bases_status') === '0' ? 0 : 1;
$data['type_code'] = Db::name('MerchantType')->where('mer_type_id', $data['type_id'])->value('type_code'); $data['type_code'] = Db::name('MerchantType')->where('mer_type_id', $data['type_id'])->value('type_code');
return app('json')->success($data); return app('json')->success($data);
@ -294,46 +292,47 @@ class Merchant extends BaseController
public function marginInfo(MerchantTakeRepository $repository) public function marginInfo(MerchantTakeRepository $repository)
{ {
$id = $this->request->param('id'); $id = $this->request->param('id');
if(empty($id)){ if (empty($id)) {
return app('json')->fail('参数不能为空'); return app('json')->fail('参数不能为空');
} }
$merchantInfo = Db::name('merchant')->where('mer_id',$id)->field('uid,mer_id,type_id,mer_name,margin,paid_margin,is_margin')->find(); $merchantInfo = Db::name('merchant')->where('mer_id', $id)->field('uid,mer_id,type_id,mer_name,margin,paid_margin,is_margin')->find();
if(empty($merchantInfo)){ if (empty($merchantInfo)) {
return app('json')->fail('参数错误'); return app('json')->fail('参数错误');
} }
$margin = Db::name('MerchantType')->where('mer_type_id', $merchantInfo['type_id'])->value('margin'); $margin = Db::name('MerchantType')->where('mer_type_id', $merchantInfo['type_id'])->value('margin');
$merchantInfo['unpaid_margin'] = bcsub($margin,$merchantInfo['paid_margin'],2); $merchantInfo['unpaid_margin'] = bcsub($margin, $merchantInfo['paid_margin'], 2);
if($merchantInfo['margin']==0){ if ($merchantInfo['margin'] == 0) {
$merchantInfo['margin']=$merchantInfo['unpaid_margin']; $merchantInfo['margin'] = $merchantInfo['unpaid_margin'];
} }
return app('json')->success($merchantInfo); return app('json')->success($merchantInfo);
} }
public function apply($merId){ public function apply($merId)
{
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find(); $merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) { if (($msg = $this->checkAuth($merchant)) !== true) {
return app('json')->fail($msg); return app('json')->fail($msg);
} }
$extract_minimum_line = systemConfig('extract_minimum_line') ?: 0; $extract_minimum_line = systemConfig('extract_minimum_line') ?: 0;
$extract_minimum_num = systemConfig('extract_minimum_num'); $extract_minimum_num = systemConfig('extract_minimum_num');
$_line = bcsub($merchant->mer_money,$extract_minimum_line,2); $_line = bcsub($merchant->mer_money, $extract_minimum_line, 2);
$_extract = ($_line < 0) ? 0 : $_line; $_extract = ($_line < 0) ? 0 : $_line;
$merLockMoney = app()->make(UserBillRepository::class)->merchantLickMoney($merId); $merLockMoney = app()->make(UserBillRepository::class)->merchantLickMoney($merId);
$data = [ $data = [
'mer_id' => $merchant->mer_id,//商户id 'mer_id' => $merchant->mer_id, //商户id
'mer_name' => $merchant->mer_name,//商户名称 'mer_name' => $merchant->mer_name, //商户名称
'mer_money' => $merchant->mer_money,//商户余额 'mer_money' => $merchant->mer_money, //商户余额
'lock_money' => $merLockMoney,//冻结金额 'lock_money' => $merLockMoney, //冻结金额
'lock_time' => systemConfig('mer_lock_time'),//冻结金额 'lock_time' => systemConfig('mer_lock_time'), //冻结金额
'extract_minimum_line' => $extract_minimum_line,//提现最低额度 'extract_minimum_line' => $extract_minimum_line, //提现最低额度
'extract_minimum_num' => $extract_minimum_num,//提现最低次数 'extract_minimum_num' => $extract_minimum_num, //提现最低次数
'extract_money' => $_extract,//可提现金额 'extract_money' => $_extract, //可提现金额
'financial_bank_name' => $merchant->financial_bank->name ?? '',//银行卡信息 'financial_bank_name' => $merchant->financial_bank->name ?? '', //银行卡信息
'financial_bank_bank' => $merchant->financial_bank->bank ?? '',//银行卡信息 'financial_bank_bank' => $merchant->financial_bank->bank ?? '', //银行卡信息
'financial_bank_code' => $merchant->financial_bank->bank_code ?? '',//银行卡信息 'financial_bank_code' => $merchant->financial_bank->bank_code ?? '', //银行卡信息
'financial_bank_branch' => $merchant->financial_bank->bank_branch ?? '',//开户行 'financial_bank_branch' => $merchant->financial_bank->bank_branch ?? '', //开户行
'financial_type' => $merchant->financial_type,//提现方式 'financial_type' => $merchant->financial_type, //提现方式
]; ];
return app('json')->success($data); return app('json')->success($data);
} }
@ -346,7 +345,7 @@ class Merchant extends BaseController
*/ */
public function createApply($merId) public function createApply($merId)
{ {
$data = $this->request->param(['extract_money','financial_type', 'financial_bank_name', 'financial_bank_bank', 'financial_bank_code', 'financial_bank_branch']); $data = $this->request->param(['extract_money', 'financial_type', 'financial_bank_name', 'financial_bank_bank', 'financial_bank_code', 'financial_bank_branch']);
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('reg_admin_id,uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find(); $merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('reg_admin_id,uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) { if (($msg = $this->checkAuth($merchant)) !== true) {
return app('json')->fail($msg); return app('json')->fail($msg);
@ -360,7 +359,7 @@ class Merchant extends BaseController
$merchant->update(['financial_bank' => json_encode($bankInfo, JSON_UNESCAPED_UNICODE)], ['mer_id' => $merId]); $merchant->update(['financial_bank' => json_encode($bankInfo, JSON_UNESCAPED_UNICODE)], ['mer_id' => $merId]);
$data['mer_admin_id'] = $merchant['reg_admin_id']; $data['mer_admin_id'] = $merchant['reg_admin_id'];
unset($data['financial_bank_name'], $data['financial_bank_bank'], $data['financial_bank_code'], $data['financial_bank_branch']); unset($data['financial_bank_name'], $data['financial_bank_bank'], $data['financial_bank_code'], $data['financial_bank_branch']);
app()->make(FinancialRepository::class)->saveApply($merId,$data); app()->make(FinancialRepository::class)->saveApply($merId, $data);
return app('json')->success('申请成功'); return app('json')->success('申请成功');
} }
@ -372,9 +371,8 @@ class Merchant extends BaseController
} }
[$page, $limit] = $this->getPage(); [$page, $limit] = $this->getPage();
$where['mer_id'] = $merId; $where['mer_id'] = $merId;
$data = app()->make(FinancialRepository::class)->getAdminList($where,$page,$limit); $data = app()->make(FinancialRepository::class)->getAdminList($where, $page, $limit);
return app('json')->success($data); return app('json')->success($data);
} }
public function account($merId) public function account($merId)
@ -384,17 +382,17 @@ class Merchant extends BaseController
return app('json')->fail($msg); return app('json')->fail($msg);
} }
$data = [ $data = [
'financial_bank' => $merchant->financial_bank,//银行卡信息 'financial_bank' => $merchant->financial_bank, //银行卡信息
'financial_wechat' => $merchant->financial_wechat,//微信信息 'financial_wechat' => $merchant->financial_wechat, //微信信息
'financial_alipay' => $merchant->financial_alipay,//支付宝信息 'financial_alipay' => $merchant->financial_alipay, //支付宝信息
'financial_type' => $merchant->financial_type,//提现方式 'financial_type' => $merchant->financial_type, //提现方式
]; ];
return app('json')->success($data); return app('json')->success($data);
} }
public function account_info($merId) public function account_info($merId)
{ {
$data = $this->request->param(['name','bank','bank_code','financial_type']); $data = $this->request->param(['name', 'bank', 'bank_code', 'financial_type']);
app()->make(MerchantFinancialAccountValidate::class)->check($data); app()->make(MerchantFinancialAccountValidate::class)->check($data);
$merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find(); $merchant = app()->make(MerchantRepository::class)->search(['mer_id' => $merId])->field('uid,mer_id,mer_name,mer_money,financial_bank,financial_wechat,financial_alipay,financial_type')->find();
if (($msg = $this->checkAuth($merchant)) !== true) { if (($msg = $this->checkAuth($merchant)) !== true) {
@ -405,7 +403,7 @@ class Merchant extends BaseController
'bank' => $data['bank'], 'bank' => $data['bank'],
'bank_code' => $data['bank_code'], 'bank_code' => $data['bank_code'],
]; ];
app()->make(MerchantRepository::class)->update($merId,['financial_bank' => json_encode($update),'financial_type' => 1]); app()->make(MerchantRepository::class)->update($merId, ['financial_bank' => json_encode($update), 'financial_type' => 1]);
return app('json')->success('提交成功'); return app('json')->success('提交成功');
} }