作者 郭文星

123

<?php
/**
* 首字母排序A-Z(含汉字)
*/
if (!function_exists('getFirstChar')) {
function getFirstChar($s)
{
$s0 = mb_substr($s, 0, 1); //获取名字的姓
$s = iconv('UTF-8', 'gb2312', $s0); //将UTF-8转换成GB2312编码
//var_dump(ord($s0));
// var_dump(ord($s));
if (ord($s0) > 128) { //汉字开头,汉字没有以U、V开头的
$asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
if ($asc >= -20319 and $asc <= -20284) return "A";
if ($asc >= -20283 and $asc <= -19776) return "B";
if ($asc >= -19775 and $asc <= -19219) return "C";
if ($asc >= -19218 and $asc <= -18711) return "D";
if ($asc >= -18710 and $asc <= -18527) return "E";
if ($asc >= -18526 and $asc <= -18240) return "F";
if ($asc >= -18239 and $asc <= -17760) return "G";
if ($asc >= -17759 and $asc <= -17248) return "H";
if ($asc >= -17247 and $asc <= -17418) return "I";
if ($asc >= -17417 and $asc <= -16475) return "J";
if ($asc >= -16474 and $asc <= -16213) return "K";
if ($asc >= -16212 and $asc <= -15641) return "L";
if ($asc >= -15640 and $asc <= -15166) return "M";
if ($asc >= -15165 and $asc <= -14923) return "N";
if ($asc >= -14922 and $asc <= -14915) return "O";
if ($asc >= -14914 and $asc <= -14631) return "P";
if ($asc >= -14630 and $asc <= -14150) return "Q";
if ($asc >= -14149 and $asc <= -14091) return "R";
if ($asc >= -14090 and $asc <= -13319) return "S";
if ($asc >= -13318 and $asc <= -12839) return "T";
if ($asc >= -12838 and $asc <= -12557) return "W";
if ($asc >= -12556 and $asc <= -11848) return "X";
if ($asc >= -11847 and $asc <= -11056) return "Y";
if ($asc >= -11055 and $asc <= -10247) return "Z";
} else if (ord($s) >= 48 && ord($s) <= 57) {//数字开头
$aa = @iconv_substr($s, 0, 1, 'utf-8');
switch ($aa) {
case 1:
return "Y";
case 2:
return "E";
case 3:
return "S";
case 4:
return "S";
case 5:
return "W";
case 6:
return "L";
case 7:
return "Q";
case 8:
return "B";
case 9:
return "J";
case 0:
return "L";
}
} else if (ord($s) >= 65 && ord($s) <= 90) { //大写英文开头
return substr($s, 0, 1);
} else if (ord($s) >= 97 && ord($s) <= 122) { //小写英文开头
return strtoupper(substr($s, 0, 1));
} else {
return iconv_substr($s0, 0, 1, 'utf-8');
//中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可
}
}
}
if (!function_exists('http_request')) {
// curl请求
function http_request($url, $timeout = 30, $header = array())
... ...
... ... @@ -3,6 +3,7 @@
namespace app\api\controller;
use app\api\controller\inspection\Task;
use app\api\controller\tencentim\Openim;
use app\api\controller\v1\Base;
use app\common\controller\Api;
use think\Db;
... ... @@ -1105,4 +1106,95 @@ class Car extends Base
$data=["data"=>$res,"amount"=>$amount];
return $this->success("请求成功",$data);
}
/**
* 从蒙自出发
* @return void
*/
public function set_out(){
$where = ["start_address"=>"蒙自"];
$indexList = [];
$itemArr = [];
$list = Db::name("route")->where($where)
->select();
$charArray = [];
$back_data = [];
if (!empty($list)) {
$count = count($list);
$addnum = 500;//因为即时通讯人员状态每次限制查500人;所以得分开查
for ($i = 0; $i < $count; $i = $i + $addnum) {
if ($count - $i > 0) {
$j = $i - 1 > 0 ? $i : 0;
$data = array_slice($list, $j, $addnum);
}
}
$staff_names = array_column($list, 'end_address');
array_multisort($staff_names, SORT_ASC, $list);
foreach ($list as $k => $v) {
$char = getFirstChar($v['end_address']);
$nameArray = array();
if (@count($charArray[$char]) != 0) {
$nameArray = $charArray[$char];
}
array_push($nameArray, $v);
$charArray[$char] = $nameArray;
}
ksort($charArray);
$indexList = array_keys($charArray);
$itemArr = array_values($charArray);
}
array_unshift($indexList, "*");
$this->success("数据获取成功", ["indexList" => $indexList, "itemArr" => $itemArr]);
}
/**
* 到达蒙自
* @return void
*/
public function reach(){
$where = ["end_address"=>"蒙自"];
$indexList = [];
$itemArr = [];
$list = Db::name("route")->where($where)
->select();
$charArray = [];
$back_data = [];
if (!empty($list)) {
$count = count($list);
$addnum = 500;//因为即时通讯人员状态每次限制查500人;所以得分开查
for ($i = 0; $i < $count; $i = $i + $addnum) {
if ($count - $i > 0) {
$j = $i - 1 > 0 ? $i : 0;
$data = array_slice($list, $j, $addnum);
}
}
$staff_names = array_column($list, 'start_address');
array_multisort($staff_names, SORT_ASC, $list);
foreach ($list as $k => $v) {
$char = getFirstChar($v['start_address']);
$nameArray = array();
if (@count($charArray[$char]) != 0) {
$nameArray = $charArray[$char];
}
array_push($nameArray, $v);
$charArray[$char] = $nameArray;
}
ksort($charArray);
$indexList = array_keys($charArray);
$itemArr = array_values($charArray);
}
array_unshift($indexList, "*");
$this->success("数据获取成功", ["indexList" => $indexList, "itemArr" => $itemArr]);
}
}
\ No newline at end of file
... ...