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' => '参数有误'));