基于java+ssm+jsp的大型商场会员管理系统

项目介绍

进入信息时代以来,很多数据都需要配套软件协助处理,这样可以解决传统方式带来的管理困扰。比如耗时长,成本高,维护数据困难,数据易丢失等缺点。本次使用数据库工具MySQL和编程框架SSM开发的大型商场会员管理系统,可以实现目标用户群需要的功能,其中包括会员信息管理,商品信息管理,购买订单管理,购买订单详情管理等功能。

总之,大型商场会员管理系统是基于计算机进行数据的处理,则可以短时间内批量完成数据的管理,就连基本的数据录入,更改错误的数据,统计数据等操作要求都可以轻松完成,这样的系统的运用可以减少很多繁琐的工作量,让数据的管理人员提升效率,节省数据处理投入的资金和时间。同时,大型商场会员管理系统本身就有配套的数据库,用于保存系统的后台数据,对于数据保存的容量则是传统模式不能相比的,在数据安全性上,也有相应的加密技术提供保护,所以数据泄露和被人窃取都不是易事。

4.2功能模块设计
下图为管理员的功能设计,管理员管理会员,员工,商品,管理购买订单以及购买订单详情信息。
在这里插入图片描述
下图为员工的功能设计,员工新增会员购买订单,查看购买订单详情,查询会员与商品。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net

系统实现

第五章 系统实现
这部分工作主要由程序编制人员完成。通常在面对一个大型的系统时,这些程序编制人员就会明确分工,每个人都完成不同的功能模块,在用代码实现功能的基础上,提前预留好接口,最后才将他们已完成的功能模块通过接口进行组合。
5.1 管理员功能实现
5.1.1 员工管理
管理员工是管理员的功能。其运行效果图如下。管理员添加员工,查询员工,删除员工,修改员工资料都是在本页面完成。
在这里插入图片描述

图5.1 员工管理页面
5.1.2 会员信息管理
管理会员信息是管理员的功能。其运行效果图如下。管理员查看会员的积分,积分等级以及使用状态信息,管理员可以增加会员,删除会员,修改会员资料。
在这里插入图片描述

图5.2 会员信息管理页面
5.1.3 商品管理
管理商品是管理员的功能。其运行效果图如下。管理员可以修改商品的单价,数量以及种类信息,可以删除商品,查询商品信息。
在这里插入图片描述

图5.3 商品管理页面
5.2 员工功能实现
5.2.1 会员信息查询
查询会员信息是员工的功能。其运行效果图如下。员工可以在当前页面搜索会员,查看会员详细信息。
在这里插入图片描述

图5.4 会员信息查询页面
5.2.2 新增订单
新增订单是员工的功能。其运行效果图如下。员工对会员需要购买的商品进行添加,最后选择会员卡进行订单提交并结账。
在这里插入图片描述

图5.5新增订单页面
5.2.3 购买订单详情查看
员工在当前模块查看购买订单详情信息,其运行效果图如下。员工查询购买订单详情信息,查看购买订单详情信息,包括操作员,购买的商品以及数量等信息。
在这里插入图片描述

图5.6 购买订单详情查看页面

核心代码

package com.controller;


import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;

import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;

import com.entity.HuiyuanEntity;

import com.service.HuiyuanService;
import com.entity.view.HuiyuanView;
import com.utils.PageUtils;
import com.utils.R;

/**
 * 会员信息
 * 后端接口
*/
@RestController
@Controller
@RequestMapping("/huiyuan")
public class HuiyuanController {
    private static final Logger logger = LoggerFactory.getLogger(HuiyuanController.class);

    @Autowired
    private HuiyuanService huiyuanService;


    @Autowired
    private TokenService tokenService;
    @Autowired
    private DictionaryService dictionaryService;


    //级联表service


    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(StringUtil.isNotEmpty(role) && "用户".equals(role)){
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        }
        PageUtils page = huiyuanService.queryPage(params);

        //字典表数据转换
        List<HuiyuanView> list =(List<HuiyuanView>)page.getList();
        for(HuiyuanView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c);
        }
        return R.ok().put("data", page);
    }
    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        HuiyuanEntity huiyuan = huiyuanService.selectById(id);
        if(huiyuan !=null){
            //entity转view
            HuiyuanView view = new HuiyuanView();
            BeanUtils.copyProperties( huiyuan , view );//把实体数据重构到view中

            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("ve")
    public R save(@RequestBody HuiyuanEntity huiyuan, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,huiyuan:{}",this.getClass().getName(),huiyuan.toString());
        Wrapper<HuiyuanEntity> queryWrapper = new EntityWrapper<HuiyuanEntity>()
            .eq("huiyuan_name", huiyuan.getHuiyuanName())
            .eq("huiyuan_phone", huiyuan.getHuiyuanPhone())
            .eq("huiyuan_id_number", huiyuan.getHuiyuanIdNumber())
            .eq("sex_types", huiyuan.getSexTypes())
            .eq("nation", huiyuan.getNation())
            .eq("politics_types", huiyuan.getPoliticsTypes())
            .eq("birthplace", huiyuan.getBirthplace())
            .eq("jifen", huiyuan.getJifen())
            .eq("jifen_types", huiyuan.getJifenTypes())
            .eq("huiyuan_types", huiyuan.getHuiyuanTypes())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        HuiyuanEntity huiyuanEntity = huiyuanService.selectOne(queryWrapper);
        if(huiyuanEntity==null){
            huiyuan.setCreateTime(new Date());
        //  String role = String.valueOf(request.getSession().getAttribute("role"));
        //  if("".equals(role)){
        //      huiyuan.set
        //  }
            huiyuanService.insert(huiyuan);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody HuiyuanEntity huiyuan, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,huiyuan:{}",this.getClass().getName(),huiyuan.toString());
        //根据字段查询是否有相同数据
        Wrapper<HuiyuanEntity> queryWrapper = new EntityWrapper<HuiyuanEntity>()
            .notIn("id",huiyuan.getId())
            .eq("huiyuan_name", huiyuan.getHuiyuanName())
            .eq("huiyuan_phone", huiyuan.getHuiyuanPhone())
            .eq("huiyuan_id_number", huiyuan.getHuiyuanIdNumber())
            .eq("sex_types", huiyuan.getSexTypes())
            .eq("nation", huiyuan.getNation())
            .eq("politics_types", huiyuan.getPoliticsTypes())
            .eq("birthplace", huiyuan.getBirthplace())
            .eq("jifen", huiyuan.getJifen())
            .eq("jifen_types", huiyuan.getJifenTypes())
            .eq("huiyuan_types", huiyuan.getHuiyuanTypes())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        HuiyuanEntity huiyuanEntity = huiyuanService.selectOne(queryWrapper);
        if("".equals(huiyuan.getHuiyuanPhoto()) || "null".equals(huiyuan.getHuiyuanPhoto())){
                huiyuan.setHuiyuanPhoto(null);
        }
        if(huiyuanEntity==null){
            //  String role = String.valueOf(request.getSession().getAttribute("role"));
            //  if("".equals(role)){
            //      huiyuan.set
            //  }
            huiyuanService.updateById(huiyuan);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }


    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        huiyuanService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }


}

论文参考

在这里插入图片描述

目 录
第一章 绪论 1
1.1 研究背景 1
1.2 研究意义 1
1.3 研究内容 2
第二章 开发环境与技术 3
2.1 JSP技术 3
2.2 MySQL数据库 3
2.3 Java语言 4
2.4 SSM框架 4
第三章 系统分析 5
3.1可行性分析 5
3.1.1运行可行性分析 5
3.1.2经济可行性分析 5
3.1.3技术可行性分析 6
3.2系统流程分析 6
3.3 系统性能分析 9
3.3.1系统安全性 9
3.3.2系统可扩展性 9
3.3.3系统易维护性 9
3.4系统功能分析 10
第四章 系统设计 12
4.1布局设计原则 12
4.2功能模块设计 13
4.3数据库设计 14
4.3.1数据库E-R图 14
4.3.2 数据库表结构 17
第五章 系统实现 20
5.1 管理员功能实现 20
5.1.1 员工管理 20
5.1.2 会员信息管理 20
5.1.3 商品管理 21
5.2 员工功能实现 21
5.2.1 会员信息查询 21
5.2.2 新增订单 22
5.2.3 购买订单详情查看 22
第六章 系统测试 24
6.1 系统测试的实施 24
6.2 系统测试用例 24
6.2.1 登录功能测试 24
6.2.2 注册功能测试 25
6.3 测试的结果 25
结 论 26
参考文献 27
致 谢 28

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_3306428634

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值