当前位置: 首页 > news >正文

电子商务网站建设合同范本电子商务网站的建设开发工具

电子商务网站建设合同范本,电子商务网站的建设开发工具,长沙网站seo技术厂家,百度做直播和短视频网站1、创建数据库 注意#xff1a;mysql默认字符集为utf8#xff0c;默认排序规则为utf8_general_ci。一般我们也会选择字符集为utf-8 MySQL在5.5.3之后增加了这个utf8mb4的编码#xff0c;utf8mb4完全向下兼容utf8#xff0c;为了节省空间#xff0c;一般情况下使用utf8也就…1、创建数据库 注意mysql默认字符集为utf8默认排序规则为utf8_general_ci。一般我们也会选择字符集为utf-8 MySQL在5.5.3之后增加了这个utf8mb4的编码utf8mb4完全向下兼容utf8为了节省空间一般情况下使用utf8也就够了我这边没有utf8。所以选择了utf8mb4 。 2、建表 若需要整合我们的springSecurity一种是直接使用springSecurity自带的权限架构另外一种是使用我们自己设计的数据架构本文所阐述的就是使用自己设计的RBAC权限架构,因此我们要事先设计好用户权限架构的PDM如下图所示并创建我们的数据库数据库名hyll_springboot以及我们的三张表user、user_role、user_associate_role 接着打开我们的工程新建如下工程的目录 接着在我们的sys包底下新建entity和dao这两个包 同时打开我们的pom.xml引入该工程所需要的所有依赖接着我们的IDEA会弹出一个框我们点击import就自动会去maven给我们下载依赖若你有自己的私有maven则将其指向自己的私有maven若这边有缺少不懂的直接去我的第一章的github上的源代码中自己去copy下来 propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.versionmysql.version5.1.41/mysql.versionguava.version18.0/guava.versionorg.mapstruct.version1.1.0.Final/org.mapstruct.version/propertiesdependencies!-- 集成Druid数据库连接池和监控 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.3/version/dependency!-- 引入mybatis的支持 --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion1.3.1/version/dependency!-- 引入mapstruct的支持 --dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-jdk8/artifactIdversion${org.mapstruct.version}/version/dependencydependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion${org.mapstruct.version}/version/dependency!-- Java EE 6 规范 JSR 330 --dependencygroupIdjavax.inject/groupIdartifactIdjavax.inject/artifactIdversion1/version/dependency!-- 引入json的依赖 classifier必须要加这个是json的jdk的依赖--dependencygroupIdnet.sf.json-lib/groupIdartifactIdjson-lib/artifactIdversion2.4/versionclassifierjdk15/classifier/dependency!-- 开启spring-websocket的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-websocket/artifactId/dependency!-- 开启spring-security的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependency!-- 开启thymeleaf的spring-security的支持 --dependencygroupIdorg.thymeleaf.extras/groupIdartifactIdthymeleaf-extras-springsecurity4/artifactId/dependency!-- 表示对thymeleaf模板不再是用默认的HTML5标准来做严格限制 --dependencygroupIdnet.sourceforge.nekohtml/groupIdartifactIdnekohtml/artifactIdversion1.9.22/version/dependency!-- 添加对spring-redis的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-redis/artifactIdversion1.3.8.RELEASE/version/dependency!-- 添加对spring-cache的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependencydependencygroupIdnet.sf.ehcache/groupIdartifactIdehcache/artifactId/dependency!-- 添加对spring-data-rest的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-rest/artifactId/dependency!-- 添加对spring-jpa的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependencydependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion${guava.version}/version/dependency!-- 添加对thymeleaf的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependency!-- 添加对websocket的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-websocket/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactIdversion1.3.5.RELEASE/versionscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional!-- optionaltrue,依赖不会传递该项目依赖devtools之后依赖myboot项目的项目如果想要使用devtools需要重新引入 --/dependencydependencygroupIdcom.xiaoleilu/groupIdartifactIdhutool-all/artifactIdversion3.0.9/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.6.1/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.6.1/version/dependencydependencygroupIdcom.vaadin.external.google/groupIdartifactIdandroid-json/artifactIdversion0.0.20131108.vaadin1/version/dependency/dependencies同时在我们的entity包底下新建我们刚刚的三个实体 UserRole 的代码部分 package com.example.demo.sys.entity;/*** author lj* version 1.0* date 2023/1/314:18* Description:com.example.demo.sys.entity*/ public class UserRole {private long id;private String name;private String roleName;public long getId() {return id;}public void setId(long id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getRoleName() {return roleName;}public void setRoleName(String roleName) {this.roleName roleName;} } User 代码部分 package com.example.demo.sys.entity;import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails;import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List;/*** author lj* version 1.0* date 2023/1/310:01* Description:com.example.demo.sys.entity*/ public class User implements UserDetails {private int id;private String login;private String password;private String userName;private String address;private String job;private long groupId;private Date birthDate;private String city;private String district;private String province;private String streetAddress;private String state;private String type;private Date lastLoginDate;// 用户角色信息private ListUserRole roles;// 权限集合数据private String roleArray;public int getId() {return id;}public void setId(int id) {this.id id;}public String getLogin() {return login;}public void setLogin(String login) {this.login login;}public void setPassword(String password) {this.password password;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName userName;}public String getAddress() {return address;}public void setAddress(String address) {this.address address;}public String getJob() {return job;}public void setJob(String job) {this.job job;}public long getGroupId() {return groupId;}public void setGroupId(long groupId) {this.groupId groupId;}public Date getBirthDate() {return birthDate;}public void setBirthDate(Date birthDate) {this.birthDate birthDate;}public String getCity() {return city;}public void setCity(String city) {this.city city;}public String getDistrict() {return district;}public void setDistrict(String district) {this.district district;}public String getProvince() {return province;}public void setProvince(String province) {this.province province;}public String getStreetAddress() {return streetAddress;}public void setStreetAddress(String streetAddress) {this.streetAddress streetAddress;}public String getState() {return state;}public void setState(String state) {this.state state;}public String getType() {return type;}public void setType(String type) {this.type type;}public Date getLastLoginDate() {return lastLoginDate;}public void setLastLoginDate(Date lastLoginDate) {this.lastLoginDate lastLoginDate;}public ListUserRole getRoles() {return roles;}public void setRoles(ListUserRole roles) {this.roles roles;}public String getRoleArray() {return roleArray;}public void setRoleArray(String roleArray) {this.roleArray roleArray;}Overridepublic Collection? extends GrantedAuthority getAuthorities() {ListGrantedAuthority auths new ArrayListGrantedAuthority();if (this.getRoles() ! null) {ListUserRole roles this.getRoles();for (UserRole role : roles) {if (role.getName() ! null) {auths.add(new SimpleGrantedAuthority(role.getName()));}}}return auths;}Overridepublic String getPassword() {return null;}Overridepublic String getUsername() {return null;}Overridepublic boolean isAccountNonExpired() {return false;}Overridepublic boolean isAccountNonLocked() {return false;}Overridepublic boolean isCredentialsNonExpired() {return false;}Overridepublic boolean isEnabled() {return false;}/*** 功能描述组装角色数据集合** param roleArray*/public void packagingRoles(String roleArray) {ListUserRole roles new ArrayListUserRole();if (roleArray ! null) {UserRole userRole null;for (String roleId : roleArray.split(,)) {if (!roleId.isEmpty()) {userRole new UserRole();userRole.setId(Long.parseLong(roleId));roles.add(userRole);}}}this.setRoles(roles);}} UserAssociateRole 代码部分 package com.example.demo.sys.entity;/*** author lj* version 1.0* date 2023/1/314:26* Description:com.example.demo.sys.entity*/ public class UserAssociateRole {private int userId;private long roleId;public UserAssociateRole() {super();}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId userId;}public long getRoleId() {return roleId;}public void setRoleId(long roleId) {this.roleId roleId;} } 接着我们在dao包里面创建以下的接口 package com.example.demo.sys.dao;import com.example.demo.sys.entity.User;/*** author lj* version 1.0* date 2023/1/314:54* Description:com.example.demo.sys.dao*/ public interface UserDao {/*** 功能描述:根据账户获取用户信息** param user* return com.example.demo.sys.entity.User* author: LJ* date: 2023/1/3*/User findByLogin(String user); } 接着我们引入我们的mybatis配置以及我们的security和快速切换环境配置 首先在我们的application.properties底下增加以下配置 spring.profiles.activedev#配置放行的目录和方法 security.ignored/api/*,/css/*,/js/*,/images/*,/fonts/*,/font-awesome/* #表示对thymeleaf模板不再是用默认的HTML5标准来做严格限制 spring.thymeleaf.mode LEGACYHTML5#配置mybatis的扫描的包的文件的入口 mybatis.config-locationsclasspath:mybatis/mybatis-config.xml mybatis.mapper-locationsclasspath:mybatis/mapper/*.xml 同时在我们的resources目录底下创建一个目录mybatis并在该目录底下创建一个文件mybatis-config.xml和mapper目录如下所示 mybatis-config.xml代码如下所示 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd configurationtypeAliasestypeAlias aliasInteger typejava.lang.Integer /typeAlias aliasLong typejava.lang.Long /typeAlias aliasHashMap typejava.util.HashMap /typeAlias aliasLinkedHashMap typejava.util.LinkedHashMap /typeAlias aliasArrayList typejava.util.ArrayList /typeAlias aliasLinkedList typejava.util.LinkedList //typeAliases /configuration同时在我们的resource目录底下创建我们的application-dev.properties文件信息如下 server.port 8080 #数据库连接配置 spring.datasource.driverClassNamecom.mysql.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3306/hyll_springboot?characterEncodingutf-8 spring.datasource.usernameroot spring.datasource.password111111接着我们在resource/mapper目录底下创建一个mybatis_user.xml内容如下 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd configurationtypeAliasestypeAlias aliasInteger typejava.lang.Integer /typeAlias aliasLong typejava.lang.Long /typeAlias aliasHashMap typejava.util.HashMap /typeAlias aliasLinkedHashMap typejava.util.LinkedHashMap /typeAlias aliasArrayList typejava.util.ArrayList /typeAlias aliasLinkedList typejava.util.LinkedList //typeAliases /configuration同时在我们的resource目录底下创建我们的application-dev.properties文件信息如下 server.port 8080 #数据库连接配置 spring.datasource.driverClassNamecom.mysql.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3306/hyll_springboot?characterEncodingutf-8 spring.datasource.usernameroot spring.datasource.password111111接着我们在resource/mapper目录底下创建一个mybatis_user.xml内容如下 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.sys.dao.UserDao!-- 包含角色信息的map --resultMap typecom.example.demo.sys.entity.User idUserLoginMapid propertyid columnid/result propertylogin columnlogin/result propertypassword columnpassword/result propertyuserName columnuser_name/result propertyaddress columnaddress/result propertyjob columnjob/result propertygroupId columngroup_id/result propertybirthDate columnbirth_date/result propertycity columncity/result propertydistrict columndistrict/result propertyprovince columnprovince/result propertystreetAddress columnstreet_address/result propertystate columnstate/result propertytype columntype/result propertylastLoginDate columnlast_login_date/collection propertyroles ofTypecom.example.demo.sys.entity.UserRole javaTypejava.util.ArrayListresult columnuser_role_id propertyid jdbcTypeVARCHAR /result columnname propertyname jdbcTypeVARCHAR /result columnrole_name propertyroleName jdbcTypeVARCHAR //collection/resultMap!-- 根据账号来获取用户信息 --select idfindByLogin parameterTypejava.lang.String resultMapUserLoginMapselect u.*,ur.id as user_role_id,ur.name,ur.role_name from user u inner join user_associate_role uar on u.id uar.user_id inner join user_role ur on uar.role_id ur.id where u.login #{login}/select/mapper接着开始我们的springsecurity的配置找到我们的config包在该包底下我们创建一个security和mybatis包如下所示 接着在我们的security增加以下三个类分别是CustomPasswordEncoder密码加密类CustomUserService登陆逻辑重写类WebSecurityConfigsecurity实现配置类 注意maven的版本如果版本高的话就没有Md5PasswordEncoder的依赖 package com.example.demo.common.config.security;import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.authentication.encoding.Md5PasswordEncoder;/*** 功能描述:spring-security登陆的密码进行MD5加密传到数据库** author: LJ* date: 2023/1/3* return*/public class CustomPasswordEncoder implements PasswordEncoder {Overridepublic String encode(CharSequence rawPassword) {Md5PasswordEncoder encoder new Md5PasswordEncoder();return encoder.encodePassword(rawPassword.toString(), hyll);}Overridepublic boolean matches(CharSequence rawPassword, String encodedPassword) {Md5PasswordEncoder encoder new Md5PasswordEncoder();return encoder.isPasswordValid(encodedPassword, rawPassword.toString(), hyll);} } 注意你得密码是经过md5加密得所以比如我得密码是1那么加密后得a2098ac42fe033111a1f678b8d621899这个填入到数据库中对应user表得密码中你可以根据自己的密码进行加密加密后的结果放到数据库中 public static void main(String[] args) {Md5PasswordEncoder encoder new Md5PasswordEncoder();System.out.println(encoder.encodePassword(1, hyll));System.out.println( encoder.isPasswordValid(a2098ac42fe033111a1f678b8d621899,1, hyll));}package com.example.demo.common.config.security;import com.example.demo.sys.dao.UserDao; import com.example.demo.sys.entity.User; import org.springframework.security.authentication.LockedException; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException;import javax.annotation.Resource;/*** author lj* version 1.0* date 2023/1/510:51* Description:com.example.demo.common.config.security*/ public class CustomUserService implements UserDetailsService {Resourceprivate UserDao userDao;Overridepublic UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {User user userDao.findByLogin(s);if (user null) {throw new UsernameNotFoundException(用户名不存在);} // 自定义错误的文章说明的地址http://blog.csdn.net/z69183787/article/details/21190639?locationNum1fps1if (user.getState().equalsIgnoreCase(0)) {throw new LockedException(用户账号被冻结无法登陆请联系管理员);}return user;} } package com.example.demo.common.config.security;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder;/*** author lj* version 1.0* date 2023/1/513:34* 实现Security的配置*/ Configuration EnableGlobalMethodSecurity(prePostEnabled true) //当我们想要开启spring方法级安全时只需要在任何 Configuration实例上使用 EnableGlobalMethodSecurity 注解就能达到此目的 public class WebSecurityConfig extends WebSecurityConfigurerAdapter {BeanUserDetailsService customUserService() {return new CustomUserService();}BeanPasswordEncoder passwordEncoder() {return new CustomPasswordEncoder();}Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(customUserService()).passwordEncoder(passwordEncoder());}Overrideprotected AuthenticationManager authenticationManager() throws Exception {return super.authenticationManager();}/*** 功能描述: csrf().disable()为了关闭跨域访问的限制若不关闭则websocket无法与后台进行连接** param http* return void* author: LJ* date: 2023/1/5*/Overrideprotected void configure(HttpSecurity http) throws Exception {http.headers().frameOptions().disable();http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().formLogin().loginPage(/login).defaultSuccessUrl(/main).failureUrl(/login?errortrue).permitAll().and().logout().logoutSuccessUrl(/login).permitAll();} } 接着我们在mybatis包底下新增MyBatisConfig 配置类如下所示 MapperScan扫描的是我们的dao接口的存放路径因此此处大家一定要注意自己的dao包的路径是否正确否则会导致调用dao方法出错】 package com.example.demo.common.config.mybatis;import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration;/*** author lj* version 1.0* date 2023/1/2520:15* Description:com.example.demo.common.config.mybatis*/ Configuration MapperScan(com.example.demo.*.dao) public class MyBatisConfig { } 接着在我们的config目录底下创建我们的WebMvcConfig配置文件如下所示 package com.example.demo.common.config;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/*** author lj* version 1.0* date 2023/1/2520:21* Description:com.example.demo.common.config*/ Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter {/*** 重写方法描述实现在url中输入相应的地址的时候直接跳转到某个地址** param registry*/Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController(/login).setViewName(login);registry.addViewController(/main).setViewName(main);registry.addViewController(/error).setViewName(error);}}
文章转载自:
http://www.morning.yfnhg.cn.gov.cn.yfnhg.cn
http://www.morning.tsnwf.cn.gov.cn.tsnwf.cn
http://www.morning.grtwn.cn.gov.cn.grtwn.cn
http://www.morning.kqpq.cn.gov.cn.kqpq.cn
http://www.morning.stph.cn.gov.cn.stph.cn
http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn
http://www.morning.qqnh.cn.gov.cn.qqnh.cn
http://www.morning.fcftj.cn.gov.cn.fcftj.cn
http://www.morning.yrskc.cn.gov.cn.yrskc.cn
http://www.morning.mjbkp.cn.gov.cn.mjbkp.cn
http://www.morning.yongkangyiyuan-pfk.com.gov.cn.yongkangyiyuan-pfk.com
http://www.morning.zljqb.cn.gov.cn.zljqb.cn
http://www.morning.mxptg.cn.gov.cn.mxptg.cn
http://www.morning.kzyr.cn.gov.cn.kzyr.cn
http://www.morning.mkrqh.cn.gov.cn.mkrqh.cn
http://www.morning.dpsyr.cn.gov.cn.dpsyr.cn
http://www.morning.kqrql.cn.gov.cn.kqrql.cn
http://www.morning.rqdx.cn.gov.cn.rqdx.cn
http://www.morning.yyzgl.cn.gov.cn.yyzgl.cn
http://www.morning.znkls.cn.gov.cn.znkls.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn
http://www.morning.kpbgp.cn.gov.cn.kpbgp.cn
http://www.morning.crrmg.cn.gov.cn.crrmg.cn
http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn
http://www.morning.gsrh.cn.gov.cn.gsrh.cn
http://www.morning.krdxz.cn.gov.cn.krdxz.cn
http://www.morning.mzjbz.cn.gov.cn.mzjbz.cn
http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn
http://www.morning.pffqh.cn.gov.cn.pffqh.cn
http://www.morning.thxfn.cn.gov.cn.thxfn.cn
http://www.morning.mkzdp.cn.gov.cn.mkzdp.cn
http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn
http://www.morning.kljhr.cn.gov.cn.kljhr.cn
http://www.morning.ynryz.cn.gov.cn.ynryz.cn
http://www.morning.bswxt.cn.gov.cn.bswxt.cn
http://www.morning.hwsgk.cn.gov.cn.hwsgk.cn
http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn
http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn
http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn
http://www.morning.qymqh.cn.gov.cn.qymqh.cn
http://www.morning.zxqqx.cn.gov.cn.zxqqx.cn
http://www.morning.nckzt.cn.gov.cn.nckzt.cn
http://www.morning.xhfky.cn.gov.cn.xhfky.cn
http://www.morning.rpwck.cn.gov.cn.rpwck.cn
http://www.morning.tmlhh.cn.gov.cn.tmlhh.cn
http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn
http://www.morning.cbnxq.cn.gov.cn.cbnxq.cn
http://www.morning.bpmfr.cn.gov.cn.bpmfr.cn
http://www.morning.txysr.cn.gov.cn.txysr.cn
http://www.morning.wfyqn.cn.gov.cn.wfyqn.cn
http://www.morning.nwjzc.cn.gov.cn.nwjzc.cn
http://www.morning.nsppc.cn.gov.cn.nsppc.cn
http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn
http://www.morning.litao7.cn.gov.cn.litao7.cn
http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn
http://www.morning.ycgrl.cn.gov.cn.ycgrl.cn
http://www.morning.bzcjx.cn.gov.cn.bzcjx.cn
http://www.morning.lznqb.cn.gov.cn.lznqb.cn
http://www.morning.qczjc.cn.gov.cn.qczjc.cn
http://www.morning.nwzcf.cn.gov.cn.nwzcf.cn
http://www.morning.rwjh.cn.gov.cn.rwjh.cn
http://www.morning.nwjd.cn.gov.cn.nwjd.cn
http://www.morning.gkfwp.cn.gov.cn.gkfwp.cn
http://www.morning.lkkgq.cn.gov.cn.lkkgq.cn
http://www.morning.lpskm.cn.gov.cn.lpskm.cn
http://www.morning.mtdfn.cn.gov.cn.mtdfn.cn
http://www.morning.zqbrw.cn.gov.cn.zqbrw.cn
http://www.morning.gfmpk.cn.gov.cn.gfmpk.cn
http://www.morning.wqgr.cn.gov.cn.wqgr.cn
http://www.morning.lxjxl.cn.gov.cn.lxjxl.cn
http://www.morning.gydth.cn.gov.cn.gydth.cn
http://www.morning.txzqf.cn.gov.cn.txzqf.cn
http://www.morning.rpkg.cn.gov.cn.rpkg.cn
http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn
http://www.morning.jbblf.cn.gov.cn.jbblf.cn
http://www.morning.yjxfj.cn.gov.cn.yjxfj.cn
http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn
http://www.morning.qnqt.cn.gov.cn.qnqt.cn
http://www.morning.wrbnh.cn.gov.cn.wrbnh.cn
http://www.tj-hxxt.cn/news/278558.html

相关文章:

  • 网站开发的现状及研究意义wordpress 文章转页面
  • 公司网页网站建设 ppt模板下载wordpress主题中文字体插件
  • 网站备案密码客户说做网站价格高
  • 做静态网站徐州列表网
  • 南宁定制网站建设桂林漓江旅游
  • 专业的内蒙古网站建设长沙做php的网站建设
  • dw网站大学生代做抖音代运营协议合同范本免费下载
  • 点击网站首页域名又添加一个wordpress 标签seo插件
  • 网站外部链接怎么做建设一个直播网站多少钱
  • 养殖推广网站怎么做灵台县门户网
  • 做网站的怎么跑业务怎么清理网站后门文件
  • 哪个网站做照片书最好看鲜花网站建设店
  • 西安那些做网站的公司电影资源网站开发
  • 外贸网站建设预算深圳正规网站开发团队
  • 数据库网站建设软件企业查询天眼查免费
  • 网页设计网站大连金普新区
  • 社交网站开发建设局工程网站
  • 专业的网站建设公司电话网站建设毕业设计综述
  • 公司网站排名外贸企业网站源码下载
  • 网站设计原则怎样做招嫖网站
  • 成都古怪科技网站建设公司深圳自定义网站开发
  • 网站建设与维护流程图企业网络拓扑图的设计方案
  • WordPress P站邹城建网站
  • 网站中数据查询如何做移动网站开发与维护
  • 网站开发环境搭建章节教材书网页设计期末作品代码
  • 青岛网站建设费用福田区罗湖区盐田区
  • 网站建设表的设计外链火
  • 笔记本网站开发背景海南省建设局网站搜索
  • 建设网站你认为需要注意哪些问题贵阳app定制开发
  • 石家庄学做网站建设培训wordpress 说明书