博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍:

该系统基于springboot技术,mysql数据库,页面采用html,具有完整的业务逻辑,适合选题:springboot、婚纱、摄影、婚纱摄影等。

项目功能:

1 网站管理
1.1 轮播图管理
概述:所管理的轮播图为首页展示的三张轮播图(规定只能三张显示)新增:点击新增按钮①、填写轮播图的标题(此标题为鼠标放上轮播图照片时显示的文字)②、上传所要展示的照片,图片建议尺寸: 1922像素 * 544像素③点击保存即可修改①、点击修改按钮、只能修改标题,如要修改照片请删除后重新添加删除①、点击删除按钮即可1.2 资讯管理
概述:热门活动所展示的新增:点击新增按钮①、填写标题(此标题为文章标题)②、填写活动内容③、上传所要展示的照片,图片建议尺寸: 890像素 * 593像素④、点击保存即可修改①、点击修改按钮、只能修改标题和内容,如要修改照片请删除后重新添加删除①、点击修改按钮,选择状态为禁用2 摄影管理
2.1 整体流程2.2 级别管理
概述:为摄影师的级别新增:点击新增按钮①、填写级别名称②、点击保存即可修改①、点击修改按钮删除①、点击修改按钮,选择状态为禁用2.3 标签管理
概述:为摄影师的标签新增:点击新增按钮①、填写标签名称②、点击保存即可修改①、点击修改按钮删除①、点击修改按钮,选择状态为禁用2.4 拍摄景点管理
概述:拍摄景点,常驻馆新增:点击新增按钮①、填写景点名称、景点描述、状态②、上传所要景点的照片(只能一张),图片建议尺寸: 855像素 * 520像素③、点击保存即可修改①、点击修改按钮、只能景点名称、景点描述,如要修改照片请删除后重新添加删除①、点击修改按钮,选择状态为禁用2.5 摄影师管理
概述:摄影师新增:点击新增按钮①、填写摄影师名称、摄影师描述、选择标签、选择级别、选择常驻馆(就是景点)②、上传所摄影师头像,图片建议尺寸: 270像素 * 270像素③、点击保存即可修改①、点击修改按钮、只能景点名称、景点描述,如要修改照片请删除后重新添加删除①、点击修改按钮,选择状态为禁用或者点击状态栏中的按钮,YES为启用 NO为禁用2.6 客片管理
概述:摄影师的客片新增:点击新增按钮①、填写作品标题、作品描述、选择摄影师、选择常驻馆(就是景点)②、上传所拍摄的客片的照片(点击添加附件按钮,支持多张照片),图片建议尺寸: 无③、点击保存即可④、设置客片的封面(很重要),点击设置封面按钮,然后上传照片,图片建议尺寸: 290像素 * 380像素修改①、点击修改按钮、只能作品标题、作品描述,如要修改照片请删除后重新添加删除①、点击状态栏中的按钮,YES为启用 NO为禁用3 用户订单管理
3.1 订单管理
概述:用户的预约和已预约和摄影师的无档期设置无档期设置①、选择摄影师②、选择无档期的时间,点击确定③、选择该摄影师该时间段是没有空无档期还是已经有预约了④、点击保存即可接收①、点击接收按钮,即为接受该用户的预约拒绝①、点击拒绝按钮,即为拒绝该用户的预约* 很重要的一点,无档期设置和接收、拒绝设置时必须时时间段无冲突的,必须再三确认。

系统包含技术:

后端:springboot
前端:js、css,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

下面是首页

客片欣赏,后台可以维护

拍摄景点维护

选择摄影师

预约摄影师

预约

用户登录后查看订单

后台-登录

后台-管理员首页

后台-订单管理

后台-级别维护

后台-摄影师管理

后台-资讯活动管理

后台-景点维护

部分代码:

过滤器


@Configuration
public class FilterConfiguration {@Beanpublic FilterRegistrationBean filterAdminRegistration() {FilterRegistrationBean registration = new FilterRegistrationBean();//注入过滤器registration.setFilter(new AdminFilter());//拦截规则registration.addUrlPatterns("/manage/page/*","/manage/home.html","/manage/index.html");//过滤器名称registration.setName("AdminFilter");//是否自动注册 false 取消Filter的自动注册registration.setEnabled(true);//过滤器顺序registration.setOrder(2);return registration;}@Beanpublic FilterRegistrationBean filterLoginRegistration() {FilterRegistrationBean registration = new FilterRegistrationBean();//注入过滤器registration.setFilter(new LoginFilter());//拦截规则registration.addUrlPatterns("/member.html");//过滤器名称registration.setName("LoginFilter");//是否自动注册 false 取消Filter的自动注册registration.setEnabled(true);//过滤器顺序registration.setOrder(1);return registration;}}
public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {HttpServletRequest request=(HttpServletRequest)arg0;HttpServletResponse response=(HttpServletResponse)arg1;HttpSession session = request.getSession();if(session.getAttribute("admin")!=null){arg2.doFilter(arg0, arg1);}else{response.sendRedirect("/manage/login.html");}}public void init(FilterConfig arg0) throws ServletException {}

摄影师操作

/*** 分页获取photographer* * @return*/@RequestMapping(value = "getPhotographerListByPage", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getPhotographerListByPage(PageVO page, String labelId, String levelId, String spotsId,String beforeTime, String afterTime, String status, String name) {returnResult.setStatus(ReturnCodeType.FAILURE);try {Map<String, Object> resultMap = new HashMap<String, Object>();StringBuffer sql = new StringBuffer("SELECT a.*,f.`name` AS label,g.`name` AS level,h.`name` AS spots FROM t_photographer a," +"t_photographer_label b,t_photographer_level c ,t_photographer_spots d,t_label f," +"t_level g,t_spots h WHERE a.id=b.photographerId AND a.id = c.photographer " +"AND a.id = d.photographerId AND f.id=b.labelId AND g.id=c.levelId AND h.id= d.spotsId");if (StringUtils.isNotBlank(labelId)) {sql.append(" AND b.labelId=" + labelId);sql.append(" AND f.id=" + labelId);}if (StringUtils.isNotBlank(levelId)) {sql.append(" AND c.levelId=" + levelId);sql.append(" AND g.id=" + levelId);}if (StringUtils.isNotBlank(spotsId)) {sql.append(" AND d.spotsId=" + spotsId);sql.append(" AND h.id=" + spotsId);}if (StringUtils.isNotBlank(status)) {sql.append(" AND a.status=" + status);}if (StringUtils.isNotBlank(name)) {sql.append(" AND a.name=" + name);}List<Map<String, Object>> results = photographerService.selectPageBySQL(sql.toString(), page.getPage() - 1,page.getRows());if (!results.isEmpty() && results != null) {int total = photographerService.selectCount(new TPhotographer());int rows = page.getRows();rows = rows == 0 ? 10 : rows;resultMap.put("total", (total % rows != 0 ? (total / rows + 1) : (total / rows)));resultMap.put("page", page.getPage());resultMap.put("records", total);resultMap.put("rows", results);returnResult.setStatus(ReturnCodeType.SUCCESS).setData(resultMap);}} catch (Exception e) {logger.error("分页获取photographer失败" + e);}return returnResult;}/*** 分页获取启用的photographer* * @return*/@RequestMapping(value = "getPhotographerListByPageStatus", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getPhotographerListByPageStatus(PageVO page, String labelId, String levelId, String spotsId,String start, String end) {returnResult.setStatus(ReturnCodeType.FAILURE);try {Map<String, Object> resultMap = new HashMap<String, Object>();StringBuffer sql = new StringBuffer("SELECT a.*,f.`name` AS label,g.`name` AS level,h.`name` AS spots FROM t_photographer a,t_photographer_label b,t_photographer_level c ,t_photographer_spots d,t_label f,t_level g,t_spots h WHERE a.id=b.photographerId AND a.id = c.photographer AND a.id = d.photographerId AND f.id=b.labelId AND g.id=c.levelId AND h.id= d.spotsId AND a.status=0");StringBuffer countSql = new StringBuffer("SELECT COUNT(*) AS total FROM t_photographer a,t_photographer_label b,t_photographer_level c ,t_photographer_spots d,t_label f,t_level g,t_spots h WHERE a.id=b.photographerId AND a.id = c.photographer AND a.id = d.photographerId AND f.id=b.labelId AND g.id=c.levelId AND h.id= d.spotsId AND a.status=0");if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {List<String> list = photographerService.selectByStartEnd(start,end);for(String id : list){sql.append(" AND a.id!="+id);countSql.append(" AND a.id!="+id);}}if (StringUtils.isNotBlank(labelId)) {sql.append(" AND b.labelId=" + labelId);sql.append(" AND f.id=" + labelId);countSql.append(" AND b.labelId=" + labelId);countSql.append(" AND f.id=" + labelId);}if (StringUtils.isNotBlank(levelId)) {sql.append(" AND c.levelId=" + levelId);sql.append(" AND g.id=" + levelId);countSql.append(" AND c.levelId=" + levelId);countSql.append(" AND g.id=" + levelId);}if (StringUtils.isNotBlank(spotsId)) {sql.append(" AND d.spotsId=" + spotsId);sql.append(" AND h.id=" + spotsId);countSql.append(" AND d.spotsId=" + spotsId);countSql.append(" AND h.id=" + spotsId);}List<Map<String, Object>> results = photographerService.selectPageBySQL(sql.toString(), page.getPage() - 1,page.getRows());if (!results.isEmpty() && results != null) {int total = Integer.valueOf( photographerService.selectBySQL(countSql.toString()).get(0).get("total").toString());int rows = page.getRows();rows = rows == 0 ? 10 : rows;resultMap.put("total", (total % rows != 0 ? (total / rows + 1) : (total / rows)));resultMap.put("page", page.getPage());resultMap.put("records", total);resultMap.put("rows", results);returnResult.setStatus(ReturnCodeType.SUCCESS).setData(resultMap);}} catch (Exception e) {logger.error("分页获取启用的photographer失败" + e);}return returnResult;}/*** 获取所有启用的Photographer* * @param Photographer* @return*/@RequestMapping(value = "getAllPhotographer", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getAllPhotographer() {returnResult.setStatus(ReturnCodeType.FAILURE);try {returnResult.setStatus(ReturnCodeType.SUCCESS).setData(photographerService.selectBySQL("SELECT a.id,a.name FROM t_photographer a,t_photographer_label b,t_photographer_level c ,t_photographer_spots d,t_label f,t_level g,t_spots h WHERE a.id=b.photographerId AND a.id = c.photographer AND a.id = d.photographerId AND f.id=b.labelId AND g.id=c.levelId AND h.id= d.spotsId AND a.status=0"));} catch (Exception e) {logger.error("获取所有启用的Photographer失败" + e);}return returnResult;}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

基于springboot的婚纱摄影网站相关推荐

  1. SSM毕设项目 - 基于SSM的婚纱摄影网站(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2.1 界面展示 3 设计方案 3.1 概述 3.2 系统流程 3.2.1 系统开发流程 3.3 系统结构设计 4 项目获取 1 项目简介 Hi,各位同学好呀,这 ...

  2. 基于vue+elementui婚纱摄影网站SSM+java毕业设计源码介绍

    一.源码描述   这是一款基于web的前后端分离JAVA+SSM和vue.js源码 基于B/S开发,包含毕业论文和答辩ppt开发工具idea支持eclipse,MySQL,适合作为毕业设计使用,感兴趣 ...

  3. 基于web的婚纱摄影网站的设计与实现

    目录 摘要 3 Abstract 4 1. 引言 6 1.1 选题背景 6 1.2 课题意义 6 2.项目概述 8 2.1 课题简要说明 8 2.2 可行性研究 8 2.2.1 经济可行性 8 2.2 ...

  4. 基于java婚纱摄影网站系统(java毕业设计)

    基于java婚纱摄影网站系统 婚纱摄影网站系统是基于java编程语言,mysql数据库,ssm框架,idea工具设计制作,本系统分为用户和管理员两个角色,其中用户的主要功能是注册登陆系统,在线预约摄影 ...

  5. java基于ssm+vue的婚纱摄影网站

    婚纱摄影网站系统是基于java编程语言,mysql数据库,ssm框架,idea工具设计制作,本系统分为用户和管理员两个角色,其中用户的主要功能是注册登陆系统,在线预约摄影,在线咨询,查看摄影咨询,摄影 ...

  6. 基于java+ssm+vue婚纱摄影网站

    本站不同于其它摄影网站,本网站不但可以展示本店的摄影作品,更可以列出众多摄影套餐供用户选择预约,用户看中哪款套餐了,可以预约时间进行拍摄,即增加了店内本身的业务量,也方便了客户直接在线订套餐. 对于一 ...

  7. 计算机毕业设计springboot基于Springboot的在线教育平台的设计与实现8qecq源码+系统+程序+lw文档+部署

    计算机毕业设计springboot基于Springboot的在线教育平台的设计与实现8qecq源码+系统+程序+lw文档+部署 计算机毕业设计springboot基于Springboot的在线教育平台 ...

  8. java计算机毕业设计婚纱摄影网站MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计婚纱摄影网站MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计婚纱摄影网站MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构:B/S架构 ...

  9. java计算机毕业设计婚纱摄影网站源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计婚纱摄影网站源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计婚纱摄影网站源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

最新文章

  1. 转:Tkinter教程之Text(2)篇
  2. 吃透Java中的动态代理
  3. Spark详解(十):SparkShuffle机制原理分析
  4. 【年度学术大会合集】SIGGRAPH,KDD,AAAI,NIPS…这些你想参加的会议
  5. ifix如何设画面大小_ifix5.1环境下的ifix服务器、客户端配置
  6. 百分之九十的人不知道?在Python中f-string的几个技巧
  7. 目标检测系列(八)——CenterNet:Objects as points
  8. spring 集成hibernate 连接多数据库 java BaseDao 实现
  9. [ 2022年4月8日更新 ]Typecho Handsome主题美化教程
  10. 安装kali之后那些事儿
  11. 简述物联网感知技术_雄芯一号芯片发布 智慧城市物联网感知体系升级换新
  12. 【MFC开发(6)】复选框按钮控件Check Box
  13. 关于DllRegisterServer的调用失败的问题解决办法
  14. 微信抽奖小程序怎么做怎么弄?微信抽奖小程序制作方法详细介绍
  15. 计算机怎么设置定时音乐,怎么让电脑自动开机播放音乐教程 以及自动关机计划任务设置...
  16. 微信小程序学习总结(旋转音乐盒)
  17. ubuntu18设置屏幕旋转_[Android6.0][MTK6737] 设置屏幕旋转 270 度
  18. 抖音无人直播技术手机版,增加多平台实时在线转播功能,无人直播防屏蔽防检测
  19. 一个游戏创业者如何跳出模式
  20. 技术展示:综合布线系统的设计分析

热门文章

  1. linux替换命令 vim,Vim 替换命令(substitute)
  2. H5游戏引擎Layabox融资成功,A轮进帐1亿!
  3. 2018-02-07 Dynatrace试用及一点想法
  4. 分布估计算法java_数理统计8:点估计的有效性、一致最小方差无偏估计(UMVUE)、零无偏估计法...
  5. 第一个合作开发的游戏项目--飞机大战(cocos creater)
  6. Android 10 适配及具体解决办法,实战篇
  7. 清华大学(软件学院)-用友网络科技股份有限公司时序数据与物联应用联合研究中心成立...
  8. 天天炫斗三大职业技能属性全面分析
  9. 在physx中创建射线ray,并获取碰撞点
  10. 如何创建哑变量?三种方法任选