- 介绍
- 效果
- 论文内容
- 功能需求
- ER图
- 物理模型
- 数据字典
- 部分代码
- 测试
该系统可作为毕业设计,内容齐全,论文部分为13000字。包括ER图、流程图、用例图、架构图、物理设计模型等,课题类型新颖,模仿【毒】APP的做法,兼具用户端和后台管理端。以Springboot为框架、mysql为数据库支持。
后台管理端:
用户基本功能需求如下:
(1)用户的注册功能,包括用户名、密码、联系电话、性别等;
(2)用户的登陆功能,验证用户名和密码;
(3)用户下单功能,包括洗护的种类选择,洗护种类选择,数量等;
(4)用户个人中心:在这里,用户可以看到自己的订单情况。
管理员基本功能需求如下:
(1)管理员及员工的登录功能;
(2)角色管理功能,包括对员工各种权限的自由分配;
(3)员工管理功能,包括员工列表的查询。
(4)用户订单信息统计功能,清楚的查看最近用户的订单情况。
(5)系统日志功能,包括系统日志的查看;
(6)用户管理,包括对用户信息的查询与管理;
(7)营业统计,包括按日统计和按月统计营业额。
(8)洗护种类管理,预计后期可能添加新的洗护种类
由于系统的订单状态转换较为繁琐,我们需要对系统订单的流程进行详细分析,确保在运行中不会出现逻辑错误,系统主要围绕用户下订单和后台处理订单,用户收货、评价等操作进行。保证每个状态之间正常转换,业务正常执行。整个订单的步骤应该有如下功能:
(1)用户进入平台,选择洗护服务下单。
(2)用户错下单/不想要了,取消订单。
(3)用户确认订单信息,付款。
(4)系统判断用户余额充值,完成付款(否则提醒充值)。
(5)用户将需要清洗的鞋子/奢包(奢侈品包包)根据订单寄出给厂房。
(6)厂房收到鞋子/奢包。
(7)厂房完成清洗。
(8)厂房将清洗后的鞋子/奢包寄还给用户。
(9)用户确认收到鞋子/奢包并进行评价。
部分(主要的表)关联表:
部分数据字段示范:
public static ListgetComment(String type ){ QueryWrapper wrapper = new QueryWrapper<>(); //如果type为空,则表示从所有类型评论中获取三条最新评价。 if(StringUtils.isNotBlank(type)) { wrapper.eq("type",type); } //条件:评论等级为五星评价(评论等级为0-4 表示1-5星) wrapper.eq("level",4); //根据时间排序,获取最新 wrapper.orderByDesc("createtime"); //只获取三条 wrapper.last( " limit 3 "); List list = commentService.list(wrapper); for (Comment comment:list){ //填充评论者信息 User user = userService.getById(comment.getUserId()); comment.setUsername(user.getUsername()); comment.setUserpic(user.getPicture()); //填充晒图图片 QueryWrapper fileInfoQueryWrapper = new QueryWrapper<>(); fileInfoQueryWrapper.eq("outer_id",comment.getId()); comment.setPics(fileInfoService.list(fileInfoQueryWrapper)); } return list; }
/完成
@RequestMapping("complete")
@ResponseBody
@Transactional
public ApiResult complete(String id){//详单id
//根据id获取详单信息
OrderDetail orderDetail =detailService.getById(id);
//将其标记为已清洗
orderDetail.setStatus("Y");
detailService.updateById(orderDetail);
//如果此订单的全部详单都完成,则,订单状态设为已清洗。
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.select("count(1) as count ");
wrapper.eq("order_id",orderDetail.getOrderId());
Map map = detailService.getMap(wrapper);
long count = (Long) map.get("count");
if(count==0){
//说明这个订单已经完成清洗;
Order order = new Order();
order.setStatus("5");//5已清洗
orderService.updateById(order);
}
return success();
}
测试



