food_server/FlyCube/MpApi/Controller/AdminController.class.php

1124 lines
38 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace MpApi\Controller;
class AdminController extends PublicController
{
public function index()
{
echo "hello wolrd";
}
/**
* @description: 获取单位列表
*/
public function getShopList()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
$shopDb = D('shop');
if ($shopList = $shopDb->where($where)->select()) {
echo json_encode(array('status' => 1, 'msg' => '访问成功', "shopList" => $shopList));
} else {
echo json_encode(array('status' => 0, 'msg' => '暂无单位数据'));
}
}
/**
* @description: 单位添加
*/
public function addShop()
{
//非总管理员 直接打断 退出
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 = "";
for ($i = 0; $i < 16; $i++) {
$rand = rand(0, 36);
$shop_id = $shop_id . $arr[$rand];
}
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/photo/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
$data['logo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//data数据
$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');
if ($shopDb->data($data)->add()) {
echo json_encode(array('status' => 1, 'msg' => '创建成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '创建失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 单位更新
*/
public function saveShop()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['shop_id'] && $_REQUEST['name'] && $_REQUEST['price_min'] && $_REQUEST['weight_max'] && $_REQUEST['default_transport_price'] && $_REQUEST['default_pack_price']) {
//data数据
$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'];
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/logo/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
if ($_REQUEST['oldFile']) { //存在老图 既删掉老图 没有成功的话 将刚才复制到此目录得新图也一并删除
if (!(unlink("Data/UploadFiles/logo/" . basename($_REQUEST['oldFile'])))) {
unlink("Data/UploadFiles/logo/" . $_REQUEST['upFile']);
echo json_encode(array('status' => 0, 'msg' => '原图删除失败'));
exit;
}
}
$data['logo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//where条件
$where['shop_id'] = $_REQUEST['shop_id'];
//录入数据库
$shopDb = D('shop');
if ($shopDb->where($where)->save($data)) {
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 获取管理员列表
*/
public function getAdminList()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
$where['del'] = '0';
$adminuserDb = D('adminuser');
if ($adminList = $adminuserDb->where($where)->field("id,name,uname,shop_id,role,photo,addtime,lasttime")->select()) {
echo json_encode(array('status' => 1, 'msg' => '访问成功', "adminList" => $adminList));
} else {
echo json_encode(array('status' => 0, 'msg' => '暂无管理员数据'));
}
}
/**
* @description: 管理员&商家会员的添加
*/
public function addAdmin()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['name'] && $_REQUEST['uname'] && $_REQUEST['pwd']) {
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/photo/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//data数据
$data['name'] = $_REQUEST['name'];
$data['uname'] = $_REQUEST['uname'];
$data['pwd'] = MD5(MD5($_REQUEST['pwd']));
$data['shop_id'] = $_REQUEST['shop_id'];
$data['addtime'] = time();
if (isset($_REQUEST['role'])) {
$validRoles = [5, 6]; //5:商家管理员 6:商家编辑
if (!in_array($_REQUEST['role'], $validRoles)) {
echo json_encode(array('status' => 0, 'msg' => '无效的角色'));
exit;
}
$data['role'] = $_REQUEST['role'];
}
//录入数据库
$adminDb = D('adminuser');
if ($adminDb->data($data)->add()) {
echo json_encode(array('status' => 1, 'msg' => '创建成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '创建失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 管理员&商家会员的更新
*/
public function saveAdmin()
{
// 总管理员 可接收任何shop_id非总管理员只能调用自身shop_id否则会中断
$this->isPower();
if ($_REQUEST['id'] && $_REQUEST['uname'] && $_REQUEST['shop_id']) {
$adminDb = D('adminuser');
// 查询当前管理员数据(用以比对 role 和判断 unique
$currentAdmin = $adminDb->where([
'id' => $_REQUEST['id'],
'shop_id' => $_REQUEST['shop_id']
])->find();
if (!$currentAdmin) {
echo json_encode(['status' => 0, 'msg' => '用户不存在']);
exit;
}
$data['uname'] = $_REQUEST['uname'];
if ($_REQUEST['pwd']) {
$data['pwd'] = MD5(MD5($_REQUEST['pwd']));
}
// 上传头像处理
if ($_REQUEST['upFile']) {
$tempPath = "Data/UploadFiles/temp/" . $_REQUEST['upFile'];
$targetPath = "Data/UploadFiles/photo/" . $_REQUEST['upFile'];
if (!copy($tempPath, $targetPath)) {
echo json_encode(['status' => 0, 'msg' => '图片复制失败']);
exit;
}
if ($_REQUEST['oldFile']) {
$oldFilePath = "Data/UploadFiles/photo/" . basename($_REQUEST['oldFile']);
if (!unlink($oldFilePath)) {
unlink($targetPath); // 删除新图
echo json_encode(['status' => 0, 'msg' => '原图删除失败']);
exit;
}
}
$data['photo'] = json_encode([$_REQUEST['upFile']]);
}
// 如果提交的 role 与数据库中的 role 不一致,视为试图变更角色
if (isset($_REQUEST['role']) && $_REQUEST['role'] != $currentAdmin['role']) {
if ($currentAdmin['unique'] == 1) {
echo json_encode(['status' => 0, 'msg' => '总管理员权限不允许更改角色']);
exit;
}
$validRoles = [5, 6]; // 商家管理员、商家编辑
if (!in_array($_REQUEST['role'], $validRoles)) {
echo json_encode(['status' => 0, 'msg' => '无效的角色']);
exit;
}
$data['role'] = $_REQUEST['role'];
}
// where 条件
$where = [
'id' => $_REQUEST['id'],
'shop_id' => $_REQUEST['shop_id']
];
if ($adminDb->where($where)->data($data)->save()) {
echo json_encode(['status' => 1, 'msg' => '更新成功']);
} else {
echo json_encode(['status' => 0, 'msg' => '更新失败']);
}
} else {
echo json_encode(['status' => 0, 'msg' => '参数有误']);
}
}
/**
* @description: 管理员账号删除 ps:只改 del字段标识 并非真正删除
*/
public function deleteAdmin()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员
}
if ($_REQUEST['idArr']) {
// 解构 id 组
$idArr = is_array($_REQUEST['idArr'])
? $_REQUEST['idArr']
: explode(',', strval($_REQUEST['idArr']));
// 判断是否包含自身 ID
if (in_array($this->admin_id, $idArr)) {
echo json_encode(['status' => 0, 'msg' => '不能删除自身']);
exit;
}
// 查询是否包含 unique = 1 的管理员(总管理员)
$adminDb = D('adminuser');
$checkMap['id'] = ['in', $idArr];
if ($this->tokenShop_id != C('powerId')) {
$checkMap['shop_id'] = $this->tokenShop_id;
}
$admins = $adminDb->where($checkMap)->select();
foreach ($admins as $admin) {
if ($admin['unique'] == 1) {
echo json_encode(['status' => 0, 'msg' => '不能删除总管理员']);
exit;
}
}
// 执行逻辑删除
$where['id'] = ['in', $idArr];
$data['del'] = '1';
if ($adminDb->where($where)->save($data)) {
echo json_encode(['status' => 1, 'msg' => '删除成功']);
} else {
echo json_encode(['status' => 0, 'msg' => '删除失败']);
}
} else {
echo json_encode(['status' => 0, 'msg' => '参数有误']);
}
}
/**
* @description: 向管理员用户发布公告
*/
public function pubMessage()
{
if ($this->tokenShop_id != C('powerId')) {
$dataList['shop_id'] = $_REQUEST['shop_id']; //非总管理员
}
// 参数校验
if (!isset($_REQUEST['idArr']) || !isset($_REQUEST['tit']) || !isset($_REQUEST['message']) || !isset($_REQUEST['endTime']) || !isset($_REQUEST['message']) || !isset($_REQUEST['shop_id'])) {
echo json_encode(array('status' => 0, 'msg' => '参数不完整'));
exit;
}
// 参数处理
$tit = trim($_REQUEST['tit']);
$message = trim($_REQUEST['message']);
$endTime = intval($_REQUEST['endTime']);
$idArr = is_array($_REQUEST['idArr']) ? $_REQUEST['idArr'] : explode(',', $_REQUEST['idArr']);
// 构建插入数据数组
$dataList = array();
foreach ($idArr as $admin_id) {
$dataList[] = array(
'by_admin_id' => $this->admin_id,
'admin_id' => intval($admin_id),
'message' => $message,
'tit' => $tit,
'end_time' => $endTime,
'add_time' => time(),
);
}
// 插入数据库
$messageDb = D('message');
if ($messageDb->addAll($dataList)) {
echo json_encode(array('status' => 1, 'msg' => '公告已成功发布'));
} else {
echo json_encode(array('status' => 0, 'msg' => '公告发布失败'));
}
}
/**
* @description 获取公告列表(未过期),连表获取 发送者管理员信息
*/
public function getMessageList()
{
// 权限判断
if ($this->tokenShop_id != C('powerId')) {
$where['m.shop_id'] = $this->tokenShop_id; // 非总管理员 只返回自己的账户信息
}
$adminId = $this->admin_id; //当前管理员
$now = time();
// 构造查询条件
$where = array(
'admin_id' => $adminId,
'end_time' => array('gt', $now) // 未过期
);
// 查询字段,注意字段前加表别名
$fields = array(
'm.id',
'm.admin_id',
'm.by_admin_id',
'm.tit',
'm.message',
'm.end_time',
'm.add_time',
'a.name' => 'admin_name',
'a.uname' => 'admin_uname'
);
// 数据库查询
$messageDb = M('message');
$messageList = $messageDb
->alias('m')
->join('__ADMINUSER__ a ON m.by_admin_id = a.id', 'LEFT')
->where($where)
->field($fields)
->order('m.add_time DESC')
->select();
if ($messageList !== false) {
echo json_encode(array(
'status' => 1,
'msg' => '获取成功',
'messageList' => $messageList
));
} else {
echo json_encode(array(
'status' => 0,
'msg' => '获取失败'
));
}
}
/**
* @description 获取全部公告 不只 和自己admin_id相关的 且不考虑过期
*/
public function getAllMessageList()
{
// 权限判断
if ($this->tokenShop_id != C('powerId')) {
$where['m.shop_id'] = $this->tokenShop_id;
}
$messageDb = M('message');
// 查询message数据不关联adminuser先拿全部字段
$messageList = $messageDb
->alias('m')
->where($where)
->field('m.*')
->order('m.add_time DESC')
->select();
if ($messageList === false) {
echo json_encode(['status' => 0, 'msg' => '获取失败']);
return;
}
// 取出所有admin_id和by_admin_id去重
$adminIds = [];
$byAdminIds = [];
foreach ($messageList as &$msg) {
if ($msg['admin_id']) $adminIds[$msg['admin_id']] = true;
if ($msg['by_admin_id']) $byAdminIds[$msg['by_admin_id']] = true;
}
$adminIds = array_keys($adminIds);
$byAdminIds = array_keys($byAdminIds);
// 查 admin_id 对应的用户信息(加非空判断)
$adminUserDb = M('adminuser');
$adminUsers = [];
if (!empty($adminIds)) {
$adminUsers = $adminUserDb->where(['id' => ['IN', $adminIds]])->field('id,name,uname')->select();
}
$adminUserMap = [];
foreach ($adminUsers as $u) {
$adminUserMap[$u['id']] = $u;
}
// 查 by_admin_id 对应的用户信息(加非空判断)
$byAdminUsers = [];
if (!empty($byAdminIds)) {
$byAdminUsers = $adminUserDb->where(['id' => ['IN', $byAdminIds]])->field('id,name,uname')->select();
}
$byAdminUserMap = [];
foreach ($byAdminUsers as $u) {
$byAdminUserMap[$u['id']] = $u;
}
// 合并用户信息回message列表
foreach ($messageList as &$msg) {
$msg['admin_name'] = isset($adminUserMap[$msg['admin_id']]) ? $adminUserMap[$msg['admin_id']]['name'] : '';
$msg['admin_uname'] = isset($adminUserMap[$msg['admin_id']]) ? $adminUserMap[$msg['admin_id']]['uname'] : '';
$msg['by_admin_name'] = isset($byAdminUserMap[$msg['by_admin_id']]) ? $byAdminUserMap[$msg['by_admin_id']]['name'] : '';
$msg['by_admin_uname'] = isset($byAdminUserMap[$msg['by_admin_id']]) ? $byAdminUserMap[$msg['by_admin_id']]['uname'] : '';
}
echo json_encode([
'status' => 1,
'msg' => '获取成功',
'messageList' => $messageList
]);
}
/**
* @description 删除公告
*/
public function deleteMessage()
{
// 权限判断(总管理员可操作所有单位)
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id;
}
// 接收参数并校验
$delIdArrRaw = isset($_REQUEST['delIdArr']) ? $_REQUEST['delIdArr'] : '';
if (!empty($delIdArrRaw)) {
// 确保 $delIdArr 是数组(前端传逗号分隔字符串)
if (is_string($delIdArrRaw)) {
$delIdArr = explode(',', $delIdArrRaw);
} elseif (is_array($delIdArrRaw)) {
$delIdArr = $delIdArrRaw;
} else {
echo json_encode(['status' => 0, 'msg' => '参数格式不正确']);
return;
}
$where['id'] = ['in', $delIdArr];
$messageDb = D('message');
if ($messageDb->where($where)->delete()) {
echo json_encode(['status' => 1, 'msg' => '删除成功']);
} else {
echo json_encode(['status' => 0, 'msg' => '删除失败']);
}
} else {
echo json_encode(['status' => 0, 'msg' => '参数有误']);
}
}
/**
* @description: 分类列表
*/
public function getCategoryList()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
$order['sort'] = 'desc';
$field = array('id', 'pid', 'path', 'name', 'shop_id', 'sort', 'show', 'describe', 'photo');
$categoryDb = D('category');
if ($categoryList = $categoryDb->where($where)->order($order)->field($field)->select()) {
echo json_encode(array('status' => 1, 'msg' => '访问成功', "categoryList" => $categoryList));
} else {
echo json_encode(array('status' => 0, 'msg' => '暂无分类数据'));
}
}
/**
* @description: 添加分类
*/
public function addCategory()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['name'] && $_REQUEST['shop_id']) {
//data数据
$data['pid'] = $_REQUEST['id'];
$data['shop_id'] = $_REQUEST['shop_id'];
$data['name'] = $_REQUEST['name'];
$data['sort'] = $_REQUEST['sort'];
$data['show'] = $_REQUEST['show'] == 'true' ? '1' : '0';
$data['describe'] = $_REQUEST['desc'];
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/category/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//录入数据库
$categoryDb = D('category');
if ($id = $categoryDb->data($data)->add()) { //先添加一条新纪录
$where['id'] = $id;
if ($_REQUEST['path']) { //重新组合path
$saveData['path'] = $_REQUEST['path'] . '-' . $id;
} else {
$saveData['path'] = $id;
}
if ($categoryDb->where($where)->data($saveData)->save()) { //再更新记录的path字段
echo json_encode(array('status' => 1, 'msg' => '添加成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '添加失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '添加失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 更新分类
*/
public function saveCategory()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['id'] && $_REQUEST['name'] && $_REQUEST['shop_id']) {
//data数据
$data['name'] = $_REQUEST['name'];
$data['sort'] = $_REQUEST['sort'];
$data['show'] = $_REQUEST['show'] == 'true' ? '1' : '0';
$data['describe'] = $_REQUEST['desc'];
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/category/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
if ($_REQUEST['oldFile']) { //存在老图 既删掉老图 没有成功的话 将刚才复制到此目录得新图也一并删除
if (!(unlink("Data/UploadFiles/category/" . basename($_REQUEST['oldFile'])))) {
unlink("Data/UploadFiles/category/" . $_REQUEST['upFile']);
echo json_encode(array('status' => 0, 'msg' => '原图删除失败'));
exit;
}
}
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//where条件
$where['id'] = $_REQUEST['id'];
$where['shop_id'] = $_REQUEST['shop_id'];
//录入数据库
$categoryDb = D('category');
if ($categoryDb->where($where)->data($data)->save()) {
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
public function deleteCategory()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['delIdArr'] && $_REQUEST['shop_id']) {
//where条件
$where['shop_id'] = $_REQUEST['shop_id'];
$where['id'] = array("in", $_REQUEST['delIdArr']);
$categoryDb = D('category');
if ($categoryDb->where($where)->delete()) {
echo json_encode(array('status' => 1, 'msg' => '删除成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '删除失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 获取spu列表
*/
public function getSpuList()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
$where['del'] = '0';
$order['sort'] = 'desc';
$order['id'] = 'desc';
$spuDb = D('spu');
if ($spuList = $spuDb->where($where)->order($order)->select()) {
echo json_encode(array('status' => 1, 'msg' => '访问成功', "spuList" => $spuList));
} else {
echo json_encode(array('status' => 0, 'msg' => '暂无商品数据'));
}
}
/**
* @description: 修改商品spu的排序字段
*/
public function orderSpu()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['id'] && $_REQUEST['sort'] != '' && $_REQUEST['shop_id']) {
$data['sort'] = (int)$_REQUEST['sort'];
//where条件
$where['id'] = $_REQUEST['id'];
$where['shop_id'] = $_REQUEST['shop_id'];
//录入数据库
$spuDb = D('spu');
if ($spuDb->where($where)->save($data)) {
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 修改商品spu的显示隐藏字段
*/
public function showSpu()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['id'] && $_REQUEST['show'] != '' && $_REQUEST['shop_id']) {
$data['show'] = $_REQUEST['show'];
//where条件
$where['id'] = $_REQUEST['id'];
$where['shop_id'] = $_REQUEST['shop_id'];
//录入数据库
$spuDb = D('spu');
if ($spuDb->where($where)->save($data)) {
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 修改商品spu的推荐位字段
*/
public function recommendSpu()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['id'] && $_REQUEST['recommend'] != '' && $_REQUEST['shop_id']) {
$data['recommend'] = $_REQUEST['recommend'];
//where条件
$where['id'] = $_REQUEST['id'];
$where['shop_id'] = $_REQUEST['shop_id'];
//录入数据库
$spuDb = D('spu');
if ($spuDb->where($where)->save($data)) {
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 添加商品spu
*/
public function addSpu()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['name'] && $_REQUEST['shop_id']) {
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/spu/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//data数据
$data['shop_id'] = $_REQUEST['shop_id'];
$data['path'] = $_REQUEST['path'];
$data['name'] = $_REQUEST['name'];
$data['spu_number'] = $_REQUEST['spu_number'];
$data['sort'] = $_REQUEST['sort'];
$data['hot'] = $_REQUEST['hot'];
$data['pro_tag'] = $_REQUEST['pro_tag'];
$data['bind_sku'] = $_REQUEST['bind_sku'];
$data['recommend'] = $_REQUEST['recommend'];
$data['show'] = $_REQUEST['show'];
$data['addtime'] = time();
//录入数据库
$spuDb = D('spu');
if ($spuDb->data($data)->add()) {
echo json_encode(array('status' => 1, 'msg' => '创建成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '创建失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 更新商品 spu
*/
public function saveSpu()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['name'] && $_REQUEST['id'] && $_REQUEST['shop_id']) {
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/spu/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
if ($_REQUEST['oldFile']) { //存在老图 既删掉老图 没有成功的话 将刚才复制到此目录得新图也一并删除
if (!(unlink("Data/UploadFiles/spu/" . basename($_REQUEST['oldFile'])))) {
unlink("Data/UploadFiles/spu/" . $_REQUEST['upFile']);
echo json_encode(array('status' => 0, 'msg' => '原图删除失败'));
exit;
}
}
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//data数据
$data['path'] = $_REQUEST['path'];
$data['name'] = $_REQUEST['name'];
$data['spu_number'] = $_REQUEST['spu_number'];
$data['sort'] = $_REQUEST['sort'];
$data['hot'] = $_REQUEST['hot'];
$data['pro_tag'] = $_REQUEST['pro_tag'];
$data['bind_sku'] = $_REQUEST['bind_sku'];
$data['recommend'] = $_REQUEST['recommend'];
$data['show'] = $_REQUEST['show'];
$data['shop_id'] = $_REQUEST['shop_id'];
//where条件
$where['id'] = $_REQUEST['id'];
//录入数据库
$spuDb = D('spu');
if ($spuDb->where($where)->data($data)->save()) {
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: spu删除 ps:只改 del字段标识 并非真正删除
*/
public function deleteSpu()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
if ($_REQUEST['idArr']) {
// 获取要删除的航线ID数组
$where['id'] = array("in", $_REQUEST['idArr']);
//data数据
$data['del'] = '1';
//录入数据库
$spuDb = D('spu');
if ($spuDb->where($where)->save($data)) {
echo json_encode(array('status' => 1, 'msg' => '删除成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '删除失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 获取sku列表
*/
public function getSkuList()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
$where['del'] = '0';
$order['id'] = 'desc';
$skuDb = D('sku');
if ($skuList = $skuDb->where($where)->order($order)->select()) {
echo json_encode(array('status' => 1, 'msg' => '访问成功', "skuList" => $skuList));
} else {
echo json_encode(array('status' => 0, 'msg' => '暂无商品数据'));
}
}
/**
* @description: 添加商品sku
*/
public function addSku()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['name'] && $_REQUEST['shop_id']) {
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/sku/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//data数据
$data['shop_id'] = $_REQUEST['shop_id'];
$data['name'] = $_REQUEST['name'];
$data['sku_number'] = $_REQUEST['sku_number'];
$data['price'] = (float)$_REQUEST['price'];
$data['unit'] = $_REQUEST['unit'];
$data['weight'] = $_REQUEST['weight'];
if ($_REQUEST['stock'] != "") {
$data['stock'] = $_REQUEST['stock'];
}
$data['purchase_channel'] = $_REQUEST['purchase_channel'];
$data['addtime'] = time(); //插入记录时 调用当前系统时间值 插入
//录入数据库
$skuDb = D('sku');
if ($skuDb->data($data)->add()) {
echo json_encode(array('status' => 1, 'msg' => '创建成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '创建失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 更新商品 sku
*/
public function saveSku()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
if ($_REQUEST['name'] && $_REQUEST['id'] && $_REQUEST['shop_id']) {
//如果有上传图片得操作 执行如下
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/sku/" . $_REQUEST['upFile']))) {
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
exit;
}
if ($_REQUEST['oldFile']) { //存在老图 既删掉老图 没有成功的话 将刚才复制到此目录得新图也一并删除
if (!(unlink("Data/UploadFiles/sku/" . $_REQUEST['oldFile']))) {
if (unlink("Data/UploadFiles/temp/" . $_REQUEST['upFile'])) {
echo json_encode(array('status' => 0, 'msg' => '成功'));
exit;
} else {
echo json_encode(array('status' => 0, 'msg' => '失败'));
exit;
}
echo json_encode(array('status' => 0, 'msg' => '原图删除失败'));
exit;
}
}
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
}
//data数据
$data['shop_id'] = $_REQUEST['shop_id'];
$data['name'] = $_REQUEST['name'];
$data['sku_number'] = $_REQUEST['sku_number'];
$data['price'] = (float)$_REQUEST['price'];
$data['unit'] = $_REQUEST['unit'];
$data['weight'] = $_REQUEST['weight'];
$data['stock'] = $_REQUEST['stock'];
$data['purchase_channel'] = $_REQUEST['purchase_channel'];
//where条件
$where['id'] = $_REQUEST['id'];
//录入数据库
$skuDb = D('sku');
if ($skuDb->where($where)->data($data)->save()) {
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: sku删除 ps:只改 del字段标识 并非真正删除
*/
public function deleteSku()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
if ($_REQUEST['idArr']) {
// 获取要删除的航线ID数组
$where['id'] = array("in", $_REQUEST['idArr']);
//data数据
$data['del'] = '1';
//录入数据库
$skuDb = D('sku');
if ($skuDb->where($where)->save($data)) {
echo json_encode(array('status' => 1, 'msg' => '删除成功'));
} else {
echo json_encode(array('status' => 0, 'msg' => '删除失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
/**
* @description: 获取订单列表(只拿已付款和已退款但发货状态为已发货的订单),并联查 receive_site 表 bind_route、runing 字段
*/
public function getPaidOrderList()
{
if ($this->tokenShop_id != C('powerId')) {
$where['o.shop_id'] = $this->tokenShop_id; // 非总管理员只返回自己的订单
}
$orderDb = D('order');
$prefix = C('DB_PREFIX'); // 获取表前缀
// 构建复合查询条件
$where['_complex'] = array(
'_logic' => 'or',
array('o.main_status' => '已付款'),
array(
'o.main_status' => '已退款',
'o.shipment_status' => '已发货'
)
);
// 执行查询
$paidOrderList = $orderDb
->alias('o')
->join("{$prefix}receive_site rs ON o.receive_site_id = rs.id") // 动态表前缀
->field("o.id,o.shop_id,o.order_sn,o.food_sn,o.total_weight,o.total_num,o.total_price,o.transport_price,o.pack_price,o.apply_price,o.receiver,o.tel,o.by_plane_id,o.receive_site_id,o.receive_site_name,o.remark,o.product_snapshot,o.main_status,o.shipment_status,o.refund_status,o.refund_remark,o.order_time,o.paid_time,o.refundapply_time,o.refundagree_time,o.received_time,o.shipped_time, rs.bind_route, rs.runing")
->where($where)
->select();
if ($paidOrderList) {
echo json_encode(array('status' => 1, 'msg' => '成功获取待处理', 'paidOrderList' => $paidOrderList));
} else {
echo json_encode(array('status' => 0, 'msg' => '暂无订单数据'));
}
}
/**
* @description: 获取订单列表
*/
public function getOrderList()
{
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
// 添加 shop_id 条件
if ($_REQUEST['shop_id'] != '') {
$where['shop_id'] = $_REQUEST['shop_id'];
}
// 添加 start_time 和 end_time 条件
if (isset($_REQUEST['start_time']) && isset($_REQUEST['end_time'])) {
$where['order_time'] = array('between', array($_REQUEST['start_time'], $_REQUEST['end_time']));
}
// 添加 main_status 条件
if (isset($_REQUEST['main_status']) && !empty($_REQUEST['main_status'])) {
$main_status_array = explode(',', $_REQUEST['main_status']);
$where['main_status'] = array('in', $main_status_array);
}
// 添加 shipment_status 条件
if (isset($_REQUEST['shipment_status']) && !empty($_REQUEST['shipment_status'])) {
$shipment_status_array = explode(',', $_REQUEST['shipment_status']);
$where['shipment_status'] = array('in', $shipment_status_array);
}
// 添加 refund_status 条件
if (isset($_REQUEST['refund_status']) && !empty($_REQUEST['refund_status'])) {
$refund_status_array = explode(',', $_REQUEST['refund_status']);
$where['refund_status'] = array('in', $refund_status_array);
}
// 添加搜索条件
if (isset($_REQUEST['search']) && !empty($_REQUEST['search'])) {
$search = explode(',', $_REQUEST['search']);
if (count($search) == 2) {
list($field, $value) = $search;
if (!empty($field)) {
$fieldMap = [
'orderSn' => 'order_sn',
'name' => 'receiver',
'tel' => 'tel',
'remark' => 'remark',
'byPlaneId' => 'by_plane_id',
'desc' => 'describe'
];
if (array_key_exists($field, $fieldMap) && !empty($value)) {
if ($field === 'byPlaneId') {
// 对于 byPlaneId 字段,使用精确匹配
$where[$fieldMap[$field]] = $value;
} else {
// 对于其他字段,使用模糊查询
$where[$fieldMap[$field]] = array('like', '%' . $value . '%');
}
}
}
}
}
$field = array('id', 'order_sn', 'tel', 'total_price', 'transport_price', 'pack_price', 'refund_price', 'main_status', 'shipment_status', 'refund_status', 'order_time');
$orderDb = D('order');
$orderList = $orderDb->where($where)->field($field)->select();
echo json_encode(array('status' => 1, 'msg' => '访问成功', 'orderList' => $orderList));
}
/**
* @description:获取订单详情
*/
public function getOrderDetails()
{
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id; //非总管理员 只返回自己的账户信息
}
if ($_REQUEST['id']) {
$where['id'] = $_REQUEST['id'];
$orderDb = D('order');
$field = array('id', 'order_sn', 'food_sn', 'total_weight', 'total_num', 'total_price', 'transport_price', 'pack_price', 'refund_price', 'apply_price', 'receiver', 'tel', 'by_plane_id', 'receive_site_id', 'receive_site_name', 'remark', 'product_snapshot', 'main_status', 'shipment_status', 'refund_status', 'refund_remark', 'canceled_time', 'order_time', 'paid_time', 'refunded_time', 'completed_time', 'received_time', 'shipped_time', 'delivered_time', 'refundapply_time', 'refundagree_time', 'rejected_time', 'describe');
if ($orderDetails = $orderDb->where($where)->field($field)->find()) {
echo json_encode(array('status' => 1, 'msg' => '访问成功', 'orderDetails' => $orderDetails));
} else {
echo json_encode(array('status' => 0, 'msg' => '访问失败'));
}
} else {
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
}
}
}