基于javaweb的校内超市管理系统(java+ssm+bootstrap+mysql)

基于javaweb的校内超市管理系统(java+ssm+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

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

功能说明

20220819204806

20220819204807

20220819204808

20220819204809

20220819204810

20220819204811

20220819204812

基于javaweb+mysql的校内超市管理系统(java+SSM+Maven+BootStrap+Mysql)

项目介绍

本系统分为管理员与普通用户两种角色。采用后端SSM框架,前端BootStrap(前后端不分离)的系统架构模式,实现了基本的超市管理功能; 本系统实现了超市管理的基本功能,包括商品库存模块,商品分类模块,供应商管理模块,销售统计模块以及用户管理模块。

环境需要

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项目:是;

技术栈

  • 后端:Spring + SpringMVC + MyBatis - 前端:BootStrap - 插件:PageHelper分页插件 - 环境:Jdk 1.8 + Tomcat 9.0.45 + Maven管理工具 + MySQL v5.7.33

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,访问路径(本地部署):localhost:8080/sms

用户管理控制层:

@Controller

public class UserServlet{

@Autowired

BillServiceImpl billService;

@Autowired

ProviderServiceImpl providerService;

@Autowired

UserServiceImpl userService;

@Autowired

RoleServiceImpl roleService;

@RequestMapping(value=“/user.do”,method = {RequestMethod.POST, RequestMethod.GET})

public String doPost(HttpSession session, @Valid User user, BindingResult bindingResult, HttpServletRequest request, HttpServletResponse response, @RequestParam(value=“method”,required = false) String method, Model model)

throws ServletException, IOException {

System.out.println(“--------------->”+method);

if(method != null && method.equals(“add”)){

return this.add(request, response,user,bindingResult,session);

}else if(method != null && method.equals(“query”)){

return this.query(request, response);

}else if(method != null && method.equals(“getrolelist”)){

this.getRoleList(request, response);

}else if(method != null && method.equals(“ucexist”)){

this.userCodeExist(request, response);

}else if(method != null && method.equals(“deluser”)){

this.delUser(request, response);

}else if(method != null && method.equals(“view”)){

return this.getUserById(request, response,“userview”,model);

}else if(method != null && method.equals(“modify”)){

return this.getUserById(request, response,“usermodify”,model);

}else if(method != null && method.equals(“modifyexe”)){

return this.modify(request, response);

}else if(method != null && method.equals(“pwdmodify”)){

this.getPwdByUserId(request, response);

}else if(method != null && method.equals(“savepwd”)){

return this.updatePwd(request, response);

return “error”;

private String updatePwd(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

Object o = request.getSession().getAttribute(Constants.USER_SESSION);

String newpassword = request.getParameter(“newpassword”);

boolean flag = false;

if(o != null && !StringUtils.isNullOrEmpty(newpassword)){

flag = userService.updatePwd(((User)o).getId(),newpassword);

if(flag){

request.setAttribute(Constants.SYS_MESSAGE, “修改密码成功,请退出并使用新密码重新登录!”);

request.getSession().removeAttribute(Constants.USER_SESSION);//session注销

}else{

request.setAttribute(Constants.SYS_MESSAGE, “修改密码失败!”);

}else{

request.setAttribute(Constants.SYS_MESSAGE, “修改密码失败!”);

return “pwdmodify”;

private void getPwdByUserId(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

Object o = request.getSession().getAttribute(Constants.USER_SESSION);

String oldpassword = request.getParameter(“oldpassword”);

Map<String, String> resultMap = new HashMap<String, String>();

if(null == o ){//session过期

resultMap.put(“result”, “sessionerror”);

}else if(StringUtils.isNullOrEmpty(oldpassword)){//旧密码输入为空

resultMap.put(“result”, “error”);

}else{

String sessionPwd = ((User)o).getUserPassword();

if(oldpassword.equals(sessionPwd)){

resultMap.put(“result”, “true”);

}else{//旧密码输入不正确

resultMap.put(“result”, “false”);

// response.setContentType(“application/json”);

request.setCharacterEncoding(“utf-8”);

response.setContentType(“text/html;charset=utf-8”);

PrintWriter outPrintWriter = response.getWriter();

outPrintWriter.write(JSONArray.toJSONString(resultMap));

outPrintWriter.flush();

outPrintWriter.close();

private String modify(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String id = request.getParameter(“uid”);

String userName = request.getParameter(“userName”);

String gender = request.getParameter(“gender”);

String birthday = request.getParameter(“birthday”);

String phone = request.getParameter(“phone”);

String address = request.getParameter(“address”);

String userRole = request.getParameter(“userRole”);

User user = new User();

user.setId(Integer.valueOf(id));

user.setUserName(userName);

user.setGender(Integer.valueOf(gender));

try {

user.setBirthday(new SimpleDateFormat(“yyyy-MM-dd”).parse(birthday));

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

user.setPhone(phone);

user.setAddress(address);

user.setUserRole(Integer.valueOf(userRole));

user.setModifyBy(((User)request.getSession().getAttribute(Constants.USER_SESSION)).getId());

user.setModifyDate(new Date());

if(userService.modify(user)){

return “redirect:/user.do?method=query”;

// response.sendRedirect(request.getContextPath()+“/jsp/user.do?method=query”);

}else{

return “usermodify”;

// request.getRequestDispatcher(“usermodify.jsp”).forward(request, response);

private String getUserById(HttpServletRequest request, HttpServletResponse response, String url, Model model)

throws ServletException, IOException {

String id = request.getParameter(“uid”);

if(!StringUtils.isNullOrEmpty(id)){

//调用后台方法得到user对象

User user = userService.getUserById(id);

System.out.println("------------> "+user);

model.addAttribute(“user”, user);

return url;

// request.getRequestDispatcher(url).forward(request, response);

return “error”;

private void delUser(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String id = request.getParameter(“uid”);

Integer delId = 0;

try{

delId = Integer.parseInt(id);

}catch (Exception e) {

// TODO: handle exception

delId = 0;

HashMap<String, String> resultMap = new HashMap<String, String>();

if(delId <= 0){

resultMap.put(“delResult”, “notexist”);

}else{

if(userService.deleteUserById(delId)){

resultMap.put(“delResult”, “true”);

}else{

resultMap.put(“delResult”, “false”);

//把resultMap转换成json对象输出

// response.setContentType(“application/json”);

request.setCharacterEncoding(“utf-8”);

response.setContentType(“text/html;charset=utf-8”);

PrintWriter outPrintWriter = response.getWriter();

outPrintWriter.write(JSONArray.toJSONString(resultMap));

outPrintWriter.flush();

outPrintWriter.close();

private void userCodeExist(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//判断用户账号是否可用

String userCode = request.getParameter(“userCode”);

HashMap<String, String> resultMap = new HashMap<String, String>();

if(StringUtils.isNullOrEmpty(userCode)){

//userCode == null || userCode.equals(“”)

resultMap.put(“userCode”, “exist”);

}else{

User user = userService.selectUserCodeExist(userCode);

if(null != user){

resultMap.put(“userCode”,“exist”);

}else{

resultMap.put(“userCode”, “notexist”);

//把resultMap转为json字符串以json的形式输出

//配置上下文的输出类型

// response.setContentType(“application/json”);

request.setCharacterEncoding(“utf-8”);

response.setContentType(“text/html;charset=utf-8”);

//从response对象中获取往外输出的writer对象

PrintWriter outPrintWriter = response.getWriter();

//把resultMap转为json字符串 输出

outPrintWriter.write(JSONArray.toJSONString(resultMap));

outPrintWriter.flush();//刷新

outPrintWriter.close();//关闭流

private void getRoleList(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

List roleList = null;

roleList = roleService.getRoleList();

//把roleList转换成json对象输出

// response.setContentType(“application/json”);

request.setCharacterEncoding(“utf-8”);

response.setContentType(“text/html;charset=utf-8”);

PrintWriter outPrintWriter = response.getWriter();

outPrintWriter.write(JSONArray.toJSONString(roleList));

outPrintWriter.flush();

outPrintWriter.close();

private String query(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//查询用户列表

String queryUserName = request.getParameter(“queryname”);

String temp = request.getParameter(“queryUserRole”);

String pageIndex = request.getParameter(“pageIndex”);

int queryUserRole = 0;

List userList = null;

//设置页面容量

int pageSize = Constants.pageSize;

//当前页码

int currentPageNo = 1;

System.out.println(“queryUserName servlet--------”+queryUserName);

System.out.println(“queryUserRole servlet--------”+queryUserRole);

System.out.println("query pageIndex--------- > " + pageIndex);

if(queryUserName == null){

queryUserName = “”;

if(temp != null && !temp.equals(“”)){

queryUserRole = Integer.parseInt(temp);

if(pageIndex != null){

try{

currentPageNo = Integer.valueOf(pageIndex);

}catch(NumberFormatException e){

return “error”;

//总数量(表)

int totalCount = userService.getUserCount(queryUserName,queryUserRole);

//总页数

PageSupport pages=new PageSupport();

pages.setCurrentPageNo(currentPageNo);

pages.setPageSize(pageSize);

pages.setTotalCount(totalCount);

int totalPageCount = pages.getTotalPageCount();

//控制首页和尾页

if(currentPageNo < 1){

currentPageNo = 1;

}else if(currentPageNo > totalPageCount){

currentPageNo = totalPageCount;

userList = userService.getUserList(queryUserName,queryUserRole,currentPageNo, pageSize);

System.out.println("----------> "+userList.get(0).getAge());

request.setAttribute(“userList”, userList);

List roleList = null;

System.out.println(userList.get(0).getRole().getRoleName());

roleList = roleService.getRoleList();

System.out.println(“===== “+roleList.get(0).getRoleCode()+”--------roleList:”+roleList.get(0).getRoleName());

request.setAttribute(“roleList”, roleList);

request.setAttribute(“queryUserName”, queryUserName);

request.setAttribute(“queryUserRole”, queryUserRole);

request.setAttribute(“totalPageCount”, totalPageCount);

request.setAttribute(“totalCount”, totalCount);

request.setAttribute(“currentPageNo”, currentPageNo);

return “userlist”;

private String add(HttpServletRequest request, HttpServletResponse response, User user, BindingResult bindingResult, HttpSession session)

throws ServletException, IOException {

if(bindingResult.hasErrors()){

System.out.println(“输入错误”);

return “useradd”;

}System.out.println(“111”);

user.setCreatedBy(((User)session.getAttribute(Constants.USER_SESSION)).getId());System.out.println(“222”);

user.setCreationDate(new Date());System.out.println(“333”);

if(userService.add(user)){return “redirect:/user.do?method=query”;}System.out.println(“444”);

return “useradd”;

供应商管理控制层:

@Controller

public class ProviderServlet {

@Autowired

BillServiceImpl billService;

@Autowired

ProviderServiceImpl providerService;

@Autowired

UserServiceImpl userService;

@RequestMapping(value=“/provider.do”,method = {RequestMethod.POST, RequestMethod.GET})

public String doPost(HttpServletRequest request, HttpServletResponse response, @RequestParam(value=“method”,required = false) String method)

throws ServletException, IOException {

if(method != null && method.equals(“query”)){

return this.query(request,response);

}else if(method != null && method.equals(“add”)){

return this.add(request,response);

}else if(method != null && method.equals(“view”)){

return this.getProviderById(request,response,“providerview”);

}else if(method != null && method.equals(“modify”)){

return this.getProviderById(request,response,“providermodify”);

}else if(method != null && method.equals(“modifysave”)){

return this.modify(request,response);

}else if(method != null && method.equals(“delprovider”)){

this.delProvider(request,response);

return “error”;

private void delProvider(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String id = request.getParameter(“proid”);

HashMap<String, String> resultMap = new HashMap<String, String>();

if(!StringUtils.isNullOrEmpty(id)){

int flag = providerService.deleteProviderById(id);

if(flag == 0){//删除成功

resultMap.put(“delResult”, “true”);

}else if(flag == -1){//删除失败

resultMap.put(“delResult”, “false”);

}else if(flag > 0){//该供应商下有订单,不能删除,返回订单数

resultMap.put(“delResult”, String.valueOf(flag));

}else{

resultMap.put(“delResult”, “notexit”);

//把resultMap转换成json对象输出

// response.setContentType(“application/json”);

request.setCharacterEncoding(“utf-8”);

response.setContentType(“text/html;charset=utf-8”);

PrintWriter outPrintWriter = response.getWriter();

outPrintWriter.write(JSONArray.toJSONString(resultMap));

outPrintWriter.flush();

outPrintWriter.close();

private String modify(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String proContact = request.getParameter(“proContact”);

String proPhone = request.getParameter(“proPhone”);

String proAddress = request.getParameter(“proAddress”);

String proFax = request.getParameter(“proFax”);

String proDesc = request.getParameter(“proDesc”);

String id = request.getParameter(“id”);

Provider provider = new Provider();

provider.setId(Integer.valueOf(id));

provider.setProContact(proContact);

provider.setProPhone(proPhone);

provider.setProFax(proFax);

provider.setProAddress(proAddress);

provider.setProDesc(proDesc);

provider.setModifyBy(((User)request.getSession().getAttribute(Constants.USER_SESSION)).getId());

provider.setModifyDate(new Date());

boolean flag = false;

flag = providerService.modify(provider);

System.out.println(“--------flag=”+flag);

if(flag){

return “redirect:/provider.do?method=query”;

// response.sendRedirect(request.getContextPath()+“/jsp/provider.do?method=query”);

}else{

return “providermodify”;

// request.getRequestDispatcher(“providermodify.jsp”).forward(request, response);

private String getProviderById(HttpServletRequest request, HttpServletResponse response, String url)

throws ServletException, IOException {

String id = request.getParameter(“proid”);

System.out.println(“-------------”+id);

if(!StringUtils.isNullOrEmpty(id)){

Provider provider = null;

provider = providerService.getProviderById(id);

request.setAttribute(“provider”, provider);

System.out.println(“-------------”+id);

return url;

// request.getRequestDispatcher(url).forward(request, response);

return “error”;

private String add(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String proCode = request.getParameter(“proCode”);

String proName = request.getParameter(“proName”);

String proContact = request.getParameter(“proContact”);

String proPhone = request.getParameter(“proPhone”);

String proAddress = request.getParameter(“proAddress”);

String proFax = request.getParameter(“proFax”);

String proDesc = request.getParameter(“proDesc”);

Provider provider = new Provider();

provider.setProCode(proCode);

provider.setProName(proName);

provider.setProContact(proContact);

provider.setProPhone(proPhone);

provider.setProFax(proFax);

provider.setProAddress(proAddress);

provider.setProDesc(proDesc);

provider.setCreatedBy(((User)request.getSession().getAttribute(Constants.USER_SESSION)).getId());

provider.setCreationDate(new Date());

boolean flag = false;

flag = providerService.add(provider);

if(flag){

return “redirect:/provider.do?method=query”;

// response.sendRedirect(request.getContextPath()+“/jsp/provider.do?method=query”);

}else{

return “provideradd”;

// request.getRequestDispatcher(“provideradd.jsp”).forward(request, response);

private String query(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String queryProName = request.getParameter(“queryProName”);

String queryProCode = request.getParameter(“queryProCode”);

if(StringUtils.isNullOrEmpty(queryProName)){

queryProName = “”;

if(StringUtils.isNullOrEmpty(queryProCode)){

queryProCode = “”;

List providerList = new ArrayList();

providerList = providerService.getProviderList(queryProName,queryProCode);

request.setAttribute(“providerList”, providerList);

request.setAttribute(“queryProName”, queryProName);

request.setAttribute(“queryProCode”, queryProCode);

return “providerlist”;

// request.getRequestDispatcher(“providerlist.jsp”).forward(request, response);

商品管理控制层:

@RestController

@RequestMapping(“/goods”)

public class GoodsController {

@Autowired

private GoodsService goodsService;

@Autowired

private ProviderService providerService;

@Autowired

private CategoryService categoryService;

/**

  • 商品模糊查询

  • @param

  • @return

*/

@SysLog(“商品查询操作”)

@RequestMapping(“/goodsList”)

public DataGridViewResult goodsList(GoodsVO goodsVO) {

//创建分页信息 参数1 当前页 参数2 每页显示条数

IPage page = new Page<>(goodsVO.getPage(), goodsVO.getLimit());

QueryWrapper queryWrapper = new QueryWrapper<>();

queryWrapper.eq(goodsVO.getProviderid() != null && goodsVO.getProviderid() != 0, “providerid”, goodsVO.getProviderid());

queryWrapper.like(!StringUtils.isEmpty(goodsVO.getGname()), “gname”, goodsVO.getGname());

IPage goodsIPage = goodsService.page(page, queryWrapper);

List records = goodsIPage.getRecords();

for (Goods goods : records) {

Provider provider = providerService.getById(goods.getProviderid());

if (null != provider) {

goods.setProvidername(provider.getProvidername());

return new DataGridViewResult(goodsIPage.getTotal(), records);

/**

  • 添加商品信息

  • @param goods

  • @return

*/

@SysLog(“商品添加操作”)

@PostMapping(“/addgoods”)

public Result addGoods(Goods goods) {

String id = RandomStringUtils.randomAlphanumeric(8);

if (goods.getGoodsimg()!=null&&goods.getGoodsimg().endsWith(“_temp”)){

String newName = AppFileUtils.renameFile(goods.getGoodsimg());

goods.setGoodsimg(newName);

goods.setGnumbering(id);

boolean bool = goodsService.save(goods);

if (bool) {

return Result.success(true, “200”, “添加成功!”);

return Result.error(false, null, “添加失败!”);

/**

  • 修改商品信息

  • @param goods

  • @return

*/

@SysLog(“商品修改操作”)

@PostMapping(“/updategoods”)

public Result updateGoods(Goods goods) {

//商品图片不是默认图片

if (!(goods.getGoodsimg()!=null&&goods.getGoodsimg().equals(Constast.DEFAULT_IMG))){

if (goods.getGoodsimg().endsWith(“_temp”)){

String newName = AppFileUtils.renameFile(goods.getGoodsimg());

goods.setGoodsimg(newName);

//删除原先的图片

String oldPath = goodsService.getById(goods.getGid()).getGoodsimg();

AppFileUtils.removeFileByPath(oldPath);

boolean bool = goodsService.updateById(goods);

if (bool) {

return Result.success(true, “200”, “修改成功!”);

return Result.error(false, null, “修改失败!”);

/**

  • 删除单条数据

  • @param id

  • @return

*/

@SysLog(“商品删除操作”)

@RequestMapping(“/deleteOne”)

public Result deleteOne(int id) {

boolean bool = goodsService.removeById(id);

if (bool) {

return Result.success(true, “200”, “删除成功!”);

return Result.error(false, null, “删除失败!”);

/**

  • 根据id查询当前商品拥有的类别

  • @param id

  • @return

*/

@RequestMapping(“/initGoodsByCategoryId”)

public DataGridViewResult initGoodsByCategoryId(int id) {

List<Map<String, Object>> mapList = null;

try {

//查询所有类别列表

mapList = categoryService.listMaps();

//根据商品id查询商品拥有的类别

Set cateIdList = categoryService.findGoodsByCategoryId(id);

for (Map<String, Object> map : mapList) {

//定义标记 默认不选中

boolean flag = false;

int cateId = (int) map.get(“cateid”);

for (Integer cid : cateIdList) {

if (cid == cateId) {

flag = true;

break;

map.put(“LAY_CHECKED”, flag);

} catch (Exception e) {

e.printStackTrace();

return new DataGridViewResult(Long.valueOf(mapList.size()), mapList);

/**

  • 根据商品id加载商品信息

  • @param goodsid

  • @return

*/

@GetMapping(“/loadGoodsById”)

public DataGridViewResult loadGoodsById(int goodsid) {

QueryWrapper goodsQueryWrapper = new QueryWrapper<>();

goodsQueryWrapper.eq(goodsid != 0, “gid”, goodsid);

Goods goods = goodsService.getById(goodsid);

return new DataGridViewResult(goods);

/**

  • 为商品分配类别

  • @param categoryids

  • @param goodsid

  • @return

*/

@SysLog(“类别添加操作”)

@RequestMapping(“/saveGoodsCategory”)

public Result saveGoodsCategory(String categoryids, int goodsid) {

try {

if (goodsService.saveGoodsCategory(goodsid, categoryids)) {

return Result.success(true, null, “分配成功”);

} catch (Exception e) {

e.printStackTrace();

return Result.error(false, null, “分配失败”);

/**

  • 加载下拉框

  • @return

*/

@RequestMapping(“/loadAllGoods”)

public DataGridViewResult loadAllGoods() {

QueryWrapper queryWrapper = new QueryWrapper<>();

List list = goodsService.list(queryWrapper);

return new DataGridViewResult(list);

/**

  • 根据供应商查商品下拉框

  • @param providerid

  • @return

*/

@RequestMapping(“/loadGoodsByProvidreId”)

public DataGridViewResult loadGoodsByProvidreId(Integer providerid) {

QueryWrapper goodsQueryWrapper = new QueryWrapper<>();

goodsQueryWrapper.eq(providerid != null, “providerid”, providerid);

List list = goodsService.list(goodsQueryWrapper);

for (Goods goods : list) {

Provider provider = providerService.getById(goods.getProviderid());

if (null != provider) {

goods.setProvidername(provider.getProvidername());

return new DataGridViewResult(list);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值