必应今日美图的获取展示

前段时间学习了解了一个新的PHP Web框架,laravel “简洁,优雅,现代化”是这个框架的关键词,还在继续探索。

就想着用这个来实现一点好玩的事情。

必应搜索每天都更新一张图,而且图片质量高,不限制访问意味着不需要保留到本地,现在需要做的只是将每天的图片信息收集起来按日期的维度存储起来即可。

那么到哪里去获取bing每天的图片呢,最好的地方当然是bing官网了,直接查看源代码可以清楚的看到,图片地址是在id=”bgDiv” 的div 上面

这样就能找到我们想要的图片了,但是还没结束,我们还需要存储到图片名称,地理位置信息,作者,图片简介等。

查看源代码,可以看到详细信息在 id=”lap_w”的 div 中

需要注意的在源代码中不能直接搜索到有关图片信息的文字,因为此处是ajax加载而来的。那既然是ajax那就找找吧,查看xhr返回请求,除了js 文件,一些数据状态。也就只有这一个比较像了

打开就看到了所有我们想要的了。

http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1477557984674&pid=hp&video=1

本来的思路是按源代码进行页面解析获取出信息,但是这样找到了官方API,那就不必费神解析去了。直接用吧。

当然了,也不必这么麻烦,直接在google 搜索必应 美图 API就能得到这个地址了。

那么我们就看看参数,能否获取到更多的历史数据

format=js&idx=0&n=1&nc=1477557984674&pid=hp&video=1

format: 数据返回格式,json

idx: 开始的天数,-1 代表今天,0 代表昨天,1代表前天

n: 表示从 idx 开始往前的天数,经测试目前最多只能达到9天;但idx 的变动可以获取到对应天数之前的数据;idx类似于 mysql 查询的offset数据,而n 则就像是pagesize

nc: 请求时的时间戳和毫秒数

pid: 不知

video: 1 是否显示视频地址,很多时候必应首页的是一个<video>视频播放,但也是有一张背景大图的

比如说这个

目前bing最大可查看api 地址是9天,也就是 idx=9即可。

现在每天的详细信息(城市,国家,经纬度)等信息还有一个接口提供

http://cn.bing.com/cnhp/coverstory/

但是不知道参数,也只能显示每天数据。

那接下来就很简单了,存储数据即可。最后的成品是:http://bing.plmeizi.com/ 展示了获取到的数据图片。

那么我要查询bing 所有的图片在哪去看呢。很简单还是官方:http://www.bing.com/gallery/ 比起我的那不知道好到哪里去了,非常详细,如果你想找某天或者某个城市的图还是去官方地址查找

最后感兴趣的可以参考下我的表结构。

CREATE TABLE `bi_picture` (
`pi_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增ID’,
`pi_copyr_crc32` bigint(12) DEFAULT ‘0’ COMMENT ‘简介版权信息crc32’,
`pi_startdate` int(8) NOT NULL DEFAULT ‘0’ COMMENT ‘展示开始时间’,
`pi_enddate` int(8) NOT NULL DEFAULT ‘0’ COMMENT ‘展示开始时间’,
`pi_url` varchar(255) NOT NULL COMMENT ‘必应主图’,
`pi_copyright` varchar(255) NOT NULL COMMENT ‘主图信息’,
`pi_copyrightlink` varchar(255) NOT NULL COMMENT ‘主图必应搜索url’,
`pi_hash` varchar(32) DEFAULT ” COMMENT ‘hash信息’,
`pi_title` varchar(255) DEFAULT ” COMMENT ‘图片名称,每天信息接口’,
`pi_addr` varchar(255) DEFAULT ” COMMENT ‘图片地理位置’,
`pi_para1` varchar(500) DEFAULT ” COMMENT ‘图片描述1’,
`pi_para2` varchar(500) DEFAULT ” COMMENT ‘图片描述2’,
`pi_provider` varchar(32) DEFAULT ” COMMENT ‘图片提供者’,
`pi_thumb` varchar(255) DEFAULT ” COMMENT ‘缩略图地址imageUrl’,
`pi_searchpic` varchar(255) DEFAULT ” COMMENT ‘必应搜索图片地址imageUrl’,
`pi_country` varchar(32) DEFAULT ” COMMENT ‘国家’,
`pi_city` varchar(32) DEFAULT ” COMMENT ‘城市’,
`pi_longitude` decimal(10,6) NOT NULL DEFAULT ‘0.000000’ COMMENT ‘经度’,
`pi_latitude` decimal(10,6) NOT NULL DEFAULT ‘0.000000’ COMMENT ‘纬度’,
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (`pi_id`),
KEY `pi_copyr_crc32` (`pi_copyr_crc32`),
KEY `pi_enddate` (`pi_enddate`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT=’必应今日美图信息表’;

python学习入门

在最开始接触python,是通过一些开源的博客导入程序,还有跨墙的python软件。

python的应用十分广泛,比如游戏,爬虫,web开发,大数据处理等等。python对于毫无编程基础的人来说,也很容易做到一个“hello world!”

python 目前有主要两个版本,python 2.x 和 python 3.x,两版之间的代码上不同,这个自己查阅了解即可,需要注意的是 python 3.x在设计时,为了不带入更多的累赘,是不向下兼容的。也就是python 3x的代码在python 2.x环境下是不能被正确执行的。

我选取的是python 3.x进行学习,开发

python 官网:https://www.python.org/

下载对应的windows或者源码版本进行安装,安装完成后加入PATH环境变量

打开终端,输入


python -V

看到输出python 版本就表示安装成功了

第一个hello world!

python 里面有一个pip包管理工具,如果你知道php里面的composer,Centons 里面的yum,Ubuntu里面的apt-get,Nodejs里面的npm,那你就能明白pip 是用来做什么的呢,简而言之python 里面的有着很丰富多样化的包,那么pip 则能对这些包进行更新,添加,删除的管理操作。是不是很方便呢

PIP安装

下载get-pip.py

https://bootstrap.pypa.io/get-pip.py

通过管理员权限执行


python get-pip.py

执行完成后,输入pip -V

发现版本输出,则表示安装成功了。

自此,环境安装完成。接下来就可以进行python的相关语法学习,尝试写一些小程序,参考其他人的一些代码,动手学些吧!

 

一些推荐的资料:

python 教程

廖雪峰python 教程

pip 安装步骤

python 2.x 和 3.x的不同

有哪些值得关注的技术博客(Python篇)

有哪些适合新手练手的Python项目?

零基础学习Python数据分析

开始新作文了

时隔2年3个月,博客需要重新更新起来

懒是经常的,时间一长就成习惯了。

生活工作的琐事还是记录一下,将来回看或许是不一样的感受。

在过去的一年中,人生大事完成了。

更换了一份新的工作,和以前不一样的工作,有得有失。目前暂时没有替换的想法,还是想着拼一拼吧。

工作之余,学习一些代码或者框架,不学就落后于人。何况计算机程序员这一职业,更新总是很快的。

之后,希望每个月能更新1-3篇,记录一些有意思的事情。

opcache PHP新的字节码缓存扩展

字节码缓存组件 Zend Optimizer+ 现在更改名字为 Zend opcache了。且在php 5.5版本后,会集成到php的官方组件中,也就没有必要安装其他的APC,eAccelerator等了。。

APC与Opcache都是字节码缓存也就是,PHP在被编译的时候,首先会把php代码转换为字节码,字节码然后被执行。

php文件第二次执行时,同样还是会重新转换为字节码,但是很多时候,文件内容几乎是一样的,比如静态HTML文件,生成后内容许久都不会改变,用户访问请求直接由服务器读取响应给客户端浏览器。都不用经过PHP进行解析构建了。

内存中的字节码数据,可以直接缓存进行二次编译。这样程序就会快一些,cpu的消耗也少了。

详细介绍看这两篇

新一代 PHP 加速插件 Zend Opcache

php的 zend opcache VS apc 性能比较

我主要是用来测试了一下phpcmsV9.5.4 的默认index.php主页,没有数据内容,但有sql查询操作

测试是Apache2.2.6 32Bit 服务器,PHP 5.4.26 ts,mysql 5.6.16 64Bit

ab 版本 This is ApacheBench, Version 2.3 <$Revision: 655654 $>

请求数:1000

并发数:10

没有加载opcache测试

第一次测试

p

吞吐率 38.46 rps,耗时26.001 s,每个请求耗时260.015 ms

第二次测试

p2

吞吐率有所提高 40.73 rps,耗时 24.554 s,每个请求耗时245.544 ms

加载opcache进行测试

opcache版本 php_opcache-7.0.3-5.4-ts-vc9-x86

opcache配置信息


opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

第一次配置opcache好后 cache 状态

cstat

 

cache hits 命中数 1

cache misses 未命中数 1

使用内存225.2Kb

opcache第一次测试

p_c1

吞吐率提升到49.11rps,总耗时20.361 s,每个请求耗时下降到203.612 ms

在phpinfo中可查看opcache的命中数量情况

cstat_c

命中数量已达到43957,内存使用2.31Mb。

opcache第二次测试

p_c2

吞吐率提升到47.87rps,总耗时20.888 s,每个请求耗时下降到208.882 ms

opcache之后的两次压测数据变化不大,每个请求耗时在1ms差距内,吞吐率也在1~2 rps

但与之前未启用opcache时,总耗时少了4 ~ 6 s,每个请求耗时少了40 ~ 60 ms。吞吐率也提升了 8%。

这都是在一行代码未改的情况下有效性能提升。

 

php文件被编译为字节码进行内存缓存,如果在生成环境中,代码和内容变量都是比较固定的

缓存起来的内容就可以高速的返回,用户会得到较快的响应。

但是在本地开发是,建议不要开启opcache,否则就得不到最新的值

例如:


<?php
 header('Content-type:text/html; charset=utf-8');
 
 $str = 'abc';
 echo $str; // 输出abc
?>

赋予$str 一个新的值



<?php
 header('Content-type:text/html; charset=utf-8');
 
 $str = 'new abc';
 echo $str; // 输出的还是 abc
?>

这是因为$str 已经被编译为字节码了,再次访问时,内存里面还是可以找到对应的缓存,就没有进行重新编译,返回的值也就还是之前的值 abc

不过,opcache有一个参数可以用来设置缓存时间长度


opcache.force_restart_timeout (default "180")

默认时间为180秒,还是建议本地不用开启opcache

 

注意:官方给了一个Note,如果opcache要与xdebug同时加载,那么opcache需要在xdebug之前进行加载。

但是我本地测试了一下,xdebug先加载,再加载opcache,也正常启动了,xdebug,opcache都加载成功,opcache缓存也正常。

不过还是按照官方的建议来安装加载,否则可能会出现奇怪的错误吧。

 

官方Github https://github.com/zendtech/ZendOptimizerPlus

 

PHP opcache pecl http://pecl.php.net/package/ZendOpcache

Window opcache dll扩展 http://windows.php.net/downloads/pecl/releases/opcache/7.0.3/

戴尔N4010笔记本风扇清灰

女朋友已经跟我说过很多次了,要帮她把笔记本清清灰尘。我一直懒得动工,且跟她强调清灰不能解决电脑根本慢的问题啊(好吧本质就是太懒了)。她的电脑是10年买的戴尔N4010,买回来也很久没有重装了,于是重装了一下系统,又给电脑加了一根三星4G DDR3的内存条,整体内存升级到6G了。感觉没有那么慢了。最近夏天来了,她用着电脑觉得一会儿就又烫又卡了。所以再次强烈要求(下命令)我帮她的机器清理灰尘。

这下挡不住了,只好开始动工。动手能力一般般,找了一篇拆机文章,http://wenku.baidu.com/view/7eb16fa9d1f34693daef3e67.html?re=view

上面的这篇教程说明的是拆机,不过我们是清理灰尘,主要看拆主板那一块就可以了。至于其他的屏幕拆解,主板拆卸等,感兴趣的可以自己去研究。

 

对于拆机或清灰我觉得有几点需要注意的

1、机器上面的螺丝要分类存放,不要丢失了

2、注意外接设备与主板连接的排线,比如键盘,屏幕等

3、擦拭灰尘时千万别把主板上面的电容给抹坏了,否则就麻烦了

还有一点那就是,记得步骤,不要忘记拧螺丝或者忘记插排线了。

好了,我这次的清灰比较简单,目标就是出风口风扇那里清理干净就好。至于主板的扇热铜管,还有cpu的硅脂替换等,没有处理。

 

在拆机前要搞清楚笔记本的常说的ABCD壳(面)

abcd图上面就一目了然了。

戴尔的这款笔记本主要是把D壳的螺丝全部卸掉,然后在撬开键盘打开C壳。就能看到主板了。

(图片比较烂,勉强看看吧)

第一步卸掉D壳的所有螺丝,包括电池仓那里。

在卸掉内存后盖的螺丝后,取下内存,后盖有一颗螺丝卸掉后就可以拿出光驱了,这里都比较简单。

22

 

需要注意的是,D壳上面的螺丝不要忘记了光驱那里的4颗螺丝!

第二步开始取下键盘

要注意键盘的4个角落下面的卡槽

20140609_220207

左上角的那个就在ESC键上面,小心一点撬以免划伤键盘和C壳。

在慢慢撬起键盘后,小心低下的排线,不要扯掉了。

第三步拆排线

主要有三个地方

2

 

排线拆掉后,拿下这个黑黑的一层隔板,就能看到主板了。

第四步

可以看到风扇了

33

卸掉风扇的螺丝,拿下风扇,清理出风口和风扇。出风口那里全是黑色海绵状的东西,图片忘记拍了,出风口完全被堵住了。可以看到主板上面也是一层的灰,我是用吹风机吹了一遍,没有用刷子刷。如果有机油的话可以给风扇的轴上点油。

至此我的目标就算达成了,开始一步步的安装回去。

4

 

拆解到风扇的全部螺丝。

安装回去的过程中,不要漏掉排线和螺丝。我就忘记了光驱的螺丝直接把光驱装上了。

在上D壳螺丝时,不要一下子全部拧上了,我是拧上4个角上的螺丝。启动一下电脑试试,如果正常启动了,测试一下键盘,看看风扇的运转情况,再关机,把余下的螺丝都拧紧。如果不能正常启动,检查一下内存条是否安装正确,或者检查一下主板上的线是否脱落了。

 

 

 

 

 

 

解决win7本地php链接mysql延迟缓慢问题

最近在新机器上面,要配置一个WAMP环境,因为个人比较喜欢都是自己搭建环境。

在配置完成后,打开一个项目页面,明显的感觉到延迟和顿感。但是不是很明白哪里有问题,也继续就这样用着。

某天,项目数据库需要连接到同事的机器上面去访问,配置后,发现访问飞速,代码还是那些代码。就因为数据库换了,所以变得很快。

所以我确信是PHP连接mysql数据库的问题了,没有瞎猜和细想。直接google了,就看到这样一篇文章

问题就是:由于localhost 没有指定 127.0.0.1 ip地址,请求localhost时直接返回的 ipv6格式地址 ::1 。然后去尝试监听 ::1 上面的mysql 3306端口,但是mysql 的监听端口是在ipv4 127.0.0.1 上。

在地址 ::1 找寻 3306 端口没有找到,才会在 ipv4 的地址上面去寻找。所有就有了这样的一个延迟。

按上面文章的说法,一看hosts文件果然如此。

localhost 确实被注释着,也没有 localhost 的地址指向。


# 127.0.0.1 localhost
# ::1 localhost

本地ping测试
[修改之前]
得到ipv6 ::1 地址


[修改之后]
得到ipv4 127.0.0.1 地址

再次切换到本地数据库,重新请求瞬间秒开页面了。

中国天气网城市代码

找了很多天气城市代码,有些都不准确,在这里http://aigudao.net/?post=105看到一个比较准确的。

转换成数组放这里了


<?php

// By leil.plmeizi.com 2014-4-23
$citycode = array (
 101010100 => '北京市',
 101010200 => '海淀区',
 101010300 => '朝阳区',
 101010400 => '顺义区',
 101010500 => '怀柔区',
 101010600 => '通州区',
 101010700 => '昌平区',
 101010800 => '延庆县',
 101010900 => '丰台区',
 101011000 => '石景山区',
 101011100 => '大兴区',
 101011200 => '房山区',
 101011300 => '密云县',
 101011400 => '门头沟区',
 101011500 => '平谷区',
 101020100 => '上海市',
 101020200 => '闵行区',
 101020300 => '宝山区',
 101020500 => '嘉定区',
 101020700 => '金山区',
 101020800 => '青浦区',
 101020900 => '松江区',
 101021000 => '奉贤区',
 101021100 => '崇明县',
 101021200 => '徐家汇区',
 101021300 => '浦东区',
 101020600 => '浦东南汇',
 101030100 => '天津市',
 101030200 => '武清区',
 101030300 => '宝坻区',
 101030400 => '东丽区',
 101030500 => '西青区',
 101030600 => '北辰区',
 101030700 => '宁河县',
 101030800 => '汉沽区',
 101030900 => '静海县',
 101031000 => '津南区',
 101031100 => '塘沽区',
 101031200 => '大港区',
 101031400 => '蓟县',
 101040100 => '重庆市',
 101040200 => '永川区',
 101040300 => '合川区',
 101040400 => '南川区',
 101040500 => '江津区',
 101040600 => '万盛区',
 101040700 => '渝北区',
 101040800 => '北碚区',
 101040900 => '巴南区',
 101041000 => '长寿区',
 101041100 => '黔江区',
 101041300 => '万州区',
 101041400 => '涪陵区',
 101041500 => '开县',
 101041600 => '城口县',
 101041700 => '云阳县',
 101041800 => '巫溪县',
 101041900 => '奉节县',
 101042000 => '巫山县',
 101042100 => '潼南县',
 101042200 => '垫江县',
 101042300 => '梁平县',
 101042400 => '忠县',
 101042500 => '石柱县',
 101042600 => '大足县',
 101042700 => '荣昌县',
 101042800 => '铜梁县',
 101042900 => '璧山县',
 101043000 => '丰都县',
 101043100 => '武隆县',
 101043200 => '彭水县',
 101043300 => '綦江县',
 101043400 => '酉阳县',
 101043600 => '秀山县',
 101050101 => '哈尔滨市',
 101050102 => '双城市',
 101050103 => '呼兰县',
 101050104 => '阿城区',
 101050105 => '宾县',
 101050106 => '依兰县',
 101050107 => '巴彦县',
 101050108 => '通河县',
 101050109 => '方正县',
 101050110 => '延寿县',
 101050111 => '尚志市',
 101050112 => '五常市',
 101050113 => '木兰县',
 101050201 => '齐齐哈尔市',
 101050202 => '讷河市',
 101050203 => '龙江县',
 101050204 => '甘南县',
 101050205 => '富裕县',
 101050206 => '依安县',
 101050207 => '拜泉县',
 101050208 => '克山县',
 101050209 => '克东县',
 101050210 => '泰来县',
 101050301 => '牡丹江市',
 101050302 => '海林市',
 101050303 => '穆棱市',
 101050304 => '林口县',
 101050305 => '绥芬河市',
 101050306 => '宁安市',
 101050307 => '东宁县',
 101050401 => '佳木斯市',
 101050402 => '汤原县',
 101050403 => '抚远县',
 101050404 => '桦川县',
 101050405 => '桦南县',
 101050406 => '同江市',
 101050407 => '富锦市',
 101050501 => '绥化市',
 101050502 => '肇东市',
 101050503 => '安达市',
 101050504 => '海伦市',
 101050505 => '明水县',
 101050506 => '望奎县',
 101050507 => '兰西县',
 101050508 => '青冈县',
 101050509 => '庆安县',
 101050510 => '绥棱县',
 101050601 => '黑河市',
 101050602 => '嫩江县',
 101050603 => '孙吴县',
 101050604 => '逊克县',
 101050605 => '五大连池市',
 101050606 => '北安市',
 101050701 => '大兴安岭',
 101050702 => '塔河县',
 101050703 => '漠河县',
 101050704 => '呼玛',
 101050705 => '呼中',
 101050706 => '新林',
 101050708 => '加格达奇',
 101050801 => '伊春市',
 101050802 => '乌伊岭区',
 101050803 => '五营区',
 101050804 => '铁力市',
 101050805 => '嘉荫县',
 101050901 => '大庆市',
 101050902 => '林甸县',
 101050903 => '肇州县',
 101050904 => '肇源县',
 101050905 => '杜尔伯特县',
 101051002 => '七台河市',
 101051003 => '勃利县',
 101051101 => '鸡西市',
 101051102 => '虎林市',
 101051103 => '密山市',
 101051104 => '鸡东县',
 101051201 => '鹤岗市',
 101051202 => '绥滨县',
 101051203 => '萝北县',
 101051301 => '双鸭山市',
 101051302 => '集贤县',
 101051303 => '宝清县',
 101051304 => '饶河县',
 101051305 => '友谊县',
 101060101 => '长春市',
 101060102 => '农安县',
 101060103 => '德惠市',
 101060104 => '九台市',
 101060105 => '榆树市',
 101060106 => '双阳区',
 101060201 => '吉林市',
 101060202 => '舒兰市',
 101060203 => '永吉县',
 101060204 => '蛟河市',
 101060205 => '磐石市',
 101060206 => '桦甸市',
 101060301 => '延吉市',
 101060302 => '敦化市',
 101060303 => '安图县',
 101060304 => '汪清县',
 101060305 => '和龙市',
 101060307 => '龙井市',
 101060308 => '珲春市',
 101060309 => '图们市',
 101060401 => '四平市',
 101060402 => '双辽市',
 101060403 => '梨树县',
 101060404 => '公主岭市',
 101060405 => '伊通县',
 101060501 => '通化市',
 101060502 => '梅河口市',
 101060503 => '柳河县',
 101060504 => '辉南县',
 101060505 => '集安市',
 101060506 => '通化县',
 101060601 => '白城市',
 101060602 => '洮南市',
 101060603 => '大安市',
 101060604 => '镇赉县',
 101060605 => '通榆县',
 101060701 => '辽源市',
 101060702 => '东丰县',
 101060703 => '东辽县',
 101060801 => '松原市',
 101060802 => '乾安县',
 101060803 => '前郭县',
 101060804 => '长岭县',
 101060805 => '扶余县',
 101060901 => '白山市',
 101060902 => '靖宇县',
 101060903 => '临江市',
 101060904 => '东岗市',
 101060905 => '长白县',
 101060906 => '抚松县',
 101060907 => '江源区',
 101070101 => '沈阳市',
 101070103 => '辽中县',
 101070104 => '康平县',
 101070105 => '法库县',
 101070106 => '新民市',
 101070201 => '大连市',
 101070202 => '瓦房店市',
 101070203 => '金州区',
 101070204 => '普兰店市',
 101070205 => '旅顺市',
 101070206 => '长海县',
 101070207 => '庄河市',
 101070301 => '鞍山市',
 101070302 => '台安县',
 101070303 => '岫岩县',
 101070304 => '海城市',
 101070401 => '抚顺市',
 101070402 => '新宾县',
 101070403 => '清原县',
 101070404 => '章党县',
 101070501 => '本溪市',
 101070502 => '本溪县',
 101070504 => '桓仁县',
 101070601 => '丹东市',
 101070602 => '凤城市',
 101070603 => '宽甸县',
 101070604 => '东港市',
 101070701 => '锦州市',
 101070702 => '凌海市',
 101070704 => '义县',
 101070705 => '黑山县',
 101070706 => '北镇市',
 101070801 => '营口市',
 101070802 => '大石桥市',
 101070803 => '盖州市',
 101070901 => '阜新市',
 101070902 => '彰武县',
 101071001 => '辽阳市',
 101071002 => '辽阳县',
 101071003 => '灯塔市',
 101071004 => '弓长岭区',
 101071101 => '铁岭市',
 101071102 => '开原市',
 101071103 => '昌图县',
 101071104 => '西丰县',
 101071105 => '调兵山市',
 101071201 => '朝阳市',
 101071203 => '凌源市',
 101071204 => '喀左',
 101071205 => '北票市',
 101071207 => '建平县',
 101071301 => '盘锦市',
 101071302 => '大洼县',
 101071303 => '盘山县',
 101071401 => '葫芦岛市',
 101071402 => '建昌县',
 101071403 => '绥中县',
 101071404 => '兴城市',
 101080101 => '呼和浩特市',
 101080102 => '土左旗',
 101080103 => '托克托县',
 101080104 => '和林格尔县',
 101080105 => '清水河县',
 101080106 => '呼市郊区',
 101080107 => '武川县',
 101080201 => '包头市',
 101080202 => '白云鄂博',
 101080203 => '满都拉',
 101080204 => '土右旗',
 101080205 => '固阳县',
 101080206 => '达茂旗',
 101080207 => '希拉穆仁',
 101080301 => '乌海',
 101080401 => '集宁区',
 101080402 => '卓资县',
 101080403 => '化德县',
 101080404 => '商都县',
 101080406 => '兴和县',
 101080407 => '凉城县',
 101080408 => '察右前旗',
 101080409 => '察右中旗',
 101080410 => '察右后旗',
 101080411 => '四子王旗',
 101080412 => '丰镇市',
 101080501 => '通辽市',
 101080502 => '舍伯吐',
 101080503 => '科左中旗',
 101080504 => '科左后旗',
 101080505 => '青龙山',
 101080506 => '开鲁县',
 101080507 => '库伦旗',
 101080508 => '奈曼旗',
 101080509 => '扎鲁特旗',
 101080511 => '巴雅尔吐胡硕',
 101081108 => '霍林郭勒市',
 101080601 => '赤峰市',
 101080603 => '阿鲁旗',
 101080604 => '浩尔吐',
 101080605 => '巴林左旗',
 101080606 => '巴林右旗',
 101080607 => '林西县',
 101080608 => '克什克腾旗',
 101080609 => '翁牛特旗',
 101080610 => '岗子',
 101080611 => '喀喇沁旗',
 101080612 => '八里罕',
 101080613 => '宁城县',
 101080614 => '敖汉旗',
 101080615 => '宝国吐',
 101080701 => '鄂尔多斯市',
 101080703 => '达拉特旗',
 101080704 => '准格尔旗',
 101080705 => '鄂前旗',
 101080706 => '河南旗',
 101080707 => '伊克乌素',
 101080708 => '鄂托克旗',
 101080709 => '杭锦旗',
 101080710 => '乌审旗',
 101080711 => '伊金霍洛旗',
 101080712 => '乌审召',
 101080713 => '东胜区',
 101080801 => '临河区',
 101080802 => '五原县',
 101080803 => '磴口县',
 101080804 => '乌前旗',
 101080805 => '大佘太',
 101080806 => '乌中旗',
 101080807 => '乌后旗',
 101080808 => '海力素',
 101080809 => '那仁宝力格',
 101080810 => '杭锦后旗',
 101080901 => '锡林浩特市',
 101080903 => '二连浩特市',
 101080904 => '阿巴嘎旗',
 101080906 => '苏左旗',
 101080907 => '苏右旗',
 101080908 => '朱日和',
 101080909 => '东乌旗',
 101080910 => '西乌旗',
 101080911 => '太仆寺旗',
 101080912 => '镶黄旗',
 101080913 => '正镶白旗',
 101080914 => '正蓝旗',
 101080915 => '多伦县',
 101080916 => '博克图',
 101080917 => '乌拉盖',
 101081001 => '海拉尔',
 101081002 => '小二沟',
 101081003 => '阿荣旗',
 101081004 => '莫力达瓦旗',
 101081005 => '鄂伦春旗',
 101081006 => '鄂温克旗',
 101081007 => '陈旗',
 101081008 => '新左旗',
 101081009 => '新右旗',
 101081010 => '满洲里市',
 101081011 => '牙克石市',
 101081012 => '扎兰屯市',
 101081014 => '额尔古纳市',
 101081015 => '根河市',
 101081016 => '图里河',
 101081101 => '乌兰浩特市',
 101081102 => '阿尔山市',
 101081103 => '科右中旗',
 101081104 => '胡尔勒',
 101081105 => '扎赉特旗',
 101081106 => '索伦',
 101081107 => '突泉县',
 101081109 => '科右前旗',
 101080510 => '高力板',
 101081201 => '阿左旗',
 101081202 => '阿右旗',
 101081203 => '额济纳旗',
 101081204 => '拐子湖',
 101081205 => '吉兰太',
 101081206 => '锡林高勒',
 101081207 => '头道湖',
 101081208 => '中泉子',
 101081209 => '诺尔贡',
 101081210 => '雅布赖',
 101081211 => '乌斯泰',
 101081212 => '孪井滩',
 101090101 => '石家庄市',
 101090102 => '井陉区',
 101090103 => '正定县',
 101090104 => '栾城县',
 101090105 => '行唐县',
 101090106 => '灵寿县',
 101090107 => '高邑县',
 101090108 => '深泽县',
 101090109 => '赞皇县',
 101090110 => '无极县',
 101090111 => '平山县',
 101090112 => '元氏县',
 101090113 => '赵县',
 101090114 => '辛集市',
 101090115 => '藁城市',
 101090116 => '晋州市',
 101090117 => '新乐市',
 101090118 => '鹿泉市',
 101090201 => '保定市',
 101090202 => '满城县',
 101090203 => '阜平县',
 101090204 => '徐水县',
 101090205 => '唐县',
 101090206 => '高阳县',
 101090207 => '容城县',
 101090209 => '涞源县',
 101090210 => '望都县',
 101090211 => '安新县',
 101090212 => '易县',
 101090214 => '曲阳县',
 101090215 => '蠡县',
 101090216 => '顺平县',
 101090217 => '雄县',
 101090218 => '涿州市',
 101090219 => '定州市',
 101090220 => '安国市',
 101090221 => '高碑店市',
 101090222 => '涞水县',
 101090223 => '定兴县',
 101090224 => '清苑县',
 101090225 => '博野县',
 101090301 => '张家口市',
 101090302 => '宣化区',
 101090303 => '张北县',
 101090304 => '康保县',
 101090305 => '沽源县',
 101090306 => '尚义县',
 101090307 => '蔚县',
 101090308 => '阳原县',
 101090309 => '怀安县',
 101090310 => '万全县',
 101090311 => '怀来县',
 101090312 => '涿鹿县',
 101090313 => '赤城县',
 101090314 => '崇礼县',
 101090402 => '承德市',
 101090403 => '承德县',
 101090404 => '兴隆县',
 101090405 => '平泉县',
 101090406 => '滦平县',
 101090407 => '隆化县',
 101090408 => '丰宁县',
 101090409 => '宽城县',
 101090410 => '围场县',
 101090501 => '唐山市',
 101090502 => '丰南区',
 101090503 => '丰润区',
 101090504 => '滦县',
 101090505 => '滦南县',
 101090506 => '乐亭县',
 101090507 => '迁西县',
 101090508 => '玉田县',
 101090509 => '唐海县',
 101090510 => '遵化市',
 101090511 => '迁安市',
 101090512 => '曹妃甸',
 101090601 => '廊坊市',
 101090602 => '固安县',
 101090603 => '永清县',
 101090604 => '香河县',
 101090605 => '大城县',
 101090606 => '文安县',
 101090607 => '大厂县',
 101090608 => '霸州市',
 101090609 => '三河市',
 101090701 => '沧州市',
 101090702 => '青县',
 101090703 => '东光县',
 101090704 => '海兴县',
 101090705 => '盐山县',
 101090706 => '肃宁县',
 101090707 => '南皮县',
 101090708 => '吴桥县',
 101090709 => '献县',
 101090710 => '孟村县',
 101090711 => '泊头市',
 101090712 => '任丘市',
 101090713 => '黄骅市',
 101090714 => '河间市',
 101090716 => '沧县',
 101090801 => '衡水市',
 101090802 => '枣强县',
 101090803 => '武邑县',
 101090804 => '武强县',
 101090805 => '饶阳县',
 101090806 => '安平市',
 101090807 => '故城县',
 101090808 => '景县',
 101090809 => '阜城县',
 101090810 => '冀州市',
 101090811 => '深州市',
 101090901 => '邢台市',
 101090902 => '临城县',
 101090904 => '内丘县',
 101090905 => '柏乡县',
 101090906 => '隆尧县',
 101090907 => '南和县',
 101090908 => '宁晋县',
 101090909 => '巨鹿县',
 101090910 => '新河县',
 101090911 => '广宗县',
 101090912 => '平乡县',
 101090913 => '威县',
 101090914 => '清河县',
 101090915 => '临西县',
 101090916 => '南宫市',
 101090917 => '沙河市',
 101090918 => '任县',
 101091001 => '邯郸市',
 101091002 => '峰峰矿区',
 101091003 => '临漳县',
 101091004 => '成安县',
 101091005 => '大名县',
 101091006 => '涉县',
 101091007 => '磁县',
 101091008 => '肥乡县',
 101091009 => '永年县',
 101091010 => '邱县',
 101091011 => '鸡泽县',
 101091012 => '广平县',
 101091013 => '馆陶县',
 101091014 => '魏县',
 101091015 => '曲周县',
 101091016 => '武安市',
 101091101 => '秦皇岛市',
 101091102 => '青龙县',
 101091103 => '昌黎县',
 101091104 => '抚宁县',
 101091105 => '卢龙县',
 101091106 => '北戴河',
 101100101 => '太原市',
 101100102 => '清徐县',
 101100103 => '阳曲县',
 101100104 => '娄烦县',
 101100105 => '古交市',
 101100106 => '尖草坪区',
 101100107 => '小店区',
 101100201 => '大同市',
 101100202 => '阳高县',
 101100203 => '大同县',
 101100204 => '天镇县',
 101100205 => '广灵县',
 101100206 => '灵丘县',
 101100207 => '浑源县',
 101100208 => '左云县',
 101100301 => '阳泉市',
 101100302 => '盂县',
 101100303 => '平定县',
 101100401 => '晋中市',
 101100402 => '榆次区',
 101100403 => '榆社县',
 101100404 => '左权县',
 101100405 => '和顺县',
 101100406 => '昔阳县',
 101100407 => '寿阳县',
 101100408 => '太谷县',
 101100409 => '祁县',
 101100410 => '平遥县',
 101100411 => '灵石县',
 101100412 => '介休市',
 101100501 => '长治市',
 101100502 => '黎城县',
 101100503 => '屯留县',
 101100504 => '潞城市',
 101100505 => '襄垣县',
 101100506 => '平顺县',
 101100507 => '武乡县',
 101100508 => '沁县',
 101100509 => '长子县',
 101100510 => '沁源县',
 101100511 => '壶关县',
 101100601 => '晋城市',
 101100602 => '沁水县',
 101100603 => '阳城县',
 101100604 => '陵川县',
 101100605 => '高平市',
 101100606 => '泽州县',
 101100701 => '临汾市',
 101100702 => '曲沃县',
 101100703 => '永和县',
 101100704 => '隰县',
 101100705 => '大宁县',
 101100706 => '吉县',
 101100707 => '襄汾县',
 101100708 => '蒲县',
 101100709 => '汾西县',
 101100710 => '洪洞县',
 101100711 => '霍州市',
 101100712 => '乡宁县',
 101100713 => '翼城县',
 101100714 => '侯马市',
 101100715 => '浮山县',
 101100716 => '安泽县',
 101100717 => '古县',
 101100801 => '运城市',
 101100802 => '临猗县',
 101100803 => '稷山县',
 101100804 => '万荣县',
 101100805 => '河津市',
 101100806 => '新绛县',
 101100807 => '绛县',
 101100808 => '闻喜县',
 101100809 => '垣曲县',
 101100810 => '永济市',
 101100811 => '芮城县',
 101100812 => '夏县',
 101100813 => '平陆县',
 101100901 => '朔州市',
 101100902 => '平鲁区',
 101100903 => '山阴县',
 101100904 => '右玉县',
 101100905 => '应县',
 101100906 => '怀仁县',
 101101001 => '忻州市',
 101101002 => '定襄县',
 101101003 => '五台县',
 101101004 => '河曲县',
 101101005 => '偏关县',
 101101006 => '神池县',
 101101007 => '宁武县',
 101101008 => '代县',
 101101009 => '繁峙县',
 101101010 => '五台山',
 101101011 => '保德县',
 101101012 => '静乐县',
 101101013 => '岢岚县',
 101101014 => '五寨县',
 101101015 => '原平市',
 101101100 => '吕梁市',
 101101101 => '离石区',
 101101102 => '临县',
 101101103 => '兴县',
 101101104 => '岚县',
 101101105 => '柳林县',
 101101106 => '石楼县',
 101101107 => '方山县',
 101101108 => '交口县',
 101101109 => '中阳县',
 101101110 => '孝义市',
 101101111 => '汾阳市',
 101101112 => '文水县',
 101101113 => '交城县',
 101110101 => '西安市',
 101110102 => '长安区',
 101110103 => '临潼区',
 101110104 => '蓝田县',
 101110105 => '周至县',
 101110106 => '户县',
 101110107 => '高陵县',
 101110200 => '咸阳市',
 101110201 => '三原县',
 101110202 => '礼泉县',
 101110203 => '永寿县',
 101110204 => '淳化县',
 101110205 => '泾阳县',
 101110206 => '武功县',
 101110207 => '乾县',
 101110208 => '彬县',
 101110209 => '长武县',
 101110210 => '旬邑县',
 101110211 => '兴平市',
 101110300 => '延安市',
 101110301 => '延长县',
 101110302 => '延川县',
 101110303 => '子长县',
 101110304 => '宜川县',
 101110305 => '富县',
 101110306 => '志丹县',
 101110307 => '安塞县',
 101110308 => '甘泉县',
 101110309 => '洛川县',
 101110310 => '黄陵县',
 101110311 => '黄龙县',
 101110312 => '吴起县',
 101110401 => '榆林市',
 101110402 => '府谷县',
 101110403 => '神木县',
 101110404 => '佳县',
 101110405 => '定边县',
 101110406 => '靖边县',
 101110407 => '横山县',
 101110408 => '米脂县',
 101110409 => '子洲县',
 101110410 => '绥德县',
 101110411 => '吴堡县',
 101110412 => '清涧县',
 101110413 => '榆阳区',
 101110501 => '渭南市',
 101110502 => '华县',
 101110503 => '潼关县',
 101110504 => '大荔县',
 101110505 => '白水县',
 101110506 => '富平县',
 101110507 => '蒲城县',
 101110508 => '澄城县',
 101110509 => '合阳县',
 101110510 => '韩城市',
 101110511 => '华阴市',
 101110601 => '商洛市',
 101110602 => '洛南县',
 101110603 => '柞水县',
 101110604 => '商州',
 101110605 => '镇安县',
 101110606 => '丹凤县',
 101110607 => '商南县',
 101110608 => '山阳县',
 101110701 => '安康市',
 101110702 => '紫阳县',
 101110703 => '石泉县',
 101110704 => '汉阴县',
 101110705 => '旬阳县',
 101110706 => '岚皋县',
 101110707 => '平利县',
 101110708 => '白河县',
 101110709 => '镇坪县',
 101110710 => '宁陕县',
 101110801 => '汉中市',
 101110802 => '略阳县',
 101110803 => '勉县',
 101110804 => '留坝县',
 101110805 => '洋县',
 101110806 => '城固县',
 101110807 => '西乡县',
 101110808 => '佛坪县',
 101110809 => '宁强县',
 101110810 => '南郑县',
 101110811 => '镇巴县',
 101111101 => '杨凌市',
 101110901 => '宝鸡市',
 101110903 => '千阳县',
 101110904 => '麟游县',
 101110905 => '岐山县',
 101110906 => '凤翔县',
 101110907 => '扶风县',
 101110908 => '眉县',
 101110909 => '太白县',
 101110910 => '凤县',
 101110911 => '陇县',
 101110912 => '陈仓区',
 101111001 => '铜川市',
 101111002 => '耀县',
 101111003 => '宜君县',
 101111004 => '耀州',
 101120101 => '济南市',
 101120102 => '长清区',
 101120103 => '商河县',
 101120104 => '章丘市',
 101120105 => '平阴县',
 101120106 => '济阳县',
 101120201 => '青岛市',
 101120202 => '崂山',
 101120204 => '即墨市',
 101120205 => '胶州市',
 101120206 => '胶南市',
 101120207 => '莱西市',
 101120208 => '平度市',
 101120301 => '淄博市',
 101120302 => '淄川区',
 101120303 => '博山区',
 101120304 => '高青县',
 101120305 => '周村区',
 101120306 => '沂源县',
 101120307 => '桓台县',
 101120308 => '临淄区',
 101120401 => '德州市',
 101120402 => '武城县',
 101120403 => '临邑县',
 101120404 => '陵县',
 101120405 => '齐河县',
 101120406 => '乐陵市',
 101120407 => '庆云县',
 101120408 => '平原县',
 101120409 => '宁津县',
 101120410 => '夏津县',
 101120411 => '禹城市',
 101120501 => '烟台市',
 101120502 => '莱州市',
 101120503 => '长岛县',
 101120504 => '蓬莱市',
 101120505 => '龙口市',
 101120506 => '招远市',
 101120507 => '栖霞市',
 101120508 => '福山区',
 101120509 => '牟平区',
 101120510 => '莱阳市',
 101120511 => '海阳市',
 101120601 => '潍坊市',
 101120602 => '青州市',
 101120603 => '寿光市',
 101120604 => '临朐县',
 101120605 => '昌乐县',
 101120606 => '昌邑市',
 101120607 => '安丘市',
 101120608 => '高密市',
 101120609 => '诸城市',
 101120701 => '济宁市',
 101120702 => '嘉祥县',
 101120703 => '微山县',
 101120704 => '鱼台县',
 101120705 => '兖州市',
 101120706 => '金乡县',
 101120707 => '汶上县',
 101120708 => '泗水县',
 101120709 => '梁山县',
 101120710 => '曲阜市',
 101120711 => '邹城市',
 101120801 => '泰安市',
 101120802 => '新泰市',
 101120804 => '肥城市',
 101120805 => '东平县',
 101120806 => '宁阳县',
 101120901 => '临沂市',
 101120902 => '莒南县',
 101120903 => '沂南县',
 101120904 => '苍山县',
 101120905 => '临沭县',
 101120906 => '郯城县',
 101120907 => '蒙阴县',
 101120908 => '平邑县',
 101120909 => '费县',
 101120910 => '沂水县',
 101121001 => '菏泽市',
 101121002 => '鄄城县',
 101121003 => '郓城县',
 101121004 => '东明县',
 101121005 => '定陶县',
 101121006 => '巨野县',
 101121007 => '曹县',
 101121008 => '成武县',
 101121009 => '单县',
 101121101 => '滨州市',
 101121102 => '博兴县',
 101121103 => '无棣县',
 101121104 => '阳信县',
 101121105 => '惠民县',
 101121106 => '沾化县',
 101121107 => '邹平县',
 101121201 => '东营市',
 101121202 => '河口',
 101121203 => '垦利县',
 101121204 => '利津县',
 101121205 => '广饶县',
 101121301 => '威海市',
 101121302 => '文登市',
 101121303 => '荣成市',
 101121304 => '乳山市',
 101121305 => '成山头',
 101121306 => '石岛',
 101121401 => '枣庄市',
 101121402 => '薛城区',
 101121403 => '峄城区',
 101121404 => '台儿庄区',
 101121405 => '滕州市',
 101121501 => '日照市',
 101121502 => '五莲县',
 101121503 => '莒县',
 101121601 => '莱芜市',
 101121701 => '聊城市',
 101121702 => '冠县',
 101121703 => '阳谷县',
 101121704 => '高唐县',
 101121705 => '茌平县',
 101121706 => '东阿县',
 101121707 => '临清市',
 101121709 => '莘县',
 101130101 => '乌鲁木齐市',
 101130103 => '小渠子',
 101130105 => '达坂城',
 101130108 => '乌鲁木齐牧试站',
 101130109 => '天池',
 101130110 => '白杨沟',
 101130201 => '克拉玛依市',
 101130202 => '乌尔禾区',
 101130203 => '白碱滩区',
 101130301 => '石河子市',
 101130302 => '炮台',
 101130303 => '莫索湾',
 101130401 => '昌吉市',
 101130402 => '呼图壁县',
 101130403 => '米泉市',
 101130404 => '阜康市',
 101130405 => '吉木萨尔',
 101130406 => '奇台县',
 101130407 => '玛纳斯县',
 101130408 => '木垒县',
 101130409 => '蔡家湖',
 101130501 => '吐鲁番市',
 101130502 => '托克逊县',
 101130504 => '鄯善县',
 101130601 => '库尔勒市',
 101130602 => '轮台县',
 101130603 => '尉犁县',
 101130604 => '若羌县',
 101130605 => '且末县',
 101130606 => '和静县',
 101130607 => '焉耆县',
 101130608 => '和硕县',
 101130610 => '巴音布鲁',
 101130611 => '铁干里克',
 101130612 => '博湖县',
 101130613 => '塔中',
 101130614 => '巴仑台',
 101130701 => '阿拉尔市',
 101130801 => '阿克苏市',
 101130802 => '乌什县',
 101130803 => '温宿县',
 101130804 => '拜城县',
 101130805 => '新和县',
 101130806 => '沙雅县',
 101130807 => '库车县',
 101130808 => '柯坪县',
 101130809 => '阿瓦提县',
 101130901 => '喀什市',
 101130902 => '英吉沙县',
 101130903 => '塔什库尔干',
 101130904 => '麦盖提县',
 101130905 => '莎车县',
 101130906 => '叶城县',
 101130907 => '泽普县',
 101130908 => '巴楚县',
 101130909 => '岳普湖县',
 101130910 => '伽师县',
 101130911 => '疏附县',
 101130912 => '疏勒县',
 101131001 => '伊宁市',
 101131002 => '察布查尔',
 101131003 => '尼勒克县',
 101131004 => '伊宁县',
 101131005 => '巩留县',
 101131006 => '新源县',
 101131007 => '昭苏县',
 101131008 => '特克斯县',
 101131009 => '霍城县',
 101131010 => '霍尔果斯',
 101131011 => '奎屯市',
 101131101 => '塔城市',
 101131102 => '裕民县',
 101131103 => '额敏县',
 101131104 => '和布克赛尔',
 101131105 => '托里县',
 101131106 => '乌苏市',
 101131107 => '沙湾县',
 101131201 => '哈密市',
 101131203 => '巴里坤县',
 101131204 => '伊吾县',
 101131301 => '和田市',
 101131302 => '皮山县',
 101131303 => '策勒县',
 101131304 => '墨玉县',
 101131305 => '洛浦县',
 101131306 => '民丰县',
 101131307 => '于田县',
 101131401 => '阿勒泰市',
 101131402 => '哈巴河县',
 101131405 => '吉木乃县',
 101131406 => '布尔津县',
 101131407 => '福海县',
 101131408 => '富蕴县',
 101131409 => '青河县',
 101131501 => '阿图什市',
 101131502 => '乌恰县',
 101131503 => '阿克陶县',
 101131504 => '阿合奇县',
 101131601 => '博乐市',
 101131602 => '温泉县',
 101131603 => '精河县',
 101131606 => '阿拉山口',
 101140101 => '拉萨市',
 101140102 => '当雄县',
 101140103 => '尼木县',
 101140104 => '林周县',
 101140105 => '堆龙德庆',
 101140106 => '曲水县',
 101140107 => '达孜县',
 101140108 => '墨竹工卡',
 101140201 => '日喀则市',
 101140202 => '拉孜县',
 101140203 => '南木林县',
 101140204 => '聂拉木县',
 101140205 => '定日县',
 101140206 => '江孜县',
 101140207 => '帕里县',
 101140208 => '仲巴县',
 101140209 => '萨嘎县',
 101140210 => '吉隆县',
 101140211 => '昂仁县',
 101140212 => '定结县',
 101140213 => '萨迦县',
 101140214 => '谢通门县',
 101140216 => '岗巴县',
 101140217 => '白朗县',
 101140218 => '亚东县',
 101140219 => '康马县',
 101140220 => '仁布县',
 101140301 => '山南市',
 101140302 => '贡县嘎',
 101140303 => '扎囊县',
 101140304 => '加查县',
 101140305 => '浪卡子县',
 101140306 => '错那县',
 101140307 => '隆子县',
 101140308 => '泽当县',
 101140309 => '乃东县',
 101140310 => '桑日县',
 101140311 => '洛扎县',
 101140312 => '措美县',
 101140313 => '琼结县',
 101140314 => '曲松县',
 101140401 => '林芝市',
 101140402 => '波密县',
 101140403 => '米林县',
 101140404 => '察隅县',
 101140405 => '工布江达',
 101140406 => '朗县',
 101140407 => '墨脱县',
 101140501 => '昌都市',
 101140502 => '丁青县',
 101140503 => '边坝县',
 101140504 => '洛隆县',
 101140505 => '左贡县',
 101140506 => '芒康县',
 101140507 => '类乌齐县',
 101140508 => '八宿县',
 101140509 => '江达县',
 101140510 => '察雅县',
 101140511 => '贡觉县',
 101140601 => '那曲县',
 101140602 => '尼玛县',
 101140603 => '嘉黎县',
 101140604 => '班戈县',
 101140605 => '安多县',
 101140606 => '索县',
 101140607 => '聂荣县',
 101140608 => '巴青县',
 101140609 => '比如县',
 101140610 => '双湖县',
 101140701 => '阿里',
 101140702 => '改则县',
 101140703 => '申扎',
 101140704 => '狮泉河',
 101140705 => '普兰县',
 101140706 => '札达县',
 101140707 => '噶尔县',
 101140708 => '日土县',
 101140709 => '革吉县',
 101140710 => '措勤县',
 101150101 => '西宁市',
 101150102 => '大通县',
 101150103 => '湟源县',
 101150104 => '湟中县',
 101150201 => '海东市',
 101150202 => '乐都县',
 101150203 => '民和县',
 101150204 => '互助县',
 101150205 => '化隆县',
 101150206 => '循化县',
 101150207 => '冷湖县',
 101150208 => '平安县',
 101150301 => '黄南市',
 101150302 => '尖扎县',
 101150303 => '泽库县',
 101150304 => '河南县',
 101150305 => '同仁县',
 101150401 => '海南市',
 101150404 => '贵德县',
 101150406 => '兴海县',
 101150407 => '贵南县',
 101150408 => '同德县',
 101150409 => '共和县',
 101150501 => '果洛县',
 101150502 => '班玛县',
 101150503 => '甘德县',
 101150504 => '达日县',
 101150505 => '久治县',
 101150506 => '玛多县',
 101150507 => '多县',
 101150508 => '玛沁县',
 101150601 => '玉树市',
 101150602 => '称多县',
 101150603 => '治多县',
 101150604 => '杂多县',
 101150605 => '囊谦县',
 101150606 => '曲麻莱县',
 101150701 => '海西市',
 101150708 => '天峻县',
 101150709 => '乌兰县',
 101150712 => '茫崖',
 101150713 => '大柴旦',
 101150716 => '德令哈市',
 101150801 => '海北市',
 101150802 => '门源县',
 101150803 => '祁连县',
 101150804 => '海晏县',
 101150806 => '刚察县',
 101160101 => '兰州市',
 101160102 => '皋兰县',
 101160103 => '永登县',
 101160104 => '榆中县',
 101161401 => '嘉峪关市',
 101160201 => '定西市',
 101160202 => '通渭县',
 101160203 => '陇西县',
 101160204 => '渭源县',
 101160205 => '临洮县',
 101160206 => '漳县',
 101160207 => '岷县',
 101160208 => '安定区',
 101160301 => '平凉市',
 101160302 => '泾川县',
 101160303 => '灵台县',
 101160304 => '崇信县',
 101160305 => '华亭县',
 101160306 => '庄浪县',
 101160307 => '静宁县',
 101160308 => '崆峒区',
 101160401 => '西峰区',
 101160403 => '环县',
 101160404 => '华池县',
 101160405 => '合水县',
 101160406 => '正宁县',
 101160407 => '宁县',
 101160408 => '镇原县',
 101160409 => '庆城县',
 101160501 => '武威市',
 101160502 => '民勤县',
 101160503 => '古浪县',
 101160505 => '天祝县',
 101160601 => '金昌市',
 101160602 => '永昌县',
 101160701 => '张掖市',
 101160702 => '肃南县',
 101160703 => '民乐县',
 101160704 => '临泽县',
 101160705 => '高台县',
 101160706 => '山丹县',
 101160801 => '酒泉市',
 101160803 => '金塔县',
 101160804 => '阿克塞',
 101160805 => '瓜州县',
 101160806 => '肃北县',
 101160807 => '玉门市',
 101160808 => '敦煌市',
 101160901 => '天水市',
 101160903 => '清水县',
 101160904 => '秦安县',
 101160905 => '甘谷县',
 101160906 => '武山县',
 101160907 => '张家川县',
 101160908 => '麦积区',
 101161001 => '武都区',
 101161002 => '成县',
 101161003 => '文县',
 101161004 => '宕昌县',
 101161005 => '康县',
 101161006 => '西和县',
 101161007 => '礼县',
 101161008 => '徽县',
 101161009 => '两当县',
 101161101 => '临夏市',
 101161102 => '康乐县',
 101161103 => '永靖县',
 101161104 => '广河县',
 101161105 => '和政县',
 101161106 => '东乡',
 101161107 => '积石山县',
 101161201 => '合作市',
 101161202 => '临潭县',
 101161203 => '卓尼县',
 101161204 => '舟曲县',
 101161205 => '迭部县',
 101161206 => '玛曲县',
 101161207 => '碌曲县',
 101161208 => '夏河县',
 101161301 => '白银市',
 101161302 => '靖远县',
 101161303 => '会宁县',
 101161304 => '平川区',
 101161305 => '景泰县',
 101170101 => '银川市',
 101170102 => '永宁县',
 101170103 => '灵武市',
 101170104 => '贺兰县',
 101170201 => '石嘴山市',
 101170202 => '惠农县',
 101170203 => '平罗县',
 101170204 => '陶乐县',
 101170301 => '吴忠市',
 101170302 => '同心县',
 101170303 => '盐池县',
 101170306 => '青铜峡市',
 101170401 => '固原市',
 101170402 => '西吉县',
 101170403 => '隆德县',
 101170404 => '泾源县',
 101170406 => '彭阳县',
 101170501 => '中卫市',
 101170502 => '中宁县',
 101170504 => '海原县',
 101180101 => '郑州市',
 101180102 => '巩义市',
 101180103 => '荥阳市',
 101180104 => '登封市',
 101180105 => '新密市',
 101180106 => '新郑市',
 101180107 => '中牟县',
 101180108 => '上街',
 101180201 => '安阳市',
 101180202 => '汤阴县',
 101180203 => '滑县',
 101180204 => '内黄县',
 101180205 => '林州市',
 101180301 => '新乡市',
 101180302 => '获嘉县',
 101180303 => '原阳县',
 101180304 => '辉县市',
 101180305 => '卫辉市',
 101180306 => '延津县',
 101180307 => '封丘县',
 101180308 => '长垣县',
 101180401 => '许昌市',
 101180402 => '鄢陵县',
 101180403 => '襄城县',
 101180404 => '长葛市',
 101180405 => '禹州市',
 101180501 => '平顶山市',
 101180502 => '郏县',
 101180503 => '宝丰县',
 101180504 => '汝州市',
 101180505 => '叶县',
 101180506 => '舞钢市',
 101180507 => '鲁山县',
 101180508 => '石龙区',
 101180601 => '信阳市',
 101180602 => '息县',
 101180603 => '罗山县',
 101180604 => '光山县',
 101180605 => '新县',
 101180606 => '淮滨县',
 101180607 => '潢川县',
 101180608 => '固始县',
 101180609 => '商城县',
 101180701 => '南阳市',
 101180702 => '南召县',
 101180703 => '方城县',
 101180704 => '社旗县',
 101180705 => '西峡县',
 101180706 => '内乡县',
 101180707 => '镇平县',
 101180708 => '淅川县',
 101180709 => '新野县',
 101180710 => '唐河县',
 101180711 => '邓州市',
 101180712 => '桐柏县',
 101180801 => '开封市',
 101180802 => '杞县',
 101180803 => '尉氏县',
 101180804 => '通许县',
 101180805 => '兰考县',
 101180901 => '洛阳市',
 101180902 => '新安县',
 101180903 => '孟津县',
 101180904 => '宜阳县',
 101180905 => '洛宁县',
 101180906 => '伊川县',
 101180907 => '嵩县',
 101180908 => '偃师市',
 101180909 => '栾川县',
 101180910 => '汝阳县',
 101180911 => '吉利区',
 101181001 => '商丘市',
 101181003 => '睢县',
 101181004 => '民权县',
 101181005 => '虞城县',
 101181006 => '柘城县',
 101181007 => '宁陵县',
 101181008 => '夏邑县',
 101181009 => '永城市',
 101181101 => '焦作市',
 101181102 => '修武县',
 101181103 => '武陟县',
 101181104 => '沁阳市',
 101181106 => '博爱县',
 101181107 => '温县',
 101181108 => '孟州市',
 101181201 => '鹤壁市',
 101181202 => '浚县',
 101181203 => '淇县',
 101181301 => '濮阳市',
 101181302 => '台前县',
 101181303 => '南乐县',
 101181304 => '清丰县',
 101181305 => '范县',
 101181401 => '周口市',
 101181402 => '扶沟县',
 101181403 => '太康县',
 101181404 => '淮阳县',
 101181405 => '西华县',
 101181406 => '商水县',
 101181407 => '项城市',
 101181408 => '郸城县',
 101181409 => '鹿邑县',
 101181410 => '沈丘县',
 101181501 => '漯河市',
 101181502 => '临颍县',
 101181503 => '舞阳县',
 101181601 => '驻马店市',
 101181602 => '西平县',
 101181603 => '遂平县',
 101181604 => '上蔡县',
 101181605 => '汝南县',
 101181606 => '泌阳县',
 101181607 => '平舆县',
 101181608 => '新蔡县',
 101181609 => '确山县',
 101181610 => '正阳县',
 101181701 => '三门峡市',
 101181702 => '灵宝市',
 101181703 => '渑池县',
 101181704 => '卢氏县',
 101181705 => '义马市',
 101181706 => '陕县',
 101181801 => '济源市',
 101190101 => '南京市',
 101190102 => '溧水县',
 101190103 => '高淳县',
 101190104 => '江宁区',
 101190105 => '六合区',
 101190106 => '江浦',
 101190107 => '浦口区',
 101190201 => '无锡市',
 101190202 => '江阴市',
 101190203 => '宜兴市',
 101190204 => '锡山区',
 101190301 => '镇江市',
 101190302 => '丹阳市',
 101190303 => '扬中市',
 101190304 => '句容市',
 101190305 => '丹徒区',
 101190401 => '苏州市',
 101190402 => '常熟市',
 101190403 => '张家港市',
 101190404 => '昆山市',
 101190405 => '吴中',
 101190407 => '吴江市',
 101190408 => '太仓市',
 101190501 => '南通市',
 101190502 => '海安县',
 101190503 => '如皋市',
 101190504 => '如东县',
 101190507 => '启东市',
 101190508 => '海门市',
 101190509 => '通州区',
 101190601 => '扬州市',
 101190602 => '宝应县',
 101190603 => '仪征市',
 101190604 => '高邮市',
 101190605 => '江都区',
 101190606 => '邗江区',
 101190701 => '盐城市',
 101190702 => '响水县',
 101190703 => '滨海县',
 101190704 => '阜宁县',
 101190705 => '射阳县',
 101190706 => '建湖县',
 101190707 => '东台市',
 101190708 => '大丰市',
 101190709 => '盐都区',
 101190801 => '徐州市',
 101190802 => '铜山区',
 101190803 => '丰县',
 101190804 => '沛县',
 101190805 => '邳州市',
 101190806 => '睢宁县',
 101190807 => '新沂市',
 101190901 => '淮安市',
 101190902 => '金湖县',
 101190903 => '盱眙县',
 101190904 => '洪泽县',
 101190905 => '涟水县',
 101190906 => '淮阴区',
 101190908 => '楚州区',
 101191001 => '连云港市',
 101191002 => '东海县',
 101191003 => '赣榆县',
 101191004 => '灌云县',
 101191005 => '灌南县',
 101191101 => '常州市',
 101191102 => '溧阳市',
 101191103 => '金坛市',
 101191104 => '武进区',
 101191201 => '泰州市',
 101191202 => '兴化市',
 101191203 => '泰兴市',
 101191204 => '姜堰市',
 101191205 => '靖江市',
 101191301 => '宿迁市',
 101191302 => '沭阳县',
 101191303 => '泗阳县',
 101191304 => '泗洪县',
 101191305 => '宿豫区',
 101200101 => '武汉市',
 101200102 => '蔡甸区',
 101200103 => '黄陂区',
 101200104 => '新洲区',
 101200105 => '江夏区',
 101200106 => '东西湖区',
 101200201 => '襄阳市',
 101200202 => '襄州区',
 101200203 => '保康县',
 101200204 => '南漳县',
 101200205 => '宜城市',
 101200206 => '老河口市',
 101200207 => '谷城县',
 101200208 => '枣阳市',
 101200301 => '鄂州市',
 101200302 => '梁子湖',
 101200401 => '孝感市',
 101200402 => '安陆市',
 101200403 => '云梦县',
 101200404 => '大悟县',
 101200405 => '应城市',
 101200406 => '汉川市',
 101200407 => '孝昌县',
 101200501 => '黄冈市',
 101200502 => '红安县',
 101200503 => '麻城市',
 101200504 => '罗田县',
 101200505 => '英山县',
 101200506 => '浠水县',
 101200507 => '蕲春县',
 101200508 => '黄梅县',
 101200509 => '武穴市',
 101200510 => '团风县',
 101200601 => '黄石市',
 101200602 => '大冶市',
 101200603 => '阳新县',
 101200604 => '铁山区',
 101200605 => '下陆区',
 101200606 => '西塞山区',
 101200701 => '咸宁市',
 101200702 => '赤壁市',
 101200703 => '嘉鱼县',
 101200704 => '崇阳县',
 101200705 => '通城县',
 101200706 => '通山县',
 101200801 => '荆州市',
 101200802 => '江陵县',
 101200803 => '公安县',
 101200804 => '石首市',
 101200805 => '监利县',
 101200806 => '洪湖市',
 101200807 => '松滋市',
 101201406 => '沙市区',
 101200901 => '宜昌市',
 101200902 => '远安县',
 101200903 => '秭归县',
 101200904 => '兴山县',
 101200906 => '五峰县',
 101200907 => '当阳市',
 101200908 => '长阳县',
 101200909 => '宜都市',
 101200910 => '枝江市',
 101200911 => '三峡',
 101200912 => '夷陵区',
 101201001 => '恩施市',
 101201002 => '利川市',
 101201003 => '建始县',
 101201004 => '咸丰县',
 101201005 => '宣恩县',
 101201006 => '鹤峰县',
 101201007 => '来凤县',
 101201008 => '巴东县',
 101201101 => '十堰市',
 101201102 => '竹溪县',
 101201103 => '郧西县',
 101201104 => '郧县',
 101201105 => '竹山县',
 101201106 => '房县',
 101201107 => '丹江口市',
 101201108 => '茅箭区',
 101201109 => '张湾区',
 101201201 => '神农架',
 101201301 => '随州市',
 101201302 => '广水市',
 101201401 => '荆门市',
 101201402 => '钟祥市',
 101201403 => '京山县',
 101201404 => '掇刀区',
 101201405 => '沙洋县',
 101201501 => '天门市',
 101201601 => '仙桃市',
 101201701 => '潜江市',
 101210101 => '杭州市',
 101210102 => '萧山区',
 101210103 => '桐庐县',
 101210104 => '淳安县',
 101210105 => '建德市',
 101210106 => '余杭区',
 101210107 => '临安市',
 101210108 => '富阳市',
 101210201 => '湖州市',
 101210202 => '长兴县',
 101210203 => '安吉县',
 101210204 => '德清县',
 101210301 => '嘉兴市',
 101210302 => '嘉善县',
 101210303 => '海宁市',
 101210304 => '桐乡市',
 101210305 => '平湖市',
 101210306 => '海盐县',
 101210401 => '宁波市',
 101210403 => '慈溪市',
 101210404 => '余姚市',
 101210405 => '奉化市',
 101210406 => '象山县',
 101210408 => '宁海县',
 101210410 => '北仑区',
 101210411 => '鄞州区',
 101210412 => '镇海区',
 101210501 => '绍兴市',
 101210502 => '诸暨市',
 101210503 => '上虞市',
 101210504 => '新昌县',
 101210505 => '嵊州市',
 101210601 => '台州市',
 101210603 => '玉环县',
 101210604 => '三门县',
 101210605 => '天台县',
 101210606 => '仙居县',
 101210607 => '温岭市',
 101210609 => '洪家',
 101210610 => '临海市',
 101210611 => '椒江区',
 101210612 => '黄岩区',
 101210613 => '路桥区',
 101210701 => '温州市',
 101210702 => '泰顺县',
 101210703 => '文成县',
 101210704 => '平阳县',
 101210705 => '瑞安市',
 101210706 => '洞头县',
 101210707 => '乐清市',
 101210708 => '永嘉县',
 101210709 => '苍南县',
 101210801 => '丽水市',
 101210802 => '遂昌县',
 101210803 => '龙泉市',
 101210804 => '缙云县',
 101210805 => '青田县',
 101210806 => '云和',
 101210807 => '庆元县',
 101210808 => '松阳县',
 101210809 => '景宁县',
 101210901 => '金华市',
 101210902 => '浦江县',
 101210903 => '兰溪市',
 101210904 => '义乌市',
 101210905 => '东阳市',
 101210906 => '武义县',
 101210907 => '永康市',
 101210908 => '磐安县',
 101211001 => '衢州市',
 101211002 => '常山县',
 101211003 => '开化县',
 101211004 => '龙游县',
 101211005 => '江山市',
 101211006 => '衢江区',
 101211101 => '舟山市',
 101211102 => '嵊泗县',
 101211104 => '岱山县',
 101211105 => '普陀区',
 101211106 => '定海区',
 101220101 => '合肥市',
 101220102 => '长丰县',
 101220103 => '肥东县',
 101220104 => '肥西县',
 101220201 => '蚌埠市',
 101220202 => '怀远县',
 101220203 => '固镇县',
 101220204 => '五河县',
 101220301 => '芜湖市',
 101220302 => '繁昌县',
 101220303 => '芜湖县',
 101220304 => '南陵县',
 101220401 => '淮南市',
 101220402 => '凤台县',
 101220403 => '潘集',
 101220501 => '马鞍山市',
 101220502 => '当涂县',
 101220601 => '安庆市',
 101220602 => '枞阳县',
 101220603 => '太湖县',
 101220604 => '潜山县',
 101220605 => '怀宁县',
 101220606 => '宿松县',
 101220607 => '望江县',
 101220608 => '岳西县',
 101220609 => '桐城市',
 101220701 => '宿州市',
 101220702 => '砀山县',
 101220703 => '灵璧县',
 101220704 => '泗县',
 101220705 => '萧县',
 101220801 => '阜阳市',
 101220802 => '阜南县',
 101220803 => '颍上县',
 101220804 => '临泉县',
 101220805 => '界首市',
 101220806 => '太和县',
 101220901 => '亳州市',
 101220902 => '涡阳县',
 101220903 => '利辛县',
 101220904 => '蒙城县',
 101221001 => '黄山市',
 101221002 => '黄山区',
 101221003 => '屯溪区',
 101221004 => '祁门县',
 101221005 => '黟县',
 101221006 => '歙县',
 101221007 => '休宁县',
 101221008 => '黄山风景区',
 101221101 => '滁州市',
 101221102 => '凤阳县',
 101221103 => '明光市',
 101221104 => '定远县',
 101221105 => '全椒县',
 101221106 => '来安县',
 101221107 => '天长市',
 101221201 => '淮北市',
 101221202 => '濉溪县',
 101221301 => '铜陵市',
 101221401 => '宣城市',
 101221402 => '泾县',
 101221403 => '旌德县',
 101221404 => '宁国市',
 101221405 => '绩溪县',
 101221406 => '广德县',
 101221407 => '郎溪县',
 101221501 => '六安市',
 101221502 => '霍邱县',
 101221503 => '寿县',
 101221505 => '金寨县',
 101221506 => '霍山县',
 101221507 => '舒城县',
 101221601 => '巢湖市',
 101221602 => '庐江县',
 101221603 => '无为县',
 101221604 => '含山县',
 101221605 => '和县',
 101221701 => '池州市',
 101221702 => '东至县',
 101221703 => '青阳县',
 101221704 => '九华山',
 101221705 => '石台县',
 101230101 => '福州市',
 101230102 => '闽清县',
 101230103 => '闽侯县',
 101230104 => '罗源县',
 101230105 => '连江县',
 101230107 => '永泰县',
 101230108 => '平潭县',
 101230110 => '长乐市',
 101230111 => '福清市',
 101230201 => '厦门市',
 101230202 => '同安区',
 101230301 => '宁德市',
 101230302 => '古田县',
 101230303 => '霞浦县',
 101230304 => '寿宁县',
 101230305 => '周宁县',
 101230306 => '福安市',
 101230307 => '柘荣县',
 101230308 => '福鼎市',
 101230309 => '屏南县',
 101230401 => '莆田市',
 101230402 => '仙游县',
 101230403 => '秀屿港',
 101230404 => '涵江区',
 101230405 => '秀屿区',
 101230406 => '荔城区',
 101230407 => '城厢区',
 101230501 => '泉州市',
 101230502 => '安溪县',
 101230504 => '永春县',
 101230505 => '德化县',
 101230506 => '南安市',
 101230507 => '崇武',
 101230508 => '惠安县',
 101230509 => '晋江市',
 101230510 => '石狮市',
 101230601 => '漳州市',
 101230602 => '长泰县',
 101230603 => '南靖县',
 101230604 => '平和县',
 101230605 => '龙海市',
 101230606 => '漳浦县',
 101230607 => '诏安县',
 101230608 => '东山县',
 101230609 => '云霄县',
 101230610 => '华安县',
 101230701 => '龙岩市',
 101230702 => '长汀县',
 101230703 => '连城县',
 101230704 => '武平县',
 101230705 => '上杭县',
 101230706 => '永定县',
 101230707 => '漳平市',
 101230801 => '三明市',
 101230802 => '宁化县',
 101230803 => '清流县',
 101230804 => '泰宁县',
 101230805 => '将乐县',
 101230806 => '建宁县',
 101230807 => '明溪县',
 101230808 => '沙县',
 101230809 => '尤溪县',
 101230810 => '永安市',
 101230811 => '大田县',
 101230901 => '南平市',
 101230902 => '顺昌县',
 101230903 => '光泽县',
 101230904 => '邵武市',
 101230905 => '武夷山市',
 101230906 => '浦城县',
 101230907 => '建阳市',
 101230908 => '松溪县',
 101230909 => '政和县',
 101230910 => '建瓯市',
 101240101 => '南昌市',
 101240102 => '新建县',
 101240103 => '南昌县',
 101240104 => '安义县',
 101240105 => '进贤县',
 101240201 => '九江市',
 101240202 => '瑞昌市',
 101240203 => '庐山区',
 101240204 => '武宁县',
 101240205 => '德安县',
 101240206 => '永修县',
 101240207 => '湖口县',
 101240208 => '彭县泽',
 101240209 => '星子县',
 101240210 => '都昌县',
 101240212 => '修水县',
 101240301 => '上饶市',
 101240302 => '鄱阳县',
 101240303 => '婺源县',
 101240305 => '余干县',
 101240306 => '万年县',
 101240307 => '德兴市',
 101240308 => '上饶县',
 101240309 => '弋阳县',
 101240310 => '横峰县',
 101240311 => '铅山县',
 101240312 => '玉山县',
 101240313 => '广丰县',
 101240401 => '抚州市',
 101240402 => '广昌县',
 101240403 => '乐安县',
 101240404 => '崇仁县',
 101240405 => '金溪县',
 101240406 => '资溪县',
 101240407 => '宜黄县',
 101240408 => '南城县',
 101240409 => '南丰县',
 101240410 => '黎川县',
 101240411 => '东乡县',
 101240501 => '宜春市',
 101240502 => '铜鼓县',
 101240503 => '宜丰县',
 101240504 => '万载县',
 101240505 => '上高县',
 101240506 => '靖安县',
 101240507 => '奉新县',
 101240508 => '高安市',
 101240509 => '樟树市',
 101240510 => '丰城市',
 101240601 => '吉安市',
 101240602 => '吉安县',
 101240603 => '吉水县',
 101240604 => '新干县',
 101240605 => '峡江县',
 101240606 => '永丰县',
 101240607 => '永新县',
 101240608 => '井冈山市',
 101240609 => '万安县',
 101240610 => '遂川县',
 101240611 => '泰和县',
 101240612 => '安福县',
 101240613 => '宁冈县',
 101240701 => '赣州市',
 101240702 => '崇义县',
 101240703 => '上犹县',
 101240704 => '南康市',
 101240705 => '大余县',
 101240706 => '信丰县',
 101240707 => '宁都县',
 101240708 => '石城县',
 101240709 => '瑞金市',
 101240710 => '于都县',
 101240711 => '会昌县',
 101240712 => '安远县',
 101240713 => '全南县',
 101240714 => '龙南县',
 101240715 => '定南县',
 101240716 => '寻乌县',
 101240717 => '兴国县',
 101240718 => '赣县',
 101240801 => '景德镇市',
 101240802 => '乐平市',
 101240803 => '浮梁县',
 101240901 => '萍乡市',
 101240902 => '莲花县',
 101240903 => '上栗县',
 101240904 => '安源区',
 101240905 => '芦溪县',
 101240906 => '湘东区',
 101241001 => '新余市',
 101241002 => '分宜县',
 101241101 => '鹰潭市',
 101241102 => '余江县',
 101241103 => '贵溪市',
 101250101 => '长沙市',
 101250102 => '宁乡县',
 101250103 => '浏阳市',
 101250104 => '马坡岭',
 101250105 => '望城县',
 101250201 => '湘潭市',
 101250202 => '韶山市',
 101250203 => '湘乡市',
 101250301 => '株洲市',
 101250302 => '攸县',
 101250303 => '醴陵市',
 101250305 => '茶陵县',
 101250306 => '炎陵县',
 101250401 => '衡阳市',
 101250402 => '衡山县',
 101250403 => '衡东县',
 101250404 => '祁东县',
 101250405 => '衡阳县',
 101250406 => '常宁市',
 101250407 => '衡南县',
 101250408 => '耒阳市',
 101250409 => '南岳县',
 101250501 => '郴州市',
 101250502 => '桂阳县',
 101250503 => '嘉禾县',
 101250504 => '宜章县',
 101250505 => '临武县',
 101250507 => '资兴市',
 101250508 => '汝城县',
 101250509 => '安仁县',
 101250510 => '永兴县',
 101250511 => '桂东县',
 101250512 => '苏仙区',
 101250601 => '常德市',
 101250602 => '安乡县',
 101250603 => '桃源县',
 101250604 => '汉寿县',
 101250605 => '澧县',
 101250606 => '临澧县',
 101250607 => '石门县',
 101250608 => '津市市',
 101250700 => '益阳市',
 101250701 => '赫山区',
 101250702 => '南县',
 101250703 => '桃江县',
 101250704 => '安化县',
 101250705 => '沅江市',
 101250801 => '娄底市',
 101250802 => '双峰县',
 101250803 => '冷水江市',
 101250805 => '新化县',
 101250806 => '涟源市',
 101250901 => '邵阳市',
 101250902 => '隆回县',
 101250903 => '洞口县',
 101250904 => '新邵县',
 101250905 => '邵东县',
 101250906 => '绥宁县',
 101250907 => '新宁县',
 101250908 => '武冈市',
 101250909 => '城步县',
 101250910 => '邵阳县',
 101251001 => '岳阳市',
 101251002 => '华容县',
 101251003 => '湘阴县',
 101251004 => '汨罗市',
 101251005 => '平江县',
 101251006 => '临湘市',
 101251101 => '张家界市',
 101251102 => '桑植县',
 101251103 => '慈利县',
 101251104 => '武陵源区',
 101251201 => '怀化市',
 101251203 => '沅陵县',
 101251204 => '辰溪县',
 101251205 => '靖州县',
 101251206 => '会同县',
 101251207 => '通道县',
 101251208 => '麻阳县',
 101251209 => '新晃县',
 101251210 => '芷江县',
 101251211 => '溆浦县',
 101251212 => '中方县',
 101251213 => '洪江市',
 101251401 => '永州市',
 101251402 => '祁阳县',
 101251403 => '东安县',
 101251404 => '双牌县',
 101251405 => '道县',
 101251406 => '宁远县',
 101251407 => '江永县',
 101251408 => '蓝山县',
 101251409 => '新田县',
 101251410 => '江华县',
 101251411 => '冷水滩区',
 101251501 => '吉首市',
 101251502 => '保靖县',
 101251503 => '永顺县',
 101251504 => '古丈县',
 101251505 => '凤凰县',
 101251506 => '泸溪县',
 101251507 => '龙山县',
 101251508 => '花垣县',
 101260101 => '贵阳市',
 101260102 => '白云区',
 101260103 => '花溪区',
 101260104 => '乌当区',
 101260105 => '息烽县',
 101260106 => '开阳县',
 101260107 => '修文县',
 101260108 => '清镇市',
 101260109 => '小河区',
 101260110 => '云岩区',
 101260111 => '南明区',
 101260201 => '遵义市',
 101260202 => '遵义县',
 101260203 => '仁怀市',
 101260204 => '绥阳县',
 101260205 => '湄潭县',
 101260206 => '凤冈县',
 101260207 => '桐梓县',
 101260208 => '赤水市',
 101260209 => '习水县',
 101260210 => '道真县',
 101260211 => '正安县',
 101260212 => '务川县',
 101260213 => '余庆县',
 101260214 => '汇川县',
 101260215 => '红花岗',
 101260301 => '安顺市',
 101260302 => '普定县',
 101260303 => '镇宁县',
 101260304 => '平坝县',
 101260305 => '紫云县',
 101260306 => '关岭县',
 101260401 => '都匀市',
 101260402 => '贵定县',
 101260403 => '瓮安县',
 101260404 => '长顺县',
 101260405 => '福泉市',
 101260406 => '惠水县',
 101260407 => '龙里县',
 101260408 => '罗甸县',
 101260409 => '平塘县',
 101260410 => '独山县',
 101260411 => '三都县',
 101260412 => '荔波县',
 101260501 => '凯里市',
 101260502 => '岑巩县',
 101260503 => '施秉县',
 101260504 => '镇远县',
 101260505 => '黄平县',
 101260507 => '麻江县',
 101260508 => '丹寨县',
 101260509 => '三穗县',
 101260510 => '台江县',
 101260511 => '剑河县',
 101260512 => '雷山县',
 101260513 => '黎平县',
 101260514 => '天柱县',
 101260515 => '锦屏县',
 101260516 => '榕江县',
 101260517 => '从江县',
 101260601 => '铜仁市',
 101260602 => '江口县',
 101260603 => '玉屏县',
 101260604 => '万山县',
 101260605 => '思南县',
 101260607 => '印江县',
 101260608 => '石阡县',
 101260609 => '沿河县',
 101260610 => '德江县',
 101260611 => '松桃县',
 101260701 => '毕节市',
 101260702 => '赫章县',
 101260703 => '金沙县',
 101260704 => '威宁县',
 101260705 => '大方县',
 101260706 => '纳雍县',
 101260707 => '织金县',
 101260708 => '黔西县',
 101260801 => '水城',
 101260802 => '六枝',
 101260804 => '盘县',
 101260901 => '兴义市',
 101260902 => '晴隆县',
 101260903 => '兴仁县',
 101260904 => '贞丰县',
 101260905 => '望谟县',
 101260907 => '安龙县',
 101260908 => '册亨县',
 101260909 => '普安县',
 101270101 => '成都市',
 101270102 => '龙泉驿区',
 101270103 => '新都县',
 101270104 => '温江区',
 101270105 => '金堂县',
 101270106 => '双流县',
 101270107 => '郫县',
 101270108 => '大邑县',
 101270109 => '蒲江县',
 101270110 => '新津县',
 101270111 => '都江堰市',
 101270112 => '彭州市',
 101270113 => '邛崃市',
 101270114 => '崇州市',
 101270201 => '攀枝花市',
 101270202 => '仁和区',
 101270203 => '米易县',
 101270204 => '盐边县',
 101270301 => '自贡市',
 101270302 => '富顺县',
 101270303 => '荣县',
 101270401 => '绵阳市',
 101270402 => '三台县',
 101270403 => '盐亭县',
 101270404 => '安县',
 101270405 => '梓潼县',
 101270406 => '北川县',
 101270407 => '平武县',
 101270408 => '江油市',
 101270501 => '南充市',
 101270502 => '南部县',
 101270503 => '营山县',
 101270504 => '蓬安县',
 101270505 => '仪陇县',
 101270506 => '西充县',
 101270507 => '阆中市',
 101270601 => '达州市',
 101270602 => '宣汉县',
 101270603 => '开江县',
 101270604 => '大竹县',
 101270605 => '渠县',
 101270606 => '万源市',
 101270607 => '达川县',
 101270608 => '达县',
 101270701 => '遂宁市',
 101270702 => '蓬溪县',
 101270703 => '射洪县',
 101270801 => '广安市',
 101270802 => '岳池县',
 101270803 => '武胜县',
 101270804 => '邻水县',
 101270805 => '华蓥市',
 101270901 => '巴中市',
 101270902 => '通江县',
 101270903 => '南江县',
 101270904 => '平昌县',
 101271001 => '泸州市',
 101271003 => '泸县',
 101271004 => '合江县',
 101271005 => '叙永县',
 101271006 => '古蔺县',
 101271007 => '纳溪县',
 101271101 => '宜宾市',
 101271103 => '宜宾县',
 101271104 => '南溪县',
 101271105 => '江安县',
 101271106 => '长宁县',
 101271107 => '高县',
 101271108 => '珙县',
 101271109 => '筠连县',
 101271110 => '兴文县',
 101271111 => '屏山县',
 101271201 => '内江市',
 101271202 => '东兴区',
 101271203 => '威远县',
 101271204 => '资中县',
 101271205 => '隆昌县',
 101271301 => '资阳市',
 101271302 => '安岳县',
 101271303 => '乐至县',
 101271304 => '简阳市',
 101271401 => '乐山市',
 101271402 => '犍为县',
 101271403 => '井研县',
 101271404 => '夹江县',
 101271405 => '沐川县',
 101271406 => '峨边县',
 101271407 => '马边县',
 101271408 => '峨眉',
 101271409 => '峨眉山市',
 101271501 => '眉山市',
 101271502 => '仁寿县',
 101271503 => '彭山县',
 101271504 => '洪雅县',
 101271505 => '丹棱县',
 101271506 => '青神县',
 101271601 => '凉山',
 101271603 => '木里县',
 101271604 => '盐源县',
 101271605 => '德昌县',
 101271606 => '会理县',
 101271607 => '会东县',
 101271608 => '宁南县',
 101271609 => '普格县',
 101271610 => '西昌市',
 101271611 => '金阳县',
 101271612 => '昭觉县',
 101271613 => '喜德县',
 101271614 => '冕宁县',
 101271615 => '越西县',
 101271616 => '甘洛县',
 101271617 => '雷波县',
 101271618 => '美姑县',
 101271619 => '布拖县',
 101271701 => '雅安市',
 101271702 => '名山县',
 101271703 => '荥经县',
 101271704 => '汉源县',
 101271705 => '石棉县',
 101271706 => '天全县',
 101271707 => '芦山县',
 101271708 => '宝兴县',
 101271801 => '甘孜县',
 101271802 => '康定县',
 101271803 => '泸定县',
 101271804 => '丹巴县',
 101271805 => '九龙县',
 101271806 => '雅江县',
 101271807 => '道孚县',
 101271808 => '炉霍县',
 101271809 => '新龙县',
 101271810 => '德格县',
 101271811 => '白玉县',
 101271812 => '石渠县',
 101271813 => '色达县',
 101271814 => '理塘县',
 101271815 => '巴塘县',
 101271816 => '乡城县',
 101271817 => '稻城县',
 101271818 => '得荣县',
 101271901 => '阿坝县',
 101271902 => '汶川县',
 101271903 => '理县',
 101271904 => '茂县',
 101271905 => '松潘县',
 101271906 => '九寨沟县',
 101271907 => '金川县',
 101271908 => '小金县',
 101271909 => '黑水县',
 101271910 => '马尔康县',
 101271911 => '壤塘县',
 101271912 => '若尔盖县',
 101271913 => '红原县',
 101272001 => '德阳市',
 101272002 => '中江县',
 101272003 => '广汉市',
 101272004 => '什邡市',
 101272005 => '绵竹市',
 101272006 => '罗江县',
 101272101 => '广元市',
 101272102 => '旺苍县',
 101272103 => '青川县',
 101272104 => '剑阁县',
 101272105 => '苍溪县',
 101280101 => '广州市',
 101280102 => '番禺区',
 101280103 => '从化市',
 101280104 => '增城市',
 101280105 => '花都区',
 101280201 => '韶关',
 101280202 => '乳源县',
 101280203 => '始兴县',
 101280204 => '翁源县',
 101280205 => '乐昌市',
 101280206 => '仁化县',
 101280207 => '南雄市',
 101280208 => '新丰县',
 101280209 => '曲江区',
 101280210 => '浈江区',
 101280211 => '武江区',
 101280301 => '惠州市',
 101280302 => '博罗县',
 101280303 => '惠阳市',
 101280304 => '惠东县',
 101280305 => '龙门县',
 101280401 => '梅州市',
 101280402 => '兴宁市',
 101280403 => '蕉岭县',
 101280404 => '大埔县',
 101280406 => '丰顺县',
 101280407 => '平远县',
 101280408 => '五华县',
 101280409 => '梅县',
 101280501 => '汕头市',
 101280502 => '潮阳区',
 101280503 => '澄海区',
 101280504 => '南澳县',
 101280601 => '深圳市',
 101280701 => '珠海市',
 101280702 => '斗门区',
 101280703 => '金湾区',
 101280800 => '佛山市',
 101280801 => '顺德市',
 101280802 => '三水市',
 101280803 => '南海市',
 101280804 => '高明市',
 101280901 => '肇庆市',
 101280902 => '广宁县',
 101280903 => '四会市',
 101280905 => '德庆县',
 101280906 => '怀集县',
 101280907 => '封开县',
 101280908 => '高要市',
 101281001 => '湛江市',
 101281002 => '吴川市',
 101281003 => '雷州市',
 101281004 => '徐闻县',
 101281005 => '廉江市',
 101281006 => '赤坎区',
 101281007 => '遂溪县',
 101281008 => '坡头区',
 101281009 => '霞山区',
 101281010 => '麻章区',
 101281101 => '江门市',
 101281103 => '开平市',
 101281104 => '新会',
 101281105 => '恩平市',
 101281106 => '台山市',
 101281107 => '蓬江',
 101281108 => '鹤山市',
 101281109 => '江海',
 101281201 => '河源市',
 101281202 => '紫金县',
 101281203 => '连平县',
 101281204 => '和平县',
 101281205 => '龙川县',
 101281206 => '东源县',
 101281301 => '清远市',
 101281302 => '连南县',
 101281303 => '连州市',
 101281304 => '连山县',
 101281305 => '阳山县',
 101281306 => '佛冈县',
 101281307 => '英德市',
 101281308 => '清新县',
 101281401 => '云浮市',
 101281402 => '罗定市',
 101281403 => '新兴县',
 101281404 => '郁南县',
 101281406 => '云安县',
 101281501 => '潮州市',
 101281502 => '饶平县',
 101281503 => '潮安县',
 101281601 => '东莞市',
 101281701 => '中山市',
 101281801 => '阳江市',
 101281802 => '阳春市',
 101281803 => '阳东县',
 101281804 => '阳西县',
 101281901 => '揭阳市',
 101281902 => '揭西县',
 101281903 => '普宁市',
 101281904 => '惠来县',
 101281905 => '揭东县',
 101282001 => '茂名市',
 101282002 => '高州市',
 101282003 => '化州市',
 101282004 => '电白县',
 101282005 => '信宜市',
 101282006 => '茂港区',
 101282101 => '汕尾市',
 101282102 => '海丰县',
 101282103 => '陆丰市',
 101282104 => '陆河县',
 101290101 => '昆明市',
 101290103 => '东川区',
 101290104 => '寻甸县',
 101290105 => '晋宁县',
 101290106 => '宜良县',
 101290107 => '石林县',
 101290108 => '呈贡区',
 101290109 => '富民县',
 101290110 => '嵩明县',
 101290111 => '禄劝县',
 101290112 => '安宁市',
 101290113 => '太华山',
 101290201 => '大理市',
 101290202 => '云龙县',
 101290203 => '漾濞县',
 101290204 => '永平县',
 101290205 => '宾川县',
 101290206 => '弥渡县',
 101290207 => '祥云县',
 101290208 => '巍山县',
 101290209 => '剑川县',
 101290210 => '洱源县',
 101290211 => '鹤庆县',
 101290212 => '南涧县',
 101290301 => '红河县',
 101290302 => '石屏县',
 101290303 => '建水县',
 101290304 => '弥勒县',
 101290305 => '元阳县',
 101290306 => '绿春县',
 101290307 => '开远市',
 101290308 => '个旧市',
 101290309 => '蒙自市',
 101290310 => '屏边县',
 101290311 => '泸西县',
 101290312 => '金平县',
 101290313 => '河口县',
 101290401 => '曲靖市',
 101290402 => '沾益县',
 101290403 => '陆良县',
 101290404 => '富源县',
 101290405 => '马龙县',
 101290406 => '师宗县',
 101290407 => '罗平县',
 101290408 => '会泽县',
 101290409 => '宣威市',
 101290501 => '保山市',
 101290503 => '龙陵县',
 101290504 => '施甸县',
 101290505 => '昌宁县',
 101290506 => '腾冲县',
 101290601 => '文山市',
 101290602 => '西畴县',
 101290603 => '马关县',
 101290604 => '麻栗坡县',
 101290605 => '砚山县',
 101290606 => '丘北县',
 101290607 => '广南县',
 101290608 => '富宁县',
 101290701 => '玉溪市',
 101290702 => '澄江县',
 101290703 => '江川县',
 101290704 => '通海县',
 101290705 => '华宁县',
 101290706 => '新平县',
 101290707 => '易门县',
 101290708 => '峨山县',
 101290709 => '元江县',
 101290801 => '楚雄市',
 101290802 => '大姚县',
 101290803 => '元谋县',
 101290804 => '姚安县',
 101290805 => '牟定县',
 101290806 => '南华县',
 101290807 => '武定县',
 101290808 => '禄丰县',
 101290809 => '双柏县',
 101290810 => '永仁县',
 101290901 => '普洱市',
 101290902 => '景谷县',
 101290903 => '景东县',
 101290904 => '澜沧县',
 101290906 => '墨江县',
 101290907 => '江城县',
 101290908 => '孟连县',
 101290909 => '西盟县',
 101290911 => '镇沅县',
 101290912 => '宁洱县',
 101291001 => '昭通市',
 101291002 => '鲁甸县',
 101291003 => '彝良县',
 101291004 => '镇雄县',
 101291005 => '威信县',
 101291006 => '巧家县',
 101291007 => '绥江县',
 101291008 => '永善县',
 101291009 => '盐津县',
 101291010 => '大关县',
 101291011 => '水富县',
 101291101 => '临沧市',
 101291102 => '沧源县',
 101291103 => '耿马县',
 101291104 => '双江县',
 101291105 => '凤庆县',
 101291106 => '永德县',
 101291107 => '云县',
 101291108 => '镇康县',
 101291201 => '怒江',
 101291203 => '福贡县',
 101291204 => '兰坪县',
 101291205 => '泸水县',
 101291206 => '六库',
 101291207 => '贡山县',
 101291301 => '香格里拉县',
 101291302 => '德钦县',
 101291303 => '维西县',
 101291304 => '中甸县',
 101291401 => '丽江市',
 101291402 => '永胜县',
 101291403 => '华坪县',
 101291404 => '宁蒗县',
 101291501 => '德宏市',
 101291503 => '陇川县',
 101291504 => '盈江县',
 101291506 => '瑞丽市',
 101291507 => '梁河县',
 101291508 => '潞西市',
 101291601 => '景洪市',
 101291603 => '勐海县',
 101291605 => '勐腊县',
 101300101 => '南宁市',
 101300103 => '邕宁区',
 101300104 => '横县',
 101300105 => '隆安县',
 101300106 => '马山县',
 101300107 => '上林县',
 101300108 => '武鸣县',
 101300109 => '宾阳县',
 101300201 => '崇左市',
 101300202 => '天等县',
 101300203 => '龙州县',
 101300204 => '凭祥市',
 101300205 => '大新县',
 101300206 => '扶绥县',
 101300207 => '宁明县',
 101300301 => '柳州市',
 101300302 => '柳城县',
 101300304 => '鹿寨县',
 101300305 => '柳江县',
 101300306 => '融安县',
 101300307 => '融水县',
 101300308 => '三江县',
 101300401 => '来宾市',
 101300402 => '忻城县',
 101300403 => '金秀县',
 101300404 => '象州县',
 101300405 => '武宣县',
 101300406 => '合山市',
 101300501 => '桂林市',
 101300503 => '龙胜县',
 101300504 => '永福县',
 101300505 => '临桂县',
 101300506 => '兴安县',
 101300507 => '灵川县',
 101300508 => '全州县',
 101300509 => '灌阳县',
 101300510 => '阳朔县',
 101300511 => '恭城县',
 101300512 => '平乐县',
 101300513 => '荔蒲县',
 101300514 => '资源县',
 101300601 => '梧州市',
 101300602 => '藤县',
 101300604 => '苍梧县',
 101300605 => '蒙山县',
 101300606 => '岑溪市',
 101300701 => '贺州市',
 101300702 => '昭平县',
 101300703 => '富川县',
 101300704 => '钟山县',
 101300801 => '贵港市',
 101300802 => '桂平市',
 101300803 => '平南县',
 101300901 => '玉林市',
 101300902 => '博白县',
 101300903 => '北流市',
 101300904 => '容县',
 101300905 => '陆川县',
 101300906 => '兴业县',
 101301001 => '百色市',
 101301002 => '那坡县',
 101301003 => '田阳县',
 101301004 => '德保县',
 101301005 => '靖西县',
 101301006 => '田东县',
 101301007 => '平果县',
 101301008 => '隆林县',
 101301009 => '西林县',
 101301010 => '乐业县',
 101301011 => '凌云县',
 101301012 => '田林县',
 101301101 => '钦州市',
 101301102 => '浦北县',
 101301103 => '灵山县',
 101301201 => '河池市',
 101301202 => '天峨县',
 101301203 => '东兰县',
 101301204 => '巴马县',
 101301205 => '环江县',
 101301206 => '罗城县',
 101301207 => '宜州市',
 101301208 => '凤山县',
 101301209 => '南丹县',
 101301210 => '都安县',
 101301211 => '大化县',
 101301301 => '北海市',
 101301302 => '合浦县',
 101301303 => '涠洲岛',
 101301401 => '防城港市',
 101301402 => '上思县',
 101301403 => '东兴市',
 101301405 => '防城区',
 101310101 => '海口市',
 101310201 => '三亚市',
 101310202 => '东方市',
 101310203 => '临高县',
 101310204 => '澄迈县',
 101310205 => '儋州市',
 101310206 => '昌江县',
 101310207 => '白沙县',
 101310208 => '琼中县',
 101310209 => '定安县',
 101310210 => '屯昌县',
 101310211 => '琼海市',
 101310212 => '文昌市',
 101310214 => '保亭县',
 101310215 => '万宁市',
 101310216 => '陵水县',
 101310217 => '西沙',
 101310220 => '南沙岛',
 101310221 => '乐东县',
 101310222 => '五指山市',
 101320101 => '香港',
 101320103 => '新界',
 101330101 => '澳门',
 101330102 => '氹仔岛',
 101330103 => '路环岛',
 101231001 => '钓鱼岛',
 101340101 => '台北市',
 101340102 => '桃园县',
 101340103 => '新竹市',
 101340104 => '宜兰县',
 101340201 => '高雄市',
 101340202 => '嘉义市',
 101340203 => '台南市',
 101340204 => '台东县',
 101340205 => '屏东县',
 101340401 => '台中市',
 101340402 => '苗栗县',
 101340403 => '彰化县',
 101340404 => '南投县',
 101340405 => '花莲县',
 101340406 => '云林县',
 102010100 => '首尔',
 103010100 => '东京',
 103020100 => '大阪',
 103040100 => '札幌',
 103050100 => '福冈',
 103090100 => '京都',
 104010100 => '新加坡',
 105010100 => '吉隆坡',
 106010100 => '曼谷',
 107010100 => '河内',
 107020100 => '胡志明市',
 108010100 => '仰光',
 111010100 => '雅加达',
 111080100 => '登巴萨',
 112010100 => '德黑兰',
 113010100 => '新德里',
 113030100 => '孟买',
 113090100 => '斯利那加',
 114010100 => '伊斯兰堡',
 114030100 => '卡拉奇',
 114040100 => '白沙瓦',
 115010100 => '塔什干',
 117010100 => '科伦坡',
 118010100 => '喀布尔',
 118030100 => '坎大哈',
 120010100 => '斯里巴加湾',
 121010100 => '巴林',
 124010100 => '阿布扎比',
 124020100 => '迪拜',
 127010100 => '平壤',
 130010100 => '阿斯塔纳',
 132010100 => '乌兰巴托',
 136010100 => '马尼拉',
 138010100 => '利雅得',
 139010100 => '大马士革',
 301010100 => '开罗',
 302010100 => '开普敦',
 302020100 => '约翰内斯堡',
 303010100 => '突尼斯-迦太基',
 304020100 => '拉各斯',
 305010100 => '阿尔及尔',
 317010100 => '内罗毕',
 321020100 => '卡萨布兰卡',
 327010100 => '达喀尔',
 332010100 => '达累斯萨拉姆',
 334010100 => '卢萨卡',
 401010100 => '华盛顿特区',
 401020101 => '迈阿密',
 401020104 => '奥兰多',
 401030101 => '亚特兰大',
 401040101 => '洛杉矶',
 401040102 => '圣弗朗西斯科',
 401060100 => '波士顿',
 401070101 => '芝加哥',
 401100101 => '西雅图',
 401110101 => '纽约',
 401120108 => '休斯敦',
 401370100 => '拉斯维加斯',
 401480100 => '火奴鲁鲁',
 404010100 => '渥太华',
 404030100 => '温哥华',
 404040100 => '多伦多',
 404130100 => '埃德蒙顿',
 404140100 => '卡尔加里',
 404220100 => '温尼伯',
 404230100 => '魁北克',
 404240100 => '蒙特利尔',
 406010100 => '哈瓦那',
 411010100 => '墨西哥城',
 416010100 => '加拉加斯',
 501010100 => '布宜诺斯艾利斯',
 502010100 => '巴西利亚',
 502220100 => '里约热内卢',
 502250100 => '圣保罗',
 503010100 => '圣地亚哥',
 504010100 => '波哥大',
 510070100 => '利马',
 201010100 => '伦敦',
 201050100 => '曼彻斯特',
 202010100 => '巴黎',
 202100100 => '马赛',
 203010100 => '柏林',
 203020100 => '法兰克福',
 203050100 => '汉堡',
 204010100 => '罗马',
 204040100 => '米兰',
 205010100 => '阿姆斯特丹',
 206010100 => '马德里',
 206020100 => '巴塞罗那',
 207010100 => '哥本哈根',
 208010100 => '莫斯科',
 210020100 => '日内瓦',
 210030100 => '苏黎世',
 211010100 => '斯德哥尔摩',
 214010100 => '里斯本',
 215020100 => '伊斯坦布尔',
 216010100 => '布鲁塞尔',
 217010100 => '维也纳',
 218010100 => '雅典',
 222010100 => '赫尔辛基-万塔',
 601020101 => '悉尼',
 601030101 => '布里斯班',
 601040101 => '阿德莱德',
 601060101 => '墨尔本',
 601070101 => '珀斯',
 606010100 => '惠灵顿',
 606020100 => '奥克兰',
 606030100 => '克莱斯特彻奇',
);

sg工作吐槽和总结

上一段工作终于结束了。(实际上已经快结束一个月了)

走的时候,群里面的小伙伴这么说我“再也看不到他和老大之间的博弈了”,咋一看到这个评论我还是挺吃惊的。

虽然确实我和部门老大之间没有什么多余的话来说,也没有任何的阿谀奉承。只是纯粹的工作说明,问题讲解等。要是说有什么的话,

那就是我确实不太喜欢这样的一个人。其次再就是我要求离职时,三番五次的找他确定离职日期,估计他比较烦这个。然后在其他同事的眼中,

我看起来就是这样的不停的和部门老大“博弈”了。

 

其实吧,在近半年的工作时间中,个人一直没有100%投入到工作中,其中有环境的原因,有工作内容的因素等。导致这样的问题。

主要原因在于我个人。当初13年离职之后,女朋友刚好到了这家公司来上班,而我满心欢喜的全想的是怎么和女朋友更近一些。

刚好之前的公司同事也调到这家公司了,然后他和人事引荐了一下,我就直接面试然后过来了。问题已经出现情侣之间最好最好不要在一间公司!

就算是不同的楼层也不行,影响真的会很大。比如吃饭你们腻着一起吃,与同事不能形成圈子。然后走着碰到了,还生怕同事看到。躲躲闪闪,用女朋友的话

就是“我不喜欢这样被人看到”,在我看来其实就是她内心敏感,怕面对其他人的眼神。

这是工作圈子方面的问题,其次就是找工作之前必须要理解你要做的这份工作到底是做什么的?!

我的工作经历已经3年多了,可是还是认知错误!

面试工作确实很糟糕,那个时候已经失去判断力了,(总是想和女朋友近一点,严重的不区分私人与工作的关系)

明知道这份工作不是web端方面,而是偏向数据库系统分析端的工作,却最终还是留了下来,从一开始就认定这份工作是13年半年的过渡期了。

这样就导致了后面的工作并不能100%投入,与同事之间的关系也没有用心建立。然后一切都是非正常的工作环境了,但是个人保证所有的工作

方面的任务,以及计划安排等等,都是用心去做的。需求开发也都是尽心尽力的完成。但是个人真的不喜欢这工作(有关这个工作的可以看看这里)。

 

由于对于一份工作几乎没有热情投入,所以对于同事,都处于一种相互不能理解的状态,这就导致了我们之间不是相处不来,而是从来没有尝试相互了解过。

这一点也是我快要离职时,所需要反思的。他们也没有想象中的那么死板和无聊。但是隔阂终究是还在那。

 

工作中有很多想让我觉得这是一份什么样的工作啊,我觉得我每天上班想想三件事情用来安慰自己,一个就是我在忍一下就可以辞职了,第二个就是马上就到周五了,三就是能和女朋友进些。

其他的很多事情都会让我觉得这样的工作简直是破我最低的底线了。

工作中遇到了很多奇葩的事情,比如上班第一天,个人感觉机器很烂键盘很渣显示器很小,机器烂显示器小都不说了。但是键盘简直不如网吧的那种破烂键盘,

这就不能忍了,于是rtx问运维能否换一个。运维答复“键盘坏了么”,我说没坏,他说“那不用换了,要是人人都像你这样没坏就要求换东西,那公司的资产还怎么管理”

真是,多么敬业啊,公司资产。掷地有声啊,于是我就答知道了。第二天对面位子没人,直接过去把键盘替换了。对于这样的sb就不用继续搭理了。

好像过了一周左右,运维路过看到我键盘换了,问了一声“你把键盘换了”,我答了一个字“恩”。不想多说任何啊

 

还有一个因素是,上一级的程序员X,我并不认可。X比我早来一个月左右吧,算作是我的上一级。主要来说是一个任务派发人。说实话,个人认为X这样一个人,有想法能写出东西,基础也不错。

但是沟通上很难讲清楚一个事情,很多方面都要靠我问是还是不是,再次作为一个程序员几乎没有代码组织和程序结构方面的意识

比如一个Controller从参数获取到数据库调用,在到模板赋值一路写到黑。我真心觉得要不是Thinkphp做了一个模板分层,用$this->display();调用。他一定觉得可以直接在模板上写上

大段大段的业务逻辑和函数穿插调用。X就是这样的人,一切都已实现目标完成任务,丝毫不考虑扩展以及后来的维护。在为数不多的修改查看他的代码中,看到4、5次的foreach调用,

大段大段的重复代码我真是受不了啊!!详细代码请查看我的这篇。在后来我新写一个项目,全部的重新搭建,结构分层。一个Controller里面至多只有两行代码,就能实现一个业务。

充分的利用了Model的作用以及保持View的干净。于是他也直接这样利用我的这些代码来了,我和他讲“我跟你提一个建议,为什么你不用数据分层,避免代码冗余和后期好维护呢?”

他答“我知道你的那些做法,我觉得那些没有什么用”,我语塞。不知道怎么说了,之后就是各负责各的项目,各有各的代码风格,没有交流。还有一点要吐槽的就是,你用Editplus我不反对,但是

代码组织的结构简直是稀巴烂啊,各种table缩进不对齐,大括号之间各种空格,各种奇怪的换行,或者说是一行几百个字符。

也就是这样一个人,我真心觉得在代码层次上,真的做的不够好。还有很多程序理念上的冲突,我坚持要清洁干净有序的逻辑。他坚持简单直接,完成功能就行。

矛盾很多,不过后来我尽量的避免和他争论这些,因为负责项目不同各写各的罢了。不过X这个人的动手实现的能力还是很不错的,这点我还是需要学习的。

哦,对了X也离职了,他的离职原因是“这个工作太无聊了”。那段时间我也离职了,我在想X一个人每天在那琢磨出来的代码,后来的人怎么维护和开发呢。

同时我也在庆幸,不用去读那些冗余枯燥的代码了。

 

同样的这个因素也是因为一个人,运营部门老大Z,我觉得Z的几种方式我很不喜欢,第一个用加班时间长短来认可你的工作效率,第二个注重形式化,三不重视程序

其中第一大点就是我极其不喜欢是下班了,然后坐那两个小时就算是工作积极上班努力了。但是恰恰这个Z就是喜欢这种方式,由于是运营部,客服,分析人员下班后

在那坐一两个小时,刷两个小时的网页游戏,就认为是工作积极表现优秀了。而像我这样的每天准点下班的人则是不积极不优秀了,而X不同,他会经常多待一个小时了

之后才会中,某天X找我聊,大意就是说要我每天下班了要多留一个小时,不要准时走。我心中呵呵,除非临时有事情,其他时间还是准时走人。还有周一开会,那是我

刚去,我问X,我需要去么,X说不用,开会内容对我没什么意思,于是我不用去开会。个人本来就觉得这种会议毫无用处。后来试用期过了我依旧不去开会。

我听说这种会议7点开始,有时9点结束,有时尽然到11点才结束!!当然啦,这么晚回去公司是报销的士费的,很好是不是?

我初次听到真是难以想象,有什么很重要的事情需要开这么长的会?在我看来这些会议都是浪费时间,庆幸我还好没参加。

有趣的是,今年年初sg公司大幅度裁员,打车费也没有了,只保留了加班盒饭。于是我就看到部门周一例会取消了,改为每天早上十分钟几个同事汇报事情就好了。

这真是有意思啊,本来三五句就能说清楚的,偏偏要坐桌子而谈,搞得那么的形式化。

Z对于程序一概不懂,这没关系,但是感觉运营部门对于很重要的日志程序几乎是一点都不重视,但是却很重视日志分析系统的数据内容。也就是只要结果不要过程,

这点在代码中体现的淋漓尽致,在我看来运营部门的日志分析程序员,工作最长的也就是一年吧。大部分都是半年左右时间就离开了。这样代码结构混乱,几乎来一批

人是一种写法,又来一批人是另一种写法。可能Z觉得程序员没什么大不了的,客服,分析人员很好招啊,程序员也很好招的。所以可以预见的是,数据分析的CMS系统永远

只会停留在能用的基础上,不可能会好用或者是系统化模块化。

 

还有这部门属性或者说是页游公司属性,我个人觉得真的与运营这样的部门合不来,运营里面从Z到客服每天都把游戏网页打开,不停地在里面打怪,跑。每天讨论的就是

元宝,消耗,礼包,金币,各种各样的道具名词。等等。看着他们那样沉浸其中,我真是显得格格不入啊。我觉得他们的工作都是无聊到爆啊,但是他们却满目开心,在

RPG的世界里自娱自乐。确实是很难以理解啊,就像女朋友每次跟我说一样,你管它什么意义啊,有钱有工资不就好了吗。我还是觉得吧,钱是要赚的,但是工作还是要开心。

 

从一开始我就确定要离开的,算是为自己的错误买单了。

 

 

 

 

 

 

 

 

 

 

 

去年的总结和今年的展望

2014年已经过了两个月了。还是写一点内容来说说去年的总结和今年的展望。

去年的一年,主要是这么几件事情,找到女朋友了,换了一个工作,技术没什么进步,然后就觉得人长大了矛盾和麻烦越来越多了。

首先找到女朋友了,是同事的朋友,这可以算是13年的最重要的事情!可能也是人生中很重要的事情之一!怎么说呢,感觉还是蛮好的,我这人比较谨慎和小心翼翼,情感也是慢热的。恋人之间不免是吵吵闹闹,爱的时候爱的要死,恨的时候恨的要死!当然麻烦远不止我们之间的,还有双方父母家庭之间的价值观和世俗的认知不同。甚至亲戚之间也会有影响。或者世俗的对比,各种比对等,大体上就是那几样面子,钱,家庭环境。我们都是俗人也逃不掉的,现热恋期已过,开始认真的过日子,但是还有很多很多的困难等待着我们去破解和渡过。希望一切顺利,如果可以的话大家都互相理解接受对方,我和baby就可以成家立业了!
其次工作,因为一些事情与上司和老板的理念不和,我换了一个工作。新的工作就是目前的这个工作,那段时期再找新的工作时候有很多因素影响着我,我也被蒙蔽,就工作发展和性质而言,这的确是一次失败的工作经历。现在我也正要准备换新工作了,等到新工作稳定后会好好的梳理和吐槽的。

个人技术能力确实没有什么长进,除了工作性质的原因还有就是我真的没有怎么开小灶学习啊!投入与回报总是成正比的。现在恰好就是在有女朋友后几乎没怎么看过书了,不过现在我必须要看了,而且要坚持!

还有一点就是人长大了,总是有些观念与父母的想法是不同的,去年与父母在很多方面都有冲突,我以前总是对他们百依百顺而他们也觉得理所当然,尽管都是为我好,按他们的想法为我好。就和网络上的鸡汤,很多人都只在乎你飞的有多高,没人关心你飞的累不累。只是在去年找到女朋友之后这样的观点冲突和矛盾有很多很多了,现在冲突后大家尽量的互相理解和相信。总不至于不讨论不交流,攀比和价值观的不合是存在的,这样的冲突也是必然的,但大家的目的地是一致的啊,都是为了生活幸福!找一个大家都接受相处方式一切都会好的。
去年的事情主要就是如此了,还有很多事情比较懒都没有记录,比如和baby一起坐飞机去上海,还有8月我们朋友几个一起去北京,虽然都是去看mayday,但还是很不错的,还吃了很多好吃的。今年要多记录一点不要那么懒。
今年的展望就是赚钱学习赚钱学习赚钱学习!但这事情急不得一步步来,自己要有觉悟学会做事,学会把技术变成钱。虽然谈钱很俗,但是在没有解决温饱的时候谈理想是不现实的!除了开源也还要节流,希望baby在理性一点的花钱,还有我也不能那么放纵自己了。
具体而言,换工作之后空的时间要多学习,做些自己的事情,还有希望做些私活,或者自己开始运营一些小项目。不过主要内容还是工作方面,找准自己的发展方向,踏实的学习发展,年轻已经不再啊,不能之后后悔。只能靠自己的能力了!
还有生活方面自己的时间管理要做好,女朋友和我已经父母之间的时间分配,都不能多不能少。成长总是有些困难的。还有新技能方面,驾车,英语等都是要学习的。去年平时很缺乏运动,今年一定要加强运动,简直是手无缚鸡之力啊,眼睛也要保护好,看不清的成本很高,很多事情都会很麻烦。

时间不等人啊,因为已经快过了两月了。

页游日志分析的流程

新的工作已经有快5个月了,有必要记录一下这个工作内容是哪些。

这是一份通过PHP程序对日志数据进行解析与分析得到结果协助运营人员的分析工作。

程序数据分析cms系统的目标用户(使用者)是公司内部运营人员以及合作方的游戏运营人员。程序本身而言与我之前的工作还是有很多不同的,没有市场调研部门,没有运营部门,没有设计部门,只有自己程序开发部,连前端也没用,有一位游戏p图的。程序两人完成所有工作需求。简而言之对比以前得到的资源是少之又少,工作性质也是枯燥无味居多。

工作流程是,游戏中写文本日志到服务器本地→(应该是通过文件同步系统同步到分析服务器)→PHP程序每小时运行一次解析分析日志→存入Mysql→PHP后台cms读取Mysql数据→运营人员使用查看。

完整的步骤就是这样

架构

网页游戏中有很多动作,比如购买,比如抽奖,比如参加活动,比如是否消费,消费了多少金币元宝,消费的数量等等。而游戏中主要统计的数据就是用户相关的留存率,用户活跃度,新增用户数,每天用户登录次数等等;还有充值相关的充值详细记录,各服充值简表,活跃用户平均收入(ARUP),充值用户平均收入(ARUUP),当天充值总额等等;还有道具活动相关的,道具消耗度,活动的参与人数消费数据等等,其中几乎每个需求中需要到的几项数据统计包括,时间服务器ID人数次数消费额度消耗数量消费占当天总额占比 ,而这些数据都从游戏日志里面来得到,比如玩家登陆的动作,对应的是这样一条日志

23:01:02 | 18140 |RoleLogin | 0C429E0A73EA0C20A85CD3B1E03A1C81 | 67_201308291943399606777822 | 请深坑 | 31 | 35091 | 27794000 | 29200000 | 13688000 | 0 | 1050 | 0 | 0 | null | 50 | 4 | 127.0.0.1 | 0 | 0

其中比如登陆人数,登陆次数,登陆时段等等统计都可以从这里得到。

那么程序需要做的是把这些日志都存入数据库,通常意义来说一条日志对应的是一个数据表,但是有时候相近的日志可以放在一个表中。解析日志存放数据完成后就开始进行需求的检索分析(比如统计人数,次数,消耗数量等),完成后既写入一个统计信息的表里面,这样做的意义是在于不必要去查几十万行的日志表,只用检索统计信息表就足够了,运营人员会很快的得到结果。

比如登陆登出,有些字段信息很多都是一致的,那么可以存入一张数据表Login,只需加入一个type字段用来标识login或者logou。作为一款在大平台上投放的网页游戏,人数还是有那么多的,对应的全服玩家登录日志信息会很大,不可能全部放在一张数据表中,那么对应就需要分表了,分表策略很简单,按天分表或者按月分表,数据量很少的情况下选择不分表。这样的分表方式有个好处,第一清晰明了,按天分表每天的数据都可见可查,有具体的时间线;第二程序处理方便,数据表每天自动生成,数据分析读取都按天进行依次遍历检索得到结果。第三日志格式写入方式决定的,日志都是按月做文件夹,天小时为文件名,很好的进行了区分。这里就不适合分区分表的存储,首先不知道分区总表的数量,其次程序检索不是很方便。

一条日志对应的就是一个table class,也就是一个table model,他们都有共同的父类logmainTable。

每个table model主要的处理方法有run()检测当天是否存在表,statis()数据表的分析且写入tj_table(统计信息表)。

入口文件是采用php cli模式进行运行,其中的主要参数就是startdate/enddate/del/ 就是在这个时间区间中的表进行分析,如加上del参数则那就是全部重新进行解析(即从日志里面读取记录在此写入mysql)。

日志解析流程

讲日志结构存储为mysql对应的记录的过程。

日志分析流程

在日志解析完成入库后。接下来会立刻执行日志分析,也就是说这是一个动作,两个步骤依次执行的。

需求分析流程

假如来了一个工作需求,比如游戏新开了一个活动,运营的人想着知道这个活动的收益情况以及用户人数、次数信息。运营的通知游戏那边写一个日志type,接下来的事情就是由我们来做了。那么工作的流程就是这样

推荐一下在线图片制作网站 http://www.processon.com/ 挺好用的,各种关系图,原型图都能画。用起来很方便,随时自动保存。还支持下载导出和在线分享。

些许吐槽

今年换了一个新的工作,主要工作内容还是写代码,不过工作性质由之前的移动应用服务器后端api转变为日志数据内容的读取和分析。

实话来说,这个是换糟糕了。这个等过些时段在详细记录一下,其中有着各种错误。

 

暂且不说工作的对或错的问题,还是吐槽一下这个分析系统的代码。

这套系统(说是系统不如说就是cms)主要目的是供内部人员或者合作方的客服查看数据,分析数据使用。这个cms采用的是ThinkPHP3.1 Release框架开发,开发完成后的代码量也不多,代码结构和逻辑也复杂。

但我所认为槽点确是相当的多啊。

1、业务实现结构混乱

ThinkPHP怎么说也是PHP5,ORM面向对象的开发框架。不过在这系统里面,Controller的业务处理作用几乎是100%,Model几乎被闲置,最最关键的是开发人员说“我觉得Model没有什么用”,我只能表示黑线了。而现在我尽可能的使用Model构建业务,Controller做转发和调用。

 

2、代码结构不分块,几乎没有组织

是的你没看错,foreach一共嵌套了5层!!!对于能写出这样代码的我深感佩服,你有信心读下去吗?!假如你刚好还要维护这样的代码呢??你一定会崩溃。所幸我目前还不用维护这一部分。我认为不论多么复杂的逻辑以及实现方式,代码业务分块编写,简洁调用这是应该的,不管是维护修改和重新设计都会有好处。尽管这只是一个特例但是有很多Controller里面就是这样的写法,入switch case 块里面做 foreach ,foreach里面进行if else判断等等。

3、代码非常冗余


//导出excel列表
$import_excel=$params['import_excel'];
if ($import_excel == 1)
{
C ( 'SHOW_PAGE_TRACE', false );
header ( 'Content-Type: application/vnd.ms-excel' );
header ( 'Content-Disposition: attachment;filename=excel.xls' );
header ( 'Cache-Control: max-age=0' );
}

 

这是一段简单的excel导出代码,几乎每一个Controller里面都可能有这个需求,但是这段代码居然是每创建一个Controller就重新复制一遍。天哪你崩溃了吗,很简单的一个解决办法在父控制器类里面加入一个方法,子控制器有需要的调用该方法即可。


/**
* 查询list导出为excel
* @param int $import_excel
* @param string $outname
* @author Lei
* @time 2013-10-10 13:56:30
*/
protected function headerExcel($import_excel, $outname){
if ($import_excel == 1) {
C ( 'SHOW_PAGE_TRACE', false );
header ( 'Content-Type: application/vnd.ms-excel' );
header ( 'Content-Disposition: attachment;filename='.$outname.'.xls' );
header ( 'Cache-Control: max-age=0' );
}
}

 

同样还有很多地方的代码相当冗余,几乎每一个类文件里面都包含那几个方法,差别的只有对应的参数值。

4、条件分支被大量滥用

$table_name="";
if($this->partition=='1'){
$table_name=C("DB_PREFIX").$this->tablename.date("Ymd",strtotime($date));
if(empty($mksql_array[$table_name])){
$_makesql=str_replace("{TABLE_NAME}",$table_name,$this->_makesql);
$sql = "select TABLE_NAME from INFORMATION_SCHEMA.TABLES where `TABLE_SCHEMA`='".C("DB_NAME")."' and  TABLE_NAME ='".$table_name."'";
$tablelist = $model->query($sql);
if(empty($tablelist)){
$model->query($_makesql);
}
$mksql_array[$table_name]=1;
}

}elseif($this->partition=='2'){
$table_name=C("DB_PREFIX").$this->tablename.date("Ym",strtotime($date));
if(empty($mksql_array[$table_name])){

$_makesql=str_replace("{TABLE_NAME}",$table_name,$this->_makesql);

$sql = "select TABLE_NAME from INFORMATION_SCHEMA.TABLES where `TABLE_SCHEMA`='".C("DB_NAME")."' and  TABLE_NAME ='".$table_name."'";
$tablelist = $model->query($sql);
if(empty($tablelist)){
$model->query($_makesql);
}
$mksql_array[$table_name]=1;
}
}else{
$table_name=C("DB_PREFIX").$this->tablename;
if(empty($mksql_array[$table_name])){
$_makesql=str_replace("{TABLE_NAME}",$table_name,$this->_makesql);
$sql = "select TABLE_NAME from INFORMATION_SCHEMA.TABLES where `TABLE_SCHEMA`='".C("DB_NAME")."' and  TABLE_NAME ='".$table_name."'";
$tablelist = $model->query($sql);
if(empty($tablelist)){
$model->query($_makesql);
}
$mksql_array[$table_name]=1;
}
$table_name=C("DB_PREFIX").$this->tablename;
}

 

你会看到这里的if else 里面的块代码就是一模一样的,只是上面的一个参数差别。显而易见的是我们可以写一个函数把参数传递进去即可。


/**
* 检测以及创建对应的logtable
*
* @param string $date
* @return string
* @author Lei.Lu
*/
protected function createLogTable($date){
$model = M ();
static $mksql_array = array ();
$table_name = "";

$dbprefix = C ( "DB_PREFIX" );

switch ($this->partition){
case '1':
$table_name = $dbprefix . $this->tablename . date ( "Ymd", strtotime ( $date ) );
break;
case '2':
$table_name = $dbprefix . $this->tablename . date ( "Ym", strtotime ( $date ) );
break;
default:
$table_name = $dbprefix . $this->tablename;
}

if (empty ( $mksql_array [$table_name] )) {
$_makesql = str_replace ( "{TABLE_NAME}", $table_name, $this->_makesql );
$sql = "select TABLE_NAME from INFORMATION_SCHEMA.TABLES where `TABLE_SCHEMA`='" . C ( "DB_NAME" ) . "' and  TABLE_NAME ='" . $table_name . "'";
$tablelist = $model->query ( $sql );
if (empty ( $tablelist )) {
$model->query ( $_makesql );
}
$mksql_array [$table_name] = 1;
}

return $table_name;
}

5、各种不规范的地方

代码逻辑不用了,注释起来。不删除

这样的变量赋值

╮(╯▽╰)╭

魔法数字的滥用,写到哪个就是哪个

代码格式的不规范;变量、方法名的命名一会拼音,一会英文;单点登录的用户信息数据传输不加密。。。等等

 

总体而言,代码作者的完成意识一切以功能出来为主,在controller里想到哪写到哪,没有代码分块,系统MVC分层的概念,Model、module更不会用。更不用说那些规范方面的问题了,让人有各种糟糕的感觉。

 

尽管如此,但是我还是得坚持。

不过也不能说明这个cms就是一无所用的,存在即为合理,看来确实如此,所在部门包括我就两个程序,其他都是小白,如一个网页缓存没刷开页面都不知道怎么解决的那些人是不考虑这些问题的,既然在这里要求他人改变,他人不改变那么我也只好自己保持自我,直到不用忍耐的那天。

 

论工作积极性的问题

上班快4年了。我的看法是工作积极性的问题是一个很重要的事情。好比在一个公司你的职位不是那么重要,你的作用不是那么大,最关键的是你还不喜欢这个工作。但是你的工作态度好,积极向上,那么人家自然不会忽视你的。反过来说,你既然不是那么喜欢这个工作,工作积极度也自然不会有多大的提高。这样就是一个循环了,恶性循环。

 

很像我现在的处境,不过可能目前我的处境更糟糕一些吧,连工作积极性都没有了。三天两头的迟到,我知道这很不好。所以我决定抛开喜欢或者不喜欢,有意义或者没有意义的角度来看这个工作。短期来说我从这个工作里面创造了价值,实现自己的价值,对应的每个月会收到那些报酬月薪。长期来说,从事一个你所不喜欢和你认为无聊的工作真的很难受啊。(所以暂时不讨论长期工作的好处了)不过既然是抛开喜欢不喜欢、有意义无意义的问题来谈论,那还是说点工作价值产生的问题。工作的价值是什么呢,我的理解是为老板创造了价值,老板给你发钱,理论上来说你为老板创造的价值越大,你收到老板的钱就越多,这是成正比的。不过不全是,当你认为你的创造的价值超过你的回报你会心思难安,心生去意。当老板认为你创造的价值小于给你的回报他会考虑开掉你换个人。以上的情况一般出在一个岗位上面待到1-2年的时候。也就是1-2年内在这个岗位上面你创造的价值没有变化,那双方一定会有变化。好了,那现在再回到工作积极性的问题,如果一个人在工作不积极的情况下,如迟到、不合群,早退等。创造的价值还是 一个很稳定的值,没有升没有减,那么这样的一个人到底会怎样呢?

一个很有能力的员工,经常迟到,应该予以辞退吗?

我想在知乎这个问答的逻辑中,这样的一个人一定会被开掉。所以结论就是我继续这样下去一定会被开掉。当然我现在为了避免这样的情况发生,那必然的是创造的价值要高于现在的,工作积极性要必然的高于现在的状态。更正这个积极性的第一步必然就是征服迟到。迟到且不牛逼有不合群的人一定不会讨人喜欢早晚得开掉,相反要是你又迟到又合群关键是又牛逼那么你一定很受人的喜欢(貌似以前那个人就是这样吧)。

所以现在要做的是征!服!迟!到!

光阴的故事

光阴的故事,记录我的一段旅程。2011.02——2013.08腾翔网络

这篇文字,主要是记录一下我在腾翔里面快三年的时光,这段时间里面有着各种各样的感受,大部分还是快乐的、有归属感的。不过终究还是离开了,原因不外乎自己觉得那里的不是最初的那里了。

“是时候了”,我在年初时候就这么说,12年末与同事闲聊时候总是说工作状态环境没有改变与去年(11年)还是一样,而时间又那么快的过去了,而现在是时候走了。

在这近三年的时光里面我学到了很多,认识了很多新的同事。确实像老板所说的“希望你离开的时候要比你刚进来时候成长了”。腾翔是我职业生涯的第二家公司,让我了解了工作流程的规范化,同事之间大家庭一样的融洽以及自由的上班氛围。总体而言我还是觉得这三年没有白过,说不上有多好的成就为公司带来多大的利益,但自身而言工作勤勤恳恳,尽心尽力。

现在离职了,而现在我要说的是为什么要离职。

2013年7月底向老板提出离职,到8月9号离职。过程还是挺快的,当一个人决定离职了,呆在那的时光反而显得不是那么煎熬了。那么之前的一段时间确实很煎熬啊。至少从2012年9月开始,就觉得很煎熬了

主要有下面三点:

1、公司策略不清晰

2、让我做我不想做的事情

3、与同事工作的做法互不认同

1、策略不清晰

扬短避长,多次涉及不同的领域,比如游戏、移动app。业务转变不是不支持,而11年之前都是以网站业务开发为主的基础上,直接用团队的这批人去做游戏、移动app。项目强行上马边做边学,那做出来的内容可想而知,比如在网页游戏中,不管是逻辑严谨性还是游戏策略实现,或者是游戏的高并发量的处理等等,这些问题碰到一个就出现一次麻烦。整个团队在不擅长的领域中前行,做出来的东西不好对团队本身来说就是一种打击。接着就有人心生去意。

捞钱而已,不是产品。老板说了,我们要做自己的产品,确实如此。老板就是这样说的,不仅仅停留在纸面上,想法新潮,跟得上最新的趋势潮流。然后大家头脑风暴,部门会议等等,群策群力确实在老板的带领下,商业计划书工作任务表等都漂亮的写出来了,并且让人看起来也很有吸引力,不过,事情到这里就有两种情况,一是不了了之,二是找到合作方了!不了了之就不说了,束之高阁,电子文档再也不会打开看了。找到合作方了(风投),那就来钱了!确实让人很振奋,大家也很兴奋,不过时间长了,大家都不知道为什么要这么做了,不就是任务么,完成就好了。老板拿钱,我们拿工资,都很滋润不错这个过法大家都很舒服。上线,经营惨淡,活跃量除了测试账号,几乎没有外来用户。合作方不爽了,然后某天,又会出现两种情况,一是合作方撤资,项目扔掉,二是合作方换另一批人来继续做了。所以最后的最后大家的热情也没有了,不过是完成任务而已。我想要的是踏踏实实的做产品,做真正的产品。(听说现在又找到风投了,过得挺好,祝福)

2、不想做的事情

我的职位是PHP开发工程师,主要做php的程序开发,产品需求了解做出开发计划,产品后端的功能代码实现,网站代码编写,服务器代码部署维护更新,有时间会做一下产品原型的设计和js的实现及前端页面的编码部分工作。

天马行空?胡思乱想

而在一段时间里面,老板突然有了一个想法。大概意思,实现“手持设备卫星直播高清视频”的这样一个“商业计划说明书”,老板想法的大致意思是通俗一点就是要制作类似于ipad的搭载特殊功能深度定制化的Android为载体的机器实现针对农业、教育、娱乐等方面的一体化功能机器。主要的亮点是“4k高清直播,在线教育视频,在线娱乐”,也就是主打移动设备与在线视频资源的一体化服务。在与老板沟通了解后,特别强调政府部门采购,比如农业资讯,教育视频学习平板电脑等。

如上,我当时就觉得这个不是瞎扯么?比如一点,高度定制化的Android主题系统,在公司里面连Andorid开发人员都还没有情况下,这个“商业文档”的具体细节是怎么描述?但是老板不同意,每个人分配一段,必须写出来。在我看来老板想用这个概念去忽悠政府的钱。在有了这个认识后,从心底就开始抵触了消极对待了。于是我瞎写了一通,于是被训,被嘲笑。那就准备离开吧。

行政化了

在11年初到12年9月,这段时间公司行政上来说比较宽松,没有具体的上下级的感觉,大家会比较自由高兴的一起工作。但是随着技术总监的出走和产品经理的离职,老板觉得公司在整体事物上来说没有一个牵头的人,于是空降了一位新的总经理,然后各种制度,各种谈话,各种会议,大家谁高谁低一清二楚,你是我下级就必须听我的。没错很有制度了,很规范了,很端正了。但是这可是不足二十人的团队啊!我感觉这已经不是我想要的了,工作也没有高兴的感觉了,只是任务任务,同事之间的交流也变少了,空闲时间大家也没有什么活动了。隔阂不自然的出来了。对比一下以前不管是技术总监还是产品人员大家都能具体讨论一个事情,都能没有等级没有架子的说一些问题。而现在却没有那种感觉了,一去不复返,我也知道这不适合我了。

3、与同事工作的做法互不认同

行政化了之后,那我必须听你的,在有不同的看法与意见的时候我还是必须听你的。在不同的看法情况下对的听你的,错的我不会听你的,这样我没有意见。而现在,我证明我是对的且我乐意按我的方式、我的习惯来做这些事情的时候我还必须听你的。这样我就不干了。

每个程序员都有自己的习惯和思考方式,在我看到你优秀的地方时候,我向你学习;你不好的地方我不会照搬。而我现在按我的意志实现的这些功能,解决了这些问题,我证明了这样做是对的是有道理的!这些情况下,却还必须听你的,按照你的意识来做事情,抱歉我不是玩偶,不会心甘情愿任你摆布。既然互不认同,互不相信,那也就没有留下的必要了。

自身的不足

在这工作的两年多重,我自身也有很多的不足

1、沟通不积极特别是与老板的沟通。

2、工作效率比较低下,一天8个小时只有三、四小时的高效。

3、没有在工作讨论完全发出自己的心声,有很多顾及让我没有说出我自己想说的。

4、没有找准自己的角色定位,犹犹豫豫,以致最后自己只是默默的写代码而已。

不过不管怎么说在这两年多的时光里,我还是很高兴很开心能有这样的一段经历,学到很多,成长了很多,经历了一个优秀的团队,认识了这样一些优秀的人,那些帮助我的和很我帮助的人,对于你们我表示深深的感谢!!!

mpf项目的svn日志信息

1——1153版本,断断续续开发了很久,这个项目的学到的就是创建一个产品所有的全部流程以及开发协作方面的知识。虽然是discuzx二次开发的站http://allstartv.pptv.com/。

svn提交日志,开始时候都没怎么重视,编写很不成熟,后来才逐渐重视日志详细信息描述。

现在贴出来做个记录。

 

r1153
* 全局search,左上角回到首页下拉菜单css bug修复
———————
r1152
* 首页图片焦点图样式修改 * 去除paypal的功能代码 * 抢票专题的vip购买弹出层的js修改
———————
r1151
* 给充值vip弹出层中添加目前用户vip状态的标识icon
———————
r1150
* 登陆注册弹出层的css修改 * 支付弹出层,退出后的登陆提示js修改 * source/module/portal/portal_topicdo.php 加入括号 * orderpay加入“支付”submit,如果余额大于商品价格,则会显示余额的submit按钮;源代码没有修改,只是js做显示层;ps:如果需要加入paypal,则该文件副本需要把这段代码加入后上传 * 给充值vip弹出层中添加目前用户vip状态的标识icon
———————
r1149
* 关于问题专题vip通道弹出层的问题修复,页面js 的修改 * 专题vip图片的css样式修改 * source/class/class_core.php 时区的设置为 Etc/GMT-8
———————
r1148
* 修复“粉丝团个人当月财富排序不正确的bug”
———————
r1147
* 后台文案修改。
———————
r1146
* 重大bug修复!!!之前出现的过了系统设置的15分钟在线有效期后,用户就自动掉线了。原因找到用户pwd与id信息encode 的auth信息存储的cookie过期了。setloginstatus($result[‘member’], $_G[‘gp_cookietime’] ? 2592000 : $_G[‘setting’][‘onlinehold’]); 就是这样   直接改为setloginstatus($result[‘member’], $_G[‘gp_cook…
———————
r1145
* album bug修复 * portal_weekly.php xml结构修改。
———————
r1144
* 问题修改完成,魔炫开始线上测试查看;可能会有一些问题进行三三两两的修改提交。 * 视频缩略图、封面添加,删除的js portal_upload.js 部分修改 * paypal回跳商品购买的bug修复。事后证明是个例ie崩溃所导致的。 * ui,js等的修改;对css、图片等的显示优化。
———————
r1143
* 抽奖专题解决是参与后还是显示未参与状态的bug,干掉memcache对参与状态的缓存 * 专题弹出层登陆框的状态修改。 * 支付、充值新页面平台跳转的焦点又回到提交from表达的页面bug修改,把弹出层的input改为a标签则可。吴方法。input会自动吸引焦点;而a则不会;原理还需了解 * paypal平台支付的bug修改,paypal返回后功能完善与实现。
———————
r1142
* 功能bug持续修改主要包括   1.支付平台server return page页面数据返回时对用户状态的判断,以免商品订单数据混乱。   2.收藏、分享的代码修改。   3.模板css的修改。mpf_portal_topic virtualnum字段类型由tinyint修改为int   4.用户充值订单的总金额统计与订单数据csv导出bug功能修改。 * “测试问题汇总1206.docx”测试文档bug修改完成
———————
r1141
* “测试问题汇总1130.docx” bug修复完成,   主要包括   1.推荐粉丝团数据更改,缓存更新问题   2.首页,栏目页的页面排版修复   3.视频封面图片功能显示与后台设置   4.粉丝团数据错误问题排查 * — mpf_portal_video_title视频表中加入封面字段
———————
r1140
* “测试问题汇总1129.docx” 测试bug文档一半内容已修复完成。还余一个vip购买记录中出现空数据的问题。操作动作未知暂无法判断,决定在观察两天再次修改。 * mpf_portal_topic加入虚假参与抽奖人数字段 抽奖专题专属 virtualnum
———————
r1139
* mpf必须的模板,从default里面copy来
———————
r1138
* “测试问题汇总1129.docx” bug内容修复。主要内容包括   1.视频发布不能对描述内容添加图片   2.点播、直播视频的封面显示bug修改。   3.明星相册的图片大小显示修改。   4.一些css ui的修改   5.专题ajax数据请求加入清除缓存的数据参数(是否能够规避“内部错误”还不知道)   6.新加入字段,表更新到mpf服务器。
———————
r1137
* “20121116网站问题汇总—修改方案.docx” 新的bug文档内容修复完成。开始内部测试。
———————
r1136
* 粉缘bbs 财富排行榜完成修复。新加入月份财富统计记录表mpf_forum_groupmonthcredits * 搜索相关css 修复。一些常规的ui样式bug修复
———————
r1135
* 2012.11.1部署到mpf.1stcore.net线上时出现的bug内容修改。
———————
r1133
* 增加uc_server/data
———————
r1132
* 保存全部的充值订单记录,构建一个订单查询记录功能。即copy了一份mpf_forum_order数据的内容表,这个表是mpf_forum_orderbak,数据结构一致;同时后台“电子商务”板块内构建了“充值订单记录备份表”的查看功能。 * fouction_core.php新增backuporderlog()函数,用来处理forum_order表中订单提交日期距今大于60天的数据进行备份后,在删除。调用执行还是在各充值平台完成后的会跳notify.php页面中,完整订单…
———————
r1131
* 9.26 bug内容修改。专题“赶快抢票”购买成功后跳转到直播预告页bug,加入vip后,再次点击“vip通道”,提示信息修改,根据用户状态来显示对应的提示信息。
———————
r1130
* 9.19最终版的一些bug内容修复。
———————
r1129
* 添加spacecp_credit_rechargego.php “充值平台页面跳转功能”的实现 * 上线后测试的bug内容修复。
———————
r1128
* 专题购买视频弹出层ie,购买按钮体验的bug修改
———————
r1127
* 主要内容还是bug内容修复。 * 支付、充值支付新窗口提交,修复window.open遭浏览器拦截的问题; * 专题购买视频的页面跳转bug修复。抽奖专题的视频购买,不论是否直播正在进行始终跳回抽奖页面,不跳转至直播播放页 * 线下大屏幕抽奖,根据不同的奖项加载不同的短信模板进行发布 * css,用户点击购买按钮后提示改为“加载中或提交中”
———————
r1126
* 消除ie8下,获取不到cookie充值订单号的问题;原因是用户名中文时写入cookie编码格式的问题;解决方案$_G[username]改为$_G[uid]绑定,规避用户名中文写入cookie编码混乱问题。 * 充值,支付页面的银行选择js修改。
———————
r1125
* “专题视频购买相关bug文档20120904.docx”相关问题的bug修复。主要包括充值后不能进行商品购买;参与抽奖跳出支付后,不能自动参与抽奖成功。 * vip购买bug问题修复 * 添加spacecp_ordergoods.php 处理商品购买并跳转。 * 页面css、js修改,充值支付页面js问题修改。
———————
r1124
* 抽奖专题功能bug修复(不能进行抽奖的问题)
———————
r1123
* 8.21——9.3功能修改 * 重构订单支付的商品购物体系,目前包括视频、vip。道具部分内容暂未构建。 * 添加购物订单支付 * 支付购买跳转loading提示 * 用户购买商品,弹出层登陆(使用专题弹出层) * 抢票专题参与与参与抢票当前页面完成购买,星币不足跳出充值支付;支付完成得到对应商品。 * 删除不必要的页面topicphone.htm payhone.htm need_option.htm spacecp_order_pay.htm * 去除“paypal”…
———————
r1122
* 样式修改。
———————
r1121
* 前端页面根据yslow优化法则进行了优化。 × 页面结构css/javascript位置进行了调整。
———————
r1120
* 后端业务逻辑的优化,除去支付/订单结构的修改部分。 * bug修复,部分函数的修改。
———————
r1119
* 专题页面,视频播放页面的性能优化。加入memory缓存机制。 * 模板以及部分css内容进行了修改。
———————
r1118
* 增加导出中奖用户功能 * 修改抽奖逻辑 * 修改充值需要使用的默认显示的充值金额 * 短信中奖模板增加分类控制的功能
———————
r1117
* 整站样式全部合并为一个主要的allstartv.css文件。目前仅保留4个有效css文件;对应的source源码以及mpf目录模板文件都进行了修改。 * js以及对应的一些图片进行了修改。 * 忽略install系列目录文件。
———————
r1116
* 使用smush.it 压缩后的css图片,节省大约700kb
———————
r1115
* “修改0806.docx”文档bug内容修改,主要包括1、抽奖名额数据的显示。2、模块数据的显示。3、列表、专题图片尺寸的修改。4、相册封面更新显示bug修复
———————
r1114
* “修改0806.docx”文档bug内容修改,主要包括1、抽奖名额数据的显示。2、模块数据的显示。3、列表、专题图片尺寸的修改。4、相册封面更新显示bug修复
———————
r1113
* “修改0806.docx”文档bug内容修改,主要包括1、抽奖名额数据的显示。2、模块数据的显示。3、列表、专题图片尺寸的修改。4、相册封面更新显示bug修复
———————
r1112
* “在专题直播结束后,购买vip时,出现直播已结束的提示”的bug修复完成。
———————
r1111
* 修改现下大屏奖品页面分页BUG
———————
r1110
* 添加a(‘#slides’)是否存在的检测。以免其他页面不存在时,js错误。
———————
r1109
* 展现奖品、以及添加奖品的bug内容修改 * 专题添加时验证,是否以及存在相同视频id以及相同模板类型的专题了
———————
r1108
* 修复专题页面注册登录按钮默认样式
———————
r1107
* 图片编辑操作消息提示修改
———————
r1106
* 文章、视频收藏favorite,share动作前的登录验证提示。
———————
r1105
* 修改魔炫反馈的专题页bug(project 问题429中)
———————
r1104
* 首页旋转动画home.js内容修改。
———————
r1103
* 后台大屏幕数据管理的相关修改 * 大屏幕抽奖防止再次中奖,在5.10就已完成。目前不必再次修改。
———————
r1102
* 修复销售查询,激活码对话按用户名查找错误的问题 * 修复后台线下大屏中奖用户分页问题 * 修改直播结束不能购买的提示语 * 修复魔幻现场合作伙伴显示不正确的CSS错误
———————
r1101
* 压缩出现的bug,重新加上slides效果
———————
r1100
* 修复在未登录状态下绑定手机和成为VIP提示用户空间不存在的问题
———————
r1099
* 如果在购买视频时进行的充值,则将视频的购买价作为默认的充值金额
———————
r1098
* 尝试性修复ajax弹窗提示内部错误的问题
———————
r1097
* 后台激活码搜索添加兑换方式筛选功能
———————
r1096
* 销售查询增加按照VIP和打折信息搜索功能
———————
r1095
* 修改查看VIP购买记录分页不正确的问题
———————
r1094
* videoplay.css 没有文件引用,删除之 * 压缩后的css样式文件,比没压缩之前节省32kb
———————
r1093
* 加入swf/get_flash_player.gif图片文件
———————
r1092
* 合并以及压缩后的js文件。
———————
r1091
* 去除js中的注释减少空间 * 删除及合并bbs.js bbsteam.js introduct/jsScrollbar.js superlive.js videoplay.js 多个js文件,减少http请求。
———————
r1090
* 恢复jquery.roundabout-2.4.js文件
———————
r1089
* 删除jquery.roundabout-2.4.js文件。 * js文件更新
———————
r1088
* 修改新闻列表页图片失真问题
———————
r1087
* 解决播放页图片白边
———————
r1086
* 订单提交修改,添加支付paytype类型。
———————
r1085
* 最新数据库导出
———————
r1084
* paypal支付前端页面修改。
———————
r1083
* paypal支付的后台设置,管理。
———————
r1082
* paypal支付功能开发代码。
———————
r1081
* 修复如果视频没有添加现下大屏数据时查看视频有报错
———————
r1080
* 修复在专题页点击播放无法跳转到视频直播页的问题
———————
r1079
* 隐藏个人中心日志和主题功能
———————
r1078
* 修改注册无法提交的问题 * 添加全部删除搜索到的激活码功能 * 打乱生成的假激活码的排序 * 添加生成假激活码时,英文和中文混合字段
———————
r1077
* 尝试修复IE下,播放页点击切换图片时,视频停止播放的问题
———————
r1076
* 修改后台销售查询时,版权商登录不显示导出信息 * 修复激活码兑换点播视频成功后,用户仍未获得观看权限的问题 * 视频详情页和视频列表页显示的付费方式不一致的问题
———————
r1075
* 抽奖活动专题电话号码显示bug修改。
———————
r1074
* 专题星币余额不足只提示一次的bug问题修改。
———————
r1073
* 充值成功跳转
———————
r1072
* 视频播放页,使用道具后去掉ajax请求返回的 使用道具的用户列表以及分页信息。请求返回页面修改。
———————
r1071
* 视频播放页,使用道具后去掉ajax请求返回的 使用道具的用户列表以及分页信息。
———————
r1070
* 新浪微博api信息获取修改,显示缩略图
———————
r1069
* 注册ie8 js bug 修改。
———————
r1067
* 修改销售查询和VIP购买记录查询分页
———————
r1066
* vip通道提示信息修改。
———————
r1065
* vip通道提示信息修改。
———————
r1064
* 专题图片链接修改。 * 订单确认js修改。 * 专题后台管理修改
———————
r1063
* 订单确认bug修改 * 专题抽奖部分功能修改
———————
r1062
* 修复视频购买逻辑,优化网络故障时的错误处理
———————
r1060
* 订单验证功能修改
———————
r1058
* 浏览器兼容js修改。 * 弹出框的html页面修改
———————
r1057
* 抢票专题的视频弹出逻辑修改。 * 个人充值,修改为必须要登陆。 * 浏览器兼容js修改。
———————
r1056
* 修改支付问题
———————
r1054
* 专题ie8调整bug修改。 * 用户支付,弹出提示消息,确认订单充值完成功能开发。
———————
r1053
* 专题ie8调整bug修改。 * 用户支付,弹出提示消息,确认订单充值完成功能开发。
———————
r1051
* css样式文件修改
———————
r1050
* 专题页面html、css js内容修改
———————
r1049
* 抢票专题相关的修改。
———————
r1048
* 修改充值新页面跳转
———————
r1047
* 将数据库更新记录加入版本库
———————
r1045
* bug调试的页面修改。
———————
r1044
* bug修改。调试。 * 支付正常运行。
———————
r1043
* 解决冲突问题。
———————
r1041
* 页面提示信息修改
———————
r1040
* 逻辑bug修复
———————
r1039
* 抢票bug功能修改 * 视频图片修改
———————
r1038
* 视频预告页面图片信息修改 * 抢票专题提示js修改 * 银行卡充值页面修改
———————
r1037
* 添加网上银行支付 * 将支付页面从个人中心提出来
———————
r1036
* 添加专题验证码页面
———————
r1035
* 增加topicdo的弹窗、提示ajax操作。
———————
r1034
* 抢票专题增加siders 效果
———————
r1033
* 新抢票专题页面相关的css、图片
———————
r1032
* 增加 topic_show.htm 专题的提示、弹窗信息页面 * 抢票专题页面的修改。 * 后台专题管理的修改。 * 其他相关页面的修改。
———————
r1031
* 新增的一个ajax服务器处理页面,主要就是专题相关的提示、弹窗。
———————
r1030
* 抢票专题的修改。功能实现,页面修改。 * 抢票前台显示的php文件修改 * 合作伙伴相关的js修改。
———————
r1029
* 修复个人信息不能完整导出的问题
———————
r1025
* 创建开发分支
———————
r1024
* 修改只检查生成未使用激活码时的有效时间 * 修复一次只能生产500张已使用激活码的问题 * 取消版权商根据激活码分类查询条件 * 取消版权商查看激活码有效期的条件
———————
r1023
* 修复superstar页面的SQL注入漏洞
———————
r1022
* 用户管理组判断bug修改,/function/function_myfunction.php mpf_checkperm()函数
———————
r1021
* 大屏幕抽奖的业务逻辑修改。
———————
r1020
* 后台添加VIP群组功能
———————
r1019
* 视频介绍页面分页bug处理
———————
r1018
* 线下大屏幕后台参与用户的管理 * 线下大屏幕操作流程规范 * 视频介绍页面分页bug处理
———————
r1017
* 去掉销售查询版权商导出激活码功能
———————
r1016
* 修改巨星天地热门相册显示不正确的问题
———————
r1015
* 星币订单添加人工补单统计
———————
r1014
* 修复合作伙伴js循环bug
———————
r1013
* 修复合作伙伴js循环bug
———————
r1012
* 修复编辑视频时删除非图片附件无效的问题 * 修复相册名乱码 * 隐藏星周刊 * 修改成为VIP连接
———————
r1011
* 视频页,播放页面css修改 * 首页幻灯js修改
———————
r1010
* 功能bug问题修改 * 视频介绍页分页改为ajax实现 * 实现发送评论同时显示用户的vip信息功能 * 后台管理用户个人信息资料导出,只能导出400-500条记录;这个问题还未解决
———————
r1009
* 视频介绍页评论分页使用ajax实现的html修改 * 搜索input加入google 语言搜索属性
———————
r1008
* 修复激活码后天管理不显示兑换者用户名
———————
r1007
* 调整激活码兑换逻辑
———————
r1006
* 订阅星周刊邮箱修改,更好邮件列表js api
———————
r1005
* 星周刊getpic()函数定义重复,修改函数名 * admincp_sale.php 删除输出的sql语句
———————
r1004
* 修复视频编辑时无法删除非图片附件的BUG
———————
r1003
* 兼容样式修改
———————
r1002
* 提示信息说明修改
———————
r1001
* 修改后太后中奖用户分页BUG
———————
r1000
* 抢票“敬请期待”链接修改,大bug大bug
———————
r999
* 后台添加自动生成已兑换激活码功能 * 修改视频介绍页,评论分页影响视频内容的BUG
———————
r998
* 修改激活码导出功能
———————
r997
* 错位样式修改
———————
r996
* 激活码合并至销售查询栏目下,让版权商能够查看已使用的激活码 * 增加已使用激活码的csv导出
———————
r995
* 修改相同ip
———————
r994
* 更改道具排行榜的显示数量,目前为20
———————
r993
* 修改相同ip
———————
r992
* 播放页地区在线人数ajax请求,功能更改 * 线下大屏幕中奖名单添加分页 * 抽奖专题参与人数显示修改 * lang用户数据信息内容修改
———————
r991
* 线下大屏幕、直播页面、道具页面的css修改
———————
r990
* 线下大屏幕页面修改 * 直播播放页面js内容修改
———————
r989
* 修复道具排行榜中文名换行问题 * 修复视频销售查询和vip购买记录总金额问题 * 修复UC_API定义错误的问题
———————
r988
* 界面样式bug修改
———————
r987
* 修复用户购买VIP时星币值刚好与VIP价相同时无法购买的问题
———————
r986
* 去除地区在线重复
———————
r984
* 卡密字符替换为激活码
———————
r983
* 播放时间 抢票专题直播时间修改
———————
r982
* 修改用户在线数据错误
———————
r981
* 修复线下大屏抽奖失败的问题
———————
r980
* 直播介绍页 上面的时间改为直播时间
———————
r979
* 添加奖项推送到前台时给中奖用户发送短信和邮件 * 修改若直播还未开始,不显示已观看人数
———————
r978
* 修改密码完成,退出后不能登录bug修改
———————
r977
* 修改密码完成,退出后不能登录bug修改
———————
r976
* 修改地区排行榜逻辑
———————
r975
* 添加站长统计 * 修改地区排行榜逻辑
———————
r974
* 在线数据信息统计页面更改
———————
r973
* 修改线下大盘的导航
———————
r972
* 隐藏线下大屏,抽奖和微博页
———————
r971
* 修复添加大屏报错的问题
———————
r970
* 修改购买直播时提示直播开始问题 * 修复专题活动也手机号码格式化不对的问题
———————
r969
* 修改用户线下大盘权限问题
———————
r968
* 专题、首页js、css修改
———————
r966
* 专题添加功能修改
———————
r965
* 专题信息提示修改
———————
r964
* 完成后台抽奖推送到前台
———————
r963
* 抢票专题页面信息修改 * 样式修改
———————
r961
* 新的线下大屏新的页面,css,js
———————
r960
* 新的线下大屏修改完成
———————
r959
* 新的线下大屏修改完成
———————
r958
* 专题活动抽奖,需填写个人信息 * 邮件服务接口提供调试模式
———————
r957
* 线下大屏抽奖放到后台
———————
r956
* 修复抢票活动出错的bug
———————
r955
* 修复抢票活动出错的bug
———————
r954
* 后台添加清空用户在线状态功能
———————
r953
* 修复兑换直播视频的提示语
———————
r952
* 线下大屏手机提示信息修改 * 线下大屏页面高度根据图片高度确定修改
———————
r951
* 线下大屏手机提示信息修改 * 线下大屏页面高度根据图片高度确定修改
———————
r950
* 修复编辑视频图片无权限问题
———————
r949
* 修改大屏获奖人数自动滚动问题 * 修复后台查看中奖用户,未做筛选的bug * 大屏操作页添加大屏列表
———————
r948
* 首页、superlive的图片幻灯自动播放js修改
———————
r947
* 首页、superlive的图片幻灯自动播放js修改
———————
r945
* 修复线下大屏微博在线人数不显示的问题
———————
r944
* 线下大屏js修改
———————
r943
* 修改线下大盘导航显示逻辑(不符合抽奖逻辑不显示) * 添加后台微博在线人数设置
———————
r942
* 线下大屏js/css内容修改
———————
r941
* 线下大屏页面内容修改
———————
r940
* 线下大屏幕后台控制管理全部集中到“全局->线下大屏设置” * “运营->抽奖设置”只保留全局数据(中奖人数上限,一二三等级中奖用户,中奖人数)的设置
———————
r937
* 线下大屏幕道具使用量显示8位
———————
r936
* 增加jquery.cookie.js
———————
r935
* 线下大屏幕的修改功能完成,js、css文件修改
———————
r934
* 线下大屏幕的修改功能完成,页面内容修改
———————
r933
* 线下大屏幕的修改功能完成 * 专题的加入唯一性检测
———————
r932
* 添加视频购买提示信息
———————
r930
* 调整直播时间显示 * 开启邮件服务
———————
r927
* BUG修复
———————
r922
* 视频介绍页 演出时间是即为直播介绍页面的直播时间
———————
r918
* 抢票页面内容修改 * 视频介绍页未到直播时间,按钮状态为敬请期待  * mpf_footer.htm底部增加notice提示
———————
r917
* 修改抢票时间期限bug
———————
r912
* 日期时间24小时制显示
———————
r911
* 修改后台门户专题提交报错
———————
r910
* 合作伙伴 js 运行方向调整
———————
r909
* 修改showmessage 在IE下不解析的问题
———————
r908
* 调整VIP抽奖逻辑
———————
r907
* 样式修改
———————
r906
* VIP套餐添加按年显示 * 调整VIP抽奖活动逻辑 * 调整VIP视频显示逻辑
———————
r905
* 抢票添加宣传视频,vip专属活动推广页面功能修改。后台文件。
———————
r904
* 抢票添加宣传视频,vip专属活动推广页面功能修改
———————
r902
* BUG修复
———————
r900
* 专题页面 抢购 改为 促销 * 视频直播、点播介绍页面js修改 * 加入vip页面js修改
———————
r898
* 兼容ie6 css样式修改
———————
r894
* 添加清理vip用户的计划任务页面
———————
r893
* 隐藏paypal设置 * 后台购买VIP记录导出
———————
r892
* 卡密 改为 激活码 * “成为vip” 检验功能代码更新 * 专题功能代码修改
———————
r891
* 订阅星周刊页面修改 * 卡密 改为 激活码
———————
r890
* 验证码页面修改 * vip开通页面修改
———————
r889
* 用户没有refer连接时,登录后直接跳转至home.php?mod=space
———————
r888
* vip标志的页面内容修改
———————
r885
* 隐藏个人中心卡密充值 * 调整充值、兑换、商城新链接打开
———————
r884
* 头部添加卡密入口
———————
r882
* vip标志样式修改
———————
r880
* vip标志链接修改 * vip参与活动页面修改
———————
r879
* vip专题活动参与功能修改
———————
r878
* 调整激活码兑换页面样式
———————
r877
* vip标志添加的页面结构修改
———————
r876
* vip标志添加的功能修改
———————
r875
* vip标志添加的样式修改
———————
r874
* vip标志图片
———————
r872
* 完成激活码前台兑换功能
———————
r871
* exchange(激活码兑换页面)完成 * exchange(激活码确认兑换页面)完成
———————
r870
* 更改充值卡密生成、导出、兑换功能,相应调整视频购买功能 * 个人中心页增加兑换记录页面
———————
r868
* 个人中心vip尊享新增htm页面
———————
r867
* 个人中心vip尊享新增php页面
———————
r866
* 个人中心vip尊享的页面代码修改提交
———————
r864
* 个人中心vip尊享功能实现
———————
r862
* 后台模板文字更改
———————
r861
* 星币充值统计功能实现
———————
r860
* 调整视频播放页地区排行榜显示样式 * 新增道具页面 * VIP包月改为VIP专属 * 视频添加VIP价 * 充值新页面跳转
———————
r859
* 修复后台修改权限时的错误提示问题
———————
r858
* 在线支付新页面打开支付。
———————
r857
* 修复普通管理员没有群组删除和编辑资料权限问题 * 添加用户自动登录功能,时间为后台设置的在线时间
———————
r856
* 调整视频播放页JS错误
———————
r855
* 修复当合作伙伴为空时JS报错影响界面显示的问题
———————
r854
* 线下大屏添加后台设置参与抽奖人数 * 修复线下大屏特别奖得主头像无法显示问题
———————
r852
* 抢票专题有效时间验证
———————
r851
* 专题js内容修改
———————
r850
* 调整视频购买弹出层样式 * 点播视频购买后24小时内观看 * 发送短信加快响应 * 取消道具商城的热门道具
———————
r849
* 专题topic的前台页面修改
———————
r848
* 专题topic后台页面修改
———————
r844
* 修改注册时用户名验证条件和验证失败时显示错位问题 * 调整短信发送时的提示信息
———————
r843
* 调整短信发送机制,单条采用单发接口,多条采用群发接口
———————
r842
* 修改手机发送为单发账户,加快发送速度
———————
r841
* 线下大屏操作与设置权限分开 * 修改线下大屏地区在线随机逻辑
———————
r836
* 调整线下大屏程序逻辑 * 巨星天地首页添加最新专题活动
———————
r835
* 修改专题添加或更新的问题
———————
r830
* 修改道具购买成功后提示信息的位置 * 分享功能添加用户UID方便统计
———————
r826
* 修改活动参与人数显示
———————
r823
* 删除抢票专题,删除对应的参加人员列表
———————
r822
* 专题抢票页面
———————
r821
* 专题抢票页面
———————
r820
* 专题抢票功能开发
———————
r819
* 抢票专题css
———————
r818
* 线下大屏添加查看和删除中奖用户功能 * 线下大屏显示如果没有设置奖品信息将不显示中奖相关信息
———————
r816
* 完善大屏背景定制功能
———————
r815
* 线下大屏添加更换背景图片功能
———————
r813
* 删除图片所产生的缩略图
———————
r812
* 专题页面
———————
r811
* 专题功能添加
———————
r810
* sepcial专题的js与css 图片
———————
r804
* 修复点播列表也有直播标识的问题
———————
r803
* 添加线下大屏后台设定功能
———————
r801
* 专题道具css图片
———————
r800
* 专题道具页面完成
———————
r798
* 列表图片清晰生成
———————
r796
* 修改图片缩略方式
———————
r795
* 图片展示页面js修改
———————
r793
* “连接”改为”链接”
———————
r789
* search结果显示页面内容修改。
———————
r787
* 搜索的底部导航修改
———————
r780
* 20120302新增修改
———————
r779
* 个人中心星币记录调整
———————
r778
* 如果用户邮箱未验证,登录后提示验证 * 修改个人中心留言板留言条数 * 评论和留言不超过500字,且提示 * 修改最大在线人数为100万
———————
r776
* 用户星币奖惩修改
———————
r772
* 首页图片推荐样式修改,图片遮住视频问题
———————
r769
* 修改邮箱正则认证,改为严谨型
———————
r767
* 修改积分、星币奖惩分开具体权限
———————
r766
* 修改2.24的内容问题
———————
r764
* 20120224bug修复部分
———————
r759
* 2.27新bug修改内容
———————
r758
* 2.27开始的bug修改内容
———————
r754
* 聚星天地明星搜索页面修改
———————
r749
* 弹出层登陆样式修改
———————
r746
* 取消登录验证 * 添加粉丝团缩略图
———————
r743
* 粉丝团所属明星修改
———————
r742
* 排行榜缩略图生成函数添加
———————
r741
* 多余js的请求删除
———————
r735
* 收藏分享修改。
———————
r734
* 文章、图片收藏bug修改
———————
r730
* 道具图片显示样式修改
———————
r729
* 道具图片修改
———————
r728
* 线上版本2 — 修改中奖信息弹出气泡IE下动画错误 * 线上版本2 — 调整中奖信息气泡为只显示一次
———————
r724
* bbsphotos.css 明星相册样式修改
———————
r723
* 把页面中所有的首页改为 $_G[setting][bbname]
———————
r720
* 明星个人档案,明星视频修改
———————
r719
* 线上版本2 — 取消巨星天地搜索关闭群组时的提示信息
———————
r718
* 线下大屏2 –修改播放页幻灯片小图片上传无法显示的问题 * 线下大屏2 –添加视频播放页和相册浏览页锚点 * 线下大屏2 –个人中心添加我的评论列表页 * 线下大屏2 –视频区分上架时间和演出时间 * 线下大屏2 –关闭专题活动
———————
r714
* 直播、点播列表显示$navtitle
———————
r713
* 样式修改
———————
r711
* “明星视频”location地址修改
———————
r710
* 聚星天地栏目“明星视频”当前地址location修改
———————
r709
* 修改明星介绍页的图片缩略图
———————
r705
* 修复自动缩略图尖括号BUG
———————
r704
* 增加自动缩略图 * 修改分页BUG
———————
r703
* videolist.html getpic()函数加入 * starinfo.htm 文件结构、样式修改。
———————
r702
* rewrite自动生成图片缩略图 * function_core.php 加入getpic()函数
———————
r701
* 图片自动url 重写定向到image.php生成缩略图。
———————
r700
* 线上版本 — 调整点播介绍页标题换行显示问题 * 线上版本 — 视频block添加视频所属明星项
———————
r699
* 线上版本 –明星图片缩略图模糊的问题
———————
r698
* 视频列表 “版权”改“制作”
———————
r697
* 线上版本 –修改明星视频版权为制作
———————
r696
* ie7下视频播放道具重复出现的问题修复
———————
r695
* 线上大屏图片预加载内容修改
———————
r694
* 线上版本 –修复明星相册无法删除
———————
r693
* 修复网站后台“群组设置  开启群组”功能bug
———————
r692
* 线上   –调整标题后台不可以修改问题
———————
r689
* 样式调整
———————
r688
* 样式调整
———————
r687
* 分页bug功能调整
———————
r686
* 分页bug功能调整
———————
r681
* 我的收藏 导航显示问题
———————
r672
* 禁止邮箱未验证用户登录 * 隐藏积分
———————
r663
* 魔炫反馈文档修改
———————
r660
* 计划修改内容
———————
r658
* 修改计划样式调整
———————
r657
* 取消文章评论页分页
———————
r637
* 修改弹出层加好友和接触好友Ajax加载显示错误
———————
r626
* bug 内容修复
———————
r620
* 帮助中心、关于我们页面结构样式调整
———————
r617
* 订阅星周刊注释说明
———————
r615
* 提示ie6过时图片问题,帮助中心样式
———————
r611
* 友情链接、帮助、关于魔炫,法律声明等页面制作
———————
r609
* 帮助中心页面样式
———————
r606
* css样式,快捷链接添加等
———————
r604
* 明星的搜索结果呈现修改
———————
r603
* 修改当道具不足时点击直接弹出购买 * 调整个人中心显示样式
———————
r600
* 样式修改
———————
r598
* 功能结构修改
———————
r590
* 增加动态数据ajax加载功能,区域轮换效果
———————
r589
*
———————
r587
* 线下大屏js部分完善
———————
r584
* 线下大屏中奖代码修改完成。
———————
r582
* 线下大屏ajax请求功能开发
———————
r570
* 线下大屏所有html页面完成
———————
r569
* 线下大屏所以的html页面编写完成
———————
r567
* 弹出气泡内容提示
———————
r566
* 弹出气泡的效果
———————
r562
* 提示用户绑定手机号码
———————
r560
* 提示用户绑定手机号码
———————
r559
* 提示用户绑定手机号码
———————
r557
* 更改scrolltop样式内容
———————
r551
* 通过邮件以及手机短信找回密码
———————
r550
* 通过邮件以及手机短信找回密码
———————
r547
* 增加手机绑定
———————
r545
* 播放页视频道具排行榜,地区排行榜
———————
r540
* 统计在线人数ajax+setinterval * 分享链接源码
———————
r537
* 替换logo图片 * 增加png.js 兼容ie6 png图片 * 统计在线人数ajax+setinterval
———————
r536
* 在线人数统计,ajax+setinterval
———————
r535
* 替换logo图片 * 添加png.js兼容ie6 png图片
———————
r534
* 互动道具图片、css文件
———————
r529
* 互动道具js、图片修改部分。
———————
r528
* 互动道具使用功能
———————
r524
* 添加更新用户的手机号码action
———————
r523
* 后台增加奖品展示 * 发短信与邮件
———————
r521
* 用手机号码登陆功能
———————
r520
* 手机号码登录功能,这样手机号码在录入的过程中需要判断绝对的唯一性。 * 主要需要更新的表有ucenter_members;common_member_profile
———————
r502
* 完成聚星天地、粉丝团首页的图片自动切换
———————
r500
* 添加定时滚动
———————
r496
* 首页动画
———————
r495
* 文章列表也样式
———————
r468
* 显示BUG修复
———————
r429
* 个人中心设置的分享连接设置功能 * 各应用的api库(暂除qzone没有)
———————
r428
* Q版头像
———————
r427
* 分享链接页面信息 * 提示信息页面修改
———————
r416
* 星周刊后台管理功能页面 * 星周刊后台管理模块 * 星周刊前台处理页面
———————
r413
*星周刊后台管理、提示信息等新功能的标识说明文字 *星周刊后台管理及前台的相关页面
———————
r412
* 生成rss xml内容的控制器页面
———————
r411
*门户管理页面样式修改 *星周刊订阅内容后台管理页面,前台页面
———————
r392
* 动画优化
———————
r381
*聚星天地所有页面(除专题列表页)都已完成。 *魔炫二期静态页面切图编码完成。
———————
r379
* 动画优化
———————
r377
聚星天地首页
———————
r376
* 动画延迟
———————
r375
* 导航动画继续修正
———————
r374
* 修复导航动画ie兼容性
———————
r372
* 导航的动画
———————
r371
* 动画
———————
r369
* PPTV接口
———————
r92
自适应结构样式调整。 背景图片替换。 直播、点播介绍页面文字滚动条效果添加。 样式调整。
———————
r90
粉丝团相册三个页面。 目前为止,第一期页面切图全部完成。
———————
r89
粉丝团明星简介 粉丝团留言页面
———————
r84
头部列表样式 明星列表、更多明星列表。
———————
r83
* 粉缘团幻灯js
———————
r81
粉丝团成员列表页(与在线成员属同一页面) 粉丝团最近访问用户页 粉丝团活跃度排行页 粉丝团用户等级说明页
———————
r80
创建粉丝团页面 我的粉丝团列表页面
———————
r77
粉丝团公共页面提交。头部样式修改。兼容ie6/7 粉丝团首页页面提交。 粉缘首页相关内容替换
———————
r73
粉缘首页提交。 个人中心——订阅星周刊样式修改。
———————
r71
personal.css 样式更新。
———————
r70
superlive 图片切换 bug修复
———————
r66
粉丝团榜单列表、巨星天地榜单。 导航文字居中问题已修改。
———————
r61
* 注册表单
———————
r60
直播、点播介绍页面 评论样式结构更改。
———————
r59
* demo冻结
———————
r58
新添加页面: 注册、登录页面 魔炫现场榜单、巨星天地-视频榜单
———————
r45
* 连接分享的js
———————
r42
* 评论js
———————
r33
* js文件合并
———————
r32
* 图片滚动按钮样式
———————
r30
* js动画调整
———————
r18
* 首页动画
———————
r8
* 导航栏JS
———————

另一个地方

算起来好久没有换地方住了,从09年毕业到现在几乎都是和家人住在一起,而现在因为住的房子要拆迁了;所以不得不也正好与我计划一样换个地方住。

 

以前与家人住一起,虽然也是租的房子但是没有陌生感,那里很熟悉,很了解。而现在换一个地方独自一个人住,完全的陌生感,和未知感。想起毕业时想要独立拼命搬出去住,然后没住2个月,感冒伤风不得不退回来住家里了,那时候面对外面的世界是新奇与惊喜,但是没俩月就厌倦了下班之后,旅馆式的住宿无聊,然后又弱不禁风不争气的感冒了,只好退堂鼓回家了。然后就一直住在家里,住了有4年了啊。近两年我感觉我必须要出去住了,但是每次都抵不过“家人都在一个城市,为什么还要自己跑出去住呢”这种念头,而我也理解父母也是外来到这个城市打工的,也是在陌生的地方,既然我与他们在一个城市那就住在一起吧。

 

但是从我内心里来说还是 想独立的出去生活,首先不谈“恶劣”的居住环境,从个人角度来说我想要有自己的空间,而父母的角度就是你攒钱啊,在家住条件一般但是不用交房租也不用交生活费,还有人照顾你等等,我理解他们说的东西,但是日子一天一天过去,我那种与日俱增无以复加想要改变的心境一天比一天的浓烈。所以这次听说房子要拆迁了,我一方面很高兴有这个契机可以改变了,另一方面对于住了接近十年的地方有一种不舍。或许我就是这么矛盾吧,本质上来说租的那个房子都是一样的,不同的是在房子那得青春年华已经与家人一起生活的时光。

 

而现在我住在另一个地方,生活一个小小的改变,而与家人的生活交集还是如此,不会因为点点的距离而改变。但是现在必须要自己去面对事情面对生活,面对自己所要面对的一切,不能由家人的庇护生活了,因为自己本身也要抓紧时间成长,为自己的那个家的建立而努力了。就像我家妹子@爱没有丽丝说的“你必须成熟点了”, (*^__^*)

2012这一年

“2012这一年”总结第二版本

==========================

现在已经是2013 2月13号了,大年初四;在元旦就开始计划需要写下2012这年所发生的事情以及验证检验下年初制定的计划完成度。

首先回顾下去年的总结文章。

2011年末总结系列之工作篇

2011年末总结系列之个人的生活篇

2011年末总结系列之个人情感篇

工作

2012年前半年还是在忙mpf项目内容,还是一如既往的discuzx二次开发;下半年的时候再次看那些N复杂已经绕弯弯的业务需求真是不知道当初是怎么做出来的。。。而且最关键的是,时间一长就忘了了这些代码为什么这样写(要是由他人后期维护真的会很纠结。)且不论需求的复杂度;就是一点被他们今天要一个A,明天要一个B,且最关键的一点是我们的建议他听不进去,当初作死做活的功能,现在一句话就不要了。虽然公司是不亏的,但作为程序员来说这种东西一点成就感也没有。

mpf从3月开始一直开发到7月,7月-8月就是由我一个人开发了。另一组员L调至一个移动应用开发组里面去了。然后其中主要开发的一个需求是“将只能通过虚拟货币购买积分改为不仅能通过虚拟货币购买积分,还能直接通过RMB直接进行积分购买”。原先设计就是只能是余额足够的情况下进行虚拟商品的购买,即只有记录的概念而没有订单的概念。而现在要的是在余额不足情况下,需要自动跳转至支付平台进行在线支付完成购买。

功能设计不算复杂,但是最最麻烦的地方在于以现有代码的基础上进行修改。也就是改比新开发还有麻烦的事情被我碰上了。。。既然如此,现在网站以上线,且数据量都已存在;那么现在的网站数据库结构就不能大调整了,只能加不能减。即代码最后都作用于新的数据库表上面,原始数据库表只要把数据导入到新表中,保持用户的数据一致就行了。在完成设计后开发大概用了2个星期左右,又用了两个星期进行检查,测试,数据导入;集成了paypal,对discuzx自有的alipay、tenpay进行了修改。(话说如果时间长了,估计我都不知道为什么这样写了,不过还好注释不少不少)

在mpf告一段落后,公司决定暂时搁置这个项目(主要是给钱不积极啦)我就加入到了informatree项目组中,这个项目只是大概了解。公司从3月份开始立项,一直开发至今;是一款主攻欧美国外市场的IOS、Android平台社交活动类的一款APP,大家可以再App store 里面搜索“intreest”下载安装。官网这里

intreest这个项目周期也是比较长,app最新已经1.2版本了。移动应用采用前端+后端服务器的模式,与之前常见的b/s模式不同,在初期加入开发的过程中不是很习惯啊。大致请求流程就是app通过TOKEN验证的api,向服务器发送一个请求,服务器验证token+有半小时时间期限的hash值(这个hash主要用于api权限验证,只有app与服务器知道,避免有人知晓token后无限次的请求访问),验证通过后服务器将数据值json格式化返回给app。到此完成一次请求。这个项目里面确实学到了不少东西,主要是oo方面构建对象后对数据的操作,以及各种微博系统,地理位置的业务逻辑熟悉使用,搜索方面使用Apache solr进行数据检索。当然技术方面还是略显不足,很多地方只是原搬照用,还要加强学习。还有一个比较遗憾的地方就是在这个项目期间有三位开发方面的人员离职了,mpf的一位组员L,原先的产品+开发Z。各种原因都有,技术负责人C主要负责的内容比较少,C 5月份就离开,所以与项目关系不是很大;但是项目产品+前端开发的主要负责人Z以及后端开发L的离职却与这个项目的关系很大。项目的背景是我们公司团队B加另一团队A,A不属于我们公司,主要负责内容是产品原型设计以及出产PSD设计图。B团队也就是我们负责后端的功能开发+前端IOS,Android的开发。那么大家也可以看出来了,我们就是工匠,他们就是设计师;大家是合作的方式,作为我们团队来说,在项目中,他们给出设计稿与原型我们也是抱着学习与理解的态度去看待,很多地方也提出了我们的看法与意见;但是更多时候是他们说了算,一些地方吸取我们的意见更多的地方却是直接固执己见;尽管他们产品也是由原来商务人员转换过来,移动界面设计师是由网页设计师转过来;可以明显的看到项目初期与现在这个阶段他们给的原型图完全不同,当然现在的是更好,这样我们也是在共同进步的,但是他们还是坚持自我,仅一条“这个应用的主要目的与优势是在哪里?”我想他们也答不出,至于答出了恐怕自己也不信,与facebook,twitter拼活动,拼好友关系么。。。在自己的诉求建议得不到吸纳响应,团队与团队之间已经不再是对等的了,而是A给B下达指令,而B只是完成这样一项工作而已。这种情形下,我也觉得完成这样的任务而已一点成就感都没有,做出的应用现在已经可以预见一定会石沉大海,无声无息了。L同学也一定有这样的感觉,要不为什么在开发这样紧张的情况下直接离职了呢?

有意思的是在2013年1月,我们老板在intreest项目会议上面说“这个应用一点亮点优点都看不到?”,当然这不是显而易见的么。这个在最初立项时,作为B团队boss在与A团队boss合作之初不是应该考虑到的么。于是又开始加入新创意,NFC,二维码啦等等。“虽然内容为王,但是应用一定要有亮点有吸引人的地方”现在说这个是不是晚了。整个项目都是在飘忽不定的进行。。。很多时候我都倦了。

这一年里,个人的技术风格以及定位有一个初步的认识,但并没有完全做好打算去怎样怎样,这也是自己不自信的原因。没错,你是做了很多事,但是这些事情都是 他人可以直接替代的,你的特长时什么?你的风格是什么?你未来的道路是什么?现在我还不能完全答复。这也是要在2012年里面更加的清晰和明了的。很多事 情充满了变数,又有很多事情难以改变的。比如你的性格,我的强迫症。

这是去年的一段话,我想把2012换成2013也是适用于今年的。。。改变一点都没看见啊。技术风格?特长,优势?哎。。。继续前行吧。

生活

生活还是如此,平静而简单。今年就是多了一个看球,由于恒大的牛x,在亚冠中超牛xx的。向我这种伪球迷当然也就是“趋之若鹜”了,不是我不喜欢英超西甲,而是我始终认为那种情况离我太遥远,没有一种情感代入感;所以还是好好看看家门口的中超吧,尽管现在他的水平还很低,但还是一如既往的支持。2013还看恒大!当然武汉队也要看看!

老爸手工业制作者,房租突然涨了一倍,真的很贵快3000/月了。但是房子没有变大,地理位置也没有变得优势;万恶的房东啊,另一个房东却还是维持原价,差距怎么这么大呢!这样生意将变得更加难了,希望2013年里面好做,蛇年万事如意!

在1月的时候老爸新买一个“五菱之光”微面,4w多元,老妈说这是多年攒下的钱了。。。老爸一直希望有个车,这下终于买了,得了那就安心好好挣钱,平安开车吧。

朋友联系的还好,他们现在都还不错;只是见面相聚较少,真是越长大与孤单啊。

公司同事相比第一年来到时,2012大家出来相聚的时间更少了,可能人真的会厌倦吧。

表哥腊月24的结婚了,是介绍认识的,大概半年吧。其实我始终认为这样的婚姻感觉有那么些不自主,当然也就偏见的认为这不是男女主人自己想要的。但现在不管怎样,祝他们幸福。

情感

“在之前的生活篇里面也提到了,2012年龙年,第二个本命年里,我最大的期望与理想就是找到一位适合的、相爱的、谈婚论嫁的女朋友!这一目标在2012年里要坚定不移的执行实施!立字为证,明年这个时候,写文汇报。”

这文是写不出了,因为在自己的本命年里面,女朋友这一重要元素还是竹篮打水一场空。尽管做过一些努力但是很多时候我都不知道我喜欢什么样的,看这个也喜欢,看那个也喜欢。得到一个真理,网络上的都是假的!!还不如勇敢的在现实里面搭讪吧。

蛇年里面一定要有新动向啊!要不然就要被逼婚了。。。%>_<%

2013路还是继续走,希望能顺利一点。

北京北京

“2008,北京见”的口号,在我初高中喊过很多次,现在终于有机会去北京了。

北京见,鸟巢见 🙂

 

待续……

呵呵

决定可以说退就退,想怎样就怎样,只许自己有情绪,不许他人有情绪

好朋友可以有事留言,半小时看一次,简单的“我很忙不能聊”对于我却是很稀缺的

搞不清楚谁气谁,一句话就可以避免的事情,何必成这样,何必如此

solr 4.3的一些错误解决方法

在去年时候学习使用了solr4.0,现在solr版本最新已经到了4.3了,前两天因为工作需要在一台服务器上面新安装solr,但是生产环境是4.0,不过想到是内部测试用的,且主要功能就是写入,删除,搜索,与程序上面没有太多的深入开发,于是还是安装了最新的4.3版本

解压安装启动后,就可以了;这时需要添加collection,添加的collection配置需要与生产环境保持一致,于是复制默认的collection1 的配置信息作为新的collection

复制完成,新的collection events 也添加完成;但是加载时总是报错不能正确加载solrconfig.xml信息,也知道schema.xml等数据肯定是要修改的,schema.xml配置信息修改完成后还是有这样的问题,在往solr写入数据时又再次报错

undefined filed message,但是message字段确实已经配置好了;检查之后再次重启solr,查看刚才的events 直接显示 “There exists no core with name “events””

这时去查看日志,显示信息


Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent.
at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:218)
at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:616)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:816)
... 34 more
Caused by: java.lang.NumberFormatException: For input string: "MA147LL/A"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
... 36 more
ERROR - 2013-05-22 16:07:06.752; org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: Error CREATEing SolrCore 'events': Unable to create core: events
at org.apache.solr.handler.admin.CoreAdminHandler.handleCreateAction(CoreAdminHandler.java:524)
...

 

ERROR - 2013-05-22 16:48:46.272; org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: ERROR: [doc=100946] unknown field 'message'
at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:313)
at org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)

正在排查中是,同事Y看到了,直接把solr 默认的collection1 改名为 events ,再次刷新直接挂了

There are no SolrCores running. Using the Solr Admin UI currently requires at least one SolrCore.

再次去查找这个问题,很快找到

http://stackoverflow.com/questions/13295208/i-unloaded-the-default-solr-collection-by-mistake-from-the-solr-admin-ui

编辑example/solr/solr.xml配置文件

可以看到已经变为

<core name="events" instanceDir="events" />

改为

<core name="collection1" instanceDir="collection1" />

保存,重启solr即可;

分析为什么出现这个问题,events collection的配置是错误的,solr初始化所有collection时跳过了events,而默认的collection1又改为了events则使用的是events目录下的配置信息了,

而这个配置信息又是错误的,所以solr admin 默认为没有 cores 的;修复过程中需要手动去修改配置文件,同事Y打呼用户体验太不友好了,不过我说Solr Admin用户体验很好啊,很早就不支持IE6了

现在又回到了上面的那个错误,org.apache.solr.common.SolrException: Error initializing QueryElevationComponent.

不能初始化,也不能添加events collection core,继续google,终于找到一篇提示的文章

https://coderwall.com/p/kwvxhq

Note that if you have enabled the QueryElevationComponent in solrconfig.xml it requires the schema to have a uniqueKey of typeStrField. It cannot be, for example, an int field.

Otherwise, you will get exception like:

java.lang.NumberFormatException: For input string: "MA147LL/A"

大意就是如果你开启了 QueryElevationComponent 功能,但是schema 的uniqueKey类型又不是 string,则报如下错误

java.lang.NumberFormatException: For input string: "MA147LL/A" 这个不就是我的日志里面的那个错误信息么, 于是编辑example/solr/events/conf/solrconfig.xml配置文件

搜索QueryElevationComponent关键字,可以看到如下,果然有这个信息

<!-- Query Elevation Component

http://wiki.apache.org/solr/QueryElevationComponent

a search component that enables you to configure the top
results for a given query regardless of the normal lucene
scoring.
-->
<searchComponent name="elevator" >
<!-- pick a fieldType to analyze queries -->
<str name="queryFieldType">string</str>
<str name="config-file">elevate.xml</str>
</searchComponent>

http://wiki.apache.org/solr/QueryElevationComponent 查看一下,类似于关键字搜索后,一些项的配置置顶显示 比如百度搜索某个关键字时,搜索框下面的推广,广告相关信息总是被置顶显示

要配置启用这项组件,需要配置elevate.xml,同样是位于example/solr/events/conf/目录下

Elevated query results are configured in an external .xml file determined by the config-file argument. An elevate.xml file may look like this:

<elevate>

 <query text="AAA">
  <doc id="A" />
  <doc id="B" />
 </query>

 <query text="ipod">
  <doc id="A" />

  <!-- you can optionally exclude documents from a query result -->
  <doc id="B" exclude="true" />
 </query>

</elevate>

For the above configuration, the query “AAA” would first return documents A and B, then whatever normally appears for the same query. For the query “ipod”, it would first return A, and would make sure that B is not in the result set.

Note: The uniqueKey field must currently be of type string for the QueryElevationComponent to operate properly. 这就是答案了,uniquekey必须是string类型;目前我们项目中没有用到这项功能,所以可以选择注释不启用

<!--
<searchComponent name="elevator" >
<!-- pick a fieldType to analyze queries -->
<str name="queryFieldType">string</str>
<str name="config-file">elevate.xml</str>
</searchComponent>
-->

重启之后,没有初始化失败的错误了,再次往solr加入数据又有一个错误信息 undefined field text


ERROR - 2013-05-22 17:59:51.107; org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: undefined field text
at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1211)
at org.apache.solr.schema.IndexSchema$SolrQueryAnalyzer.getWrappedAnalyzer(IndexSchema.java:425)
at org.apache.lucene.analysis.AnalyzerWrapper.initReader(AnalyzerWrapper.java:81)
at org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:132)

google 得到结果,就是默认字段需要替换的问题,编辑 example/solr/events/conf/solrconfig.xml 检索到text内容

 <lst name="defaults">
 <str name="echoParams">explicit</str>
 <int name="rows">10</int>
 <str name="df">text</str>
 </lst>

因为solrconfig.xml等配置文件时从collection1复制过来的,默认的default字段匹配是text,所以目前改为我们项目所用到的字段值message 保存文件,重启solr,写入数据没有问题了,search也正常的有数据内容返回了

版本的不同,配置文件内容也会做一些变动与修改;所以可能需要修改的配置不仅仅只是与项目search有关的内容,还有版本与版本之间,新版本默认启用的模块所需的配置有关;还有一点,多看日志,多用Google!