前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CRM客户管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL

CRM客户管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL

作者头像
Designer 小郑
发布2023-11-16 09:11:38
5980
发布2023-11-16 09:11:38
举报
文章被收录于专栏:跟着小郑学JAVA

作者主页Designer 小郑 作者简介:3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家,阿里云社区专家博主,蓝桥云课讲师。

\color{red}{文末获取源码,项目编号:S072。}

一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的CRM客户管理系统,包含了客户管理、客户分析、商品管理、客户跟踪、客户消费模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,CRM客户管理系统基于角色的访问控制,给客户管理员、工作人员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

CRM客户管理系统的系统设计是一个基于系统分析结果的过程,使用科学的系统理念和方法来设计一个新系统,该系统可以最大限度地实现所需的目的。系统设计主要是功能设计,创建理想系统并制定设计计划;将系统划分为若干子系统;子系统和整个系统的详细设计和评估;演示系统方案并预测性能效果,本系统主要从五个功能模块分析。

  1. 首先是客户管理模块,主要实现用户的增删改查,对客户信息进行快速、准确的记录和查询操作,标记客户信息并对它进行分类,每个客户都具有唯一的编号,姓名,联系方式等基本信息,同时还有客户类型,客户状态等附加信息,能够导出客户信息。
  2. 第二是客户跟踪模块,该模块主要就是对潜在客户进行跟踪,记录跟踪内容和对跟踪信息增删改查,每个客户的跟踪记录包括跟踪日期、跟踪人、跟进内容等信息。
  3. 第三是客户消费模块,记录客户的消费情况,对客户的消费记录进行增删改查,同时也能导出客户消费记录信息到本地。
  4. 第四是商品管理模块,包括商品信息的增删改查、商品分类、商品库存管理等功能。
  5. 第五是系统基础模块,该模块包含若干子功能,但是该功能模块只有管理员角色可以操作。

三、系统设计

3.1 用例设计

3.2 E-R 图设计

3.3 数据库设计

3.3.1 客户表
3.3.2 商品表
3.3.3 客户跟踪表
3.3.4 客户消费表
3.3.5 系统角色表

四、系统展示


五、核心代码

5.1 查询客户

代码语言:javascript
复制
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询客户")
public Result<IPage<Customer>> getByPage(@ModelAttribute Customer customer ,@ModelAttribute PageVo page){
    QueryWrapper<Customer> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(customer.getType())) {
        qw.eq("type",customer.getType());
    }
    if(!ZwzNullUtils.isNull(customer.getTitle())) {
        qw.like("title",customer.getTitle());
    }
    IPage<Customer> data = iCustomerService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Customer>>().setData(data);
}

5.2 新增客户跟踪记录

代码语言:javascript
复制
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增客户跟踪")
public Result<CustomerItem> insert(CustomerItem customerItem){
    Customer customer = iCustomerService.getById(customerItem.getCustomerId());
    if(customer == null) {
        return ResultUtil.error("客户不存在");
    }
    User currUser = securityUtil.getCurrUser();
    customerItem.setCustomerName(customer.getTitle());
    customerItem.setDate(DateUtil.now());
    customerItem.setUserId(currUser.getId());
    customerItem.setUserName(currUser.getNickname());
    iCustomerItemService.saveOrUpdate(customerItem);
    return new ResultUtil<CustomerItem>().setData(customerItem);
}

5.3 新增客户消费订单

代码语言:javascript
复制
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增客户消费")
public Result<CustomerOrder> insert(CustomerOrder customerOrder){
    Customer customer = iCustomerService.getById(customerOrder.getUserId());
    if(customer == null) {
        return ResultUtil.error("客户不存在");
    }
    customerOrder.setUserName(customer.getTitle());
    Commodity commodity = iCommodityService.getById(customerOrder.getCommodityId());
    if(commodity == null) {
        return ResultUtil.error("商品不存在");
    }
    if(commodity.getNumber() == null) {
        commodity.setNumber(BigDecimal.ZERO);
    }
    if(customerOrder.getNumber().compareTo(commodity.getNumber()) > 0) {
        return ResultUtil.error("库存不足");
    }
    commodity.setNumber(commodity.getNumber().subtract(customerOrder.getNumber()));
    iCommodityService.saveOrUpdate(commodity);
    customerOrder.setTitle(commodity.getTitle());
    customerOrder.setType(commodity.getType());
    customerOrder.setPrice(commodity.getPrice());
    customerOrder.setImage(commodity.getImage());
    customerOrder.setUserId(customer.getId());
    customerOrder.setUserName(customer.getTitle());
    customerOrder.setDate(DateUtil.now());
    iCustomerOrderService.saveOrUpdate(customerOrder);
    return new ResultUtil<CustomerOrder>().setData(customerOrder);
}

5.4 查询商品

代码语言:javascript
复制
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询商品")
public Result<IPage<Commodity>> getByPage(@ModelAttribute Commodity commodity ,@ModelAttribute PageVo page){
    QueryWrapper<Commodity> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(commodity.getTitle())) {
        qw.like("title",commodity.getTitle());
    }
    if(!ZwzNullUtils.isNull(commodity.getType())) {
        qw.eq("type",commodity.getType());
    }
    IPage<Commodity> data = iCommodityService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Commodity>>().setData(data);
}

5.5 商品购买

代码语言:javascript
复制
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增商品购买")
public Result<CommodityBuy> insert(CommodityBuy commodityBuy){
    Commodity commodity = iCommodityService.getById(commodityBuy.getCommodityId());
    if(commodity == null) {
        return ResultUtil.error("商品不存在");
    }
    User currUser = securityUtil.getCurrUser();
    commodityBuy.setTitle(commodity.getTitle());
    commodityBuy.setType(commodity.getType());
    commodityBuy.setPrice(commodity.getPrice());
    commodityBuy.setImage(commodity.getImage());
    commodityBuy.setUserId(currUser.getId());
    commodityBuy.setUserName(currUser.getNickname());
    commodityBuy.setDate(DateUtil.now());
    iCommodityBuyService.saveOrUpdate(commodityBuy);
    if(commodity.getNumber() == null) {
        commodity.setNumber(BigDecimal.ZERO);
    }
    commodity.setNumber(commodity.getNumber().add(commodityBuy.getNumber()));
    iCommodityService.saveOrUpdate(commodity);
    return new ResultUtil<CommodityBuy>().setData(commodityBuy);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、摘要
    • 1.1 项目介绍
      • 1.2 项目录屏
      • 二、功能模块
      • 三、系统设计
        • 3.1 用例设计
          • 3.2 E-R 图设计
            • 3.3 数据库设计
              • 3.3.1 客户表
              • 3.3.2 商品表
              • 3.3.3 客户跟踪表
              • 3.3.4 客户消费表
              • 3.3.5 系统角色表
          • 四、系统展示
          • 五、核心代码
            • 5.1 查询客户
              • 5.2 新增客户跟踪记录
                • 5.3 新增客户消费订单
                  • 5.4 查询商品
                    • 5.5 商品购买
                    • 六、免责说明
                    相关产品与服务
                    云数据库 MySQL
                    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档