基于JavaWeb开发的ava+SpringBoot+vue+element实现婚纱摄影网系统
🍅 作者主页 网顺技术团队
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
文章目录
- 基于JavaWeb开发的ava+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);
}
}
论文参考: