|
|
|
<?php
|
|
|
|
declare (strict_types=1);
|
|
|
|
|
|
|
|
namespace app\admin\controller;
|
|
|
|
|
|
|
|
use app\common\library\wxserver\Server;
|
|
|
|
use app\job\controller\Wxserver as WxserverJob;
|
|
|
|
use PHPQRCode\QRcode;
|
|
|
|
use think\db\exception\DbException;
|
|
|
|
use think\facade\Db;
|
|
|
|
use think\response\Json;
|
|
|
|
|
|
|
|
class Wxserve extends Controller
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @notes:生成授权二维码
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function qrcode(): Json
|
|
|
|
{
|
|
|
|
$obj = new Server();
|
|
|
|
$url = $this->request->domain(true) . '/api/wxserver/redirect';
|
|
|
|
$jumUrl = $obj->jumpH5Url($url);
|
|
|
|
$savePath = root_path() . "public/wxserve";
|
|
|
|
!is_dir($savePath) && mkdir($savePath, 0755, true);
|
|
|
|
$savePath .= '/auth_qrcode.png';
|
|
|
|
QRcode::png($jumUrl, $savePath, 'L', 8, 1);
|
|
|
|
return $this->renderSuccess(['img_url' => $this->request->domain(true) . '/wxserve/auth_qrcode.png?time=' . time()]);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:授权列表
|
|
|
|
* @return Json
|
|
|
|
* @throws DbException
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function authList(): Json
|
|
|
|
{
|
|
|
|
$store_ids = [];
|
|
|
|
$where = [];
|
|
|
|
$store_id = intval($this->request->get('store_id'));
|
|
|
|
if ($store_id) {
|
|
|
|
$where[] = ['store_id', '=', $store_id];
|
|
|
|
}
|
|
|
|
$nick_name = $this->request->get('nick_name');
|
|
|
|
if ($nick_name) {
|
|
|
|
$where[] = ['nick_name', 'like', "%$nick_name%"];
|
|
|
|
}
|
|
|
|
$appid = $this->request->get('appid');
|
|
|
|
if ($appid) {
|
|
|
|
$where[] = ['nick_name', '=', "%$appid%"];
|
|
|
|
}
|
|
|
|
$result = Db::table('yoshop_wxserver_account')
|
|
|
|
->where($where)
|
|
|
|
->paginate(15);
|
|
|
|
$list = $result->items();
|
|
|
|
$total = $result->total();
|
|
|
|
if ($total) {
|
|
|
|
foreach ($list as &$item) {
|
|
|
|
$store_ids[] = $item['store_id'];
|
|
|
|
$item['create_time'] = date('Y-m-d H:i:s', $item['create_time']);
|
|
|
|
if ($item['exp_info']) {
|
|
|
|
$item['exp_info'] = json_decode($item['exp_info'], true);
|
|
|
|
if (!empty($item['exp_info']['exp_time'])) {
|
|
|
|
$item['exp_info']['exp_time'] = date('Y-m-d H:i:s', $item['exp_info']['exp_time']);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$item['exp_info']['exp_time'] = '无';
|
|
|
|
$item['exp_info']['exp_version'] = '无';
|
|
|
|
}
|
|
|
|
if ($item['release_info']) {
|
|
|
|
$item['release_info'] = json_decode($item['release_info'], true);
|
|
|
|
if (!empty($item['release_info']['release_time'])) {
|
|
|
|
$item['release_info']['release_time'] = date('Y-m-d H:i:s', $item['release_info']['release_time']);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$item['release_info']['release_time'] = '无';
|
|
|
|
$item['release_info']['release_version'] = '无';
|
|
|
|
}
|
|
|
|
if (!empty($item['experience_code'])) {
|
|
|
|
$item['experience_code'] = $this->request->domain(true) . $item['experience_code'] . '?time=' . time();
|
|
|
|
}
|
|
|
|
if ($item['audit_status'] == 0) {
|
|
|
|
$item['audit_status_text'] = '--';
|
|
|
|
} elseif ($item['audit_status'] == 1) {
|
|
|
|
$item['audit_status_text'] = '审核中';
|
|
|
|
} elseif ($item['audit_status'] == 2) {
|
|
|
|
$item['audit_status_text'] = '审核通过';
|
|
|
|
} elseif ($item['audit_status'] == 3) {
|
|
|
|
$item['audit_status_text'] = '审核失败';
|
|
|
|
} elseif ($item['audit_status'] == 4) {
|
|
|
|
$item['audit_status_text'] = '延时审核';
|
|
|
|
}
|
|
|
|
unset($item['access_token']);
|
|
|
|
unset($item['refresh_token']);
|
|
|
|
unset($item['signature']);
|
|
|
|
}
|
|
|
|
$store_list = Db::table('yoshop_store')
|
|
|
|
->whereIn('store_id', $store_ids)
|
|
|
|
->column('store_name', 'store_id');
|
|
|
|
foreach ($list as &$item) {
|
|
|
|
$item['store_name'] = $store_list[$item['store_id']] ?? '';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $this->renderSuccess(['list' => $list, 'total' => $total]);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:草稿箱列表
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function templatedraftlist(): Json
|
|
|
|
{
|
|
|
|
$type = intval($this->request->get('type', 0));
|
|
|
|
$obj = new Server();
|
|
|
|
$list = $obj->getTemplateDraftList($type);
|
|
|
|
return $this->renderSuccess($list);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:添加草稿到模板中
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function addTotemplate(): Json
|
|
|
|
{
|
|
|
|
$draft_id = $this->request->get('draft_id');
|
|
|
|
if ($draft_id) {
|
|
|
|
$obj = new Server();
|
|
|
|
$res = $obj->addTotemplate($draft_id);
|
|
|
|
if ($res) {
|
|
|
|
return $this->renderSuccess('success');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $this->renderError('操作失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:获取模板列表
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function templatelist(): Json
|
|
|
|
{
|
|
|
|
$type = intval($this->request->get('type', 0));
|
|
|
|
$obj = new Server();
|
|
|
|
$list = $obj->getTemplatelist($type);
|
|
|
|
return $this->renderSuccess($list);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:删除模板
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function delTemplatelist(): Json
|
|
|
|
{
|
|
|
|
$template_id = $this->request->get('template_id');
|
|
|
|
if ($template_id) {
|
|
|
|
$obj = new Server();
|
|
|
|
$res = $obj->deleTetemplate($template_id);
|
|
|
|
if ($res) {
|
|
|
|
return $this->renderSuccess('success');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $this->renderError('操作失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:提交体验版
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function commit(): Json
|
|
|
|
{
|
|
|
|
$appid = $this->request->get('appid');
|
|
|
|
$template_id = $this->request->get('template_id');
|
|
|
|
$appids = explode(',', $appid);
|
|
|
|
if ($appids && $template_id) {
|
|
|
|
foreach ($appids as $item) {
|
|
|
|
WxserverJob::dispatch(['appid' => $item, 'template_id' => $template_id]);
|
|
|
|
}
|
|
|
|
return $this->renderSuccess('success');
|
|
|
|
}
|
|
|
|
return $this->renderError('操作失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:获取版本信息
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function getVersion(): Json
|
|
|
|
{
|
|
|
|
$appid = $this->request->get('appid');
|
|
|
|
if ($appid) {
|
|
|
|
$obj = new Server();
|
|
|
|
if ($obj->getVersioninfo($appid)) {
|
|
|
|
return $this->renderSuccess('success');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $this->renderError('操作失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:提交正式版审核
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function audit(): Json
|
|
|
|
{
|
|
|
|
$appid = $this->request->get('appid');
|
|
|
|
$appids = explode(',', $appid);
|
|
|
|
if ($appids) {
|
|
|
|
foreach ($appids as $item) {
|
|
|
|
WxserverJob::dispatch(['appid' => $item]);
|
|
|
|
}
|
|
|
|
return $this->renderSuccess('success');
|
|
|
|
}
|
|
|
|
return $this->renderError('操作失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:发布正式版前检查
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function auditBeforeCheck(): Json
|
|
|
|
{
|
|
|
|
$msg = '操作失败';
|
|
|
|
$appid = $this->request->get('appid');
|
|
|
|
if ($appid) {
|
|
|
|
$obj = new Server();
|
|
|
|
$msg = $obj->privacyInfo($appid);
|
|
|
|
if ($msg == 'ok') {
|
|
|
|
return $this->renderSuccess('success');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $this->renderError($msg);
|
|
|
|
}
|
|
|
|
}
|