【类 型】:

【原  因】:
【过  程】:
【影  响】:
This commit is contained in:
air 2025-06-30 17:43:44 +08:00
parent d2fd3225f0
commit 41df34dd38

View File

@ -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: 单位更新
*/