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) { return $this->renderError('缺少参数appid'); } $obj = new Server(); $msg = $obj->getVersioninfo($appid); if ($msg == 'ok') { return $this->renderSuccess('success'); } return $this->renderError($msg); } /** * @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('操作失败'); } public function auditOne(): Json { $appid = $this->request->get('appid'); $obj = new Server(); $res = $obj->privacyInfo($appid); if ($res == 'ok') { $result = $obj->submitAuditOne($appid); if ($result['status']) { return $this->renderSuccess('success'); } else { return $this->renderError($result['msg']); } } else { 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); } }