基于ssm的客户管理系统
查看更多系统:系统大全,课程设计、毕业设计,请点击这里查看
01 概述
一个简单的客户关系管理系统 管理用户的基本数据 客户的分配 客户的流失 已经客户的状态
02 技术
ssm + jdk1.8 + mysql5.4
03 运行环境
ecplice + jdk1.8 + tomcat
04 功能
1- 字典管理
2- 用户管理
3- 角色管理
4- 权限管理
5- 部门管理
6-客户信息管理
7-数据添加-编辑-删除
8-客户信息的跟进
9-客户信息状态
05 运行截图
客户信息
跟进信息
登录信息
权限管理
06 主要代码
客户信息
package com.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.dao.KhClientinfoMapper;
import com.dao.KhHuiMapper;
import com.dao.LogsMapper;
import com.entity.KhClientinfo;
import com.entity.KhHui;
import com.entity.Logs;
import com.util.Pagination;
@Controller
@RequestMapping("/khclient")
public class KhClientinfoController extends BaseController{
@Resource//客户表
KhClientinfoMapper khclientDao;
@Resource//客户跟进表
KhHuiMapper khhuiDao;
@Resource
LogsMapper logsDao;
//客户表显示
@RequestMapping("/show")
public String show(Integer index,HttpServletRequest request) {
int pageNO = 1;
if(index!=null){
pageNO = index;
}
String names = (String) request.getSession().getAttribute("name");
String relo = (String) request.getSession().getAttribute("relo");
Pagination pager = new Pagination();
Map params = new HashMap();
params.put("start", (pageNO-1)*40);
params.put("pagesize", 40);
if("客服".equals(relo)) {
params.put("kefuname", names);
}
List all = khclientDao.show(params);
pager.setData(all);
pager.setIndex(pageNO);
request.getSession().setAttribute("pageNO", pager.getIndex());
pager.setPageSize(40);
pager.setTotal(khclientDao.getTotal());
pager.setPath("show.do?");
request.setAttribute("pager", pager);
return "client/cl-show";
}
//客户表新建
@RequestMapping(value = "/add")
public String add(KhClientinfo data,HttpServletRequest request) {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//设置时间显示格式
String str = sdf.format(now);
String names = (String) request.getSession().getAttribute("name");
data.setKehuday(str);
data.setKefuname(names);
data.setKhstate("未到访");
Date time = null;
if ("A:已交房客户".equals(data.getKehulei())) {
time= new Date(now.getTime() + (long)3 * 24 * 60 * 60 * 1000);//加3天
}
if ("B:3个月内交房客户".equals(data.getKehulei())) {
time= new Date(now.getTime() + (long)7 * 24 * 60 * 60 * 1000);//加7天
}
if ("C:3-6交房客户".equals(data.getKehulei())) {
time= new Date(now.getTime() + (long)15 * 24 * 60 * 60 * 1000);//加15天
}
if ("D:6个月以上交房客户".equals(data.getKehulei())) {
time= new Date(now.getTime() + (long)30 * 24 * 60 * 60 * 1000);//加30天
}
String stc = sdf.format(time);
if (data.getKehutel().length()>1) {
KhClientinfo khClient=khclientDao.tel(data.getKehutel());
if (khClient!=null) {
request.setAttribute("all", khClient.getKefuname());
return "client/chongfu";
}
}
khclientDao.insertSelective(data);
KhClientinfo khClientinfo=khclientDao.isdn();
KhHui khHui=new KhHui();
khHui.setYuday(stc);
khHui.setWenti("客户第一次跟进");
khHui.setInid(khClientinfo.getId());
khHui.setScday(str);
khhuiDao.insertSelective(khHui);
Integer pagerNO=(Integer)request.getSession().getAttribute("pageNO");
return "redirect:/khclient/show?index="+pagerNO;
}
//客户表删除
@RequestMapping("/{id}/del")
public String del(@PathVariable("id") int id,HttpServletRequest request) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 时间字符串产生方式
String uid = format.format(new Date());
String names = (String) request.getSession().getAttribute("name");
KhClientinfo khClientinfo=khclientDao.selectByPrimaryKey(id);
Logs logs =new Logs();
logs.setDay(uid);
logs.setLoname(names);
logs.setLei("删除");
logs.setBiaoid(khClientinfo.getKuhuname()+"+"+khClientinfo.getKehutel());
logs.setBiao("客户表及跟进详情");
logsDao.insertSelective(logs);
khclientDao.deleteByPrimaryKey(id);
Integer pagerNO=(Integer)request.getSession().getAttribute("pageNO");
String like=request.getParameter("like");
if (like!=null&&like.length()>0) {
return "redirect:/khclient/like?index="+pagerNO;
}else {
return "redirect:/khclient/show?index="+pagerNO;
}
}
//客户表编辑前取数据
@RequestMapping("/{id}/load")
public String load(@PathVariable("id") int id,HttpServletRequest request, ModelMap model) {
KhClientinfo record = (KhClientinfo) khclientDao.selectByPrimaryKey(id);
model.addAttribute("record", record);
String like=request.getParameter("like");
if (like!=null) {
request.setAttribute("like", like);
}
return "client/cl-modify";
}
//客户表编辑
@RequestMapping(value = "/update")
public String update(KhClientinfo data,HttpServletRequest request) {
khclientDao.updateByPrimaryKeySelective(data);
Integer pagerNO=(Integer)request.getSession().getAttribute("pageNO");
String like=request.getParameter("like");
if (like!=null&&like.length()>0) {
return "redirect:/khclient/like?index="+pagerNO;
}else {
return "redirect:/khclient/show?index="+pagerNO;
}
}
//客户表模糊查找
@RequestMapping("/like")
public String like(Integer index, KhClientinfo data,HttpServletRequest request) {
int pageNO = 1;
if(index!=null){
pageNO = index;
}
Pagination pager = new Pagination();
Map params = new HashMap();
String lk=request.getParameter("lk");
String names = (String) request.getSession().getAttribute("name");
String relo = (String) request.getSession().getAttribute("relo");
if (lk!=null&&lk.length()>0) {
request.getSession().setAttribute("kuhuname",data.getKuhuname());
request.getSession().setAttribute("kehuaddres",data.getKehuaddres());
request.getSession().setAttribute("kehutel",data.getKehutel());
request.getSession().setAttribute("kehulei",data.getKehulei());
request.getSession().setAttribute("kehugenre",data.getKehugenre());
request.getSession().setAttribute("kaiday",data.getKaiday());
request.getSession().setAttribute("weixin",data.getWeixin());
request.getSession().setAttribute("channel",data.getChannel());
request.getSession().setAttribute("khstate",data.getKhstate());
request.getSession().setAttribute("kefuname",data.getKefuname());
request.getSession().setAttribute("kehuday",data.getKehuday());
request.getSession().setAttribute("qu",data.getQu());
request.getSession().setAttribute("an",data.getAn());
request.getSession().setAttribute("jiename",data.getJiename());
}
String qu= (String) request.getSession().getAttribute("qu");
if(qu!=null&&qu.length()>0) {
params.put("qu", qu);
}
String an= (String) request.getSession().getAttribute("an");
if(an!=null&&an.length()>0) {
params.put("an", an);
}
String jiename= (String) request.getSession().getAttribute("jiename");
if(jiename!=null&&jiename.length()>0) {
params.put("jiename", jiename);
}
String kaiday= (String) request.getSession().getAttribute("kaiday");
if(kaiday!=null&&kaiday.length()>0) {
params.put("kaiday", kaiday);
}
String weixin= (String) request.getSession().getAttribute("weixin");
if(weixin!=null&&weixin.length()>0) {
params.put("weixin", weixin);
}
String channel= (String) request.getSession().getAttribute("channel");
if(channel!=null&&channel.length()>0) {
params.put("channel", channel);
}
String khstate= (String) request.getSession().getAttribute("khstate");
if(khstate!=null&&khstate.length()>0) {
params.put("khstate", khstate);
}
String kehuday= (String) request.getSession().getAttribute("kehuday");
if(kehuday!=null&&kehuday.length()>0) {
params.put("kehuday", kehuday);
}
String kuhuname= (String) request.getSession().getAttribute("kuhuname");
if(kuhuname!=null&&kuhuname.length()>0) {
params.put("kuhuname", kuhuname);
}
String kehuaddres= (String) request.getSession().getAttribute("kehuaddres");
if(kehuaddres!=null&&kehuaddres.length()>0) {
params.put("kehuaddres", kehuaddres);
}
String kehugenre= (String) request.getSession().getAttribute("kehugenre");
if(kehugenre!=null&&kehugenre.length()>0) {
params.put("kehugenre", kehugenre);
}
String kehulei= (String) request.getSession().getAttribute("kehulei");
if(kehulei!=null&&kehulei.length()>0) {
params.put("kehulei", kehulei);
}
String kehutel= (String) request.getSession().getAttribute("kehutel");
if(kehutel!=null&&kehutel.length()>0) {
params.put("kehutel", kehutel);
}
String kefuname= (String) request.getSession().getAttribute("kefuname");
if("客服".equals(relo)) {
params.put("kefuname", names);
}else {
if(kefuname!=null&&kefuname.length()>0) {
params.put("kefuname", kefuname);
}
}
params.put("start", (pageNO-1)*40);
params.put("pagesize",40);
List all = khclientDao.like(params);
pager.setData(all);
pager.setIndex(pageNO);
request.getSession().setAttribute("pageNO",pager.getIndex());
pager.setPageSize(40);
pager.setTotal(khclientDao.getlikeTotal(params));
pager.setPath("like?");
request.setAttribute("pager", pager);
return "client/cl-showlike";
}
}
用户登录
package com.controller;
import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import com.dao.LogMapper;
import com.dao.LogsMapper;
import com.entity.Log;
import com.util.Pagination;
@Controller
@RequestMapping("/log")
public class LogController extends BaseController{
@Resource
LogMapper logDao;
@Resource
LogsMapper logsDao;
//登录信息显示
@RequestMapping("/show")
public String show(Integer index,HttpServletRequest request,ModelMap model) {
int pageNO = 1;
if(index!=null){
pageNO = index;
}
Pagination pager = new Pagination();
Map params = new HashMap();
params.put("start", (pageNO-1)*40);
params.put("pagesize", 40);
List all = logDao.show(params);
pager.setData(all);
pager.setIndex(pageNO);
request.getSession().setAttribute("pageNO", pager.getIndex());
pager.setPageSize(40);
pager.setTotal(logDao.getTotal());
pager.setPath("show.do?");
request.setAttribute("pager", pager);
return "dept/denlu/show";
}
//登录信息模糊查找
@RequestMapping("/like")
public String like(Integer index, Log data,HttpServletRequest request) {
int pageNO = 1;
if(index!=null){
pageNO = index;
}
Pagination pager = new Pagination();
Map params = new HashMap();
String lk=request.getParameter("lk");
String account="";
String onlineTime="";
String exitTime="";
if (lk!=null&&lk.length()>0) {
request.getSession().setAttribute("account",data.getAccount());
request.getSession().setAttribute("onlineTime",data.getOnlineTime());
request.getSession().setAttribute("exitTime",data.getExitTime());
}
account=(String) request.getSession().getAttribute("account");
onlineTime=(String) request.getSession().getAttribute("onlineTime");
exitTime=(String) request.getSession().getAttribute("exitTime");
if(account!=null&&account.length()>0) {
params.put("account",account);
}
if(onlineTime!=null&&onlineTime.length()>0) {
params.put("onlineTime",onlineTime);
}
if(exitTime!=null&&exitTime.length()>0) {
params.put("exitTime",exitTime);
}
params.put("start", (pageNO-1)*40);
params.put("pagesize", 40);
List all = logDao.like(params);
pager.setData(all);
pager.setIndex(pageNO);
request.getSession().setAttribute("pageNO", pager.getIndex());
pager.setPageSize(40);
pager.setTotal(logDao.getlikeTotal(params));
pager.setPath("like.do?");
request.setAttribute("pager", pager);
return "dept/denlu/show";
}
//个人操作记录显示
@RequestMapping("/shows")
public String shows(Integer index,HttpServletRequest request,ModelMap model) {
int pageNO = 1;
if(index!=null){
pageNO = index;
}
Pagination pager = new Pagination();
Map params = new HashMap();
params.put("start", (pageNO-1)*40);
params.put("pagesize", 40);
List all = logsDao.show(params);
pager.setData(all);
pager.setIndex(pageNO);
request.getSession().setAttribute("pageNO", pager.getIndex());
pager.setPageSize(40);
pager.setTotal(logsDao.getTotal());
pager.setPath("shows.do?");
request.setAttribute("pager", pager);
return "dept/caozuo/show";
}
}
07 源码下载
关注公众号【C you again】,回复“基于ssm的客户管理系统”免费领取。
亦可直接扫描主页二维码关注,回复“基于ssm的客户管理系统”免费领取,点此打开个人主页
运行
- 找到文件夹sql中的sql文件,导入到mysql中
- 将工程导入到eclipse中,修改数据库连接信息
- 启动项目,浏览器地址栏输入:http://localhost:8080/ssmClient
说明:此源码来源于网络,若有侵权,请联系删除!!
基于ssm的客户管理系统的更多相关文章
- 基于SSM的健身房管理系统
基于SSM的健身房管理系统 The project was made in 2020-05-05~2020-05-10 谨以此片博文记录下我的第一个Java小Demo 项目展示 用户登录页 用户注册页 ...
- 基于SSM的租赁管理系统0.1_20161225_项目需求
基于SSM的汽车租赁系统项目计划书 1.产品定位 本系统供提供租赁服务的企业内部使用,供企业员工进行线下操作. 2.需求分析 2.1 能为工作人员提供员工信息的管理功能,具有RBAC基于角色的权限管理 ...
- 基于SSM小区物业管理系统
随着计算机的不断发展和广泛应用,人们的工作效率得到不断的提高.互联网的发展,更是缩短了人们之间的距离.如何充分利用互联网,这是大家共同关心的问题.本文主要介绍了关于小区管理系统的实现方法,设计规划了小 ...
- 基于SSM的租赁管理系统1.0_20161225_框架搭建
搭建SSM底层框架 1. 利用mybatis反向工程generatorSqlmapCustom完成对数据库十表的映射 generatorConfig.xml <?xml version=&quo ...
- 基于SSM的crm管理系统
学完crm后的第一个项目实践,前端样式与标签库都是现成的. 开发环境 eclipse,mysql,jdk1.7 项目架构 整合思路 Dao层: 1.SqlMapConfig.xml,添加别名,但是需要 ...
- 计算机毕业设计项目-基于SSM的学生会管理系统-基于ssm的社团信息管理系统
注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架:SSM 前端技术:HTML+CSS+JavaScript+Bootstrap+jQuery 数据库: ...
- 基于SSM的租赁管理系统0.3_20161225_数据库设计
数据库设计 1. 概念模型 2. 类模型 3. 生成SQL use test; /*========================================================== ...
- 基于SSM的租赁管理系统0.2_20161225_开发环境
项目环境搭建 1. 开发环境 Sybase PowerDesigner 15.1.0 + MySQL 5.7.15 + Navicat 11.0.9 + eclipse EE Mars 2.0 + F ...
- 基于SSM实现的简易员工管理系统
之前自学完了JAVA基础,一直以来也没有做什么好玩的项目,最近暑假,时间上比较空闲,所以又学习了一下最近在企业实际应用中比较流行的SSM框架,以此为基础,通过网络课程,学习编写了一个基于SSM实现的M ...
随机推荐
- Java新特性:数据类型可以扔掉了?
在很久很久以前,我们写代码时要慎重的考虑变量的数据类型,比如下面这些: 枚举:尽管在 JDK 5 中增加了枚举类型,但是 Class 文件常量池的 CONSTANT_Class_info 类型常量并没 ...
- spring-dao.xml通常写法
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- vulnhub靶机之Quaoar
Quaoar 靶机非常简单. 扫描端口主机. wordpress建站. 扫到两个用户,分别是wpuser以及admin. 爆破出了后台: 传了一个一句话木马,连上蚁剑又传了个反弹shell. 反弹sh ...
- LDA主题模型困惑度计算
对于LDA模型,最常用的两个评价方法困惑度(Perplexity).相似度(Corre). 其中困惑度可以理解为对于一篇文章d,所训练出来的模型对文档d属于哪个主题有多不确定,这个不确定成都就是困惑度 ...
- @lookup注解的使用
背景,如果有一个类C,需要用到类B,如果使用@Autowired注解注入B,那么B每次调用都是同一个对象,即使B不是单例的,现在我希望每次调用B都是不一样的,那么实现方案有2个: 方案A : 每次从容 ...
- 一篇文章带你了解Java OOP思想
Java OOP 思想深度刨析 Java面向对象编程 面向对象编程简称OOP(Object--对象.Oriendted--导向的.Programming--程序设计) 面向对象通俗来讲,就是指使用丰富 ...
- Docker---初识到使用
1.剖析虚拟化技术概念 1)虚拟化是一个主流的技术,虚拟的,看不见的,但是可以落地的,用于资源管理的一项技术: 2)虚拟化的技术诞生的目标就是为了解决资源管理和资源利用的解决方案: 3)虚拟化就是将物 ...
- Arduino Wire.h(IIC/ I2C)语法
转自:https://www.cnblogs.com/1996jiwei/p/6561681.html 本文转自上面链接,版权请直接参考原链接. 最近在用I2C进行通信交流,发现有两种方法的头文件需要 ...
- 【题解】[APIO2010]特别行动队
Link 题目大意:一段区间的贡献是\(ax^2+bx+c,x=\sum v\),求一个划分让总区间的价值最大.分段必须连续. \(\text{Solution:}\) 设计\(dp[i]\)表示前\ ...
- 本地vue项目跨域服务器接口
1,打开index.js文件,找到 proxyTable 参照下面链接的方法,你们可以去点赞 https://www.douban.com/note/704314260/?type=like#sep