基于java+springmvc+mybatis+vue+mysql的婚纱影楼

news2024/11/26 0:49:00

项目介绍

婚姻是每个人人生中都非常重要的一个组成部分,它是一个新家庭的开始也是爱情的见证,所以很多人在结婚之前都会拍一套美美的婚纱照来纪念这一美好的时刻,但是很多时候人们在拍婚纱照的时候都是到当地的影楼去拍摄,这种影楼一般价格都比较高昂,而且在套餐中会不不设置陷阱来坑害消费者,所以很多爱美的年轻人更中意在网络上选购自己喜欢的套餐来进行拍摄,本系统也是出于这样的目的进行开发的。本系统采用java语言开发,后端采用ssm框架,前端采用vue技术,数据库采用mysql进行数据存储。

开发环境

开发语言:Java
数据库 :MySQL
系统架构:B/S
后端框架:SSM
前端框架:Vue
开发工具:IDEA或者Eclipse,JDK1.8,Maven

系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.OrdersEntity;
import com.entity.view.OrdersView;

import com.service.OrdersService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 订单
 * 后端接口
 */
@RestController
@RequestMapping("/orders")
public class OrdersController {
    @Autowired
    private OrdersService ordersService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,OrdersEntity orders,
		HttpServletRequest request){
    	if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    		orders.setUserid((Long)request.getSession().getAttribute("userId"));
    	}
        EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
		PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,OrdersEntity orders, HttpServletRequest request){
        EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
		PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( OrdersEntity orders){
       	EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
      	ew.allEq(MPUtil.allEQMapPre( orders, "orders")); 
        return R.ok().put("data", ordersService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(OrdersEntity orders){
        EntityWrapper< OrdersEntity> ew = new EntityWrapper< OrdersEntity>();
 		ew.allEq(MPUtil.allEQMapPre( orders, "orders")); 
		OrdersView ordersView =  ordersService.selectView(ew);
		return R.ok("查询订单成功").put("data", ordersView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        OrdersEntity orders = ordersService.selectById(id);
        return R.ok().put("data", orders);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        OrdersEntity orders = ordersService.selectById(id);
        return R.ok().put("data", orders);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody OrdersEntity orders, HttpServletRequest request){
    	orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(orders);
    	orders.setUserid((Long)request.getSession().getAttribute("userId"));
        ordersService.insert(orders);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody OrdersEntity orders, HttpServletRequest request){
    	orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(orders);
        ordersService.insert(orders);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody OrdersEntity orders, HttpServletRequest request){
        //ValidatorUtils.validateEntity(orders);
        ordersService.updateById(orders);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        ordersService.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<OrdersEntity> wrapper = new EntityWrapper<OrdersEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}
		if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    		wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));
    	}


		int count = ordersService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

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

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

相关文章

React基础

文章目录1.简介1.1 react与vue1.1.1 相同点1.1.2 不同点1.1.3 函数式组件的特点&#xff08;什么是函数式组件&#xff09;a.幂等b.无副作用用&#xff1a;1.1.4 虚拟dom的作用1.1.5 vue当中template与render的关系&#xff1a;1.2 MVC、MVVM、MVP模式1.2.1 MVC1.2.2 MVVM1.2.3…

速锐得解码特斯拉Model Y整车网关电路及CAN通信协议DBC控制策略

研究和解码特斯拉Model Y的整车控制中心的控制策略&#xff0c;比研究一般宝马、奔驰、奥迪的CAN总线数据更有乐趣&#xff0c;速锐得近期解码了特斯拉Model Y整车网关电路&#xff0c;分析出特斯拉Model Y网关电路图及CAN矩阵并编译了特斯拉Model Y通信协议DBC文件。 研究特斯…

SOLIDWORKS 3D CAD 2023基础解决方案 新功能Top 10

SOLIDWORKS 3D CAD 2023新版本即将于大家见面&#xff0c;而SOLIDWORKS 3D CAD是SOLIDWORKS整体解决方案的基础功能&#xff0c;微辰三维为您总结了SOLIDWORKS 3D CAD 2023增强功能的Top 10&#xff0c;一起来看看吧&#xff01; 1、电力布线 轻松创建含多个电路的接头&#xf…

天宇优配|上架秒光 “3时代”的大额存单受宠

“最近理财产品动摇比较大&#xff0c;准备处理一笔大额存单&#xff0c;但查询发现&#xff0c;某国有行暂时没有可购买的大额存单产品。”11月29日&#xff0c;成都市民王女士向金融出资报记者表示。 记者发现&#xff0c;虽然通过数次下调&#xff0c;中长期大额存单利率已步…

储能电源/移动电源专用升降压DC-DC方案PL9405

PL9405是一个双向同步4开关Buck-Boost变换器能够调节输出电压高于或低于输入电压。PL9405在较宽的输入电压范围内工作3.6 V至32v(最大36v)支持多种应用程序。集成两个9mΩ功率mosfet。PL9405可在1、2、3、4、5的充电模式下工作6电池充电。PL9405采用恒定ON时间控制buck&#xf…

利用phpspreadsheet导出Excel图表(折线图、饼状图、柱状图)

利用phpspreadsheet导出Excel图表安装 phpoffice/phpspreadsheet折线图需要使用的包实例代码效果图![实例图](https://img-blog.csdnimg.cn/39e32f13c52b4b40946562fdc55dc5b6.png)饼状图需要使用的包实例代码效果图柱状图需要使用的包实例代码效果图安装 phpoffice/phpspreads…

Day16-购物车页面-商品列表-渲染商品列表区域的结构

提纲挈领&#xff1a; 我的操作&#xff1a; 1》定义如下的 UI 结构&#xff1a; 2》美化样式 ***************************** ***************************** ***************************** ********************* 2.渲染商品列表区域的基本结构 我的操作&#xff1a; 1》…

网页添加灰色滤镜

网页添加灰色滤镜 b站的灰色滤镜 我校的灰色滤镜 CSDN的灰色滤镜 自己调制css主题,给网页加上滤镜. 更快捷的,可以在可以调制css的浏览器插件中加上滤镜,只要开启插件就会自动修改网站滤镜 以darkreader为例打开其开发者工具 *INVERT .jfk-bubble.gtx-bubble .captcheck_a…

推荐系统-召回-概述(三):向量化

只要对机器学习稍有涉猎&#xff0c;就会发现如今机器学习&#xff0c;无论是推荐、图像、语言等领域&#xff0c;随处可见embedding&#xff0c;可以说&#xff0c;在深度学习主宰机器学习领域的今天&#xff0c;万物皆可embedding。那么&#xff0c;什么是embedding&#xff…

SpringCloud-alibaba-Sentinel入门到精通

膜拜大神的全集&#xff1a; sentinel &#xff08;史上最全&#xff09;_40岁资深老架构师尼恩的博客-CSDN博客_sentinel 1、什么是Sentinel: Sentinel是阿里开源的项目&#xff0c;提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 官网&#x…

智能聊天机器人如何帮助独立站运营提高工作效率?

关键词&#xff1a;智能聊天机器人、独立站运营 独立站运营变得越来越受欢迎&#xff0c;独立站可以用来建立在线商店并推动您的电子商务业务取得成功。它具有大量以业务为中心的功能&#xff0c;也许这就是为什么许多公司相信它会发展其在线业务的轨迹。 添加聊天机器人可以进…

使用PyQt5界面设计

一、环境搭建 直接pip安装即可&#xff1a; pip install PyQt5 pip install pyqt5-tools 二、Qt Designer设计GUI Qt Designer 是通过拖拽的方式放置控件&#xff0c;并实时查看控件效果进行快速UI设计。最终生成.ui文件&#xff0c;可以通过pyuic5工具转换成.py文件。 打开d…

基于springboot的应用诊断工具,yyds

真正的大师,永远都怀着一颗学徒的心&#xff01; 一、项目简介 基于springboot的应用诊断工具&#xff0c;可以迅速定位出来线上运行项目的问题。 二、实现功能 支持服务器管理 支持权限管理 支持系统诊断 支持代码在线编辑部署 支持各种方法的监控 支持线程的管理 三、…

【自然语言处理(NLP)】基于Word2Vec的语言模型实践

【自然语言处理&#xff08;NLP&#xff09;】基于Word2Vec的语言模型实践 作者简介&#xff1a;在校大学生一枚&#xff0c;华为云享专家&#xff0c;阿里云专家博主&#xff0c;腾云先锋&#xff08;TDP&#xff09;成员&#xff0c;云曦智划项目总负责人&#xff0c;全国高等…

jenkins学习-安装配置

1.下载安装 打开地址jenkins.io,进入页面&#xff0c;点击download按钮&#xff0c;计入下载页面&#xff0c;选择war架包下载 2.下载地址2&#xff1a;https://get.jenkins.io/war/ 下载版本&#xff1a;2.346.3 3控制台切换到架包路径&#xff0c;执行&#xff1a;Java -…

Java学习之super关键字

目录 一、super的作用 二、基本语法 第一条 第二条 第三条 三、super便利/细节 第一条 第二条 第一种&#xff1a;直接调用 第二种&#xff1a;this 第三种&#xff1a;super 第三条 四、this和super的比较 一、super的作用 super 代表父类的引用&#xff0c; 用于访…

Vue3表单输入绑定生命周期

官网&#xff1a;https://cn.vuejs.org/guide/essentials/forms.html#checkbox 复选框 在这个例子中&#xff0c;checkedNames 数组将始终包含所有当前被选中的框的值。 const checkedNames ref([])<div>Checked names: {{ checkedNames }}</div><input type…

docker镜像打包上传阿里云镜像仓库

阿里云镜像仓库说明&#xff1a; 将镜像推送到Registry $ docker login --usernamealiyun0398513152 rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com $ docker tag [ImageId] rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:[…

澜起科技发布业界首款DDR5第三子代寄存时钟驱动器工程样片

上海—2022年12月1日&#xff0c;澜起科技宣布在业界率先推出DDR5第三子代寄存时钟驱动器&#xff08;简称RCD或DDR5 RCD03&#xff09;工程样片&#xff0c;并已向业界主流内存厂商送样&#xff0c;该产品将用于新一代服务器内存模组。 澜起科技DDR5第三子代寄存时钟驱动器 D…