From 9857824e1ac2d4d7cc1014c2cd10ce2e3dbb67a8 Mon Sep 17 00:00:00 2001 From: air <30444667+sszdot@users.noreply.github.com> Date: Mon, 30 Jun 2025 17:20:30 +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=9Afeat=20=E3=80=90=E5=8E=9F=20=20=E5=9B=A0=E3=80=91?= =?UTF-8?q?=EF=BC=9A=E5=88=9B=E5=BB=BA=E5=BA=97=E9=93=BA=E6=97=B6=E5=80=99?= =?UTF-8?q?=20=E9=A1=BA=E4=BE=BF=E5=88=9B=E5=BB=BA=E7=BB=91=E5=AE=9A=20?= =?UTF-8?q?=E4=B8=8D=E5=8F=AF=E6=9B=B4=E6=94=B9=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=20=E3=80=90=E8=BF=87=20=20=E7=A8=8B=E3=80=91=EF=BC=9A=E4=BA=8B?= =?UTF-8?q?=E5=8A=A1=20=E5=88=9B=E5=BB=BA=E5=BA=97=E9=93=BA=20=E7=84=B6?= =?UTF-8?q?=E5=90=8E=E5=88=9B=E5=BB=BA=E7=AE=A1=E7=90=86=E5=91=98=E7=94=A8?= =?UTF-8?q?=E6=88=B7=20=E6=9C=89=E9=97=AE=E9=A2=98=E5=9B=9E=E6=BB=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 | 63 ++++++++++++++----- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/FlyCube/MpApi/Controller/AdminController.class.php b/FlyCube/MpApi/Controller/AdminController.class.php index b63105b..7c68c46 100644 --- a/FlyCube/MpApi/Controller/AdminController.class.php +++ b/FlyCube/MpApi/Controller/AdminController.class.php @@ -25,32 +25,37 @@ class AdminController extends PublicController } } /** - * @description: 单位添加 + * @description: 单位添加(带事务:添加店铺 + 添加管理员) */ public function addShop() { - //非总管理员 直接打断 退出 - if ($this->tokenShop_id != C('powerId')) { //非总管理员 + // 非总管理员,拒绝操作 + if ($this->tokenShop_id != C('powerId')) { echo json_encode(array('status' => 0, 'msg' => '没有权限')); exit; } + if ($_REQUEST['name'] && $_REQUEST['price_min'] && $_REQUEST['weight_max'] && $_REQUEST['default_transport_price'] && $_REQUEST['default_pack_price']) { - //生成shop_id随机值 - $arr = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); - $shop_id = ""; + // shop_id 随机生成 + $arr = str_split('abcdefghijklmnopqrstuvwxyz0123456789'); + $shop_id = ''; for ($i = 0; $i < 16; $i++) { - $rand = rand(0, 36); - $shop_id = $shop_id . $arr[$rand]; + $rand = rand(0, count($arr) - 1); + $shop_id .= $arr[$rand]; } - //如果有上传图片得操作 执行如下 - if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录 - if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/photo/" . $_REQUEST['upFile']))) { + + // 处理 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['logo'] = json_encode(array($_REQUEST['upFile'])); } - //data数据 + + // 组装店铺数据 $data['shop_id'] = $shop_id; $data['name'] = $_REQUEST['name']; $data['waiter'] = $_REQUEST['waiter']; @@ -66,12 +71,36 @@ class AdminController extends PublicController $data['describe'] = $_REQUEST['desc']; $data['opening_time'] = $_REQUEST['opening_time']; $data['closeing_time'] = $_REQUEST['closeing_time']; - //录入数据库 + $shopDb = D('shop'); - if ($shopDb->data($data)->add()) { - echo json_encode(array('status' => 1, 'msg' => '创建成功')); + $adminuserDb = D('adminuser'); + + // 开启事务 + $shopDb->startTrans(); + + $shopAddResult = $shopDb->data($data)->add(); + + if ($shopAddResult) { + // 添加管理员数据 + $adminData['user_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 { - echo json_encode(array('status' => 0, 'msg' => '创建失败')); + $shopDb->rollback(); + echo json_encode(array('status' => 0, 'msg' => '店铺创建失败')); } } else { echo json_encode(array('status' => 0, 'msg' => '参数有误'));