基于javaweb+SSM的快递代拿系统(java+SSM+Bootstrap+Shiro+mysql)

使用技术
采用 Spring + SpringMVC + MyBatisPlus,连接池采用 Druid,安全框架使用 Shiro,前端采用 Bootstrap + layer 实现。

支付采用支付宝沙箱环境,支付APP下载链接,点击这里

支付账号:uceskd4358@sandbox.com
登录密码、支付密码:111111

注意:

请务必使用以上链接下载沙箱支付宝,也务必使用以上账号登录。不要使用真实支付宝APP和真实支付宝账号登录。

运行环境

  • 集成开发环境:IntelliJ IDEA

  • 项目构建工具:Maven

  • 数据库:MYSQL 5.7+

  • JDK版本:1.8

  • Tomcat版本:Tomcat8

(1)首先请创建数据库:

CREATE DATABASE IF NOT EXISTS `express-ssm` /*!40100 DEFAULT CHARACTER SET utf8 */

(2)导入项目 sql 文件夹下的 express-ssm.sql 文件。
(3)编辑项目中 src/main/resources/cnf/mysql.properties 文件,修改数据库连接信息:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/express-ssm?useUnicode=true&useSSL=false&characterEncoding=utf-8
jdbc.username=root # MYSQL 用户名
jdbc.password=root # MYSQL 密码

运行
项目运行时,在tomcat中配置项目运行路径为http://localhost:8080/ 注意:后面不要带项目名,否则会运行出错;

默认账户
注:以下为本项目默认存在的用户名密码,请将本仓库项目在本地运行后使用以下密码登录。

| 权限 | 用户名 | 密码 |
| 管理员 | admin | 123 |
| 配送员 | 李四 | 123 |
| 用户名 | 小红 | 123 |请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

        BasicDataExample basicDataExample = new BasicDataExample();
        BasicDataExample.Criteria criteria = basicDataExample.createCriteria();
        criteria.andParentIdIsNull();
        m.addAttribute("basicDatas", basicDataService.selectByExample(basicDataExample));
        return "basicData/edit";
    }
    @ResponseBody
    @RequestMapping("/update")
    @RequiresPermissions("basicData:update")
    public Boolean update(BasicData basicData) {
        int res = basicDataService.updateByPrimaryKey(basicData);
        if (res == 1) {
            return true;
        }
        return false;
    }
}
        }
        m.addAttribute("users", users);
        //查找客户
        CustomerExample customerExample = new CustomerExample();
        List<Customer> customers;
        //如果当前用户是业务员只能获得自己的客户
        if (userRoleId == ConstantDataField.SALESMAN_ROLE_ID) {
            customerExample.createCriteria().andUserIdEqualTo(userId);
            customers = customerService.selectByExample(customerExample);
        } else {
            customers = customerService.selectByExample(customerExample);
        }
        m.addAttribute("customers", customers);
        //查找地区
        BasicDataExample areaExample = new BasicDataExample();
        areaExample.createCriteria().andParentIdEqualTo(ConstantDataField.AREA_BASICDATA_ID);
        //插入 order,在此之后,order 获得了 orderId
        int res = orderService.insert(order);
        //获取订单详情集合
        List<OrderDetail> orderDetails = order.getorderDetails();
        orderDetails.forEach(orderDetail -> {
            orderDetail.setOrderId(order.getOrderId());
            orderDetailService.insert(orderDetail);
        });
        if (res == 1) {
            return true;
        }
        return false;
    }
    @RequestMapping("/edit")
    @RequiresPermissions("order:update")
    public String edit(Long orderId, Model m) {
        //获取常规数据
        getOrderGeneralData(m);
        m.addAttribute("roles", roleService.selectByExample(new RoleExample()));
        return "admin/edit";
    }
    @ResponseBody
    @RequestMapping("/update")
    @RequiresPermissions("admin:update")
    public Boolean update(User user) {
        if (StringUtils.isBlank(user.getPassword())) {
            user.setPassword(null);
        } else {
            String salt = UUID.randomUUID().toString().substring(0, 4);
            String hashedPassword = new SimpleHash("md5", user.getPassword(), salt, 3).toString();
            user.setPassword(hashedPassword);
            user.setSalt(salt);
        }
        int res = userService.updateByPrimaryKeySelective(user);
        if (res == 1) {
            return true;
    @Autowired
    private BasicDataService basicDataService;
    @Autowired
    private OrderDetailService orderDetailService;
    //工具方法
    public PageInfo<OrderView> getOrdersUtil(String keyWord, Integer pageNum, Integer pageSize) {
        //开始分页,这里启动并设置页码,和每页结果数量后,后续结果会自动为分页后结果
        PageHelper.startPage(pageNum, pageSize);
        OrderViewExample orderViewExample = new OrderViewExample();
        OrderViewExample.Criteria criteria = orderViewExample.createCriteria();
        /**
         * StringUtils.isNotBlank 可以判断 ""/" "/null 为 false
         */
        if (StringUtils.isNotBlank(keyWord)) {
            //客户名条件
            criteria.andCustomerNameLike("%" + keyWord + "%");
        }
            return true;
        }
        return false;
    }
    @RequestMapping("/edit")
    @RequiresPermissions("order:update")
    public String edit(Long orderId, Model m) {
        //获取常规数据
        getOrderGeneralData(m);
        //添加选中的订单
        Order selectedOrder = orderService.selectByPrimaryKey(orderId);
        m.addAttribute("selectedOrder", selectedOrder);
        //添加订单详情
        OrderDetailExample orderDetailExample = new OrderDetailExample();
        orderDetailExample.createCriteria().andOrderIdEqualTo(orderId);
        List<OrderDetail> orderDetails = orderDetailService.selectByExample(orderDetailExample);
        m.addAttribute("orderDetails", orderDetails);
        return "order/edit";
    }
    @RequiresPermissions("order:update")
    @RequestMapping("/update")
    @ResponseBody
    public Boolean update(@RequestBody Order order) {
    public String list() {
        return "order/list";
    }
    @ResponseBody
    @RequestMapping("/getOrders")
    @RequiresPermissions("order:list")
    public PageInfo<OrderView> getOrders(String keyWord,
                                        @RequestParam(defaultValue = "1") Integer pageNum,
                                        @RequestParam(defaultValue = "10") Integer pageSize) {
        return getOrdersUtil(keyWord, pageNum, pageSize);
    }
    @ResponseBody
    @RequestMapping("/delete")
    @RequiresPermissions("order:delete")
    public Map<String, String> delete(Long[] orderIds) {
        HashMap<String, String> map = new HashMap<>();
        //单个删除
        if (orderIds.length == 1) {
            int res = orderService.deleteByPrimaryKey(orderIds[0]);
            if (res == 1) {
                map.put("status", "true");
                map.put("info", "删除成功!");
                return map;
            }
            map.put("status", "false");
            map.put("info", "删除失败!订单已经不存在");
            return map;
        orderDetails.forEach(orderDetail -> {
            orderDetail.setOrderId(order.getOrderId());
            orderDetailService.insert(orderDetail);
        });
        if (res == 1) {
            return true;
        }
        return false;
    }
    @RequestMapping("/edit")
    @RequiresPermissions("order:update")
    public String edit(Long orderId, Model m) {
        //获取常规数据
        getOrderGeneralData(m);
        //添加选中的订单
        Order selectedOrder = orderService.selectByPrimaryKey(orderId);
        m.addAttribute("selectedOrder", selectedOrder);
        //添加订单详情
        OrderDetailExample orderDetailExample = new OrderDetailExample();
        return "admin/list";
    }
    /**
     * 该方法返回 admin 集合的 JSON 字符串,使用 PageHelper 工具进行分页
     * @param keyWord 搜索关键字
     * @param pageNum 页数,默认为 1
     * @param pageSize 每个页面用户容量,默认为 10/页
     * @return
     */
    @ResponseBody
    @RequestMapping("/getAdmins")
    @RequiresPermissions("admin:list")
    public PageInfo<User> getAdmins(String keyWord,
                                @RequestParam(defaultValue = "1") Integer pageNum,
                                @RequestParam(defaultValue = "10") Integer pageSize) {
        //开始分页,这里启动并设置页码,和每页结果数量后,后续结果会自动为分页后结果
            return true;
        }
        return false;
    }
}
订单管理控制层:
@Controller
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private OrderViewService orderViewService;
    @Autowired
    private OrderService orderService;
        if (StringUtils.isNotBlank(keyWord)) {
            //权限名条件
            BasicDataExample.Criteria criteriaName = basicDataExample.createCriteria();
            criteriaName.andBaseNameLike("%" + keyWord + "%");
        }
        List<BasicData> basicDatas = basicDataService.selectByExample(basicDataExample);
        //获得分页对象
        PageInfo<BasicData> pageInfo = new PageInfo<>(basicDatas);
        return pageInfo;
    }
    @ResponseBody
    @RequestMapping("/delete")
    @RequiresPermissions("basicData:delete")
    public Map<String, String> delete(Long[] basicDataIds) {
        HashMap<String, String> map = new HashMap<>();
        if (basicDataIds.length == 1) {
            int res = basicDataService.deleteByPrimaryKey(basicDataIds[0]);
            if (res == 1) {
                map.put("status", "true");
                map.put("info", "删除成功!");
                return map;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值