<?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>