经过对系统实现功能的要求,进行集中、分块,同时也按照结构化程序设计的要求,根据分析得到如下的系统功能模块图:

代码已经上传github,下载地址:https://github.com/21503882/Physical-manage
 
图4-1物流快递管理系统管理员子系统功能模块图


 
图4-2物流快递管理系统客户子系统功能模块图

5.3管理员子系统详细设计
 
图5-3 系统登录模块页面


图5-4 系统主界面
 
图5-5管理员管理主页面


 
图5-6添加管理员页面
 
图5-7业务员管理主页面


 
图5-8添加业务员页面
 
图5-9快件信息管理主页面


 
图5-10叫件分配页面
 
图5-11 叫件信息收录人主页面


 
图5-12 叫件信息页面
 
图5-13途中信息维护主页面
 
图5-14途径信息页面
 
图5-15客户管理主页面


 
图5-16添加会员信息页面
 
图5-17信息反馈管理主页面


 
图5-18信息反馈页面
 
图5-19查询服务页面
5.4客户子系统详细设计
5.4.1 客户注册页面
在使用系统时必须注册成为系统的客户,并输入详细的客户信息。对应的磁盘文件为servlet/CustomServlet?method=regeditPage,会员注册页面设计如图5-20所示:
 
图5-20会员注册页面
 
图5-21我的订单信息管理页面

图5-22叫件管理页面
 
图5-23个人信息修改页面

package com.nuist.faxe.web.controller;

import com.nuist.faxe.common.controller.message.ResponseMessage;
import com.nuist.faxe.common.entity.Msg;
import com.nuist.faxe.common.utils.ParamConfig;
import com.nuist.faxe.web.domain.LoginInfo;
import com.nuist.faxe.web.domain.User;
import com.nuist.faxe.web.service.UserService;
import com.nuist.faxe.web.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 用户Controller
 *
 * @author ZhouXiang
 **/
@RestController
@RequestMapping("/audio/user")
public class UserController {

@Autowired
    private UserService service;

/**
     * 验证userName可用
     * userName不能重复
     * @param userName
     * @return boolean
     */
    @CrossOrigin
    @GetMapping("/check/{userName}")
    public ResponseMessage<Boolean> checkUserName(@PathVariable String userName){
        boolean result = service.checkUserName(userName);
        return ResponseMessage.ok(result);
    }
    /**
     * 登录
     * @param info
     * @return 登录结果
     */
    @CrossOrigin
    @PostMapping("/login")
    public ResponseMessage<UserVO> login(@RequestBody LoginInfo info){
        User result = service.checkLogin(info.getUserName(), info.getPassWord());
        if(null != result){
            return ResponseMessage.ok(entity2Model(result));
        }else {
            return ResponseMessage.error("Login Fail");
        }
    }
    /**
     * 注册
     * @param user
     * @return id
     */
    @CrossOrigin
    @PostMapping("/register")
    public ResponseMessage<String> register(@RequestBody User user){
        String id = service.register(user.getUserName(), user.getPassWord());
        return ResponseMessage.ok(id);
    }

/**
     * 仅限管理员调用
     * 管理员userId根据id删除一条记录
     * @param userId
     * @return Boolean
     */
    @CrossOrigin
    @DeleteMapping("/{userId}/{id}")
    public ResponseMessage<Boolean> deleteUserById(@PathVariable(value = "userId") String userId,
                                                        @PathVariable(value = "id") String id){
        User user = service.getUserById(userId);
        if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
            //若是管理员
            boolean result = service.deleteUserById(id);
            return ResponseMessage.ok(result);
        }else{
            return ResponseMessage.error("You Can Not Delete It");
        }
    }
    @CrossOrigin
    @DeleteMapping("/{userId}")
    public ResponseMessage<Boolean> deleteUserByIds(@PathVariable String userId,
                                                        @RequestParam("userIds") List<String> ids){
        User user = service.getUserById(userId);
        if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
            //若是管理员
            boolean result = service.deleteUserByIds(ids);
            return ResponseMessage.ok(result);
        }else {
            return ResponseMessage.error("You Can Not Delete Them");
        }
    }

/**
     * 根据id查询一条记录
     * @param userId
     * @return UserVO
     */
    @CrossOrigin
    @GetMapping("/{userId}")
    public ResponseMessage<UserVO> getUserById(@PathVariable String userId){
        User result = service.getUserById(userId);
        return ResponseMessage.ok(entity2Model(result));
    }

@CrossOrigin
    @GetMapping("/list/{userId}")
    public Msg<List<User>> list(@PathVariable String userId,
                                @RequestParam("page")Integer page,
                                @RequestParam("limit")Integer limit){
        User user = service.getUserById(userId);
        if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
            //若是管理员
            long count = service.countUser();
            List<User> data = service.list(page, limit);
            return Msg.ok(data, (int)count);
        }else {
            return Msg.error("You Can Not List It");
        }
    }

/**
     * 普通用户密码修改
     * @param userId
     * @param originalPassWord
     * @param newPassWord
     * @return
     */
    @CrossOrigin
    @PatchMapping("/{userId}")
    public ResponseMessage<Integer> update(@PathVariable String userId,
                                                @RequestParam(value = "originalPassWord") String originalPassWord,
                                                    @RequestParam(value = "newPassWord") String newPassWord){
        User user = service.getUserById(userId);
        if(user.getPassWord().equals(originalPassWord)){
            //若输入的原始密码正确,则进行密码修改
            return ResponseMessage.ok(service.updatePassWord(userId, newPassWord));
        }else{
            return ResponseMessage.error("Your password is error!");
        }
    }

/**
     * id为userId的管理员修改用户id的密码为newPassWord
     * @param userId
     * @param id
     * @param newPassWord
     * @return
     */
    @CrossOrigin
    @PatchMapping("/{userId}/{id}")
    public ResponseMessage<Integer> updateByManager(@PathVariable(value = "userId") String userId,
                                                        @PathVariable(value = "id") String id,
                                                            @RequestParam String newPassWord){
        User user = service.getUserById(userId);
        if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
            //若当前角色为管理员
            return ResponseMessage.ok(service.updatePassWord(id, newPassWord));
        }else{
            return ResponseMessage.error("Your can not update it!");
        }
    }

private UserVO entity2Model(User entity){
        UserVO model = new UserVO();
        model.setId(entity.getId());
        model.setUserName(entity.getUserName());
        model.setRole(entity.getRole());
        return model;
    }
}
代码已经上传github,下载地址:https://github.com/21503882/Physical-manage

java+sql+物流快递管理系统相关推荐

  1. Java项目:物流快递管理系统(java+SSM+jsp+mysql)

    本系统主要实现的功能有: 前端公司主页.政策.新闻咨询.联系地址.在线留言.在线下单,查询快递物流信息等, 后台主要的功能有:菜单管理.角色管理.用户管理.新闻管理.日志管理.留言管理.订单管理等. ...

  2. java职工管理系统sql_java+sql员工管理系统

    [实例简介] java+sql员工管理系统包含 源代码.数据库.报告文档.PPT 数据字典等,功能也非常齐全:代码都有注释,非常适合做毕业或者课程之类的设计. [实例截图] [核心代码] 原始文件 └ ...

  3. 基于javaweb的物流快递管理系统(java+ssm+html+js+jsp+mysql)

    基于javaweb的物流快递管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...

  4. java sql 工资管理,企业工资管理系统(Java+MySQL)Word版

    <企业工资管理系统(Java+MySQL)Word版>由会员分享,可在线阅读,更多相关<企业工资管理系统(Java+MySQL)Word版(24页珍藏版)>请在人人文库网上搜索 ...

  5. 宾馆客户管理系统数据库java_数据库课程设计+宾馆管理系统+Java+Sql

    [实例简介] 数据库课程设计+宾馆管理系统+Java+Sql [实例截图] [核心代码] elz76n └── 数据库课程设计 ├── sushe │   ├── build │   │   ├── ...

  6. 学生学籍信息管理系统(Java + SQL)

    学生学籍信息管理系统(Java + SQL) 开发环境:eclipse,SQLserve2008 开发语言:Java.SQL 第一步,数据库设计,我们设计之前先进行需求分析,我们要满足哪些基本需求呢, ...

  7. java+SQL做学生信息管理系统(增删改查)

    java+SQL做学生信息管理系统(增删改查) [过程中需要用到的所有工具数据库以及数据库管理器等等] https://pan.baidu.com/s/1cLKJPKXauLCl-Vwah6wFIQ ...

  8. 基于java+sql+servlet的金融借贷管理系统mysql数据源

    基于java+sql+servlet的金融借贷管理系统 一套基于基于JavaWeb实现的金融借贷系统 或 P2P金融管理系统 或 小额贷款系统,详细介绍了金融借贷系统的实现,包括:1.项目介绍2.环境 ...

  9. java+sql企业固定资产管理系统(论文+系统+开题报告+任务书+中期考核报告+任务书+评语表+答辩PPT)

    毕业设计(论文)任务书 课题名称: 企业固定资产管理系统 姓 名 指导教师 专 业 职 称 所在系 指导教师 接受任务日期 职 称 毕业设计(论文)地点 本 校 一.原始依据(资料):某公司业务不断发 ...

最新文章

  1. GPT“高仿”系列开源了!最大可达GPT-3大小,还能自主训练
  2. pytorch 损失函数总结
  3. linux系统知识 - 信号基础
  4. C++Primer:Break、Continue、Goto、Try/异常处理
  5. 存储限制_明年6月份开始,谷歌相册将终止免费无限存储服务
  6. 使用Maven创建Web项目后,jsp引入静态文件提示报错。JSP 报错:javax.servlet.ServletException cannot be resolved to a type...
  7. Qt4工作笔记-Linux中Qt4.8.6在GBK和UTF-8编码转换
  8. 28. 对称的二叉树
  9. android retrofit 2.0公共参数,Retrofit2.0 添加公共参数
  10. 被单位开除后,以前的工龄还算吗?
  11. ES6数组的扩展~超详细、超好理解哦
  12. 带网格的_雨花区井圭路社区开展消防安全网格化实战演练活动
  13. 求链表是否有环,及环入口,环长度
  14. fluent python_流畅的Python-Fluent Python简要书评
  15. dell 2u服务器型号,IBM、HP、Dell比拼主流2U双路服务器
  16. ie浏览器html页面怎么清缓存,Web项目中,清理浏览器缓存的几种方式
  17. ubuntu 18.04/16.04/14.04 双硬盘分区方案
  18. sklearn中的make_blobs
  19. 【小迪安全】web安全|渗透测试|网络安全 | 学习笔记-7
  20. 单反相机镜头焦距与被摄物体的实际距

热门文章

  1. ER/Studio入门操作和配置生成SQL注释(Attribute name)
  2. 能ping通Linux但是ssh连不上问题解决方法
  3. ETL(大数据)测试实战篇(二)
  4. 机电一体化PLC毕业设计、课程设计案例分享/液压、电梯、洗衣机、送料控制、步进电动机、装瓶流水线、大小球分拣传送、饮料罐装、自动售货机、立体车库、洗衣机、喷泉、机械手、卧式镗床、温度控制、供水系统……
  5. 《中国古代文学III(元明清)》
  6. python-----18--shutil模块------复制文件权限和修改属组属主
  7. 两种方案实现内外网隔离
  8. 译码器和数据选择器的使用-实现多输入逻辑函数
  9. PPG成长思辨录:轻公司的光环与谜局
  10. 全国世界城市列表API接口,免费好用