客户导入之导入批次

本文记录了一项开发任务,涉及客户信息的导入功能,支持按导入批次筛选。如果未指定批次名称,则默认为'未命名'。客户列表根据导入时间排序,最新的批次优先展示。筛选依据是批次名称加上导入的月日时分时间戳,如有相同批次名称,则通过(n)进行区分,n从1递增。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接触的开发任务,需要导入客户信息,并支持按照“导入批次”筛选客户信息。特此记录。

需求:若批次名称不填写,则默认名称为未命名,客户列表中,按批次导入时间排序,最新导入的批次,优先显示。筛选值为批次名称+导入时间(显示月日时分),跟据导入时间先后显示,若批次名称相同,则显示批次名称(n),数字从1开始逐渐累加


$importBatchName = $data[0];//导入批次
if (empty($importBatchName)) $importBatchName = "未命名";
$searchBatchKey = $importBatchName . "-" . $import_batch_time;
if (array_key_exists ($searchBatchKey, $existImportBatch['importBatchs'])) {
    //表示同一个批次,使用原值
    $cmData['import_batch'] = $existImportBatch['importBatchs'][$searchBatchKey];
} elseif (array_key_exists ($importBatchName, $existImportBatch['maxBatchNumbers'])) {
    //查找
    $curMaxBatchNumber = $existImportBatch['maxBatchNumbers'][$importBatchName] + 1;//当前批次号加1
    $cmData['import_batch'] = sprintf ("%s(%d)", $importBatchName, $curMaxBatchNumber);
    //添加到导入批次hash    $existImportBatch['importBatchs'][$searchBatchKey] = $cmData['import_batch'];
    $existImportBatch['maxBatchNumbers'][$importBatchName] = $curMaxBatchNumber;
} else {
    $cmData['import_batch'] = $importBatchName;
    //添加到导入批次hash    $existImportBatch['importBatchs'][$searchBatchKey] = $importBatchName;
    $existImportBatch['maxBatchNumbers'][$importBatchName] = 0;
}

/**
 * 获取导入批次号,根据导入时间分组
 * @param int $eid 企业id
 * @return array 批次号数组(数组为 批次名称+时间 组成key :批次名称+批次序号 是value
 */
public static function GetExistImportBatch($eid){
   if(empty($eid)) return array();
   $cmModel = M('Customer');
   $cmMap['eid'] = $eid;
   $cmMap['import_batch'] = array('neq','');//不查询为空的记录
   $cmDatas = $cmModel->field('import_batch,import_batch_time')->where($cmMap)->group('import_batch')->select();
   if(empty($cmDatas)) return array();
   $batchKeys = array(); //批次名称+导入时间 为keyhash   $maxBatchNumbers = array(); //批次名称 为key hash表,存储批次名称的最大批次号
   foreach($cmDatas as $cmData){
      if(empty($cmData['import_batch'])) continue; //导入批次为空的跳过
      $tempMaxNumber = 0;//当前记录的批次号
      $importPatchName = ""; // 批次名称
      if(empty($cmData["import_batch"]) || empty($cmData["import_batch_time"])) continue;//批次号或时间为空不处理,单个创建的用户没有批次号
      preg_match("/\((\d+)\)$/i",$cmData["import_batch"], $matches); //查找批次号
      //$maxBatchNumber = "";//当前最大的序号
      if(empty($matches) || count($matches) < 2){
         $importPatchName = $cmData["import_batch"];
      }else{
         $importPatchName = substr($cmData["import_batch"],0,strrpos($cmData["import_batch"],"("));//最后一个(截取字符串
         $tempMaxNumber = intval($matches[1]);
      }
      $batchKey = $importPatchName."-".$cmData["import_batch_time"];//去掉批次号码+数字和导入时间组成唯一串
      $batchKeys[$batchKey] = $cmData["import_batch"];
      if(array_key_exists($importPatchName, $maxBatchNumbers)){
         if(!empty($tempMaxNumber) && $maxBatchNumbers[$importPatchName] < $tempMaxNumber) $maxBatchNumbers[$importPatchName] = $tempMaxNumber;
      }else{
         $maxBatchNumbers[$importPatchName] = 0;
      }
   }
   $retData = array("importBatchs"=>$batchKeys,"maxBatchNumbers"=>$maxBatchNumbers);
   return $retData;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值