博主介绍:
大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。
我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下进行项目开发,具有丰富的项目经验和开发技能。我的代码风格规范、优美、易读性强,同时也注重性能优化、代码重构等方面的实践和经验总结。
我有丰富的成品Java毕设项目经验,能够为学生提供各类个性化的开题框架和实际运作方案。同时我也提供相关的学习资料、程序开发、技术解答、代码讲解、文档报告等专业服务。🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
Java项目精品实战案例(300套)
滴答拍摄影项目源码下载地址:
https://download.csdn.net/download/weixin_54828627/87775481
一、前言介绍
拍摄能让人放开自我、因看到不同的美景都想留下美好的记忆,有些人喜欢拍摄静物来表现宁静的氛围,通过小品类的照片,传达内心的情绪。而我更喜欢另一种方式,就是用长时间曝光把波动的海水或湖水雾化,拍摄出来的作品同样给人一种宁静祥和的感受。
本系统总体设计主要包括系统总体结构设计、系统数据结构设计、系统功能设计和系统安全设计等;详细设计主要包括模块实现的关键代码,系统数据库访问和主要功能模块的具体实现等。最后对系统进行功能测试,并对测试结果进行分析总结,及时改进系统中存在的不足,为以后的系统维护提供了方便,也为今后开发类似系统提供了借鉴和帮助。
二、主要技术
技术名 | 作用 |
---|---|
SpringBoot | 后端框架 |
Vue | 前端框架 |
MySQL | 数据库 |
三、系统设计(部分)
3.1、主要功能模块设计
3.2、系统登录流程设计
四、数据库设计(部分)
通过滴答拍摄影项目的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:
管理员信息属性图如图4-5所示。
图4-5 管理员信息实体属性图
用户管理:用户名、密码、姓名、性别、手机、邮箱、照片实体属性图如图4-6所示。
图4-6用户信息属性图
摄影师管理:摄影师账号、密码、摄影师姓名、性别、年龄、摄影年限、联系方式、邮箱、照片、代表作品实体属性图如图4-7所示。
图4-7摄影师管理属性图
五、功能截图
5.1管理员功能模块
滴答拍摄影项目,在管理员登录系统的首页可以通过点击登录,可以填写账号、密码、等信息进行登录操作等信息,如图5-1所示。
图5-1管理员登录首页界面图
用户管理
图5-2用户管理界面图
摄影作品管理
图5-3摄影作品管理界面图
摄影服务品管理
图5-4摄影服务品管理界面图
预约信息管理
图5-5预约信息管理界面图
摄影论坛管理
图5-6摄影论坛界面图
系统管理:管理员通过系统管理页面查看轮播图/系统公告、在线客服等进行上传图片、发布公告、在线客服进行添加、删除、修改以及查看并对整个系统进行维护等操作。,如图5-7所示。
图5-7系统管理界面图
5.2、前台功能模块
用户注册
图5-8用户注册、登陆界面图
前台首页浏览,通过内容列表可以获取网站首页、摄影作品、摄影服务、摄影论坛、系统公告、个人中心、后台管理、在线客服等信息操作内容,如图5-9所示。
图5-9用户前台浏览管理界面图
个人中心
图5-10个人中心界面图
摄影作品
图5-11摄影作品界面图
摄影论坛
图5-12摄影论坛界面图
5.3、用户功能模块
首页,在首页页面通过查看首页、个人中心、摄影作品管理、摄影服务管理、预约信息管理、系统管理等信息,如图5-13所示。
图5-13首页界面图
预约信息管理
图5-14预约信息管理界面图
5.4、摄影师功能模块
注册、登陆
图5-15注册、登录界面图
个人信息
图5-16个人信息界面图
摄影作品管理
图5-17摄影作品界面图
摄影服务管理
图5-18摄影服务界面图
收费类型管理
图5-19收费类型界面图
这里功能太多,就不一一展示啦~
六、关键代码
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.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.DiscusssheyingzuopinEntity;
import com.entity.view.DiscusssheyingzuopinView;
import com.service.DiscusssheyingzuopinService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 摄影作品评论表
* 后端接口
* @author
* @email
* @date 2021-02-26 10:53:29
*/
@RestController
@RequestMapping("/discusssheyingzuopin")
public class DiscusssheyingzuopinController {
@Autowired
private DiscusssheyingzuopinService discusssheyingzuopinService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,DiscusssheyingzuopinEntity discusssheyingzuopin, HttpServletRequest request){
EntityWrapper<DiscusssheyingzuopinEntity> ew = new EntityWrapper<DiscusssheyingzuopinEntity>();
PageUtils page = discusssheyingzuopinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusssheyingzuopin), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,DiscusssheyingzuopinEntity discusssheyingzuopin, HttpServletRequest request){
EntityWrapper<DiscusssheyingzuopinEntity> ew = new EntityWrapper<DiscusssheyingzuopinEntity>();
PageUtils page = discusssheyingzuopinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusssheyingzuopin), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( DiscusssheyingzuopinEntity discusssheyingzuopin){
EntityWrapper<DiscusssheyingzuopinEntity> ew = new EntityWrapper<DiscusssheyingzuopinEntity>();
ew.allEq(MPUtil.allEQMapPre( discusssheyingzuopin, "discusssheyingzuopin"));
return R.ok().put("data", discusssheyingzuopinService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(DiscusssheyingzuopinEntity discusssheyingzuopin){
EntityWrapper< DiscusssheyingzuopinEntity> ew = new EntityWrapper< DiscusssheyingzuopinEntity>();
ew.allEq(MPUtil.allEQMapPre( discusssheyingzuopin, "discusssheyingzuopin"));
DiscusssheyingzuopinView discusssheyingzuopinView = discusssheyingzuopinService.selectView(ew);
return R.ok("查询摄影作品评论表成功").put("data", discusssheyingzuopinView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
DiscusssheyingzuopinEntity discusssheyingzuopin = discusssheyingzuopinService.selectById(id);
return R.ok().put("data", discusssheyingzuopin);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
DiscusssheyingzuopinEntity discusssheyingzuopin = discusssheyingzuopinService.selectById(id);
return R.ok().put("data", discusssheyingzuopin);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody DiscusssheyingzuopinEntity discusssheyingzuopin, HttpServletRequest request){
discusssheyingzuopin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discusssheyingzuopin);
discusssheyingzuopinService.insert(discusssheyingzuopin);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody DiscusssheyingzuopinEntity discusssheyingzuopin, HttpServletRequest request){
discusssheyingzuopin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discusssheyingzuopin);
discusssheyingzuopinService.insert(discusssheyingzuopin);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody DiscusssheyingzuopinEntity discusssheyingzuopin, HttpServletRequest request){
//ValidatorUtils.validateEntity(discusssheyingzuopin);
discusssheyingzuopinService.updateById(discusssheyingzuopin);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
discusssheyingzuopinService.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<DiscusssheyingzuopinEntity> wrapper = new EntityWrapper<DiscusssheyingzuopinEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = discusssheyingzuopinService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
七、论文参考
八、技术交流
大家点赞、收藏、关注、评论啦 、查看文章结尾👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻
Java项目精品实战案例(300套)