Java毕业设计项目_企业级实战全栈项目中信CRM

news2024/10/7 12:23:37

【教程、代码】文章底部

1.学习目标

f91d5ea6f86ca3e309dfbc61049dd3e5.jpeg

视频教程目录

79751cfd3a9da6eca15ff154fbe6bfc2.jpeg

【教程、代码】文章底部

2.CRM 系统概念与项目开发流程

0af752838a64af7b7bc869238e1e457c.jpeg

2.1. CRM基本概念

圈内存在这么一句话:“世上本来没有CRM,大家的生意越来越难做了,才有了CRM。”在同质化竞争时代,顾客资产尤为重要,新时代在呼唤CRM。

CRM系统即客户关系管理系统, 顾名思义就是管理公司与客户之间的关系. 是一种以"客户关系一对一理论"为基础,旨在改善企业与客户之间关系的新型管理机制。客户关系管理的定义是:企业为提高核心竞争力,利用相应的信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,从而提升其管理方式,向客户提供创新式的个性化的客户交互和服务的过程。其最终目标是吸引新客户、保留老客户以及将已有客户转为忠实客户,增加公司市场份额。CRM的实施目标就是通过全面提升企业业务流程的管理来降低企业成本,通过提供更快速和周到的优质服务来吸引和保持更多的客户。作为一种新型管理机制,CRM极大地改善了企业与客户之间的关系,应用于企业的市场营销、销售、服务与技术支持等与客户相关的领域。

2.2. Crm分类

根据客户的类型不同,CRM可以分为B to B CRM及B to C CRM. B to B CRM中管理的客户是企业客户,而BtoC CRM管理的客户则是个人客户。提供企业产品销售和服务的企业需要的BtoB的CRM,也就是市面上大部分CRM的内容。而提供个人及家庭消费的企业需要的是B to C的CRM。

根据CRM管理侧重点不同又分为操作性和分析型CRM。大部分CRM为操作型CRM,支持CRM的日常作业流程的每个环节,而分析型CRM则偏重于数据分析。

2.3.企业项目开发流程

2d140cb3a84b819a08fc983288951848.jpeg

1. 产品组根据市场调研或商户同事的反馈提出idea, 设计出原型然后跟市场, 商户同事进行确认

2. UI设计组和开发组一起讨论, 确定方案是否可行

3. UI组根据产品组提供的原型稿做出设计稿, 与产品和开发确认

4. 开发组根据产品的原型稿(看逻辑)和UI组的设计稿(看界面)编写代码其中当然也会来回跟设计, 产品

同学进行确认和沟通

5. 代码编写完毕后提交给测试组. 然后再提交上线

6. 后期的数据跟踪和优化

这就是一个产品研发的大致流程. 其中开发的责任就是选用合适的框架技术来完成产品所提供的需求以及设计所提供的效果。

3. Crm 系统模块划分

3.1. 系统功能模块图

353ae95127d9b2f171543496294100e3.jpeg

3.2. 模块功能描述

3.2.1. 基础模块

包含系统基本的用户登录,退出,记住我,密码修改等基本操作。

3.2.2. 营销管理

营销机会管理:企业客户的质询需求所建立的信息录入功能,方便销售人员进行后续的客户需求跟踪。

营销开发计划:开发计划是根据营销机会而来,对于企业质询的客户,会有相应的销售人员对于该客户
进行具体的沟通交流,此时对于整个Crm系统而言,通过营销开发计划来进行相应的信息管理,提高客
户的购买企业产品的可能性。

3.2.3. 客户管理

客户信息管理:Crm系统中完整记录客户信息来源的数据、企业与客户交往、客户订单查询等信息录入功能,方便企业与客户进行相应的信息交流与后续合作。

客户流失管理:Crm通过一定规则机制所定义的流失客户(无效客户),通过该规则可以有效管理客户信息资源,提高营销开发效率。

3.2.4. 服务管理

服务管理是针对客户而开发的功能,针对客户要求,Crm提供客户相应的信息质询,反馈与投诉功能,提高企业对于客户的服务质量。

3.2.5. 数据报表

Crm提供的数据报表功能能够帮助企业了解客户整体分布,了解客户开发结果整体信息,从而帮助企业整体调整客户开发计划,提高企业的在市场中的竞争力度。

3.2.6. 系统管理

系统管理包含常量字典维护工作,以及权限管理模块,Crm权限管理是基于角色的一种权限控制,基于
RBAC实现基于角色的权限控制,通过不同角色的用户登录该系统后展示系统不同的操作功能,从而达到
对不同角色完成不同操作功能。

4. CRM 系统数据库设计

CRM系统根据产品的原型搞以及UI组的设计稿,接下来就要设计数据库,一般在大公司通常会有专门的
DBA,这时我们可以不要考虑数据库表设计,但是也要能够读懂或者了解DBA的设计思路方便在程序开发阶段不会出现问题,一般关系型数据库表设计满足三范式的设计即可,表名设计做到见名知意最好。

4.1. E-R图表简介

4.1.1. 营销管理模块

6433bcc147733911231d8c3409c0e48c.jpeg

4.1.2. 客户管理模块

6dccd5ec1344cb7b297d6f2377e5718b.jpeg

4.1.2.1. 客户信息管理

feb3cf10e92cf10288f41ca7cd94c81a.jpeg

4.1.2.2. 客户流失管理

4.1.3. 服务管理

8df1de1499bcd753ea8917f7bbeeb42f.jpeg

4.1.4. 系统管理

4.1.4.1. 权限模块E-R 模型

8432d2f6be57f12e7271700cbec4575a.jpeg

4.1.4.2. 字典&日志管理

43171ddb39682974607e2a2d770eda3d.jpeg

4.2. 表结构详情t_sale_chance

01a86a59969a2c4e7f18c0761db72a2e.jpeg

8c7afb8848eb6181e2afc6275932ae70.jpeg

160d03b9dcbc8177fa8bf59b3890b8ff.jpeg

7f41849f782f2b2d0cb7af034d789769.jpeg

56e4b2b3594d357a0c3a33754f5d59d3.jpeg

0e810fcb2ab56fc7e9d08eeabca29351.jpeg

1e14db1632be75ee82f234e68e6be9b7.jpeg

5. 项目环境搭建与测试

5.1.项目技术栈

5.2.项目搭建与测试

5.2.1. Idea下新建SpringBoot项目-crm

5.2.2. pom.xml引入坐标&插件

UTF-8

1.8

1.8

org.springframework.boot

spring-boot-starter-parent

2.2.2.RELEASE

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-aop

org.springframework.boot

spring-boot-starter-freemarker

org.springframework.boot

spring-boot-starter-test

test

org.mybatis.spring.boot

mybatis-spring-boot-starter


2.1.1

com.github.pagehelper

pagehelper-spring-boot-starter

1.2.13

mysql

mysql-connector-java

runtime

com.mchange

c3p0

0.9.5.5

org.apache.commons

commons-lang3

3.5

com.alibaba

fastjson

1.2.47

org.springframework.boot

spring-boot-devtools

true

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.8

1.8

UTF-8

org.mybatis.generator

mybatis-generator-maven-plugin

1.3.2

src/main/resources/generatorConfig.xml

true

true

org.springframework.boot

spring-boot-maven-plugin

true

5.2.3. 添加配置文件application.yml

src/main/resources 目录下新建application.yml配置文件,内容如下:

## 端口号上下文路径


server:

port:9898

servlet:

context-path:/crm

## 数据源配置

spring:

datasource:type:com.mchange.v2.c3p0.ComboPooledDataSource

driver-class-name:com.mysql.cj.jdbc.Driver

url:jdbc:mysql://127.0.0.1:3306/crm?

useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8

username:root

password:root

## freemarker

freemarker:

suffix:.ftl

content-type:text/html

charset:UTF-8

template-loader-path:classpath:/views/

## 启用热部署

devtools:

restart:

enabled:true

additional-paths:src/main/java

## mybatis 配置

mybatis:

mapper-locations:classpath:/mappers/*.xml

type-aliases-package:com.xxxx.crm.vo;com.xxxx.crm.query;com.xxxx.crm.dto

configuration:

map-underscore-to-camel-case:true

## pageHelper

pagehelper:

helper-dialect:mysql

## 设置dao 日志打印级别

logging:

level:

com:

xxxx:

crm:

dao:debug

5.2.4. 添加视图转发源代码

新建com.xxxx.crm.controller包,添加系统登录,主页面转发代码(这里引入base包,具体文件见相关目
录)。

package com.xxxx.crm.controller;

import com.xxxx.crm.base.BaseController;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class IndexController extends BaseController {

/**

*系统登录页

*@return

*/

@RequestMapping("index")public String index(){

return "index";

}

// 系统界面欢迎页

@RequestMapping("welcome")

public String welcome(){

return "welcome";

}

/**

*后端管理主页面

*@return

*/

@RequestMapping("main")

public String main(){

return "main";

}

}

5.2.5. 静态资源文件目录添加

在src/main/resources目录下新建public目录存放系统相关静态资源文件,copy静态文件内容到public 目录。

5.2.6. 添加系统登录,主页面视图模板页

在src/main/resources目录下新建views目录,添加index.ftl,main.ftl文件(具体视图文件详见相关目录)

5.2.7. 添加SpringBoot应用启动类Starter

在com.xxxx.crm包下新建Starter.java ,添加启动项目相关代码如下:

package com.xxxx.crm;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class Starter {

public static void main(String[] args){

SpringApplication.run(Starter.class);

}

}

5.2.8.项目目录结构

5.2.9.浏览器访问登录页、主页面

Chrome浏览器访问登录页地址:http://localhost:9898/crm/index

Chrome浏览器访问系统主页地址:http://localhost:9898/crm/main

2fbf4b4c1e6519a4bf2a4236493a8526.jpeg

ff0f5723532d0a6fc0b11a39e3bdb844.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计社区医院管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

RabbitMQ初步到精通-第六章-RabbitMQ之死信队列

目录 第六章-RabbitMQ之死信队列 1. 死信概念 2. 死信架构 3. 死信来源 3.1 消息 TTL 过期 3.2 队列达到最大长度(队列满了,无法再添加数据到 mq 中) 3.3 消息被拒绝(basic.reject 或 basic.nack)并且 requeuefa…

基于stm32单片机的智能恒温箱游泳池

资料编号:104 下面是相关功能视频演示: 104-基于stm32单片机的智能恒温箱游泳池控制系统Proteus仿真(源码仿真全套资料)功能介绍: 采用stm32单片机,程序可以设置最高值和最低值,当温度超过最高…

[笔记]vue从入门到入坟《五》vue-cli构建vue webpack项目

参考: 用vue-cli搭建vue项目 vue-cli 项目结构目录简介 文章目录前言一、Vue-cli介绍二、开始2.0 下载安装npm 以及gitnpm安装git安装2.1 全局安装 vue-cli2.2 创建项目目录介绍三、常见问题总结前言 一、Vue-cli介绍 官网 简单地说就是构建vue项目的工具包&#…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.1 缓存的作用

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.1 缓存的作用5.1.1 缓存介绍5.1.2 小结5 整合第三…

【计算机组成原理Note】5.3 CPU数据通路(CPU内部总线+专用数据通路)

5.3.1 数据通路-CPU内部单总线方式 这是第一节的图,将其部件换到一边: 5.3.1.1 CPU内部单总线方式 内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线; 系统总线是指同一台计算机系统的各部件,如CPU、内存、通道…

C++类型转换+特殊类的设计+单例模式+IO流+空间配置器

索引类型转换(1).C语言的类型转换(2).C四种类型转换a.static_castb.reinterpret_castc.const_castd.dynamic_castvolatile关键字(了解即可)RTTL特殊类的设计(1).设计一个类不能支持拷贝(2).设计一个类,只能在堆上创建对象(3).设计一个类,只能在栈上创建对…

[C++数据结构](33)图,图的遍历,最小生成树,最短路径算法详解

文章目录图的基本概念图的存储结构邻接矩阵邻接表实现图的遍历广度优先遍历深度优先遍历最小生成树Kruskal 算法Prim 算法最短路径Dijkstra 算法Bellman-Ford 算法Bellman-Ford 算法的队列优化Floyd 算法图的基本概念 图(Graph)是由顶点集合及顶点间的关系组成的一种数据结构&…

uni-app入门:常用事件绑定与数据同步

1.常见事件与事件绑定 1.1点击事件bindtap 1.2 文本输入事件bindinput 1.3 切换事件bindtouchend 2.数据同步 2.1事件回调 2.2逻辑层中page对象中的中数据如何进行改变 2.3页面触发事件如何传参到page中数据 …

Android 基础知识1-开发环境搭建

1.1 Android开发准备工作 配置Android开发环境之前,首先需要了解Android对操作系统的要求。它可以使用Windows XP 已经以上版本、Mac OS 、Linux等操作系统,我是以Windows系统为例学习以及开发的。 1.2 开发包以及其工具的安装和配置 Android以Java作为…

内蒙古工程学院无线网络设计与规划

摘 要 I ABSTRACT II 第1章 绪论 1 1.1选题背景及意义 1 1.1.1选题背景 1 1.1.2选题意义 1 1.1.3国内外研究现状 2 1.2需求分析 3 1.2.1建设背景 3 1.2.2总体建设目标 4 1.2.4具体实施目标 5 1.3校园无线网在教育中的发展 6 第2章 无线网络的应用 7 2.1 无线网络的概述 7 2.1.1…

【毕业设计】60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程、源代码、低重复率参考文档、实物图)

【毕业设计】60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程、源代码、低重复率参考文档、实物图) 文章目录【毕业设计】60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程、源代码、低重复率参考文档、实物图&#x…

Mybatis的一级缓存

目录前置生效场景一场景二失效场景一场景二场景三场景四场景五前置 什么是一级缓存: mybatis 默认开启一级缓存, SQLSession会话缓存, 每个SQLSession都会有各自的缓存 以下会演示一级缓存生效/失效的场景 项目地址: https://gitee.com/xmaxm/test-code/blob/master/chaim-cac…

初识golang微服务框架kratos

前言 今天给大家介绍一下Kratos,Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具,使用Kratos的原因主要是感觉原来使用的go-kit工具并不是很方便,期望用上kratos后开发会更快捷一些。 Kratos名字根据官方的説法是来源于:《战…

灵界的科学丨六、星际通信新科技──寻找外星人

摘自李嗣涔教授《灵界的科学》 外星先进文明科技领先地球的关键, 是外星人掌握了意识的物理, 能够制造仿照天眼的仪器, 自由进出虚数空间遨游宇宙,同时创造出瞬间科技。 人类未来学习的典范,就在天上无数的外星先进…

数据结构--线性表之顺序表

1.线性表定义 线性表(List):零个或多个数据元素的有限序列。 线性表的数据集合为{a1,a2,…,an},假设每个元素的类型均为DataType。其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素&#xff0c…

第三十三篇 transition-group 列表过渡

上一篇内容讲到的是transiotion&#xff0c;其中还记得有一个报错吗&#xff1f;如下&#xff1a; 先来回顾一下&#xff0c;<transition> 只能用于单个元素&#xff0c;如果在<transition>单中并列两个<p>标签&#xff0c;那么这样一来就会报以上这个错误&a…

六、表空间管理

六、表空间管理 1、查看表空间 使用DM Manager工具&#xff1a; 代码&#xff1a; -- 1、查看表空间名 select tablespace_name FROM SYS.DBA_TABLESPACES;-- 2、查看表空间名、表空间对应的数据文件地址、状态 select tablespace_name,file_name,status FROM dba_data_files;…

软件定义汽车产业生态创新白皮书

1 什么是软件定义汽车 1.1 驱动因素 汽车“新四化”的发展需要软件的加持 据大众汽车公开披露信息&#xff0c;未来平均每辆普通汽车软件代码量超 1 亿行。在电动化、智能化和网联化等的发展推动下&#xff0c;汽车将加速向高度数字化、信息化、智能化的移动终端发展。座舱娱…

CM311-1_YST_S905L3(B)_安卓9.0_设置无密码_默认打开adb_完美AI语音_线刷固件包

CM311-1_YST_S905L3(B)_安卓9.0_设置无密码_默认打开adb_完美AI语音_线刷固件包 固件特点&#xff1a; 1、修改dns&#xff0c;三网通用&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、无开机广告&#xff0c;无系统更新&#xff0c;不在被强制升…