网站备案幕布照片怎么算合格,附近找工作招聘信息,微信小程序注册后怎么登录,中级经济师考试报名目录
1. 电商项目架构图
1.1 系统架构
1.2 技术架构
2. 介绍电商项目
2.1 后台和前台、后端和前端
2.2 Vue全家桶包含哪些技术#xff1f;
2.3 什么是Vuex#xff1f;
2.4 什么是SSR
2.5 电商模式是什么#xff1f;
2.6 枚举类
2.7 elasticsearch相关
2.8 gatew…目录
1. 电商项目架构图
1.1 系统架构
1.2 技术架构
2. 介绍电商项目
2.1 后台和前台、后端和前端
2.2 Vue全家桶包含哪些技术
2.3 什么是Vuex
2.4 什么是SSR
2.5 电商模式是什么
2.6 枚举类
2.7 elasticsearch相关
2.8 gateway网关相关
2.9 nacos相关
2.10 定时任务
2.11 电商术语
3 项目中的业务
3.1 注册业务
3.2 权限任务业务
3.3 搜索业务
3.4 购物车业务
3.5 订单业务
3.6 支付业务
4. 项目中有哪些难点你是如何解决的
4.1 难点1下单业务
4.2 难点2支付业务
4.3 难点3搜索
4.4 难点4权限认证
5. 通过这个项目你有哪些收获
1. 电商项目架构图 技术框架/技术选型
1.1 系统架构 该项目是一个B2C的电商项目类似小米商城、京东商城、天猫商城 允许客户通过网络购买商品 该项目主要完成的是电商项目前台的开发。 采用前后端分离的方式进行开发的 前端vue全家桶Vue、Router、Vuex、Axios、Nuxt、SSR等技术。 后端Spring Cloud Gateway 网关、Spring Cloud alibaba技术栈nacos、sentinel 等分布式微服务架构。 该项目共有6个微服务不考虑集群 gateway网关服务 service-auth 认证服务 service-cart 购物车服务 service-orders 订单服务 service-search 搜索服务 service-web 核心业务基本业务服务 扩展 MQ服务消息队列服务 SMS服务短信服务 本项目使用Nacos作为服务的注册与发现中心以及信息的配置中心。 使用企业级消息队列RabbitMQ进行消息通信、应用解耦、流量控制、流量削峰。 采用企业级搜索引擎Elasticsearch实现商品的在线实时搜索。 该项目的追求目标高并发、高可用、高稳定 。
1.2 技术架构 前端 Node.js 前端的服务器用于启动vue相关的内容。 Vue.js前端使用的是vue相关的技术 Element UI vue的前端框架提供通用的组件减少CSS、特效等编写。 Nuxt.js vue的前端框架用于解决SSR(服务端渲染)问题易于SEO。 运维技术 Nacos服务中心、配置中心 redis数据存储中心 elasticsearch搜索服务中心 docker用于部署项目会将项目部署到linux系统中在通过docker进行具体的部署 canal https://github.com/alibaba/canal 自学 分布式架构 spring boot 项目结构基础 spring cloud alibaba微服务架构 jwt RSA鉴权中心 jwt用于生成token RSA进行加密操作用于辅助生成或校验token。 持久化技术栈 MyBatis Plus用于取代MyBatis、通用Mapper提供更优的工具、性能也有对应提升。 Spring data redis用于简化Java对redis操作 spring data elasticsearch用于简化java对es操作 数据库 mysql免费的 MyCat用于数据库分库分表的。 外部接口 阿里大鱼发送短信 微信支付接口
2. 介绍电商项目 介绍一下你最熟悉的项目 介绍一下最近完成的一个项目
2.1 后台和前台、后端和前端 前台和后台均可以采用前后端分离的方式进行开发也就形成了对应的前端和后端。 后台提供给管理员使用。 电商的后台模块会员管理、分类管理、快报管理、广告管理、商品管理、订单管理、财务管理、报表管理。 前端element ui、element ui admin 后端spring boot、spring cloud、spring cloud alibaba 前台提供给用户使用。目前完成的电商项目只是部分完成了前台部分。 电商的前台模块注册、认证、无限极分类、快报、搜索、购物车、订单、支付。 前端nuxt.js 后端spring cloud alibaba
2.2 Vue全家桶包含哪些技术 vue核心组件主要用于数据的双向绑定。html标签 与 vue data数据 进行 双向绑定 生命周期、计算属性、过滤器、监听器 等 router路由映射作用使访问路径可以映射到对应的vue资源。 请求拦截器、响应拦截器 等 vuex状态管理用于在多个组件之间共享数组。 element ui vue的组件库提供通用的组件内含CSS样式、JS特效 Nuxtvue的框架用于实现SSR技术。 axios第三方ajax框架
2.3 什么是Vuex vuex是什么 vue全家桶的一个组件进行状态管理也就是在组件之间进行数据的共享 vuex组件状态state(死爹)、方法mutations(模特神)、功能actions、模块modules、获得getters 状态state相当于变量用于存放数据 方法mutations用于操作变量对变量的数据进行修改的 功能actions用于调用方法可以进行ajax操作。 如何使用 基本使用 state获得值 this.$store.state.变量 。一般与vue计算属性一起使用。 mutations调用方法 this.$store.commit(方法名, 参数)。与vue method一起使用。 actions调用功能 this.$store.dispatch(功能名, 参数) 映射使用 导入import {mapState, mapMutations, mapActions } from vuex state 编写在计算属性处
computed: {...mapState([变量名]),变量名() { //等效return this.$store.state.变量;},}
mutations编写在普通方法处
methods: {...mapMutations([方法名]),方法名(参数) { //等效this.$store.commit(方法名, 参数)}
}
2.4 什么是SSR SSR服务端渲染技术前端页面静态化技术使ajax的数据与html标签不在分离整合成一个整体。 也就是说将ajax查询的结果处理成静态页面。 nuxt.js 支持SSR技术在页面加载前通过asyncData进行ajax查询并将查询结果合并定data区域页面加载成功后不需要再次查询。相当于静态页面。 用途用于解决SEO搜索引擎优化问题。 搜索引擎提供的爬虫优先爬取静态页面为了提高网站的收录率所以需要将动态页面转换成静态页面。
2.5 电商模式是什么 B2C商家-客户 商家开发一个商城并进行商品售卖。 用户通过商城进行商品的购买。 例如唯品会、乐蜂网 B2B2C商家A-商家B-客户 商家B开发一个商城提供给商家A进行商品的售卖。商家B对商家A有监督等权利。 商家A入驻到商家B开发的商城进行商品的售卖。 客户通过商城进行购买。 例如京东、天猫 C2B客户-商家客户提需求商家进行定制。 例如尚品宅配 O2O线上/线下通过线上进行下单通过线下进行交付。 例如美团外卖、饿了么 C2C客户-客户私人买卖。 例如瓜子二手车、转转、咸鱼。
2.6 枚举类 枚举类的用途限定指定类型的实例 常量类是jdk1.4的技术 枚举类是jdk1.5技术用于取代常量类。如果没有参数定义非常简单。 枚举通过参数设置需要记录的信息
package com.czxy.changgou4.enum_demo;/*** author 桐叔* email liangtongitcast.cn* description*/
public enum Gender {MALE(1,男男),FEMALE(0,女女);private Integer id; //编号private String text; //文本Gender(Integer id, String text) {this.id id;this.text text;}public Integer getId() {return id;}public String getText() {return text;}
}常量类与上面的枚举等效的功能。
package com.czxy.changgou4.enum_demo;/*** author 桐叔* email liangtongitcast.cn* description*/
public class GenderClass {public final static GenderClass MALE new GenderClass(1, 男);public final static GenderClass FEMALE new GenderClass(0, 女);private Integer id; //编号private String text; //文本public GenderClass(Integer id, String text) {this.id id;this.text text;}public Integer getId() {return id;}public String getText() {return text;}
}测试
package com.czxy.changgou4.enum_demo;/*** author 桐叔* email liangtongitcast.cn* description*/
public class TestGender {public static void main(String[] args) {System.out.println(Gender.MALE.getId());System.out.println(GenderClass.FEMALE.getText());}
}2.7 elasticsearch相关 elasticsearch的原理 将数据保存到es中时es会对数据进行分词。 每一个分词进行编号在进行查询时通过分词找到对应的编号然后通过编号从索引库中找到对应的数据。 此过程就是原理此原理称为“倒排索引” 为什么要使用elasticsearch 数据库mysql不能分词es可以进行分词搜索。 数据库可以对指定的字段进行模糊查询也就是某个字段 es进行全文分词检索。比mysql更灵活。 es专业搜索可以处理海量的数据且速度很快。电商项目有海量的商品需要es进行搜索。 为什么要使用IK分词器 默认es对单字进行分词。 实际需要时根据词组进行分词。需要特定的中文分词器。
2.8 gateway网关相关 gateway网关的功能网关的作用 动态路由 负载均衡 鉴权 2.9 nacos相关 nacos的作用 微服务的注册中心可以通过服务的名字获得对应服务位置 微服务的配置中心将yml或properties配置文件中的内容抽取到nacos中通过修改nacos相当于修改yml或properties文件。 为什么需要nacos 微服务架构都需要一个注册中心管理所有的微服务。方便通过服务名称获得每一个服务的真实的IP地址端口号。项目之间只需要记录服务名即可服务的真实地址和端口号可以随意改变。 需要给自己的微服务选择一个注册中心。 常见的注册中心nacos、eureka、dubbo的zookeeper 等 nacos是alibaba提供额技术支持经历过双十一的实战考验优先选择。
2.10 定时任务
什么是SpringTask SpringTask 是一个定时任务组件。 可以在指定的时间周期内完成指定的任务。 一般情况采用的是cron表达式。
Scheduled(cron “0-5 * * ? * *”)
cron表达式 分7部分秒 分 时 日期 月 周 年? 常用6部分秒 分 时 日期 月 周 且“日期”和“周”存在冲突问题需要忽略其中一个使用?。 , 或例如1,2,3 - 至例如1-5 / 每例如0/5 * 任意 2.11 电商术语 SKU、SPU SKUstock keeping unit(库存量单位)进出库的最小单位不能分隔。也就是具体的一个产品。 SPUStandard Product Unit(标准产品单位一组可复用产出特性相当于一个小的分类。 PV、UV PVPage View 页面浏览量每访问一个页面就记录一次同一个用户同一个页面访问多次也记录多次。访问的累积量。 UVunique visitor 独立房客同一个IP地址在同一天内访问的次数。
3 项目中的业务
3.1 注册业务 为什么使用验证码 防止用户的恶意点击 防止程序恶意访问 验证码有几种形式 静态图片验证码jpeg图 动态图片验证码gif图 邮件验证码 短信验证码 特殊验证码滑动图片部分、9宫格、选择若干汉字 等 验证码是否有有效时长如果有是多久 有一般5分钟 在后端存放到redis中有效时长。 为什么使用倒计时时长多久 防止用户恶意点击、误点击 短信存在延迟需要有一个接收的时间 时长一般为60秒不建议太长用户不乐意等待 减少对服务器的访问次数从而降低服务器请求压力 描述一下实现倒计时的基本思路 一共需要使用3个变量btnDisabled、seconds、timer seconds变量用于进行倒计时如果为零将重置所有状态 btnDisabled变量用于控制按钮是否可以倒计时阶段不能用 timer变量用于记录轮询当倒计时为零时停止轮询。 倒计时结束后验证码是否仍有效 有效倒计时为60秒发送验证码时在redis中存5分钟此时仍有效。 倒计时结束后是否还可以发送验证码 可以60秒倒计时后按钮就可以点击了。 短信发送失败的原因及其解决方案 阿里大鱼余额不足无法发送。检查余额及时充钱。 短信服务没有响应。检查对应短信服务是否可以访问。 第三方软件不可用。检查redis、mq等是否可用 前端ajax没有发送成功。检查ajax路径、参数等前端没有绑定ajax Redis的数据类型有哪些 redis有5种数据类型 string类型字符串在redis最常用的类型可以存放任意数据通常转换成json即可。一键一值。 list有序集合一键多值值可以重复。 set无序一键多值值不可以重复。 zset有序不可重复的集合。一键多值。 hash键值对 验证码如何在redis唯一标识的是否还有其他方案 需要用户填写用户名/手机号redis唯一标识固定串手机号 或 固定串用户名 弊端用户没有填写手机号前不能点击获得验证码的。在用户填写验证码后失去焦点时进行ajax请求 常见方案 每一个用户第一次访问页面时给其分配一个随机数记录再浏览器端cookie、localStorage 之后每次访问都将携带该随机数用随机数表示当前用户。
3.2 权限任务业务 权限认证使用的框架是什么 JWT JSON Web Tokens 目前最流行的跨域身份验证解决方案 JWT的理解JWT鉴权的流程 加密方式有哪些 Base64使用64个可打印字符来表示二进制数据从而进行数据的加密和解密。 MD5 Message Digest Algorithm 消息摘要算法 任意长度的数据字符串转化成短小的固定长度的值 SHA Secure Hash Algorithm安全散列算法 RSA一种非对称加密算法需要一对密钥一个用于加密另一个用于解密。 登录成功后用户信息如何保存 在微服务系统中保存sessionStorage中 如果数据存放到vuex中如何解决刷新页面数据丢失的问题 方案1不是公共组件页面在pages目录下可以nuxt.js提供 fetch进行操作。 方案2是公共组件组件在components目录下借助第三方进行存储cookie、localStorage、sessionStorage 选择1sessionStorage存放数据如果vuex中没有将sessionStorage同步过去。 选择2vuex中actions模块就可以发送ajax从而同步数据。 白名单是什么如果使用 白名单中的路径无需鉴权校验可以直接放行。
3.3 搜索业务 elastisearch是如何搜索的 首先需要创建索引 然后springboot-data-elasticsearch提供了丰富的API进行查找所有、分页查找、排序 还可以直接编写方法名根据方法名搜索 如果还不能满足需求还可以使用NativeSearchQueryBuilder进行自定义查询 withQuery 条件查询通过 boolQueryBuilder进行组合查询 matchQuery分词查找 termQuery: 精确匹配 rangeQuery范围搜索 withSort 排序查询 withPageable 分页查询 项目中的搜索业务是如何实现的 电商项目中搜索商品我们实现了根据三级分类搜索、关键字搜索同时根据品牌、规格和规格选项、价格范围、销量降序、价格升序/降序、评论降序、上架时间降序等等条件进行组合搜索 elasticsearch中的数据来自哪里如何存进去的 elasticsearch中的数据会保存两份一份是来自mysql一份是来自elasticsearch 代码同步将mysql中的数据同步到elasticsearch中 其他方式canal
3.4 购物车业务 购物车业务是商城非常核心的业务之一跟购物车相关的功能有哪些 加入购物车 修改购物车商品数量 修改购物车商品打钩状态 删除购物车中的商品 为什么使用localStoragelocalStorage的优势有哪些劣势 localStorage的存储量比cookie大突破了cookie4k的限制 localStorage属于永久性直接存储到本地相当于一个前端页面的数据库相比于 cookie 可以节约带宽 劣势 浏览器的大小不统一并且在 IE8 以上的 IE 版本才支持 localStorage 这个属性。 目前所有的浏览器中都会把localStorage的值类型限定为string类型这个在对我们日常比较常见的JSON对象类型需要一些转换。 localStorage在浏览器的隐私模式下面是不可读取的。 localStorage本质上是对字符串的读取如果存储内容多的话会消耗内存空间会导致页面变卡。 localStorage和sessionStorage的区别 localStorage 本地存储属于永久性。只要浏览器不清空浏览器缓存数据就可以长期保存。 sessionStorage 会话存储属于临时存储。浏览器端会话结束数据就被清空。 为什么登录的情况下将数据放入redis而不是放入mysql redis的优势是读写速度都快写入mysql需要更多的时间并发能力还没有redis强。 对于加入购物车的功能操作很频繁可以通过redis快速的写入、修改、获取符合业务需求
3.5 订单业务 下单的业务是啥项目如何实现下单功能的下单流程是啥 页面点击提交按钮此时后端下单就开始执行了流程中需要处理的业务非常多 第一个需要生成订单的编号考虑到分布式系统订单量庞大如何防止订单编号重复呢我们采用了雪花算法雪花算法是推特开源的分布式ID生成器在高并发场景下可以有效的保证id唯一 第二个需要根据地址编号addressId发起远程调用请求address的详细信息在我们的订单表中我们是保存了每个订单的详细收货地址信息的为什么订单需要重复保存收获地址信息呢不是保存地址编号呢因为地址信息是可以修改的如果保存的是地址编号后期地址信息发生改变的话我这个订单的地址信息也就发生了改变这与当时下单需要寄送的地址是冲突的 第三个获取token解析userId根据userId去redis中取出数据。因为下单的商品数据来自redis下单直接将redis中购物车中打钩的商品数据保存为订单商品 第四个保存订单、保存订单商品数据。 第五个扣减库存包括mysql、elasticsearch、redis下单成功对于mysql需要修改sku的库存信息对于elasticsearch需要修改库存信息对于redis删除已经下单成功的商品信息 第六个对于第四个业务和第五个业务要么全部成功要么全部失败在SpringCloud微服务架构下涉及到多个服务间的业务调用所以我们采用了分布式事务seata来保证数据的一致性和完整性 事务的特性 什么是事务 在一组(ABCD)业务逻辑操作中要么全部成功要么全部失败。 事务有哪些特性 ACID 4个特性 原子性一个事务是一个不可分割的整体 一致性一个事务前后数据时一致性的也称为数据完整性。 隔离性两个事务之间的并发访问问题 持久性事务一旦操作不能再改变。 隔离性有哪些问题 脏读一个事务读到了另一个事务没有提交的数据 不可重复读一个事务读到了另一个事务已经提交的数据更新 虚读/幻读一个事务读到了另一个事务已经提交的数据添加理论信息 如果解决隔离性的问题 采用隔离级别来进行问题的解决。共4种隔离级别 read uncommitted 读未提交一个事务读到了另一个事务没有提交的数据。 解决了0个问题存在脏读、不可重复读、虚读等3个问题。 read commmitted 读已提交一个事务读到了另一个事务已经提交的数据 解决了脏读等1个问题存在不可重复读、虚读等2个问题。 repeatable read 可重复读在一个事务中读到的数据时一致的。 解决了脏读、不可重复读等2个问题存在虚读等1个问题。 serializable 串行化单事务一次只能有一个事务。 解决了脏读、不可重复读、虚读等3个问题存在0个问题。 隔离级别的安全与性能对比 安全read uncommitted read commmitted repeatable read serializable 性能read uncommitted read commmitted repeatable read serializable 常见数据库的默认隔离级别 mysqlrepeatable read Oracleread commmitted 分布式事务事务模型 分布式事务的四种模式XA 、AT、TCC、Saga、 XA模式基于XA协议的两阶段提交 优点事务的强一致性满足ACID原则。常用数据库都支持实现简单。 缺点因为一阶段需要锁定数据库资源等待二阶段结束才释放性能较差。 AT模式是一种无侵入的分布式事务解决方案。 阿里seata框架实现了该模式 优点 一阶段完成直接提交事务释放数据库资源性能比较好 利用全局锁实现读写隔离 没有代码侵入框架自动完成回滚和提交 缺点 两阶段之间属于软状态属于最终一致可能会引起脏写 框架的快照功能会影响性能但比XA模式要好很多 TCC模式 根据自己的业务场景实现 Try、Confirm 和 Cancel 三个操作补偿机制。 优点 一阶段完成直接提交事务释放数据库资源性能好 相比AT模型无需生成快照无需使用全局锁性能最强 不依赖数据库事务而是依赖补偿操作可以用于非事务型数据库 缺点 有代码侵入需要人为编写try、Confirm和Cancel接口太麻烦 软状态事务是最终一致 需要考虑Confirm和Cancel的失败情况 Saga模式 是长事务解决方案。
3.6 支付业务
电商项目使用的是什么支付是如何完成支付的 微信支付 你还了解哪些支付方式 微信支付 支付支付 银联支付 支付成功的回调是如何调用本地方法的 内网穿透技术
4. 项目中有哪些难点你是如何解决的
4.1 难点1下单业务 涉及到多个多个微服务多个业务的操作需要向订单order 表、订单商品order-goods表新增数据扣减sku的库存、更新elasticsearch的数据、更新redis的数据等等操作 这些操作要么全部成功要么全部失败所有需要采用分布式事务进行控制
4.2 难点2支付业务 微信服务器通知我们的服务器修改订单状态由于开发的时候是内网如何通知呢我查了很多资料最终发现通过内网穿透工具解决 项目后端如何通知项目前端根据订单状态进行页面跳转呢采用websocket以前没有接触过自学了websocket解决了这个问题
4.3 难点3搜索
elasticsearch搜索我们实现类跟京东、淘宝几乎一样的功能搜索条件非常多、需要根据三级分类、关键字、品牌、规格和规格选项、价格排序、销量排序、上架时间排序、评论排序、分页等等功能前后端都要事先功能复杂难度系数大
4.4 难点4权限认证 如何保证用户信息的安全采用MD5SHA加密密码的方式即使数据的用户信息被盗盗用者也无法获取用户的密码信息 如何保证jwt的安全JWT通过撒盐的方式增加破解的难度 如何保证各个微服务的安全通过jwt进行鉴权和授权jwt解析失败无法访问某些微服务
5. 通过这个项目你有哪些收获 第一次做这么大的项目从业务逻辑、代码量都有很多提升 解决bug的能力 接触到了更多的新技术 自学了很多新技术 沟通、合作很重要 文章转载自: http://www.morning.gsjw.cn.gov.cn.gsjw.cn http://www.morning.qnkqk.cn.gov.cn.qnkqk.cn http://www.morning.dpppx.cn.gov.cn.dpppx.cn http://www.morning.ggnjq.cn.gov.cn.ggnjq.cn http://www.morning.qnbzs.cn.gov.cn.qnbzs.cn http://www.morning.kksjr.cn.gov.cn.kksjr.cn http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn http://www.morning.gcrlb.cn.gov.cn.gcrlb.cn http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn http://www.morning.sfwd.cn.gov.cn.sfwd.cn http://www.morning.rtkgc.cn.gov.cn.rtkgc.cn http://www.morning.xhddb.cn.gov.cn.xhddb.cn http://www.morning.cmcjp.cn.gov.cn.cmcjp.cn http://www.morning.qttg.cn.gov.cn.qttg.cn http://www.morning.cbnxq.cn.gov.cn.cbnxq.cn http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn http://www.morning.rckmz.cn.gov.cn.rckmz.cn http://www.morning.cytr.cn.gov.cn.cytr.cn http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn http://www.morning.jbkcs.cn.gov.cn.jbkcs.cn http://www.morning.xdfkrd.cn.gov.cn.xdfkrd.cn http://www.morning.ftcrt.cn.gov.cn.ftcrt.cn http://www.morning.zzqgc.cn.gov.cn.zzqgc.cn http://www.morning.rmxgk.cn.gov.cn.rmxgk.cn http://www.morning.fmrwl.cn.gov.cn.fmrwl.cn http://www.morning.mnlk.cn.gov.cn.mnlk.cn http://www.morning.hgcz.cn.gov.cn.hgcz.cn http://www.morning.sqmbb.cn.gov.cn.sqmbb.cn http://www.morning.qwlml.cn.gov.cn.qwlml.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn http://www.morning.splcc.cn.gov.cn.splcc.cn http://www.morning.ljdtn.cn.gov.cn.ljdtn.cn http://www.morning.dodoking.cn.gov.cn.dodoking.cn http://www.morning.mlffg.cn.gov.cn.mlffg.cn http://www.morning.bkcnq.cn.gov.cn.bkcnq.cn http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn http://www.morning.ygkk.cn.gov.cn.ygkk.cn http://www.morning.daxifa.com.gov.cn.daxifa.com http://www.morning.trwkz.cn.gov.cn.trwkz.cn http://www.morning.mkpkz.cn.gov.cn.mkpkz.cn http://www.morning.grynb.cn.gov.cn.grynb.cn http://www.morning.buyid.com.cn.gov.cn.buyid.com.cn http://www.morning.nyqxy.cn.gov.cn.nyqxy.cn http://www.morning.tfbpz.cn.gov.cn.tfbpz.cn http://www.morning.rnygs.cn.gov.cn.rnygs.cn http://www.morning.dzpnl.cn.gov.cn.dzpnl.cn http://www.morning.ptwrz.cn.gov.cn.ptwrz.cn http://www.morning.deupp.com.gov.cn.deupp.com http://www.morning.ayftwl.cn.gov.cn.ayftwl.cn http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn http://www.morning.ddjp.cn.gov.cn.ddjp.cn http://www.morning.jntcr.cn.gov.cn.jntcr.cn http://www.morning.gl-group.cn.gov.cn.gl-group.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.pwmpn.cn.gov.cn.pwmpn.cn http://www.morning.rshkh.cn.gov.cn.rshkh.cn http://www.morning.rlbfp.cn.gov.cn.rlbfp.cn http://www.morning.lclpj.cn.gov.cn.lclpj.cn http://www.morning.rqmqr.cn.gov.cn.rqmqr.cn http://www.morning.wzjhl.cn.gov.cn.wzjhl.cn http://www.morning.sgbjh.cn.gov.cn.sgbjh.cn http://www.morning.srndk.cn.gov.cn.srndk.cn http://www.morning.dkzwx.cn.gov.cn.dkzwx.cn http://www.morning.fkfyn.cn.gov.cn.fkfyn.cn http://www.morning.sbyhj.cn.gov.cn.sbyhj.cn http://www.morning.fqsxf.cn.gov.cn.fqsxf.cn http://www.morning.nkhdt.cn.gov.cn.nkhdt.cn http://www.morning.ngdkn.cn.gov.cn.ngdkn.cn http://www.morning.cltrx.cn.gov.cn.cltrx.cn http://www.morning.ahscrl.com.gov.cn.ahscrl.com http://www.morning.mbfj.cn.gov.cn.mbfj.cn http://www.morning.kcdts.cn.gov.cn.kcdts.cn http://www.morning.osshjj.cn.gov.cn.osshjj.cn http://www.morning.zlxrg.cn.gov.cn.zlxrg.cn http://www.morning.bswnf.cn.gov.cn.bswnf.cn http://www.morning.xkqjw.cn.gov.cn.xkqjw.cn http://www.morning.snyqb.cn.gov.cn.snyqb.cn http://www.morning.yfwygl.cn.gov.cn.yfwygl.cn http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn