背景
困扰管理层的许多问题当中,摄影跟拍预定管理一定是不敢忽视的一块。但是管理好摄影跟拍预定又面临很多麻烦需要解决,例如有几个方面:第一,往往用户人数都比较多,如何保证能够管理到每一用户;第二,如何在工作琐碎,记录繁多的情况下将摄影跟拍预定的当前情况反应给领导相关部门决策等。在此情况下开发一款摄影跟拍预定管理系统,于是乎变得非常合乎时宜。
系统设计
考虑到实际生活中在摄影跟拍预定方面的需要以及对该系统认真的分析,将系统权限按管理员、摄影师和用户这三类涉及用户划分。
(a) 管理员;管理员使用本系统涉到的功能主要有:首页、个人中心、用户管理、摄影师管理、摄影跟拍管理、类别管理、周边商品管理、商品类型管理、跟拍预约管理、跟拍流程管理、成品信息管理、商品订单管理、系统管理等功能。
(b)摄影师;摄影师使用本系统涉到的功能主要有:首页、个人中心、跟拍预约管理、跟拍流程管理、成品信息管理、商品订单管理等功能
©用户主要包括首页、个人中心、跟拍预约管理、跟拍流程管理、成品信息管理、商品订单管理、评论信息管理、我的收藏管理等功能
数据库设计
ER图
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
个人中心实体图如图:
摄影跟拍实体图:
周边商品实体图如图:
数据库表
由于涉及到的数据表较多,此处只展示部分的数据表。
详细系统设计
系统功能模块
摄影跟拍预定管理系统,在系统首页可以查看首页、摄影跟拍、周边商品、公告信息、个人中心、后台管理等内容,并进行详细操作。
管理员功能模块
管理员登录系统后,可以对首页、个人中心、用户管理、摄影师管理、摄影跟拍管理、类别管理、周边商品管理、商品类型管理、跟拍预约管理、跟拍流程管理、成品信息管理、商品订单管理、系统管理等进行相应的操作管理。
#
代码实现
跟拍流程代码实现
@RestController
@RequestMapping("/genpailiucheng")
public class GenpailiuchengController {
@Autowired
private GenpailiuchengService genpailiuchengService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,GenpailiuchengEntity genpailiucheng,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
genpailiucheng.setGerenzhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("sheyingshi")) {
genpailiucheng.setGonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<GenpailiuchengEntity> ew = new EntityWrapper<GenpailiuchengEntity>();
PageUtils page = genpailiuchengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, genpailiucheng), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,GenpailiuchengEntity genpailiucheng,
HttpServletRequest request){
EntityWrapper<GenpailiuchengEntity> ew = new EntityWrapper<GenpailiuchengEntity>();
PageUtils page = genpailiuchengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, genpailiucheng), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( GenpailiuchengEntity genpailiucheng){
EntityWrapper<GenpailiuchengEntity> ew = new EntityWrapper<GenpailiuchengEntity>();
ew.allEq(MPUtil.allEQMapPre( genpailiucheng, "genpailiucheng"));
return R.ok().put("data", genpailiuchengService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(GenpailiuchengEntity genpailiucheng){
EntityWrapper< GenpailiuchengEntity> ew = new EntityWrapper< GenpailiuchengEntity>();
ew.allEq(MPUtil.allEQMapPre( genpailiucheng, "genpailiucheng"));
GenpailiuchengView genpailiuchengView = genpailiuchengService.selectView(ew);
return R.ok("查询跟拍流程成功").put("data", genpailiuchengView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
GenpailiuchengEntity genpailiucheng = genpailiuchengService.selectById(id);
return R.ok().put("data", genpailiucheng);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
GenpailiuchengEntity genpailiucheng = genpailiuchengService.selectById(id);
return R.ok().put("data", genpailiucheng);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody GenpailiuchengEntity genpailiucheng, HttpServletRequest request){
genpailiucheng.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(genpailiucheng);
genpailiuchengService.insert(genpailiucheng);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody GenpailiuchengEntity genpailiucheng, HttpServletRequest request){
genpailiucheng.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(genpailiucheng);
genpailiuchengService.insert(genpailiucheng);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody GenpailiuchengEntity genpailiucheng, HttpServletRequest request){
//ValidatorUtils.validateEntity(genpailiucheng);
genpailiuchengService.updateById(genpailiucheng);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
genpailiuchengService.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<GenpailiuchengEntity> wrapper = new EntityWrapper<GenpailiuchengEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
wrapper.eq("gerenzhanghao", (String)request.getSession().getAttribute("username"));
}
if(tableName.equals("sheyingshi")) {
wrapper.eq("gonghao", (String)request.getSession().getAttribute("username"));
}
int count = genpailiuchengService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
跟拍预约代码实现
@RestController
@RequestMapping("/genpaiyuyue")
public class GenpaiyuyueController {
@Autowired
private GenpaiyuyueService genpaiyuyueService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,GenpaiyuyueEntity genpaiyuyue,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
genpaiyuyue.setGerenzhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<GenpaiyuyueEntity> ew = new EntityWrapper<GenpaiyuyueEntity>();
PageUtils page = genpaiyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, genpaiyuyue), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,GenpaiyuyueEntity genpaiyuyue,
HttpServletRequest request){
EntityWrapper<GenpaiyuyueEntity> ew = new EntityWrapper<GenpaiyuyueEntity>();
PageUtils page = genpaiyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, genpaiyuyue), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( GenpaiyuyueEntity genpaiyuyue){
EntityWrapper<GenpaiyuyueEntity> ew = new EntityWrapper<GenpaiyuyueEntity>();
ew.allEq(MPUtil.allEQMapPre( genpaiyuyue, "genpaiyuyue"));
return R.ok().put("data", genpaiyuyueService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(GenpaiyuyueEntity genpaiyuyue){
EntityWrapper< GenpaiyuyueEntity> ew = new EntityWrapper< GenpaiyuyueEntity>();
ew.allEq(MPUtil.allEQMapPre( genpaiyuyue, "genpaiyuyue"));
GenpaiyuyueView genpaiyuyueView = genpaiyuyueService.selectView(ew);
return R.ok("查询跟拍预约成功").put("data", genpaiyuyueView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
GenpaiyuyueEntity genpaiyuyue = genpaiyuyueService.selectById(id);
return R.ok().put("data", genpaiyuyue);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
GenpaiyuyueEntity genpaiyuyue = genpaiyuyueService.selectById(id);
return R.ok().put("data", genpaiyuyue);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody GenpaiyuyueEntity genpaiyuyue, HttpServletRequest request){
genpaiyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(genpaiyuyue);
genpaiyuyueService.insert(genpaiyuyue);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody GenpaiyuyueEntity genpaiyuyue, HttpServletRequest request){
genpaiyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(genpaiyuyue);
genpaiyuyueService.insert(genpaiyuyue);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody GenpaiyuyueEntity genpaiyuyue, HttpServletRequest request){
//ValidatorUtils.validateEntity(genpaiyuyue);
genpaiyuyueService.updateById(genpaiyuyue);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
genpaiyuyueService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}