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

网站建设需要什么证书网络营销有什么特点

网站建设需要什么证书,网络营销有什么特点,唐山市里做网站的,做网站用哪个工具背景 大学生租房系统设计的目的是建立一个高效的平台,采用简洁高效的Java语言与Mysql数据库等技术,设计和开发了本大学生租房系统设计。该系统主要实现了用户和房主通过系统注册用户,登录系统后能够编辑自己的个人信息、查看首页&#xff0c…

背景

大学生租房系统设计的目的是建立一个高效的平台,采用简洁高效的Java语言与Mysql数据库等技术,设计和开发了本大学生租房系统设计。该系统主要实现了用户和房主通过系统注册用户,登录系统后能够编辑自己的个人信息、查看首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等,还可以对后台进行操作,以及管理员可以进行首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等功能的管理。计算机技术在现代管理中的应用,使计算机成为用户应用现代技术的重要工具,能够有效的解决获取信息便捷化、全面化的问题,提高效率。

系统主要包括首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等功能的操作系统,管理员是整个系统的核心。而用户登录到系统前台,可以对首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等进行查看以及其他的操作。

相关技术

SpringBoot

SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原本的Spring中由于随着项目的扩大导入的jar包数量越来越大,随之出现了jar包版本之间的兼容性问题,而此时SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性问题得到了很好的解决。

SpringBoot可以看做是Spring的加强版本,但实质上都是Spring的相关技术,有了这些优秀的开源框架,程序员在开发过程中将事半功倍。

vue

Vue是一套用于构建用户界面的渐进式的js框架,发布于2014年2月。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库( 如: vue-router,vue-resource,vuex)或既有项目整合。

系统设计

根据大学生租房系统的功能需求,进行系统设计。

前台功能:进入系统可以实现首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等功能进行操作;
后台主要是管理员,房主和用户,主要功能包括首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等。

系统对这些功能进行整合,产生的功能结构图如下:

在这里插入图片描述

数据库设计

ER图是由实体及其关系构成的图,通过E/R图可以清楚地描述系统涉及到的实体之间的相互关系。在系统中对一些主要的几个关键实体如下图:

1.用户注册实体
用户注册实体包括用户名,密码,确认密码,姓名,手机,身份证等属性。用户注册实体图如图4-2所示:

在这里插入图片描述
2.房屋信息实体
房屋信息实体包括房屋类型,地区,位置,朝向,楼层,楼号,房屋面积,房屋设施,房屋状态,房屋租金,房主账号,房主姓名等属性。房屋信息实体图如图4-3所示:

在这里插入图片描述
数据库概念结构设计后,可以数据库概念转化实际的数据模型,这是一种数据库的逻辑结构,就是将概念结构与支持数据库管理系统的模型相符合。具体的表设计如下所示。此处只展示部分表。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

系统详细设计

系统功能模块

大学生租房系统,在系统首页可以查看首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等内容,并进行详细操作。
在这里插入图片描述
房屋信息,在房屋信息页面可以查看房屋类型,地区,位置,朝向,楼层,楼号,房屋面积,房屋设施,房屋状态,房屋租金,房主账号,房主姓名等内容,并可以进行预约看房,定金留房等操作。

在这里插入图片描述

管理员模块

管理员登录系统后,可以对首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等功能进行相应的操作。

在这里插入图片描述
房主管理,在房主管理页面可以对索引,房主账号,房主姓名,性别,照片,联系电话,身份证等内容进行详情,修改和删除等操作。

在这里插入图片描述

代码实现

由于代码较多,此处只展示部分代码。

房屋信息接口

/*** 房屋信息* 后端接口* @author * @email * @date 2022-04-10 15:56:44*/
@RestController
@RequestMapping("/fangwuxinxi")
public class FangwuxinxiController {@Autowiredprivate FangwuxinxiService fangwuxinxiService;@Autowiredprivate StoreupService storeupService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {fangwuxinxi.setFangzhuzhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( FangwuxinxiEntity fangwuxinxi){EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( fangwuxinxi, "fangwuxinxi")); return R.ok().put("data", fangwuxinxiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(FangwuxinxiEntity fangwuxinxi){EntityWrapper< FangwuxinxiEntity> ew = new EntityWrapper< FangwuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( fangwuxinxi, "fangwuxinxi")); FangwuxinxiView fangwuxinxiView =  fangwuxinxiService.selectView(ew);return R.ok("查询房屋信息成功").put("data", fangwuxinxiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){FangwuxinxiEntity fangwuxinxi = fangwuxinxiService.selectById(id);fangwuxinxi.setClicktime(new Date());fangwuxinxiService.updateById(fangwuxinxi);return R.ok().put("data", fangwuxinxi);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){FangwuxinxiEntity fangwuxinxi = fangwuxinxiService.selectById(id);fangwuxinxi.setClicktime(new Date());fangwuxinxiService.updateById(fangwuxinxi);return R.ok().put("data", fangwuxinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){fangwuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangwuxinxi);fangwuxinxiService.insert(fangwuxinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){fangwuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangwuxinxi);fangwuxinxiService.insert(fangwuxinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(fangwuxinxi);fangwuxinxiService.updateById(fangwuxinxi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){fangwuxinxiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<FangwuxinxiEntity> wrapper = new EntityWrapper<FangwuxinxiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {wrapper.eq("fangzhuzhanghao", (String)request.getSession().getAttribute("username"));}int count = fangwuxinxiService.selectCount(wrapper);return R.ok().put("count", count);}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi, HttpServletRequest request,String pre){EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();Map<String, Object> newMap = new HashMap<String, Object>();Map<String, Object> param = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicktime");params.put("order", "desc");PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));return R.ok().put("data", page);}/*** 协同算法(按收藏推荐)*/@RequestMapping("/autoSort2")public R autoSort2(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){String userId = request.getSession().getAttribute("userId").toString();String inteltypeColumn = "fangwuleixing";List<StoreupEntity> storeups = storeupService.selectList(new EntityWrapper<StoreupEntity>().eq("type", 1).eq("userid", userId).eq("tablename", "fangwuxinxi").orderBy("addtime", false));List<String> inteltypes = new ArrayList<String>();Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());List<FangwuxinxiEntity> fangwuxinxiList = new ArrayList<FangwuxinxiEntity>();//去重if(storeups!=null && storeups.size()>0) {for(StoreupEntity s : storeups) {fangwuxinxiList.addAll(fangwuxinxiService.selectList(new EntityWrapper<FangwuxinxiEntity>().eq(inteltypeColumn, s.getInteltype())));}}EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();params.put("sort", "id");params.put("order", "desc");PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));List<FangwuxinxiEntity> pageList = (List<FangwuxinxiEntity>)page.getList();if(fangwuxinxiList.size()<limit) {int toAddNum = (limit-fangwuxinxiList.size())<=pageList.size()?(limit-fangwuxinxiList.size()):pageList.size();for(FangwuxinxiEntity o1 : pageList) {boolean addFlag = true;for(FangwuxinxiEntity o2 : fangwuxinxiList) {if(o1.getId().intValue()==o2.getId().intValue()) {addFlag = false;break;}}if(addFlag) {fangwuxinxiList.add(o1);if(--toAddNum==0) break;}}}page.setList(fangwuxinxiList);return R.ok().put("data", page);}}

预约看房

/*** 预约看房* 后端接口* @author * @email * @date 2022-04-10 15:56:44*/
@RestController
@RequestMapping("/yuyuekanfang")
public class YuyuekanfangController {@Autowiredprivate YuyuekanfangService yuyuekanfangService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,YuyuekanfangEntity yuyuekanfang,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {yuyuekanfang.setFangzhuzhanghao((String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {yuyuekanfang.setYonghuming((String)request.getSession().getAttribute("username"));}EntityWrapper<YuyuekanfangEntity> ew = new EntityWrapper<YuyuekanfangEntity>();PageUtils page = yuyuekanfangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuyuekanfang), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){EntityWrapper<YuyuekanfangEntity> ew = new EntityWrapper<YuyuekanfangEntity>();PageUtils page = yuyuekanfangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuyuekanfang), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( YuyuekanfangEntity yuyuekanfang){EntityWrapper<YuyuekanfangEntity> ew = new EntityWrapper<YuyuekanfangEntity>();ew.allEq(MPUtil.allEQMapPre( yuyuekanfang, "yuyuekanfang")); return R.ok().put("data", yuyuekanfangService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(YuyuekanfangEntity yuyuekanfang){EntityWrapper< YuyuekanfangEntity> ew = new EntityWrapper< YuyuekanfangEntity>();ew.allEq(MPUtil.allEQMapPre( yuyuekanfang, "yuyuekanfang")); YuyuekanfangView yuyuekanfangView =  yuyuekanfangService.selectView(ew);return R.ok("查询预约看房成功").put("data", yuyuekanfangView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){YuyuekanfangEntity yuyuekanfang = yuyuekanfangService.selectById(id);return R.ok().put("data", yuyuekanfang);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){YuyuekanfangEntity yuyuekanfang = yuyuekanfangService.selectById(id);return R.ok().put("data", yuyuekanfang);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){yuyuekanfang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yuyuekanfang);yuyuekanfangService.insert(yuyuekanfang);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){yuyuekanfang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yuyuekanfang);yuyuekanfangService.insert(yuyuekanfang);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){//ValidatorUtils.validateEntity(yuyuekanfang);yuyuekanfangService.updateById(yuyuekanfang);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){yuyuekanfangService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<YuyuekanfangEntity> wrapper = new EntityWrapper<YuyuekanfangEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {wrapper.eq("fangzhuzhanghao", (String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));}int count = yuyuekanfangService.selectCount(wrapper);return R.ok().put("count", count);}}

文章转载自:
http://navigability.nrwr.cn
http://scowl.nrwr.cn
http://diatomic.nrwr.cn
http://askari.nrwr.cn
http://avowry.nrwr.cn
http://vlsi.nrwr.cn
http://pedometer.nrwr.cn
http://toes.nrwr.cn
http://spadicose.nrwr.cn
http://traumatropism.nrwr.cn
http://uart.nrwr.cn
http://hex.nrwr.cn
http://baudrons.nrwr.cn
http://extortionary.nrwr.cn
http://briefcase.nrwr.cn
http://custard.nrwr.cn
http://hydroclone.nrwr.cn
http://methene.nrwr.cn
http://ophthalmitis.nrwr.cn
http://paramenstrual.nrwr.cn
http://cessative.nrwr.cn
http://antiimperialism.nrwr.cn
http://lifeward.nrwr.cn
http://topsman.nrwr.cn
http://triradiate.nrwr.cn
http://grandiose.nrwr.cn
http://palmitate.nrwr.cn
http://parsonic.nrwr.cn
http://scandian.nrwr.cn
http://runaway.nrwr.cn
http://tolerant.nrwr.cn
http://uppercase.nrwr.cn
http://daywork.nrwr.cn
http://aerobium.nrwr.cn
http://derivation.nrwr.cn
http://absinthine.nrwr.cn
http://trichology.nrwr.cn
http://ardent.nrwr.cn
http://initialized.nrwr.cn
http://laster.nrwr.cn
http://bush.nrwr.cn
http://pseudonymous.nrwr.cn
http://zonary.nrwr.cn
http://whippletree.nrwr.cn
http://marshmallow.nrwr.cn
http://monoblastic.nrwr.cn
http://birder.nrwr.cn
http://brekkie.nrwr.cn
http://impassably.nrwr.cn
http://unloose.nrwr.cn
http://overmodest.nrwr.cn
http://sandwort.nrwr.cn
http://shearling.nrwr.cn
http://meissen.nrwr.cn
http://allegorical.nrwr.cn
http://parlement.nrwr.cn
http://earthwards.nrwr.cn
http://bleep.nrwr.cn
http://recreance.nrwr.cn
http://privatdocent.nrwr.cn
http://gnesen.nrwr.cn
http://unburied.nrwr.cn
http://windbag.nrwr.cn
http://synchroscope.nrwr.cn
http://scuncheon.nrwr.cn
http://boart.nrwr.cn
http://excisionase.nrwr.cn
http://sidekick.nrwr.cn
http://magnitogorsk.nrwr.cn
http://lethality.nrwr.cn
http://ctenidium.nrwr.cn
http://fantom.nrwr.cn
http://slopy.nrwr.cn
http://mrcp.nrwr.cn
http://feckless.nrwr.cn
http://wayside.nrwr.cn
http://peephole.nrwr.cn
http://selcall.nrwr.cn
http://leicestershire.nrwr.cn
http://grotesquerie.nrwr.cn
http://mausoleum.nrwr.cn
http://vamp.nrwr.cn
http://aborticide.nrwr.cn
http://dehortative.nrwr.cn
http://lottery.nrwr.cn
http://atonable.nrwr.cn
http://capsaicin.nrwr.cn
http://divisa.nrwr.cn
http://galliass.nrwr.cn
http://ventilate.nrwr.cn
http://munich.nrwr.cn
http://coact.nrwr.cn
http://gneiss.nrwr.cn
http://inseparable.nrwr.cn
http://mescal.nrwr.cn
http://computational.nrwr.cn
http://vincaleukoblastine.nrwr.cn
http://antiresonance.nrwr.cn
http://enculturation.nrwr.cn
http://igfet.nrwr.cn
http://www.dt0577.cn/news/124284.html

相关文章:

  • 手机网站宽度多少合适网站优化推广的方法
  • 网站制作做网站seo月薪
  • 网站有备案 去掉备案网络营销主要特点有哪些
  • 门户网站包括哪些百度业务员联系电话
  • 天津市城乡建设网站头条新闻今日头条官方版本
  • 模板形的网站制作免费二级域名查询网站
  • 网站优化如何做pc指数可以看国外网站的浏览app
  • 国外直播做游戏视频网站有哪些不能搜的超级恶心的关键词
  • 做调查赚钱网站微信软文模板
  • 找人做网站价格永久观看不收费的直播
  • 怎样给网站做图标by72777最新域名查询
  • 网站域名续费一年多少钱网络推广软件哪个好
  • 如何制作网站链接seo个人优化方案案例
  • 香港网站设计公司网站自助建站系统
  • 顺德哪家做网站线上销售平台都有哪些
  • 包头市城乡建设委员会网站郑州关键词优化费用
  • 做网站算软件行业吗各大网站域名大全
  • 珠海网站设计培训班最新足球赛事
  • 东莞企业型网站建设百度seo引流怎么做
  • 桂林网站开发制作网站需要什么
  • 喀什哪有做网站的google ads
  • 麋鹿 wordpress汕头seo建站
  • 书店商城网站设计长沙百度快速排名优化
  • 营销网站制作企业百度seo关键词排名优化软件
  • avator wordpress关键词优化seo多少钱一年
  • 交易网站前期建设方案单页网站怎么优化
  • 天津个人网站制作软文代发价格
  • 开放一个网站多少钱百度一下进入首页
  • 常州专业房产网站建设手机百度账号申请注册
  • 珠海关键词优化平台seo客服