博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到🔎百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我❤️文末获取源码联系❤️ ⚠️一定要先收藏⚠️
4系统概要设计
4.1概述
本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:
图4-1系统工作原理图
4.2系统结构
本系统是基于B/S架构的网站系统,设计的功能结构图如下图所示:
图4-2功能结构图
4.3.数据库设计
4.3.1数据库实体
概念设计的目标是设计出反映某个组织部门信息需求的数据库系统概念模式,数据库系统的概念模式独立于数据库系统的逻辑结构、独立于数据库管理系统(DBMS)、独立于计算机系统。
概念模式的设计方法是在需求分析的基础上,用概念数据模型(例如E-R模型)表示数据及数据之间的相互联系,设计出反映用户信息需求和处理需求的数据库系统概念模式。概念设计的目标是准确描述应用领域的信息模式,支持用户的各种应用,这样既容易转换为数据库系统逻辑模式,又容易为用户理解。数据库系统概念模式是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此阶段,用户可以参与和评价数据库系统的设计,从而有利于保证数据库系统的设计与用户的需求相吻合。在概念模式的设计中,E-R模型法是最常见的设计方法。本系统的E-R图如下图所示:
图4.12 员工信息实体属性图
(2)店主信息实体属性图如图4.13所示:
图4.13 店主信息实体属性图
(3)部门分类信息实体属性图如图4.14所示:
图4.14 部门分类信息实体属性图
4.3.2数据库设计表
智能物流管理系统需要后台数据库,下面介绍数据库中的各个表的详细信息:
表4.1 部门分类
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
leixing | varchar(200) | 是 | NULL | 类型 |
表4.2 店主
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
dianzhuzhanghao | varchar(200) | 否 | 店主账号 | |
mima | varchar(200) | 否 | 密码 | |
dianzhuxingming | varchar(200) | 否 | 店主姓名 | |
xingbie | varchar(200) | 是 | NULL | 性别 |
lianxidianhua | varchar(200) | 是 | NULL | 联系电话 |
youxiang | varchar(200) | 是 | NULL | 邮箱 |
shenfenzheng | varchar(200) | 是 | NULL | 身份证 |
tupian | varchar(200) | 是 | NULL | 图片 |
表4.3 订单信息
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
dingdanbianhao | varchar(200) | 是 | NULL | 订单编号 |
mendianmingcheng | varchar(200) | 是 | NULL | 门店名称 |
dingdanzhonglei | varchar(200) | 是 | NULL | 订单种类 |
pinming | varchar(200) | 是 | NULL | 品名 |
jingzhong | varchar(200) | 是 | NULL | 净重 |
shifadi | varchar(200) | 是 | NULL | 始发地 |
mudedi | varchar(200) | 是 | NULL | 目的地 |
kehubeizhu | longtext | 是 | NULL | 客户备注 |
zhanghao | varchar(200) | 是 | NULL | 账号 |
gukexingming | varchar(200) | 是 | NULL | 顾客姓名 |
sfsh | varchar(200) | 是 | 否 | 是否审核 |
shhf | longtext | 是 | NULL | 审核回复 |
表4.4 工作日志
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
gonghao | varchar(200) | 是 | NULL | 工号 |
yuangongxingming | varchar(200) | 是 | NULL | 员工姓名 |
bumen | varchar(200) | 是 | NULL | 部门 |
dianzhuzhanghao | varchar(200) | 是 | NULL | 店主账号 |
mendianmingcheng | varchar(200) | 是 | NULL | 门店名称 |
gongzuoxiangmu | varchar(200) | 是 | NULL | 工作项目 |
gongzuoneirong | longtext | 是 | NULL | 工作内容 |
wanchengzhuangkuang | varchar(200) | 是 | NULL | 完成状况 |
daijiejuewenti | longtext | 是 | NULL | 待解决问题 |
gongzuozongjie | longtext | 是 | NULL | 工作总结 |
beizhu | longtext | 是 | NULL | 备注 |
riqi | date | 是 | NULL | 日期 |
sfsh | varchar(200) | 是 | 否 | 是否审核 |
shhf | longtext | 是 | NULL | 审核回复 |
表4.5 顾客
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
zhanghao | varchar(200) | 否 | 账号 | |
mima | varchar(200) | 否 | 密码 | |
gukexingming | varchar(200) | 否 | 顾客姓名 | |
xingbie | varchar(200) | 是 | NULL | 性别 |
shouji | varchar(200) | 是 | NULL | 手机 |
youxiang | varchar(200) | 是 | NULL | 邮箱 |
shenfenzheng | varchar(200) | 是 | NULL | 身份证 |
dizhi | varchar(200) | 是 | NULL | 地址 |
tupian | varchar(200) | 是 | NULL | 图片 |
表4.6 门店信息
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
mendianmingcheng | varchar(200) | 是 | NULL | 门店名称 |
mendianweizhi | varchar(200) | 是 | NULL | 门店位置 |
mendianjieshao | longtext | 是 | NULL | 门店介绍 |
mendiantupian | varchar(200) | 是 | NULL | 门店图片 |
chuangjianriqi | date | 是 | NULL | 创建日期 |
dianzhuzhanghao | varchar(200) | 是 | NULL | 店主账号 |
lianxidianhua | varchar(200) | 是 | NULL | 联系电话 |
sfsh | varchar(200) | 是 | 否 | 是否审核 |
shhf | longtext | 是 | NULL | 审核回复 |
表4.7 门店员工
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
gonghao | varchar(200) | 是 | NULL | 工号 |
yuangongxingming | varchar(200) | 是 | NULL | 员工姓名 |
xingbie | varchar(200) | 是 | NULL | 性别 |
bumen | varchar(200) | 是 | NULL | 部门 |
shouji | varchar(200) | 是 | NULL | 手机 |
shenfenzheng | varchar(200) | 是 | NULL | 身份证 |
gerenjianli | varchar(200) | 是 | NULL | 个人简历 |
zhaopian | varchar(200) | 是 | NULL | 照片 |
dianzhuzhanghao | varchar(200) | 是 | NULL | 店主账号 |
dianzhuxingming | varchar(200) | 是 | NULL | 店主姓名 |
表4.8 管理员表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
username | varchar(100) | 否 | 用户名 | |
password | varchar(100) | 否 | 密码 | |
role | varchar(100) | 是 | 管理员 | 角色 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 新增时间 |
表4.9 员工
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
gonghao | varchar(200) | 否 | 工号 | |
mima | varchar(200) | 否 | 密码 | |
yuangongxingming | varchar(200) | 否 | 员工姓名 | |
xingbie | varchar(200) | 是 | NULL | 性别 |
mendianmingcheng | varchar(200) | 是 | NULL | 门店名称 |
bumen | varchar(200) | 是 | NULL | 部门 |
shouji | varchar(200) | 是 | NULL | 手机 |
shenfenzheng | varchar(200) | 是 | NULL | 身份证 |
tupian | varchar(200) | 是 | NULL | 图片 |
5系统详细实现
5.1 管理员模块的实现
5.1.1 顾客信息管理
智能物流管理系统的系统管理员可以管理顾客信息,可以对顾客信息信息添加修改删除以及查询操作。具体界面的展示如图5.1所示。
图5.1 顾客信息信息管理界面
5.1.2 员工信息管理
系统管理员可以查看对员工信息信息进行添加,修改,删除以及查询操作。具体界面如图5.2所示。
图5.2 员工信息信息管理界面
5.2 店主模块的实现
5.2.1 员工信息管理
店主可以对员工信息信息进行修改,删除以及查询操作。界面如下图所示:
图5.3 员工信息信息管理界面
5.2.1 门店信息管理
店主可以对门店信息信息进行修改操作,还可以对门店信息信息进行查询。界面如下图所示:
图5.4 门店信息管理界面
5.2 员工模块的实现
5.2.2 门店信息管理
员工登录可以查看门店信息。界面如下图所示:
图5.5 门店信息界面
5.2.3 订单信息管理
员工登录后可以对订单信息进行审核操作。界面如下图所示:
图5.6 订单信息管理界面
JAVA后端代码实现
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
不同开发语言专栏推荐订阅:
👇下方有我的微信名片👇