一、问题
35 个后台接口此前无任何可用界面:FastAdmin PC 后台 110 条菜单里 0 条业务菜单,
小程序端仅有 1 个 LOGO/图标设置页 → 后台功能实际上无处可操作。
二、方案(FastAdmin 原生机制)
- 用 `php think crud` 为 17 张业务表生成管理模块:
控制器 application/admin/controller/fc/*.php(继承 Backend)
模型 application/admin/model/Fc*.php
视图 application/admin/view/fc/*/{index,add,edit}.html
后台 JS public/assets/js/backend/fc/*.js
语言包 application/admin/lang/zh-cn/fc/*.php
- 菜单结构固化进安装器 application/admin/command/FcInstall.php 的 menu()(幂等):
同城业务 ├─ 内容管理 分类管理/轮播管理/信息管理/评价管理/举报处理
├─ 用户与商家 商家管理/会员管理/消息管理
├─ 交易管理 订单管理/会员套餐/资金流水/佣金明细/付费查看记录
├─ 分销管理 分销关系/提现审核
└─ 基础数据 服务区域/草稿箱
三、业务动作(一键操作,含列表页按钮)
- fc/post: audit(审核通过/驳回 + 分类信息量 + 站内信) / offline(下架)
- fc/merchant: audit(资质审核 + 同步用户身份 + 店铺状态)
- fc/withdraw: pay(打款/驳回 + 资金流水 + 拒绝须填原因)
- fc/order: refund(退款) / supplement(按订单号补单 + 流水)
- fc/comment: reply(回复) / top(置顶)
- fc/report: handle(标记已处理)
四、验证
- 后台登录后业务页 HTTP 200,controllername/jsname 正确解析
- 列表数据真实加载:分类 8 / 信息 6 / 订单 4 / 提现 3 / 商家 4
- 侧边栏 5 个中文分组菜单正常渲染
60 行
1.5 KiB
PHP
60 行
1.5 KiB
PHP
<?php
|
|
|
|
namespace app\admin\controller\fc;
|
|
|
|
use app\common\controller\Backend;
|
|
use think\Db;
|
|
|
|
/**
|
|
* 同城-举报
|
|
*
|
|
* @icon fa fa-circle-o
|
|
*/
|
|
class Report extends Backend
|
|
{
|
|
|
|
/**
|
|
* FcReport模型对象
|
|
* @var \app\admin\model\FcReport
|
|
*/
|
|
protected $model = null;
|
|
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
$this->model = new \app\admin\model\FcReport;
|
|
$this->view->assign("statusList", $this->model->getStatusList());
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
|
|
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
|
|
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
|
|
*/
|
|
|
|
/**
|
|
* 处理举报
|
|
*/
|
|
public function handle()
|
|
{
|
|
$ids = $this->request->post('ids');
|
|
$remark = $this->request->post('remark', '');
|
|
$ids = is_array($ids) ? $ids : explode(',', (string)$ids);
|
|
$ids = array_filter($ids);
|
|
if (!$ids) {
|
|
$this->error('请选择要处理的举报');
|
|
}
|
|
Db::name('fc_report')->where('id', 'in', $ids)->update([
|
|
'status' => 'handled',
|
|
'remark' => $remark,
|
|
'updatetime' => time(),
|
|
]);
|
|
$this->success('处理成功');
|
|
}
|
|
|
|
|
|
|
|
}
|