From 41df34dd3898571b6867537f8c17ed603257db9a Mon Sep 17 00:00:00 2001 From: air <30444667+sszdot@users.noreply.github.com> Date: Mon, 30 Jun 2025 17:43:44 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=B1=BB=20=20=E5=9E=8B=E3=80=91?= =?UTF-8?q?=EF=BC=9A=20=E3=80=90=E5=8E=9F=20=20=E5=9B=A0=E3=80=91=EF=BC=9A?= =?UTF-8?q?=20=E3=80=90=E8=BF=87=20=20=E7=A8=8B=E3=80=91=EF=BC=9A=20?= =?UTF-8?q?=E3=80=90=E5=BD=B1=20=20=E5=93=8D=E3=80=91=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/AdminController.class.php | 153 ++++++++++-------- 1 file changed, 85 insertions(+), 68 deletions(-) diff --git a/FlyCube/MpApi/Controller/AdminController.class.php b/FlyCube/MpApi/Controller/AdminController.class.php index 423e954..3ede0ca 100644 --- a/FlyCube/MpApi/Controller/AdminController.class.php +++ b/FlyCube/MpApi/Controller/AdminController.class.php @@ -35,77 +35,94 @@ class AdminController extends PublicController exit; } - if ($_REQUEST['name'] && $_REQUEST['price_min'] && $_REQUEST['weight_max'] && $_REQUEST['default_transport_price'] && $_REQUEST['default_pack_price']) { - // shop_id 随机生成 - $arr = str_split('abcdefghijklmnopqrstuvwxyz0123456789'); - $shop_id = ''; - for ($i = 0; $i < 16; $i++) { - $rand = rand(0, count($arr) - 1); - $shop_id .= $arr[$rand]; - } - - // 处理 logo 上传 - if ($_REQUEST['upFile']) { - $from = "Data/UploadFiles/temp/" . $_REQUEST['upFile']; - $to = "Data/UploadFiles/photo/" . $_REQUEST['upFile']; - if (!copy($from, $to)) { - echo json_encode(array('status' => 0, 'msg' => '图片复制失败')); - exit; - } - $data['logo'] = json_encode(array($_REQUEST['upFile'])); - } - - // 组装店铺数据 - $data['shop_id'] = $shop_id; - $data['name'] = $_REQUEST['name']; - $data['waiter'] = $_REQUEST['waiter']; - $data['service_wx'] = $_REQUEST['service_wx']; - $data['tel'] = $_REQUEST['tel']; - $data['email'] = $_REQUEST['email']; - $data['price_min'] = $_REQUEST['price_min']; - $data['weight_max'] = $_REQUEST['weight_max']; - $data['default_transport_price'] = $_REQUEST['default_transport_price']; - $data['default_pack_price'] = $_REQUEST['default_pack_price']; - $data['remark_presup'] = $_REQUEST['remark_presup']; - $data['refund_remark_presup'] = $_REQUEST['refund_remark_presup']; - $data['describe'] = $_REQUEST['desc']; - $data['opening_time'] = $_REQUEST['opening_time']; - $data['closeing_time'] = $_REQUEST['closeing_time']; - - $shopDb = D('shop'); - $adminuserDb = D('adminuser'); - - // 开启事务 - $shopDb->startTrans(); - - $shopAddResult = $shopDb->data($data)->add(); - - if ($shopAddResult) { - // 添加管理员数据 - $adminData['name'] = $_REQUEST['admin_name']; // 管理员用户名 - $adminData['pwd'] = md5(md5($_REQUEST['pwd'])); - $adminData['shop_id'] = $shop_id; - $adminData['addtime'] = time(); - $adminData['role'] = 5; - $adminData['unique'] = 1; - - $adminAddResult = $adminuserDb->data($adminData)->add(); - - if ($adminAddResult) { - $shopDb->commit(); - echo json_encode(array('status' => 1, 'msg' => '店铺和管理员创建成功')); - } else { - $shopDb->rollback(); - echo json_encode(array('status' => 0, 'msg' => '管理员创建失败,已回滚')); - } - } else { - $shopDb->rollback(); - echo json_encode(array('status' => 0, 'msg' => '店铺创建失败')); - } - } else { + // 参数校验 + if ( + !$_REQUEST['name'] || !$_REQUEST['price_min'] || !$_REQUEST['weight_max'] || + !$_REQUEST['default_transport_price'] || !$_REQUEST['default_pack_price'] || !$_REQUEST['admin_name'] || !$_REQUEST['pwd'] + ) { echo json_encode(array('status' => 0, 'msg' => '参数有误')); + exit; } + + // 随机生成 shop_id + $arr = str_split('abcdefghijklmnopqrstuvwxyz0123456789'); + $shop_id = ''; + for ($i = 0; $i < 16; $i++) { + $shop_id .= $arr[rand(0, count($arr) - 1)]; + } + + // 准备店铺数据 + $data = array(); + $data['shop_id'] = $shop_id; + $data['name'] = $_REQUEST['name']; + $data['waiter'] = $_REQUEST['waiter']; + $data['service_wx'] = $_REQUEST['service_wx']; + $data['tel'] = $_REQUEST['tel']; + $data['email'] = $_REQUEST['email']; + $data['price_min'] = $_REQUEST['price_min']; + $data['weight_max'] = $_REQUEST['weight_max']; + $data['default_transport_price'] = $_REQUEST['default_transport_price']; + $data['default_pack_price'] = $_REQUEST['default_pack_price']; + $data['remark_presup'] = $_REQUEST['remark_presup']; + $data['refund_remark_presup'] = $_REQUEST['refund_remark_presup']; + $data['describe'] = $_REQUEST['desc']; + $data['opening_time'] = $_REQUEST['opening_time']; + $data['closeing_time'] = $_REQUEST['closeing_time']; + + // 处理 logo 上传 + if (!empty($_REQUEST['upFile'])) { + $from = "Data/UploadFiles/temp/" . $_REQUEST['upFile']; + $to = "Data/UploadFiles/photo/" . $_REQUEST['upFile']; + if (!file_exists($from) || !copy($from, $to)) { + echo json_encode(array('status' => 0, 'msg' => '图片复制失败')); + exit; + } + $data['logo'] = json_encode(array($_REQUEST['upFile'])); + } + + $shopDb = D('shop'); + $adminuserDb = D('adminuser'); + + // 开启事务 + $shopDb->startTrans(); + + // 添加店铺 + $shopAddResult = $shopDb->data($data)->add(); + if (!$shopAddResult) { + $shopDb->rollback(); + echo json_encode(array('status' => 0, 'msg' => '店铺创建失败')); + return; + } + + // 检查管理员用户名是否已存在 + $exists = $adminuserDb->where(array('name' => $_REQUEST['admin_name']))->find(); + if ($exists) { + $shopDb->rollback(); + echo json_encode(array('status' => 0, 'msg' => '管理员用户名已存在,已回滚')); + return; + } + + // 添加管理员 + $adminData = array(); + $adminData['name'] = $_REQUEST['admin_name']; + $adminData['pwd'] = md5(md5($_REQUEST['pwd'])); + $adminData['shop_id'] = $shop_id; + $adminData['addtime'] = time(); + $adminData['role'] = 5; + $adminData['unique'] = 1; + + $adminAddResult = $adminuserDb->data($adminData)->add(); + if (!$adminAddResult) { + $shopDb->rollback(); + echo json_encode(array('status' => 0, 'msg' => '管理员创建失败,已回滚')); + return; + } + + // 一切正常,提交事务 + $shopDb->commit(); + echo json_encode(array('status' => 1, 'msg' => '店铺和管理员创建成功')); } + /** * @description: 单位更新 */