功能介绍
- 用户
首页:用户在未登录状态下可浏览,显示公告、推荐摄影跟拍套餐、特价摄影套餐等。
根据用户的浏览历史、收藏和点赞推荐相关商品。
摄影跟拍:查看套餐详情如名称、类别、简介、拍摄地点、价格、注意事项、发布日期。
根据类别、价格、时间、地区筛选套餐、预约时若未登录提示登录,检查摄影师时间冲突。评论、收藏套餐。
周边商品:查看商品名称、类型、规格、简介、原材料、生产地、单价、数量、上架日期、点击次数等、购买、收藏或评论商品。
个人中心:更新个人账号信息如密码、姓名、邮箱、手机号码、图片、管理收藏和订单。
公告留言:查看公告并留言反馈。
摄影跟拍评价:评价体验过的摄影跟拍。
我的订单:查看和管理摄影跟拍及周边商品的订单。
在线客服:解决问题或咨询。
商品推荐:可以根据用户的查看过的商品或者是收藏,点赞的去推荐商品,可以根据点击次数来推荐周边商品(协同过滤算法推荐)
活动中心:可以提供一些特价的摄影套餐,供用户选择
用户下订单时后台系统需要合理安排摄影师时间,如果时间段冲突会提示预约时间已满,请换个时间预约 - 管理员
首页:查看系统概况如用户活动、商品销量。管理员登录页面可以看到系统概况
用户管理:管理用户账号信息。
摄影师管理:添加、修改或删除摄影师信息。
摄影跟拍管理:添加、修改或删除套餐、管理用户评论。
类别管理:管理摄影套餐和商品类别。
周边商品管理:添加、修改或删除商品信息对商品要有内容简介,再加上摄影器材和服装管理
商品类型管理:管理商品类型。
跟拍预约管理:审核和管理用户预约摄影师可以处理自己的时间段,可以合理拒绝订单。
跟拍流程管理:安排摄影师时间、员工分配。
成品信息管理:管理成品信息如名称、图片、附件。
商品订单管理:管理商品订单。
评论管理:管理员可以对评论进行管理
系统管理:管理系统设置如权限设置、系统配置。 - 摄影师
跟拍预约管理:查看和管理自己的预约详情和状态。
跟拍流程管理:管理客户信息、拍摄安排、成品上传。
评价信息管理:查看和回应客户评价。
跟拍成品展示管理:展示和管理摄影成品。
系统实现截图
IntelliJ IDEA开发工具
IntelliJ IDEA以其智能的代码补全、强大的静态代码分析和灵活的项目管理系统而著称。它支持Java语言的所有最新特性,同时也提供了对Spring、Hibernate、Vue.js等流行框架和技术的深度集成。这使得开发者可以在一个统一的环境中完成从代码编写、调试到部署的整个开发流程。
springboot文件解析
Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程。也可以说 Spring Boot 能简化我们之前采用SSM(Spring MVC + Spring + MyBatis )框架进行开发的过程。config:主要用来存储配置文件,以及其他不怎么动用的信息
controller:项目的主要控制文件
dao: 主要用来操作数据库
entity: 实体,用来放与数据库表里对应的实体类,表中的字段对应类中的属性值,并附有set/get方法
exception:异常处理类
service:主要实现的方法
—impl 实现类
接口:尚未实现的方法,在对应的ipml中实现
util: 工具类
application.properties:项目配置信息
技术介绍
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。
jdk版本:jdk1.8+
前端:vue.js+ElementUI
开发工具:IDEA 或者eclipse都支持
编程语言: java
框架支持:springboot/ssm/springcloud分布式微服务
数据库: mysql 版本不限
数据库工具:Navicat/SQLyog都可以
开发步骤编译运行
(1) 创建好数据库并导入,
(2) 创建后台Springboot三层架构(controller,service,mapper层)并启动测试
(3) 导入并编译前端代码vue:网站和后台管理
编译:npm install
试运行:npm run dev
核心代码部分展示
@RequestMapping("users")
@RestController
public class UsersController{
@Autowired
private UsersService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UsersEntity user){
if(userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
详细视频演示
请联系我获取更详细的演示视频
源码获取
文章下方名片联系我即可~