Java项目:SSM农资采购销售系统

2024-03-24 23:20

本文主要是介绍Java项目:SSM农资采购销售系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目分为前后台,前台普通用户登录,后台管理员登录;
管理员角色包含以下功能:
管理员登录,修改个人信息,人员管理,图片管理,订单管理,图表管理,农资管理等功能。

用户角色包含以下功能:
按分类查看农资产品,用户登录,查看商品详情,加入购物车,提交订单,修改个人信息,查看订单等功能。

由于本程序规模不大,可供课程设计,毕业设计学习演示之

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;

6.是否Maven项目:是;

技术栈

1. 后端:Spring+SpringMVC+Mybatis

2. 前端:JSP+CSS+JavaScript+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,前台地址:http://localhost:8080/snack/shop/index   注:tomcat中配置的路径必须为snack 
用户账号/密码:wangzixiao/123456

后台地址:http://localhost:8080/snack/admin/login/adminLogin

管理员账号/密码:admin/123456

运行截图

前台界面

 后台界面

代码相关

订单管理控制器

@Controller
@RequestMapping("/admin/order/")
public class AdminOrderControll {@Autowiredprivate adminOrderService adminOrderService;@Autowiredprivate userService userService; @RequestMapping("mainToAdminOrder")public String mainToAdminOrder(){return "admin/order/adminOrder";} //订单@RequestMapping("adminOrderLimit")@ResponseBodypublic DataTables adminOrderLimit(int start,int length,String oId,String oTimeStart,String oTimeEnd,String adUserName){Map<Object,Object> map=new HashMap<Object, Object>();map.put("pageStart",start);map.put("pageSize",length);map.put("oId",oId);map.put("oTimeStart",oTimeStart);map.put("oTimeEnd",oTimeEnd);map.put("adUserName",adUserName);PageHelp<DoAdminOrder> pageHelp= adminOrderService.selectAdminOrderLimit(map);DataTables datatable=new DataTables();datatable.setData(pageHelp.getList());datatable.setRecordsFiltered(pageHelp.getRecord());datatable.setRecordsTotal(pageHelp.getRecord());return datatable;}//删除订单@RequestMapping("deleteAdminOrder")@ResponseBodypublic String deleteAdminOrder(String oId){return ResponseUtil.successToClient(adminOrderService.deleteAdminOrder(oId));} //update加载订单@RequestMapping("updateSelectAdminOrder")@ResponseBodypublic String updateSelectAdminOrder(int rId){return ResponseUtil.successToClient(adminOrderService.updateSelectAdminOrder(rId));} //update订单@RequestMapping("updateAdminOrder")@ResponseBodypublic String updateAdminOrder(Receiptinfo receiptinfo){return ResponseUtil.successToClient(adminOrderService.updateAdminOrder(receiptinfo));} //updateOrderDetial加载订单@RequestMapping("updateSelectAdminOrderDetial")@ResponseBodypublic String updateSelectAdminOrderDetial(int dId){return ResponseUtil.successToClient(adminOrderService.updateSelectAdminOrderDetial(dId));} //updateOrderDetial订单@RequestMapping("updateOrderdetail")@ResponseBodypublic String updateOrderdetail(Orderdetail orderdetail){return ResponseUtil.successToClient(adminOrderService.updateOrderdetail(orderdetail));} //删除OrderDetial@RequestMapping("deleteOrderdetail")@ResponseBodypublic String deleteOrderdetail(int dId,String oId){List<Orderdetail> orderdetailList = adminOrderService.selectOrderdetailByoId(oId);if(orderdetailList.size()>=2){adminOrderService.deleteOrderdetailBydId(dId);return ResponseUtil.successToClient(1);}else{adminOrderService.deleteAdminOrder(oId);return ResponseUtil.successToClient(2);}}//导出订单详情@RequestMapping("outExcelOrder")@ResponseBodypublic void outExcelOrder(HttpServletResponse response,String oId){SXSSFWorkbook workbook = new SXSSFWorkbook();reportSheet(workbook,oId);outputExcel(response, workbook, "订单详情");}private void reportSheet(SXSSFWorkbook workbook,String oId) {List<DoExcelOrder> outExcelOrderDetail = adminOrderService.outExcelOrderDetail(oId);for (int i = 0; i < outExcelOrderDetail.size(); i++) {if(i!=0){outExcelOrderDetail.get(i).setOId("");outExcelOrderDetail.get(i).setOName("");outExcelOrderDetail.get(i).setOPhone("");outExcelOrderDetail.get(i).setOAddress("");}outExcelOrderDetail.get(i).setMoney(outExcelOrderDetail.get(i).getMoney()+"元");}ExcelUtil2 excelUtil=new ExcelUtil2();List<JSONObject> columns = new ArrayList<>();columns.add(excelUtil.defaultGetColumn("订单号", "oId", 15 * 256, false, false));columns.add(excelUtil.defaultGetColumn("收货人", "oName", 15 * 256, false, false));columns.add(excelUtil.defaultGetColumn("电话", "oPhone", 15 * 256, false, false));columns.add(excelUtil.defaultGetColumn("地址", "oAddress", 26 * 256, false, false));columns.add(excelUtil.defaultGetColumn("商品名", "sName", 15 * 256, false, false));columns.add(excelUtil.defaultGetColumn("数量", "num", 12 * 256, false, false));columns.add(excelUtil.defaultGetColumn("单价", "money", 12 * 256, false, false));excelUtil.createSheet(workbook, outExcelOrderDetail, columns, "订单详情");}private void outputExcel(HttpServletResponse response, SXSSFWorkbook workbook, String excelName) {response.setContentType("application/vnd.ms-excel");try {// 进行转码,使其支持中文文件名response.setHeader("content-disposition", "attachment;filename=" + new String(excelName.getBytes("GB2312"), "ISO-8859-1") + ".xlsx");workbook.write(response.getOutputStream());} catch (IOException e) {e.printStackTrace();}}//请确认收货@RequestMapping("userOrderConfirm")@ResponseBodypublic String userOrderConfirm(HttpServletRequest request,int id,int typeNum){int eId;if(typeNum==0){eId = (int)request.getSession().getAttribute("adminId");}else{eId=0;}return ResponseUtil.successToClient(userService.upDateByorderConfirm(id,typeNum,eId));}}

 如果也想学习本系统,下面领取。回复:199ssm

这篇关于Java项目:SSM农资采购销售系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843115

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境