This commit is contained in:
chenbo 2023-09-19 11:34:04 +08:00
parent 257b77b5d5
commit 6ba04b1b2c
4 changed files with 71 additions and 49 deletions

View File

@ -389,6 +389,7 @@ class CompanyController extends BaseAdminController
$data = [
'mer_intention_id' => $params['mer_intention_id']??'', // 商城商户入驻申请id签约完成后回调使用
'company_name' => $params['company_name']??'',
'mer_name' => $params['mer_name']??'', // 店铺名称
'organization_code' => $params['organization_code']??'',
'city' => $params['city']??'',
'area' => $params['area']??'',

View File

@ -3,6 +3,7 @@
namespace app\api\controller;
use app\api\lists\approve\ApproveLists;
use app\common\logic\approve\ApproveLogic;
use app\common\model\Approve;
use Symfony\Component\HttpClient\HttpClient;
use think\Exception;
@ -32,57 +33,16 @@ class ApproveController extends BaseApiController
if (!$approve) {
throw new Exception('数据不存在');
}
Db::startTrans();
// 拒绝通过
if ($params['check_status'] == 3) {
if (empty($params['remark'])) {
throw new Exception('请输入拒绝理由');
}
$this->refuse($approve, $params);
}
// 修改任务完成状态
if ($params['check_status'] == 2) {
$this->pass($approve);
}
// 回调商城,通知审核状态
if (in_array($approve['type'], [2, 3])) {
$shopMerchantInfo = json_decode($approve['extend'], true);
self::shopCallBack($approve, $shopMerchantInfo, $params);
}
Db::commit();
return $this->fail('操作成功');
ApproveLogic::audit($approve, $params);
return $this->success('操作成功');
} catch (Exception $exception) {
Db::rollback();
return $this->fail('审核失败');
return $this->fail(ApproveLogic::getError() ?? $exception->getMessage());
}
}
private static function pass(Approve $approve)
public function detail()
{
$approve->check_status = 2;
$approve->save();
}
private static function refuse(Approve $approve, $params)
{
$approve->check_status = 3;
$approve->remard = $params['remark'];
$approve->save();
}
private static function shopCallBack(Approve $approve, $shopMerchantInfo, $params)
{
$status = $params['check_status'] == 2? 1: 2;
if ($params['check_status'] == 3) {
$status = 2;
}
// 通知商城审批状态
$requestResponse = HttpClient::create()->request('POST', env('url.shop_prefix') . '/api/merchant/syncStatus/'.$shopMerchantInfo['mer_intention_id'], [
'body' => ['status' => $status, 'type' => $approve['type']]
]);
$param = $this->request->param();
$detail = ApproveLogic::detail($param['id']);
return $this->success('成功', $detail);
}
}

View File

@ -43,7 +43,7 @@ class ApproveLists extends BaseApiDataLists implements ListsSearchInterface
public function lists(): array
{
return Approve::where($this->searchWhere)
Approve::where($this->searchWhere)
->where($this->queryWhere())
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
@ -52,6 +52,8 @@ class ApproveLists extends BaseApiDataLists implements ListsSearchInterface
})
->select()
->toArray();
dd((new Approve())->getLastSql());
return [];
}

View File

@ -0,0 +1,59 @@
<?php
namespace app\common\logic\approve;
use app\common\logic\BaseLogic;
use app\common\model\Approve;
use Symfony\Component\HttpClient\HttpClient;
use think\facade\Db;
class ApproveLogic extends BaseLogic
{
public static function audit($approve, $params)
{
// 拒绝通过
if ($params['check_status'] == 3) {
if (empty($params['remark'])) {
self::setError('请输入拒绝理由');
}
self::refuse($approve, $params);
}
// 修改任务完成状态
if ($params['check_status'] == 2) {
self::pass($approve);
}
// 回调商城,通知审核状态
if (in_array($approve['type'], [2, 3])) {
$shopMerchantInfo = json_decode($approve['extend'], true);
self::shopCallBack($approve, $shopMerchantInfo, $params);
}
}
private static function pass(Approve $approve)
{
$approve->check_status = 2;
$approve->save();
}
private static function refuse(Approve $approve, $params)
{
$approve->check_status = 3;
$approve->remard = $params['remark'];
$approve->save();
}
private static function shopCallBack(Approve $approve, $shopMerchantInfo, $params)
{
$status = $params['check_status'] == 2? 1: 2;
// 通知商城审批状态
$requestResponse = HttpClient::create()->request('POST', env('url.shop_prefix') . '/api/merchant/syncStatus/'.$shopMerchantInfo['mer_intention_id'], [
'body' => ['status' => $status, 'type' => $approve['type']]
]);
}
public static function detail($id)
{
return Approve::where(['id', $id])->find();
}
}