| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace app\controller\api;
- use app\admin\model\store\DeviceRepair as DeviceRepairModel;
- //use think\Controller;
- use app\Request;
- use think\facade\Validate;
- /**
- * 用户端设备报修表单控制器
- * 处理表单展示、提交验证
- */
- class DeviceRepairController
- {
- /**
- * 展示报修表单页面
- * @return \think\response\View
- */
- // public function index()
- // {
- // return $this->fetch();
- // }
- /**
- * 提交报修表单(AJAX接口)
- * @return \think\response\Json
- */
- public function submit()
- {
- // 1. 获取表单数据
- $data = Request::post([
- 'device_name', // 设备名称
- 'device_number', // 数量
- 'order_id',
- 'product_id',
- 'repair_problem', // 报修问题
- 'return_address', // 寄回地址
- 'contact_name', // 联系人
- 'contact_phone' // 联系电话
- ]);
- // 2. 表单验证
- $validate = Validate::make([
- 'device_name' => 'require|max:100', // 设备名称必填,最多100字
- 'device_number' => 'require|integer|min:1', // 数量必填,正整数
- 'repair_problem' => 'require', // 问题描述必填
- 'return_address' => 'require|max:255', // 地址必填,最多255字
- 'contact_name' => 'require|max:50', // 联系人必填,最多50字
- 'contact_phone' => 'require|mobile', // 电话必填,手机号格式
- ], [
- 'device_name.require' => '请填写设备名称',
- 'device_number.require' => '请填写设备数量',
- 'device_number.min' => '设备数量至少1台',
- 'repair_problem.require' => '请描述报修问题',
- 'return_address.require' => '请填写寄回地址',
- 'contact_name.require' => '请填写联系人姓名',
- 'contact_phone.require' => '请填写联系电话',
- 'contact_phone.mobile' => '请填写正确的手机号'
- ]);
- if (!$validate->check($data)) {
- return json(['code' => 0, 'msg' => $validate->getError()]);
- }
- $rs=DeviceRepairModel::where('order_id', $data['order_id'])->where('product_id', $data['product_id'])->find();
- if ($rs){
- // return json(['code' => 0, 'msg' => '您已提交过报修单,请勿重复提交']);
- return app('json')->fail('您已提交过报修单,请勿重复提交');
- }
- // 3. 提交表单到数据库
- $result = DeviceRepairModel::addRepairForm($data);
- if (!$result) {
- // return json(['code' => 0, 'msg' => '报修表单提交失败,请重试']);
- return app('json')->fail('报修表单提交失败,请重试');
- }
- // 4. 返回成功(带报修单号)
- return app('json')->successful($result);
- // return json([
- // 'code' => 200,
- // 'msg' => '报修表单提交成功',
- // 'data' => [
- // 'repair_sn' => $result['repair_sn'], // 自动生成的单号
- // ]
- // ]);
- }
- }
|