《仿大众点评仿美团做一个评价网站——Java SSM》项目研发阶段性总结

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_41890694/article/details/86537518


作者: 张国军_Suger
本次任务完成时间:2018年11月20日~2019年01月16日
开发工具与关键技术:MyEclipse、MySQL 、Java、SSM、Spring、SpringMVC、mybatis
完成模块功能:后台功能与前台功能

一、后台功能实现

(一)、注册商家

注册商家主要包括商家注册账号、认领门店、提交资质。
注册商家:见下面几张图,是实现注册商家界面。

前端进入后台注册界面
美团商家中心选择行业界面
商家注册账号界面
美团商家注册
商家注册账号验证界面
商家注册账号验证界面
商家注册账号完成验证界面
商家认领门店验证界面
商家认领门店验证成功界面
商家提交资质验证界面
商家提交资质验证成功界面

(二)、登录商家中心

登录商家中心主要用于商家登录后台进行管理。
登录商家中心:见下面几张图,是实现登录商家中心界面。

前端进入后台登录界面
后台登录实现界面商家输入账号、密码、验证码都正确后便会进入商家后台主界面如下图
后台主界面

(三)、商家登录后台操作模块

商家登录成功进入主界面
后台主界面

(1)、用户管理模块

用户管理主要包括所有用户、推荐用户、账号管理。
用户管理:是是用于管理员对用户数据进行操作界面。
(1-1)、所有用户模块
所有用户主要用于对用户信息进行相应的增删查改操作。
所有用户:见下面几张图,是实现所有用户操作界面。

所有用户界面
所有用户模糊查询操作界面
所有用户新增用户操作界面所有用户新增用户验证界面所有用户修改用户操作界面所有用户删除用户操作界面

(1-2)、推荐用户模块
推荐用户主要用于对推荐用户信息进行相应的搜索与封号操作。
推荐用户:见下面几张图,是实现推荐用户操作界面。

推荐用户操作界面推荐用户搜索操作界面推荐用户封号操作界面

(1-2)、账号管理模块
账号管理主要用于对账号管理信息进行相应的搜索、新增、删除操作。
账号管理:见下面几张图,是实现账号管理操作界面。

账号管理操作界面账号管理模糊搜索操作界面账号管理新增用户充值操作界面账号管理删除操作界面

(2)、角色管理模块

角色管理主要包括全部角色与管理员管理。
角色管理:是是用于管理员对角色信息进行操作界面。
(2-1)、全部角色模块
全部角色主要用于对用户信息进行相应的增删查改操作。
全部角色:见下面几张图,是实现角色信息操作界面。

全部角色色操作界面全部角色色新增修改操作界面全部角色删除操作界面

(2-2)、管理员管理模块
全部角色主要用于对用户信息进行相应的增删查改操作。
全部角色:见下面几张图,是实现角色信息操作界面。

管理员管理操作界面管理员管理新增操作界面管理员管理修改操作界面管理员管理删除操作界面

(3)、商家管理模块

商家管理主要包括所有商家、商家入驻。
商家管理:是是用于商家对商家信息进行操作界面。
(3-1)、所有商家模块
所有商家主要用于对用户信息进行相应的查询与修改操作。
所有商家:见下面几张图,是实现商家信息操作界面。

所有商家操作界面所有商家查询操作界面所有商家修改操作界面

(3-2)、商家入驻模块
商家入驻主要用于对用户信息进行相应的查询与入驻审核操作操作。
商家入驻:见下面几张图,是实现商家信息操作界面。

商家入驻操作界面商家入驻查询操作界面商家入驻入驻审核操作界面

(4)、评论管理模块

评论管理主要包括评论标签、评论码、评论列表。
评论管理:是是用于商家对用户评论信息进行操作界面。
(4-1)、评论标签模块
评论标签主要用于对用户评论标签信息进行相应的增删改查的操作。
评论标签:见下面几张图,是实现用户评论标签操作界面。

评论标签操作界面评论标签查询操作界面评论标签新增操作界面评论标签修改操作界面评论标签删除操作界面

(4-2)、评论码模块
评论码主要用于对用户评论标签信息进行相应的查询与生成商家评论码的操作。
评论码:见下面几张图,是实现商家生成评论码操作界面。

评论码操作界面评论码查询操作界面评论码生成商家评论码操作界面

(4-3)、评论列表模块
评论列表主要用于对用户评论信息进行相应的查询、回复、删除的操作。
评论列表:请见下面几张效果图,是实现用户评论信息操作界面。

评论列表操作界面评论列表查询操作界面评论列表商家回复操作界面评论列表删除操作界面

(5)、门店分类模块

门店分类主要用于对门店分类的增删查改操作。
门店分类:请见下面几张效果图,是实现门店分类操作界面。

门店分类操作界面门店分类查询操作界面门店分类修改操作界面门店分类修改操作界面门店分类删除操作界面

(6)、店铺分类模块

店铺分类主要用于对店铺分类的增删查改操作。
店铺分类:请见下面几张效果图,是实现店铺分类操作界面。

店铺分类操作界面店铺分类查询操作界面店铺分类新增操作界面店铺分类修改操作界面店铺分类删除操作界面

(7)、订单管理模块

订单管理主要用于对订单信息的查询操作。
订单管理:请见下面几张效果图,是实现订单查询操作界面。

![订单管理操作界面订单管理查询操作界面

(四)、商家前端操作模块

前端登录前首页美团前端注册界面美团前端登录界面美团登录成功跳转提示界面美团登陆成功跳转主页面美团搜索模糊搜索店铺列表美团分类页美团美食分类界面美团店铺详情美团店铺用户评论列表

二、相关业务表和关系

商家登录表与关系:
商家登录表与关系商家登录表与关系
推荐用户表与关系:推荐用户表与关系
账户管理表与关系:
账户管理表与关系
角色管理表与关系:
角色管理表与关系
管理员管理表与关系:
管理员管理表与关系
商家管理表与关系:
商家管理表与关系
评论管理表与关系:
评论管理表与关系
评论标签表与关系:
评论标签表与关系
门店分类表与关系:
门店分类表与关系
订单管理表与关系:
订单管理表与关系

三、经典代码

获取用户头像代码:
获取用户头像代码
下面附上截图代码:

	/**
	 * 获取用户头像
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	@RequestMapping(value="/getUserPicture/{file:.+}", method = RequestMethod.GET)
	public void getUserPicture(HttpServletRequest request, HttpServletResponse response,@PathVariable("file") String strFileName) throws IOException
	{
		//构建上传目录的路径
		String uploadPath="E:\\DianPing\\avatar";
		if (Tools.isNotNull(strFileName)) {
			File file=new File(uploadPath+File.separator+strFileName);
			if (file.exists() && file.isFile()) {
				FileInputStream in=new FileInputStream(file);
				ServletOutputStream out=response.getOutputStream();
				byte[] buf=new byte[1024];
				int count=0;
				while(-1!=(count=in.read(buf, 0, buf.length))){
					out.write(buf, 0, count);
				}
				response.setContentType("image/png"); // 设置返回的文件类型
				out.flush();
				out.close();
				in.close();
				
			}
		} 
	}

下载用户头像代码:
下载用户头像代码
下面附上截图代码:

	/**
	 * 后台 ============= 》》用户管理》》下载用户头像图片
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	@RequestMapping(value="/dtUsers_downPicture/{file:.+}", method = RequestMethod.GET)
	public void dtUsers_downPicture(HttpServletRequest request, HttpServletResponse response,@PathVariable("file") String strFileName) throws IOException
	{
		if (Tools.isNotNull(strFileName)) {//检查字符串不为空
			String uploadPath = "E:\\DianPing\\avatar";
			String fileNmae = uploadPath + "\\" + strFileName;
			File file=new File(fileNmae);
			if (file.exists() && file.isFile()) {//检查路径存在,并且是文件
				FileInputStream fis = new FileInputStream(file);
			
				//******1、 设置文件的MIME类型
				response.setContentType(request.getSession().getServletContext().getMimeType(strFileName));
				//******2、 设置Content-Disposition 设置下载的文件名称
				response.setHeader("Content-Disposition", "attachment;filename="+strFileName);
				
				OutputStream os = response.getOutputStream();
				
				byte[] buf=new byte[1024];
				int count=0;
				while((count=fis.read(buf, 0, buf.length)) != -1){
					os.write(buf, 0, count);
				}
				fis.close();
				os.flush();
				os.close();
			}
		}
	}

四、开发总结

开发这个系统是遇到了不少问题,同时也积累了不少经验。开发一个项目前肯定要去了解项目的整体结构,当人就是去看他的项目需求书啦,看完项目需求书后,接下来我们就要去分析数据库,分析数据库也不是一个简单的工作,因为我觉得不是每个人都可以在分析数据库时一次通过的人(除非是大神),其实我在分析数据库时就是在不断的分析后才会有最终的定论。
开始开发这个系统的时候就是先设计界面,接着就是通过代码来实现功能,我在实现用户注册这里就卡住了,因为我在注册时需要验证,验证每个条件是否符合我们设置的要求,开始时我设计的是最笨最简单的,但是发现这样会有很多重复代码,会达不到我想要的效果,后来我就做了一个方法来验证所有的验证请求,但是这样仿佛又出现了新问题,那就是有时候获取不到参数,或有些参数乱码,后来上网查了一下解决这个乱码可以在配置文件里面设置,但有时这个配置文件并不能完全解决乱码问题,后来我又查了一下资料发现可以在方法后面加上☞produces=“application/json;charset=utf-8” ☜这句代码即可解决这个乱码问题。
接下来就是登陆后显示头像的问题,显示获取不到头像,后来我也查了一下,最终确定了要在头像获取斜杠后面加上☞{file:.+}☜这句代码才能,因为获取的是文件,理所应当就应该给文件的,这问题就解决了。
其实开发项目的过程也是一个对已学的知识的温故而知新,也是对新知识的一个积累。学无止境,对于任何人都适用。我们遗漏或遗忘的知识唯有在做项目的时候才能让我们去巩固与加深,从而使我们变得更加的充实!

注:此项目为本人用刚学完的知识做的一个实训项目,有待改进。只是为了学习与实训,如有雷同纯属巧合。

猜你喜欢

转载自blog.csdn.net/qq_41890694/article/details/86537518
今日推荐