Browse Source

小程序分发修改

develop
李可松 4 years ago
parent
commit
ea1ef062bd
  1. 10
      app/Admin/Controllers/AgentController.php
  2. 11
      app/Admin/Extensions/Grid/MiniProgramAuditStatus.php
  3. 31
      app/Http/Controllers/Api/MiniProgramController.php
  4. 5
      app/Models/Agent.php

10
app/Admin/Controllers/AgentController.php

@ -3,6 +3,7 @@
namespace App\Admin\Controllers; namespace App\Admin\Controllers;
use App\Admin\Extensions\Grid\AuditAgent; use App\Admin\Extensions\Grid\AuditAgent;
use App\Admin\Extensions\Grid\MiniProgramAuditStatus;
use App\Admin\Extensions\Grid\MiniProgramReg; use App\Admin\Extensions\Grid\MiniProgramReg;
use App\Admin\Extensions\Grid\MiniProgramUpload; use App\Admin\Extensions\Grid\MiniProgramUpload;
use App\Admin\Repositories\Agent; use App\Admin\Repositories\Agent;
@ -25,7 +26,7 @@ class AgentController extends AdminController
*/ */
protected function grid() protected function grid()
{ {
return Grid::make(new Agent(), function (Grid $grid) {
return Grid::make(new Agent(['miniUpload']), function (Grid $grid) {
$grid->disableDeleteButton(); $grid->disableDeleteButton();
//如果是审核页面,多加where条件判断 //如果是审核页面,多加where条件判断
@ -47,6 +48,7 @@ class AgentController extends AdminController
$grid->column('created_at'); $grid->column('created_at');
$grid->column('status', '状态') $grid->column('status', '状态')
->style('min-width:7em;')
->help('新用户入驻时,请先注册小程序。待企业法人认证通过之后,再上传小程序即可') ->help('新用户入驻时,请先注册小程序。待企业法人认证通过之后,再上传小程序即可')
->using(UserStatus::array()) ->using(UserStatus::array())
->dot([ ->dot([
@ -67,8 +69,12 @@ class AgentController extends AdminController
if (empty($this->appid)) { //注册小程序 if (empty($this->appid)) { //注册小程序
$column->append((new MiniProgramReg(null, 1))->setKey($this->id))->append(' '); $column->append((new MiniProgramReg(null, 1))->setKey($this->id))->append(' ');
$column->append((new MiniProgramReg(null, 2))->setKey($this->id)); $column->append((new MiniProgramReg(null, 2))->setKey($this->id));
} else {
} else if (empty($this->miniUpload)) {
$column->append((new MiniProgramUpload(null, 1))->setKey($this->id)); $column->append((new MiniProgramUpload(null, 1))->setKey($this->id));
} else if ($this->miniUpload->is_success == 0) {
$column->append("已发布{$this->miniUpload->template_id}");
} else {
$column->append((new MiniProgramAuditStatus(null, 1))->setKey($this->id));
} }
}); });

11
app/Admin/Extensions/Grid/MiniProgramAuditStatus.php

@ -1,20 +1,16 @@
<?php <?php
namespace App\Admin\Extensions\Grid; namespace App\Admin\Extensions\Grid;
use App\Common\UserStatus;
use App\Models\AdminSetting; use App\Models\AdminSetting;
use App\Models\Agent; use App\Models\Agent;
use App\Models\MiniProgramTemplate; use App\Models\MiniProgramTemplate;
use App\Models\MiniProgramUploadLog; use App\Models\MiniProgramUploadLog;
use App\Models\Supplier;
use Dcat\Admin\Admin;
use Dcat\Admin\Grid\RowAction; use Dcat\Admin\Grid\RowAction;
use EasyWeChat\Factory; use EasyWeChat\Factory;
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; use EasyWeChat\Kernel\Exceptions\InvalidConfigException;
use EasyWeChat\OpenPlatform\Authorizer\MiniProgram\Code\Client; use EasyWeChat\OpenPlatform\Authorizer\MiniProgram\Code\Client;
use GuzzleHttp\Exception\GuzzleException; use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
/** /**
* 查询小程序发布后某个版本的审核状态 * 查询小程序发布后某个版本的审核状态
@ -52,6 +48,8 @@ class MiniProgramAuditStatus extends RowAction
$log = MiniProgramUploadLog::where(['agent_id' => $agent->id, 'template_id' => $template_id])->orderBy('id', 'desc')->first(); $log = MiniProgramUploadLog::where(['agent_id' => $agent->id, 'template_id' => $template_id])->orderBy('id', 'desc')->first();
if (!$log) { if (!$log) {
return $this->response()->error('该代理商未上传及发布过最新版本的小程序'); return $this->response()->error('该代理商未上传及发布过最新版本的小程序');
} else if (!$log->audit_id){
return $this->response()->error('未找到审核记录audit_id');
} }
try { try {
@ -76,7 +74,10 @@ class MiniProgramAuditStatus extends RowAction
$res = $code->getAuditStatus($log->audit_id); $res = $code->getAuditStatus($log->audit_id);
if (isset($res['errcode'], $res['errmsg'], $res['status']) && $res['errcode'] == 0 && $res['errmsg'] == 'ok') { if (isset($res['errcode'], $res['errmsg'], $res['status']) && $res['errcode'] == 0 && $res['errmsg'] == 'ok') {
$statusArr = ['审核成功', '审核被拒绝', '审核中', '已撤回', '审核延后'];
$statusArr = [0 => '审核成功', 1 => '审核被拒绝', 2 => '审核中', 3 => '已撤回', 4 => '审核延后'];
//保存审核状态
$log->is_success = $res['status'];
$log->save();
if (isset($statusArr[$res['status']])) { if (isset($statusArr[$res['status']])) {
return $this->response()->success($statusArr[$res['status']])->refresh(); return $this->response()->success($statusArr[$res['status']])->refresh();
} else { } else {

31
app/Http/Controllers/Api/MiniProgramController.php

@ -18,7 +18,13 @@ class MiniProgramController extends Controller
// 第三方平台授权事件通知 // 第三方平台授权事件通知
public function authEvent(Request $request) public function authEvent(Request $request)
{ {
DB::table('mini_program_events')->insert(['response' => json_encode($request->all()), 'created_at' => now()]);
DB::table('mini_program_events')
->insert([
'type' => 0,
'response' => json_encode($request->all()),
'event' => 'all',
'created_at' => now(),
]);
$setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']); $setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);
$config = [ // 第三方平台信息 $config = [ // 第三方平台信息
@ -35,11 +41,13 @@ class MiniProgramController extends Controller
// 处理授权更新事件:Guard::EVENT_UPDATE_AUTHORIZED // 处理授权更新事件:Guard::EVENT_UPDATE_AUTHORIZED
// 处理授权取消事件:Guard::EVENT_UNAUTHORIZED // 处理授权取消事件:Guard::EVENT_UNAUTHORIZED
$server->push(function ($message) { $server->push(function ($message) {
DB::table('mini_program_events')->insert([
'response' => json_encode($message),
'event' => $message['InfoType'] ?? '',
'created_at' => now()
]);
DB::table('mini_program_events')
->insert([
'type' => 0,
'response' => json_encode($message),
'event' => $message['InfoType'] ?? '',
'created_at' => now()
]);
if (isset($message['InfoType'], $message['status'], $message['msg'], $message['info']) && $message['status'] == 0 && $message['msg'] == 'OK') { if (isset($message['InfoType'], $message['status'], $message['msg'], $message['info']) && $message['status'] == 0 && $message['msg'] == 'OK') {
//注册成功授权通知 //注册成功授权通知
@ -55,8 +63,15 @@ class MiniProgramController extends Controller
public function msgEvent(Request $request) public function msgEvent(Request $request)
{ {
$appid = $request->route('appid');
DB::table('mini_program_events')->insert(['appid' => $appid, 'response' => json_encode($request->all()), 'created_at' => now()]);
$appid = $request->route('appid', '');
DB::table('mini_program_events')
->insert([
'type' => 1,
'response' => json_encode($request->all()),
'appid' => $appid,
'event' => 'all',
'created_at' => now(),
]);
$setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']); $setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);
$config = [ $config = [

5
app/Models/Agent.php

@ -29,6 +29,11 @@ class Agent extends BaseModel
return $this->hasMany(AgentProduct::class); return $this->hasMany(AgentProduct::class);
} }
public function miniUpload()
{
return $this->hasOne(MiniProgramUploadLog::class)->orderBy('id', 'desc');
}
public function demand() public function demand()
{ {
return $this->morphOne('App\Models\Demand', 'publisher'); return $this->morphOne('App\Models\Demand', 'publisher');

Loading…
Cancel
Save