【类 型】:feat

【原  因】:创建店铺时候 顺便创建绑定 不可更改管理员
【过  程】:事务 创建店铺 然后创建管理员用户 有问题回滚
【影  响】:
This commit is contained in:
air 2025-06-30 17:20:30 +08:00
parent 7e05f09339
commit 9857824e1a

View File

@ -25,32 +25,37 @@ class AdminController extends PublicController
} }
} }
/** /**
* @description: 单位添加 * @description: 单位添加(带事务:添加店铺 + 添加管理员)
*/ */
public function addShop() public function addShop()
{ {
//非总管理员 直接打断 退出 // 非总管理员,拒绝操作
if ($this->tokenShop_id != C('powerId')) { //非总管理员 if ($this->tokenShop_id != C('powerId')) {
echo json_encode(array('status' => 0, 'msg' => '没有权限')); echo json_encode(array('status' => 0, 'msg' => '没有权限'));
exit; exit;
} }
if ($_REQUEST['name'] && $_REQUEST['price_min'] && $_REQUEST['weight_max'] && $_REQUEST['default_transport_price'] && $_REQUEST['default_pack_price']) { if ($_REQUEST['name'] && $_REQUEST['price_min'] && $_REQUEST['weight_max'] && $_REQUEST['default_transport_price'] && $_REQUEST['default_pack_price']) {
//生成shop_id随机值 // 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"); $arr = str_split('abcdefghijklmnopqrstuvwxyz0123456789');
$shop_id = ""; $shop_id = '';
for ($i = 0; $i < 16; $i++) { for ($i = 0; $i < 16; $i++) {
$rand = rand(0, 36); $rand = rand(0, count($arr) - 1);
$shop_id = $shop_id . $arr[$rand]; $shop_id .= $arr[$rand];
} }
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录 // 处理 logo 上传
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/photo/" . $_REQUEST['upFile']))) { 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' => '图片复制失败')); echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit; exit;
} }
$data['logo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存 $data['logo'] = json_encode(array($_REQUEST['upFile']));
} }
//data数据
// 组装店铺数据
$data['shop_id'] = $shop_id; $data['shop_id'] = $shop_id;
$data['name'] = $_REQUEST['name']; $data['name'] = $_REQUEST['name'];
$data['waiter'] = $_REQUEST['waiter']; $data['waiter'] = $_REQUEST['waiter'];
@ -66,12 +71,36 @@ class AdminController extends PublicController
$data['describe'] = $_REQUEST['desc']; $data['describe'] = $_REQUEST['desc'];
$data['opening_time'] = $_REQUEST['opening_time']; $data['opening_time'] = $_REQUEST['opening_time'];
$data['closeing_time'] = $_REQUEST['closeing_time']; $data['closeing_time'] = $_REQUEST['closeing_time'];
//录入数据库
$shopDb = D('shop'); $shopDb = D('shop');
if ($shopDb->data($data)->add()) { $adminuserDb = D('adminuser');
echo json_encode(array('status' => 1, 'msg' => '创建成功'));
// 开启事务
$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 { } else {
echo json_encode(array('status' => 0, 'msg' => '创建失败')); $shopDb->rollback();
echo json_encode(array('status' => 0, 'msg' => '店铺创建失败'));
} }
} else { } else {
echo json_encode(array('status' => 0, 'msg' => '参数有误')); echo json_encode(array('status' => 0, 'msg' => '参数有误'));