基于Java+SpringBoot+vue+element实现婚纱摄影网系统

news2024/11/16 1:21:29

基于Java+SpringBoot+vue+element实现婚纱摄影网系统

🍅 作者主页 超级帅帅吴
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 文末获取源码联系方式 📝

文章目录

  • 基于Java+SpringBoot+vue+element实现婚纱摄影网系统
  • 前言介绍:
  • 系统设计:
    • 系统功能结构设计
  • 功能截图:
    • 登录注册:
    • 前台首页:
    • 后台管理:
  • 代码实现:
  • 论文参考:

前言介绍:

随着现代网络技术发展,对于婚纱摄影网的设计现在正处于网络发展的阶段,所以对它的要求也是比较严格的,要从这个系统的功能和用户实际需求来进行对系统制定开发的发展方式,依靠网络技术的的快速发展和现代通讯技术的结合为用户带来方便,可以方便管理员网上管理,婚纱摄影网的设计信息,还可以通过这些技术实现发布婚纱摄影网的设计等过程。当今社会互联网急速发展,网络管理系统也在国内爆炸式的发展起来。这种网络模式对长期使用互联网社会产生了深远的影响,在这种社会环境下开发一个适用于用户都可以操作的、简单的、便捷的婚纱摄影网的设计的发展前景是非常好的。
婚纱摄影网的设计是一个典型的管理系统,在整个系统的发展来看包括数据库的设计、分析、连接、功能实现和系统维护以及用户的正确操作方式,对于上述的问题我们根据用户的实际情况来设计出一个典型的婚纱摄影网的设计,在一定的基础上保证了这个系统的完整性和安全性。在整个系统程序当中的功能我们要保证用户方便使用而且易于操作的特点。在当今社会当中随着现代科学技术网络的快速发展和用户对网络技术意识不断提高,网络给用户带来强大的功能早已经被用户所接受,就拿这个婚纱摄影网的设计来说,在整个系统当中开发它的要求是越来越高,同时所用的软件环境也是要不断提高。对于这个婚纱摄影网的设计来说它已经满足现代化的信息化、潮流化的管理。能够有效的提高婚纱摄影网的设计人员的工作效率和工作信心。

系统设计:

业务流程分析:
在系统流程分析当中调查分析它是比较重要的环节,因为在这个系统当中它都涉及到每个环节的业务流程,所以从婚纱摄影网的设计的整体设计上要保证各个信息的正确输入和输出以及对数据储存的完整,并结合实际的操作步骤来绘制出具体的流程图。具体流程图如下图所示:
在这里插入图片描述

系统功能结构设计

通过系统需求分析,本婚纱摄影网的设计主要实现功能包括;管理员:首页、个人中心、用户管理、套餐系列管理、摄影套餐管理、摄影订购管理、摄影预约管理、摄影评价管理、客片欣赏管理、系统管理,前台首页:首页、摄影套餐、客片欣赏、摄影资讯、个人中心、后台管理、在线客服,用户:首页、个人中心、摄影订购管理、摄影预约管理、摄影评价管理、我的收藏管理等功能。其功能结构图如下图所示:
在这里插入图片描述

功能截图:

登录注册:

用户注册、用户登录,用户通过输入用户名、密码、姓名、联系电话、邮箱等信息进行注册、登录
在这里插入图片描述

前台首页:

婚纱摄影网的设计,在前台首页可以查看首页、摄影套餐、客片欣赏、摄影资讯、个人中心、后台管理、在线客服等内容
在这里插入图片描述
摄影套餐:在摄影套餐页面填写套餐编号、系列、标签、套餐金额、拍摄地点、点击次数等信息并进行订购、点我收藏等操作
在这里插入图片描述
套餐详情: 查看套餐编号、套餐名称、封面、系列、标签、套餐金额、拍摄地点等信息进行详情、客片、查看评论等
在这里插入图片描述
点击可以进行评论操作
在这里插入图片描述
摄影套餐:用户对摄影套餐页面数据进行查看、套餐编号、套餐名称、封面、系列、标签、套餐金额、拍摄地点等信息进行详情、客片、查看评论。
在这里插入图片描述
摄影资讯:查看标题、简介、图片等信息
在这里插入图片描述
个人中心:用户信息修改以及我的收藏等
在这里插入图片描述
在这里插入图片描述

后台管理:

在这里插入图片描述
用户管理:管理员对用户管理页面填写用户名、姓名、性别、头像、联系电话、邮箱等信息并进行详情、删除、修改等操作
在这里插入图片描述
套餐系列:管理员对套餐系列管理页面填写系列等信息进行详情、删除、修改等操作。效果图如图所示
在这里插入图片描述
套餐管理:管理员对摄影套餐管理页面填写套餐编号、套餐名称、封面、系列、标签、套餐金额、拍摄地点等信息进行详情、客片、查看评论、删除、修改等操作。效果图如图所示。
在这里插入图片描述套餐详情:查看套餐编号、套餐名称、封面、系列、标签、套餐金额、拍摄地点等信息进行详情、客片、查看评论等
在这里插入图片描述 套餐订购:管理员对摄影订购管理页面进行填写订单编号、套餐编号、套餐名称、封面、套餐金额、拍摄地点、下单日期、备注、用户名、姓名、联系电话、是否支付、审核回复、审核状态、审核等信息进行详情、删除、修改等操作
在这里插入图片描述
套餐预约:管理员对摄影预约管理页面填写编辑订单编号、套餐编号、套餐名称、套餐金额、预约地点、预约日期、用户名、姓名、联系电话、审核回复、审核状态、审核等信息进行详情、删除、修改等操作
在这里插入图片描述
套餐评价:管理员对摄影评价管理页面填写编辑订单编号、套餐编号、套餐名称、服务评分、技术评分、晒图、整体评价、用户名、联系电话、审核回复、审核状态、审核等信息进行详情、删除、修改等操作
在这里插入图片描述
客片欣赏:管理员对客片欣赏管理页面填写等信息进行详情、删除、修改等操作
在这里插入图片描述
摄影资讯: 管理员对摄影资讯页面填写编辑标题、简介、图片等信息进行详情、删除、修改等操作。
在这里插入图片描述
在这里插入图片描述

代码实现:

 
 
/**
 * 摄影套餐
 * 后端接口
 * @lyy
 * @email 
 * @date 2022-03-12 20:31:06
 */
@RestController
@RequestMapping("/sheyingtaocan")
public class SheyingtaocanController {
    @Autowired
    private SheyingtaocanService sheyingtaocanService;
    
 
 
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,SheyingtaocanEntity sheyingtaocan, 
		HttpServletRequest request){
 
        EntityWrapper<SheyingtaocanEntity> ew = new EntityWrapper<SheyingtaocanEntity>();
		PageUtils page = sheyingtaocanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, sheyingtaocan), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,SheyingtaocanEntity sheyingtaocan, HttpServletRequest request){
        EntityWrapper<SheyingtaocanEntity> ew = new EntityWrapper<SheyingtaocanEntity>();
		PageUtils page = sheyingtaocanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, sheyingtaocan), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( SheyingtaocanEntity sheyingtaocan){
       	EntityWrapper<SheyingtaocanEntity> ew = new EntityWrapper<SheyingtaocanEntity>();
      	ew.allEq(MPUtil.allEQMapPre( sheyingtaocan, "sheyingtaocan")); 
        return R.ok().put("data", sheyingtaocanService.selectListView(ew));
    }
 
	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(SheyingtaocanEntity sheyingtaocan){
        EntityWrapper< SheyingtaocanEntity> ew = new EntityWrapper< SheyingtaocanEntity>();
 		ew.allEq(MPUtil.allEQMapPre( sheyingtaocan, "sheyingtaocan")); 
		SheyingtaocanView sheyingtaocanView =  sheyingtaocanService.selectView(ew);
		return R.ok("查询摄影套餐成功").put("data", sheyingtaocanView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        SheyingtaocanEntity sheyingtaocan = sheyingtaocanService.selectById(id);
		sheyingtaocan.setClicknum(sheyingtaocan.getClicknum()+1);
		sheyingtaocan.setClicktime(new Date());
		sheyingtaocanService.updateById(sheyingtaocan);
        return R.ok().put("data", sheyingtaocan);
    }
 
    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        SheyingtaocanEntity sheyingtaocan = sheyingtaocanService.selectById(id);
		sheyingtaocan.setClicknum(sheyingtaocan.getClicknum()+1);
		sheyingtaocan.setClicktime(new Date());
		sheyingtaocanService.updateById(sheyingtaocan);
        return R.ok().put("data", sheyingtaocan);
    }
    
 
 
 
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody SheyingtaocanEntity sheyingtaocan, HttpServletRequest request){
    	sheyingtaocan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(sheyingtaocan);
 
        sheyingtaocanService.insert(sheyingtaocan);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody SheyingtaocanEntity sheyingtaocan, HttpServletRequest request){
    	sheyingtaocan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(sheyingtaocan);
 
        sheyingtaocanService.insert(sheyingtaocan);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody SheyingtaocanEntity sheyingtaocan, HttpServletRequest request){
        //ValidatorUtils.validateEntity(sheyingtaocan);
        sheyingtaocanService.updateById(sheyingtaocan);//全部更新
        return R.ok();
    }
    
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        sheyingtaocanService.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<SheyingtaocanEntity> wrapper = new EntityWrapper<SheyingtaocanEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}
 
 
		int count = sheyingtaocanService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	/**
     * 前端智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,SheyingtaocanEntity sheyingtaocan, HttpServletRequest request,String pre){
        EntityWrapper<SheyingtaocanEntity> ew = new EntityWrapper<SheyingtaocanEntity>();
        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", "clicknum");
        
        params.put("order", "desc");
		PageUtils page = sheyingtaocanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, sheyingtaocan), params), params));
        return R.ok().put("data", page);
    }
 
 
}

论文参考:

在这里插入图片描述

获取源码
总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考
🍅 查看下方微信号获取联系方式 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《500套》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask中的后端并发思考(以Mysql:too many connections为例)

之前写过一篇《CentOS 下部署NginxGunicornSupervisor部署Flask项目》&#xff0c;最近对该工程的功能进行了完善&#xff0c;基本的功能单元测试也做了。觉得也是时候进行一下压力测试了&#xff0c;所以利用Jmeter对部署到服务器的项目进行了简单的压力测试。在之前的笔记中写…

10个 Python 高效编程小技巧

初识Python语言&#xff0c;觉得python满足了你上学时候对编程语言的所有要求。python语言的高效编程技巧让那些曾经苦逼学了四年c或者c的人&#xff0c;兴奋的不行不行的&#xff0c;终于解脱了。高级语言&#xff0c;如果做不到这样&#xff0c;还扯啥高级呢&#xff1f; 01…

【密码学】HMAC与HS256算法

哈希算法加盐 传统的哈希算法&#xff1a; digest hash(input)因为相同的输入会产生相同的输出&#xff0c;所以想要加盐&#xff0c;加盐的目的就在于&#xff0c;使输入有所变化&#xff1a; digest hash(salt input)这个salt可以看作是一个额外的“认证码”&#xff0…

ChatGPT 使用 API 进行 Postman 调用测试

当获得 ChatGPT 的 API Key 以后&#xff0c;想使用 Postman 来进行一下调用。调用的方法为 POST。需要设置几个参数。我们希望使用的 EndPoint 是&#xff1a;API EndPoint访问使用的 EndPoint 是&#xff1a;https://api.openai.com/v1/completions授权方法授权的方法使用的是…

FortiGate FGCP HA 配置文档

概述 FortiOS 提供 6 种冗余解决方案&#xff0c;工业标准的 VRRP 和 5 种专有的解决方案&#xff1a; FortiGate Cluster Protocol (FGCP) high availability&#xff0c;FortiGate Session Life Support Protocol (FGSP) high availability&#xff0c;Session-Aware Load …

Spring Cloud LoadBalancer(负载均衡)

简介 了解过Spring Cloud&#xff0c;就知道&#xff0c;之前Spring Cloud中默认的负载均衡组件为ribbon&#xff0c;ribbon是Netflix开源的组件&#xff0c;但是目前已经停止更新了。所以Spring官方推出了Spring Cloud LoadBalancer。而且Spring Cloud LoadBalancer是目前唯一…

win11下通过qemu 安装win10 arm系统

安装qemu QEMU for Windows – Installers (64 bit) 我选了最新的20221230的版本&#xff0c;我将其安装在c:\qemu7\下&#xff0c;另外在环境变量中加入这个路径 然后在别的盘上建立一个路径&#xff0c;名称随意&#xff0c;不要有中文和空格即可&#xff0c;我放在了e:\qe…

电脑蓝屏提示错误代码0X000000B4怎么办?

电脑蓝屏可以说是Windows的一个常见问题了。蓝屏状况数不胜数&#xff0c;关键还得看是何终止代码。 如果电脑蓝屏&#xff0c;提示错误代码0X000000B4是什么意思&#xff1f;这是由于Windows不能启动显卡驱动&#xff0c;从而无法进入图形界面。 蓝屏错误0X000000B4可能由驱…

docker搭建redis集群(Cluster版三主三从)

docker搭建redis集群(Cluster版三主三从编写脚步建立配置redis的配置文件启动六个redis服务创建cluster集群测试集群的高可用编写脚步建立配置redis的配置文件 建立配置文件脚本 vim redis.shfor port in $(seq 1 6); \ do \ mkdir -p /volumn/redis/node-${port}/conf touch…

怎么修复老照片?这三个修复方法让你轻松学会

大家在翻看以前的照片时&#xff0c;有没有发现有一些照片的颜色泛黄&#xff0c;内容也变得有些模糊不清了&#xff0c;遇到这种情况应该怎么办呢&#xff1f;不知道的小伙伴也不要着急&#xff0c;今天我就给大家分享几个模糊老照片修复教程&#xff0c;教会大家如何修复老照…

一直没明白的 HTTPS,今天必须让你懂了~

大家第一次接触 HTTPS 协议的时候是不是和我一样&#xff0c;非常困惑。 这玩意概念又多又繁琐。尤其是里面的公钥私钥啥的。 当时就特别想知道&#xff0c;为什么用公钥加密却不能用公钥解密&#xff1f; 看完这篇文章你会弄明白&#xff0c;同时还会解锁很多HTTPS里的细节…

1.所有被new出来的实例都是存放在堆里的吗?Android面经

问题&#xff1a; 所有被new出来的实例都是存放在堆里的吗&#xff1f; 相关知识点&#xff1a; 堆和栈、标量替换、栈上分配、逃逸分析 思考&#xff1a; 首先&#xff0c;这样问了&#xff0c;答案肯定是不是所有new出来的实例都存放在堆里&#xff0c;不然下面没法继续问了…

MODBUS转PROFINET网关在冷水机项目中应用

在电镀行业中&#xff0c;需要频繁用到冷水机&#xff0c;电镀产品在焊接过程中会产生大量的热量&#xff0c;这些热量若不及时散除&#xff0c;则有可能会导致待加工的电镀产品发生大变形&#xff0c;本案例的目的是通过微硬创新MODBUSRTU转PROFINET网关连接冷水机和PLC&#…

安卓玩机搞机技巧综合资源-----修复基带 改串码 基带qcn 改相关参数 终结贴

有需要了解这方面常识的友友梦可以先参阅我这几个帖子 请点击跳转 基带qcn的备份与写入相关 格机 nv报错 高通联机修改IMEI等参数的相关解析 关于高通QPST平台功能和选项的一些简单说明 基带qcn的备份与写入相关 格机 nv报错 以上几个帖子可以初步了解基带 串码等参数方面…

面试官:如何用Excel进行预测分析?这操作绝了!

【面试题】一个社交APP, 它的新增用户次日留存、7日留存、30日留存分别是52%、25%、14%。请模拟出来&#xff0c;每天如果日新增6万用户&#xff0c;那么第30天&#xff0c;它的日活数会达到多少&#xff1f;请使用Excel进行分析。【分析思路】第1日(次日)留存用户数第1日新增用…

筛选用户权限子集记录

【问题】Is there a way to use the $map operator in a regular Mongo document query (or aggregate \$match which I believe is the same thing).What I’m trying to do is thus: Given an set of sets, return the document if any of the sets is a subset of a paramet…

SpringBoot+VUE前后端分离项目学习笔记 - 【12 Vue使用路由】

整体代码结构 Manage.vue HomeView.vue改名为Manage.vue,用以管理其他view页面【通过import 】 <template><el-container style"min-height: 100vh"><el-aside :width"sideWidth px" style"box-shadow: 2px 0 6px rgb(0 21 41 / 3…

年终盘点:元宇宙产业委多项成果荣登元宇宙行业影响力榜单

在经过了2021年元宇宙概念落地和普及后&#xff0c;2022年成为元宇宙相关产业井喷式发展的一年。元宇宙产业委在2022年多项成果荣登行业影响力榜单。 2021-2022元宇宙科技传播图书影响力榜发布&#xff0c;元宇宙产业委好书上榜 2022年9月&#xff0c;两办印发《关于新时代进一…

Internet Download Manager2023最新永久版下载及功能介绍

提到下载工具&#xff0c;大多数国人映入脑海的或许是迅雷。没错&#xff0c;当今随着互联网的迅猛发展&#xff0c;不少早期积累大量用户的国内外下载工具尽显疲态&#xff0c;止步不前&#xff0c;纷纷掉队&#xff0c;如网络快车、FDM、脱兔等等。一款名叫Internet Download…

Anaconda(python)安装教程以及创建新环境

文章目录一. Anaconda简介二. Anacoda安装1. Anacondad下载2. 安装方式三.通过conda创建新的环境四.conda常用命令一. Anaconda简介 Anaconda介绍&#xff1a;开源的Python发行版本。Anaconda指的是一个开源的Python发行版本&#xff0c;其包含了conda、Python等180多个科学包…