<?php require_once 'conn.php'; checkLogin(); // 检查当前用户是否为组长 $isLeader = false; $userInfoQuery = "SELECT em_role, em_permission_role_id FROM employee WHERE id = " . $_SESSION['employee_id']; $userResult = $conn->query($userInfoQuery); if ($userResult && $userRow = $userResult->fetch_assoc()) { // 只有 em_permission_role_id=2 表示该用户是组长 $isLeader = ($userRow['em_permission_role_id'] == 2); } // 如果不是组长,直接跳转到客户列表页面 if (!$isLeader) { header('Location: customers.php'); exit; } $act = $_GET['act'] ?? ''; if ($act == 'postchk') { $keys = urlencode($_GET['Keys'] ?? ''); $page = $_GET['Page'] ?? ''; $chkact = $_POST['chkact'] ?? ''; if (isset($_POST['chkbox'])) { $sqlStr = "(" . implode(',', array_map('intval', (array)$_POST['chkbox'])) . ")"; $count = count($_POST['chkbox']); // 检查是否为员工转让操作 if (substr($chkact, 0, 1) === 't') { // 从chkact值中提取员工ID $employeeId = (int)substr($chkact, 1); // 获取员工代码和名称 $stmt = $conn->prepare("SELECT em_code, em_user FROM employee WHERE id = ?"); $stmt->bind_param("i", $employeeId); $stmt->execute(); $result = $stmt->get_result(); $employeeCode = ''; $employeeName = '未知业务员'; if ($row = $result->fetch_assoc()) { $employeeCode = $row['em_code']; $employeeName = $row['em_user']; } $stmt->close(); // 更新客户记录 $sql = "UPDATE customer SET cs_updatetime = NOW(), cs_code = REPLACE(cs_code, '-', '/{$employeeCode}-'), cs_belong = {$employeeId}, cs_chain = CONCAT(cs_chain, ',{$employeeId}') WHERE id IN {$sqlStr}"; $conn->query($sql); // 记录操作日志 $ids = implode(',', array_map('intval', (array)$_POST['chkbox'])); $action = "{$_SESSION['employee_name']} 批量转移{$count}个客户({$ids})给组员【{$employeeName}】"; logAction($action); } else { $chkact = (int)$chkact; $sql = "UPDATE customer SET cs_deal = {$chkact} WHERE id IN {$sqlStr}"; $conn->query($sql); // 记录跟进阶段变更日志 $dealStatus = ""; switch($chkact) { case 0: $dealStatus = "无响应"; break; case 1: $dealStatus = "背景调查"; break; case 2: $dealStatus = "明确需求"; break; case 3: $dealStatus = "已成交"; break; default: $dealStatus = "未知状态"; } $ids = implode(',', array_map('intval', (array)$_POST['chkbox'])); $action = "{$_SESSION['employee_name']} 批量将{$count}个客户({$ids})的跟进阶段更改为【{$dealStatus}】"; logAction($action); } $deleteTag = "DELETE FROM tagtable WHERE customerId IN " . $sqlStr; $conn->query($deleteTag); } header("Location: ?Keys=" . $keys . "&Page=" . $page); exit; } // 处理搜索和过滤参数 $keys = $_GET['Keys'] ?? ''; $keys = str_replace([" ", "+"], "", $keys); $keyscode = textEncode($keys); $page = $_GET['Page'] ?? ''; $filters = [ 'Country' => $_GET['fliterCountry'] ?? '', 'Qudao' => $_GET['fliterQudao'] ?? '', 'Deal' => $_GET['fliterDeal'] ?? '', 'Business' => $_GET['fliterBusiness'] ?? '', 'Contact' => $_GET['fliterContact'] ?? '' ]; $filterStr = ""; $urlStr = ""; // 构建过滤条件 if (!empty($filters['Country'])) { $filterStr .= " AND c.cs_country=" . (int)$filters['Country']; $urlStr .= "&fliterCountry=" . $filters['Country']; } if (!empty($filters['Qudao'])) { $filterStr .= " AND c.cs_from=" . (int)$filters['Qudao']; $urlStr .= "&fliterQudao=" . $filters['Qudao']; } if (!empty($filters['Deal'])) { $filterStr .= " AND c.cs_deal=" . (int)$filters['Deal']; $urlStr .= "&fliterDeal=" . $filters['Deal']; } if (!empty($filters['Business'])) { $filterStr .= " AND c.cs_type=" . (int)$filters['Business']; $urlStr .= "&fliterBusiness=" . $filters['Business']; } // 改进联系方式过滤查询 if (!empty($filters['Contact'])) { switch ($filters['Contact']) { case "1": $filterStr .= " AND c.id IN (SELECT customer_id FROM customer_contact WHERE tel_1 != '' OR tel_2 != '' OR tel_3 != '')"; break; case "2": $filterStr .= " AND c.id IN (SELECT customer_id FROM customer_contact WHERE wechat_1 != '' OR wechat_2 != '' OR wechat_3 != '')"; break; case "3": $filterStr .= " AND c.id IN (SELECT customer_id FROM customer_contact WHERE whatsapp_1 != '' OR whatsapp_2 != '' OR whatsapp_3 != '')"; break; case "4": $filterStr .= " AND c.id IN (SELECT customer_id FROM customer_contact WHERE email_1 != '' OR email_2 != '' OR email_3 != '')"; break; case "5": $filterStr .= " AND c.id IN (SELECT customer_id FROM customer_contact WHERE linkedin_1 != '' OR linkedin_2 != '' OR linkedin_3 != '')"; break; case "6": $filterStr .= " AND c.id IN (SELECT customer_id FROM customer_contact WHERE facebook_1 != '' OR facebook_2 != '' OR facebook_3 != '')"; break; case "7": $filterStr .= " AND c.id IN (SELECT customer_id FROM customer_contact WHERE alibaba_1 != '' OR alibaba_2 != '' OR alibaba_3 != '')"; break; } $urlStr .= "&fliterContact=" . $filters['Contact']; } $keys = urlencode($keys); $hrefstr = "?keys=" . $keys; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>管理区域</title> <link rel="stylesheet" href="css/common.css" type="text/css" /> <link rel="stylesheet" href="css/alert.css" type="text/css" /> <script src="system/js/jquery-1.7.2.min.js"></script> <script src="js/js.js"></script> <style> body { margin: 0; padding: 20px; background: #fff; } #man_zone { margin-left: 0; } </style> </head> <body class="clear"> <?php // require_once 'panel.php'; ?> <div id="man_zone"> <form id="form1" method="post" action="?act=postchk&Keys=<?= $keys ?>&Page=<?= $page ?>" onSubmit="return false"> <div class="fastSelect clear"> <H1>搜索条件</H1> <div class="selectItem"> <label>区域</label> <select name="fliterCountry" class="filterSearch"> <option value="">请选择国家地区</option> <?php $result = $conn->query("SELECT id, countryName FROM country ORDER BY CONVERT(countryName USING gbk) COLLATE gbk_chinese_ci ASC"); while ($row = $result->fetch_assoc()) { $selected = ($filters['Country'] == $row['id']) ? ' selected="selected"' : ''; echo "<option value=\"{$row['id']}\"{$selected}>{$row['countryName']}</option>"; } ?> </select> </div> <div class="selectItem"> <label>来源渠道</label> <select name="fliterQudao" class="filterSearch"> <option value="">请选择渠道</option> <?php $result = $conn->query("SELECT id, ch_name FROM qudao"); while ($row = $result->fetch_assoc()) { $selected = ($filters['Qudao'] == $row['id']) ? ' selected="selected"' : ''; echo "<option value=\"{$row['id']}\"{$selected}>{$row['ch_name']}</option>"; } ?> </select> </div> <div class="selectItem"> <label>跟进阶段</label> <select name="fliterDeal" class="filterSearch"> <option value="">请选择</option> <option value="0"<?= ($filters['Deal'] == "0") ? ' selected="selected"' : '' ?>>无响应</option> <option value="1"<?= ($filters['Deal'] == "1") ? ' selected="selected"' : '' ?>>背景调查</option> <option value="2"<?= ($filters['Deal'] == "2") ? ' selected="selected"' : '' ?>>明确需求</option> <option value="3"<?= ($filters['Deal'] == "3") ? ' selected="selected"' : '' ?>>已成交</option> </select> </div> <div class="selectItem"> <label>客户类型</label> <select name="fliterBusiness" class="filterSearch"> <option value="">请选择</option> <?php $result = $conn->query("SELECT id, businessType FROM clienttype"); while ($row = $result->fetch_assoc()) { $selected = ($filters['Business'] == $row['id']) ? ' selected="selected"' : ''; echo "<option value=\"{$row['id']}\"{$selected}>{$row['businessType']}</option>"; } ?> </select> </div> <div class="selectItem"> <label>联系方式</label> <select name="fliterContact" class="filterSearch"> <option value="">请选择</option> <option value="1"<?= ($filters['Contact'] == "1") ? ' selected="selected"' : '' ?>>电话</option> <option value="2"<?= ($filters['Contact'] == "2") ? ' selected="selected"' : '' ?>>微信</option> <option value="3"<?= ($filters['Contact'] == "3") ? ' selected="selected"' : '' ?>>WhatsApp</option> <option value="4"<?= ($filters['Contact'] == "4") ? ' selected="selected"' : '' ?>>邮箱</option> <option value="5"<?= ($filters['Contact'] == "5") ? ' selected="selected"' : '' ?>>领英</option> <option value="6"<?= ($filters['Contact'] == "6") ? ' selected="selected"' : '' ?>>Facebook</option> <option value="7"<?= ($filters['Contact'] == "7") ? ' selected="selected"' : '' ?>>阿里巴巴</option> </select> </div> <div class="inputSearch"> <input type="text" id="keys" class="inputTxt" placeholder="请输入搜索关键词" value="<?= empty($keyscode) ? '' : htmlspecialcharsFix($keyscode) ?>" onKeyDown="if(event.keyCode==13){location.href='?Keys='+encodeURIComponent(document.getElementById('keys').value)}" /> <input type="button" id="searchgo" class="searchgo" value="go" onClick="location.href='?Keys='+encodeURIComponent(document.getElementById('keys').value)" /> </div> </div> <div width="100%" border="0" cellpadding="3" cellspacing="1" class="table2"> <div class="theader"> <div class="col1"><input type="checkbox" name="chkall" id="chkall" onClick="chkboxall(this,'chkbox')" /></div> <div class="col2">序号</div> <div class="col3">客户编号</div> <div class="col4">渠道来源</div> <div class="col5">区域</div> <div class="col6">客户类型</div> <div class="col7">跟进阶段</div> <div class="col8">录入时间</div> <div class="col9">组员</div> </div> <?php // 优化SQL查询 $sql = "SELECT c.id, c.cs_code, c.cs_from, c.cs_country, c.cs_type, c.cs_deal, c.cs_addtime, c.cs_belong, c.cs_note, c.cs_claimFrom FROM customer c WHERE c.cs_belong IN (SELECT id FROM employee WHERE em_role=" . $_SESSION['employee_id'] . ")"; // 构建搜索条件 $searchPattern = mysqli_real_escape_string($conn, $keyscode); if(!empty($searchPattern)) { $sql .= " AND (c.cs_code LIKE '%$searchPattern%' OR c.id IN (SELECT customer_id FROM customer_contact WHERE contact_name LIKE '%$searchPattern%' OR tel_1 LIKE '%$searchPattern%' OR tel_2 LIKE '%$searchPattern%' OR tel_3 LIKE '%$searchPattern%' OR email_1 LIKE '%$searchPattern%' OR email_2 LIKE '%$searchPattern%' OR email_3 LIKE '%$searchPattern%' OR wechat_1 LIKE '%$searchPattern%' OR wechat_2 LIKE '%$searchPattern%' OR wechat_3 LIKE '%$searchPattern%' OR whatsapp_1_format LIKE '%$searchPattern%' OR whatsapp_2_format LIKE '%$searchPattern%' OR whatsapp_3_format LIKE '%$searchPattern%' OR linkedin_1 LIKE '%$searchPattern%' OR linkedin_2 LIKE '%$searchPattern%' OR linkedin_3 LIKE '%$searchPattern%' OR facebook_1 LIKE '%$searchPattern%' OR facebook_2 LIKE '%$searchPattern%' OR facebook_3 LIKE '%$searchPattern%' OR alibaba_1 LIKE '%$searchPattern%' OR alibaba_2 LIKE '%$searchPattern%' OR alibaba_3 LIKE '%$searchPattern%') OR c.id IN (SELECT customerId FROM tagtable WHERE tagName LIKE '%$searchPattern%'))"; } // 添加过滤条件 $sql .= $filterStr . " ORDER BY c.cs_state DESC, c.id DESC"; // 执行查询 $result = $conn->query($sql); if ($result && $result->num_rows > 0) { // 优化分页逻辑 $pageSize = 15; $totalRecords = $result->num_rows; $totalPages = ceil($totalRecords / $pageSize); $page = empty($page) ? 1 : $page; $page = ($page === 'end') ? $totalPages : $page; $page = (!is_numeric($page) || $page < 1) ? 1 : (int)$page; $page = ($page > $totalPages) ? $totalPages : $page; $offset = $pageSize * ($page - 1); // 获取记录 $rows = []; while ($row = $result->fetch_assoc()) { $rows[] = $row; } $paginatedRows = array_slice($rows, $offset, $pageSize); $tempNum = $offset; foreach ($paginatedRows as $row) { $tempNum++; // 获取联系人信息 $contactSql = "SELECT * FROM customer_contact WHERE customer_id = " . $row['id']; $contactResult = $conn->query($contactSql); $contactData = $contactResult->num_rows > 0 ? $contactResult->fetch_assoc() : null; ?> <div class="tline"> <div class="col1" align="center"><input type="checkbox" name="chkbox[]" value="<?= $row['id'] ?>" /></div> <div class="col2"><?= $tempNum ?></div> <div class="col3 slidepanel"> <?= htmlspecialcharsFix($row['cs_code']) ?> <?php if ($row['cs_claimFrom'] > 0): ?> <img src="../images/yijiao.png" class="handover"> <?php endif; ?> </div> <div class="col4"> <?php $qudaoResult = $conn->query("SELECT ch_name FROM qudao WHERE id=" . (int)$row['cs_from']); echo ($qudaoRow = $qudaoResult->fetch_assoc()) ? htmlspecialcharsFix($qudaoRow['ch_name']) : '未填写'; ?> </div> <div class="col5"> <?php $countryResult = $conn->query("SELECT countryName FROM country WHERE id=" . (int)$row['cs_country']); echo ($countryRow = $countryResult->fetch_assoc()) ? htmlspecialcharsFix($countryRow['countryName']) : '未填写'; ?> </div> <div class="col6"> <?php $typeResult = $conn->query("SELECT businessType FROM clienttype WHERE id=" . (int)$row['cs_type']); echo ($typeRow = $typeResult->fetch_assoc()) ? htmlspecialcharsFix($typeRow['businessType']) : '未填写'; ?> </div> <div class="col7"> <?php if ($row['cs_deal'] == 3) { echo "<span style='color:red;'>成交</span>"; } elseif ($row['cs_deal'] == 2) { echo "明确需求"; } elseif ($row['cs_deal'] == 1) { echo "背景调查"; } else { echo "未成交"; } ?> </div> <div class="col8"><?= $row['cs_addtime'] ?></div> <div class="col9"> <?php $employeeResult = $conn->query("SELECT em_user FROM employee WHERE id=" . (int)$row['cs_belong']); echo ($employeeRow = $employeeResult->fetch_assoc()) ? htmlspecialcharsFix($employeeRow['em_user']) : '未填写'; ?> </div> </div> <div class="notepanel clear"> <div class="noteItem">联系方式</div> <div class="lx"> <?php // 展示联系人信息 if ($contactData) { $contactFields = [ 'tel' => ['电话', false], 'email' => ['邮箱', true], 'whatsapp' => ['WhatsApp', false], 'wechat' => ['微信', false], 'linkedin' => ['领英', false], 'facebook' => ['Facebook', false], 'alibaba' => ['阿里巴巴', false] ]; foreach ($contactFields as $fieldBase => $config) { $fieldName = $config[0]; $isEmail = $config[1]; echo "<div class=\"$fieldBase\">"; for ($i = 1; $i <= 3; $i++) { $field = $fieldBase . '_' . $i; if (!empty($contactData[$field])) { if ($isEmail) { echo "<div><a href=\"mailto:" . htmlspecialcharsFix($contactData[$field]) . "\">" . htmlspecialcharsFix($contactData[$field]) . "</a></div>"; } else { echo "<div>" . htmlspecialcharsFix($contactData[$field]) . "</div>"; } } } echo "</div>"; } } ?> </div> <div class="noteItem2">备注</div> <div class="notecontent"><?= htmlUnCode($row['cs_note']) ?></div> </div> <?php } } else { if (empty($keys)) { ?> <tr> <div align="center" colspan="9">Sorry,当前暂无信息</div> </tr> <?php } else { ?> <tr> <div align="center" colspan="9"><a href="?">Sorry,没有找到"<?= htmlspecialcharsFix($keyscode) ?>"相关的信息,点击返回</a></div> </tr> <?php } } ?> <div colspan="9"> <div class="showpagebox"> <?php if (isset($totalPages) && $totalPages > 1) { $pageName = "?Keys=" . $keys . $urlStr . "&"; $pagelen = 3; if ($page > 1) { echo "<a href=\"{$pageName}Page=1\">首页</a>"; echo "<a href=\"{$pageName}Page=" . ($page - 1) . "\">上一页</a>"; } if ($pagelen * 2 + 1 >= $totalPages) { $startPage = 1; $endPage = $totalPages; } else { if ($page <= $pagelen + 1) { $startPage = 1; $endPage = $pagelen * 2 + 1; } else { $startPage = $page - $pagelen; $endPage = $page + $pagelen; } if ($page + $pagelen > $totalPages) { $startPage = $totalPages - $pagelen * 2; $endPage = $totalPages; } } for ($i = $startPage; $i <= $endPage; $i++) { if ($i == $page) { echo "<a class=\"current\">{$i}</a>"; } else { echo "<a href=\"{$pageName}Page={$i}\">{$i}</a>"; } } if ($page < $totalPages) { if ($totalPages - $page > $pagelen) { echo "<a href=\"{$pageName}Page={$totalPages}\">...{$totalPages}</a>"; } echo "<a href=\"{$pageName}Page=" . ($page + 1) . "\">下一页</a>"; echo "<a href=\"{$pageName}Page={$totalPages}\">尾页</a>"; } } ?> </div> <div class="postchkbox"> <select id="chkact" name="chkact"> <?php $result = $conn->query("SELECT id, em_user FROM employee WHERE em_role=" . $_SESSION['employee_id']); while ($row = $result->fetch_assoc()) { echo "<option value=\"t{$row['id']}\">转给" . htmlspecialcharsFix($row['em_user']) . "</option>"; } ?> </select> <input type="button" value="执行" onClick="postchk(1)" class="btn1" /> </div> </div> </div> </form> </div> </body> </html>