作者主页:夜未央5788

简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

功能介绍

该项目未使用spring框架,实现了用户登录,权限控制,数据统计,以及市场活动、线索、客户、联系人、交易管理的CRUD,使用Proxy实现Service层的动态代理,实现DAO层事务控制,有助于深入理解web项目。管理员还包含系统设置:用户管理、角色管理、权限管理;其中角色管理可以设置总经理、副总经理、销售经理、综合事务等角色的权限菜单。

环境需要

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.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 5.7版本;

技术栈

1. 后端:Servlet+Mybatis

2. 前端:Layui+jquery+echarts+JSP

使用说明

1. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包;

2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置
4. 配置tomcat,然后运行项目,输入localhost:8080/xxx 登录
5. 管理员账户:admin  密码:123456
普通员工账户:zs  密码:123

运行截图

相关代码

ActivityController

package com.crsbg.controller;import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.crsbg.entity.Activity;
import com.crsbg.entity.PageVO;
import com.crsbg.entity.User;
import com.crsbg.service.ActivityService;
import com.crsbg.service.impl.ActivityServiceImpl;
import com.crsbg.utils.JSONUtil;
import com.crsbg.utils.ServiceFactory;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class ActivityController extends HttpServlet {private ActivityService activityService = null;@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String path = request.getServletPath();if("/controller/getActivity".equals(path)){getActivity(request,response);}else if("/controller/createActivity".equals(path)){createActivity(request,response);}else if("/controller/updateActivity".equals(path)){updateActivity(request,response);}else if("/controller/deleteActivity".equals(path)){deleteActivity(request,response);}else if("/controller/deleteActivities".equals(path)){deleteActivities(request,response);}else if("/controller/getActivityByCid".equals(path)){getActivityByCid(request,response);}else if("/controller/getActivityByName".equals(path)){getActivityByName(request,response);}else if("/controller/getActivityByName2".equals(path)){getActivityByName2(request,response);}else if("/controller/getActivityByConid".equals(path)){getActivityByConid(request,response);}else if("/controller/getActivityByName3".equals(path)){getActivityByName3(request,response);}}private void getActivityByName3(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入getActivityByName3...");String sname = request.getParameter("sname");String contactsId = request.getParameter("contactsId");Map<String,String> param = new HashMap<>();param.put("name",sname);param.put("contactsId",contactsId);activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());List<Activity> activityList = activityService.getActivityByName3(param);Map<String,Object> map = new HashMap<>();map.put("code",0);map.put("message","请求成功");map.put("count",activityList.size());map.put("data",activityList);JSONUtil.getJSON(response,map);}private void getActivityByConid(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入获取市场列表getActivityByConid...");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());String contactsId = request.getParameter("contactsId");List<Activity> activityList = activityService.getActivityByConid(contactsId);JSONUtil.getJSON(response,activityList);}private void getActivityByName2(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入getActivityByName2...");String sname = request.getParameter("sname");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());List<Activity> activityList = activityService.getActivityByName2(sname);Map<String,Object> map = new HashMap<>();map.put("code",0);map.put("message","请求成功");map.put("count",activityList.size());map.put("data",activityList);JSONUtil.getJSON(response,map);}private void getActivityByName(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入getActivityByName...");String sname = request.getParameter("sname");String clueId = request.getParameter("clueId");Map<String,String> param = new HashMap<>();param.put("name",sname);param.put("clueId",clueId);activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());List<Activity> activityList = activityService.getActivityByName(param);Map<String,Object> map = new HashMap<>();map.put("code",0);map.put("message","请求成功");map.put("count",activityList.size());map.put("data",activityList);JSONUtil.getJSON(response,map);}private void getActivityByCid(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入getActivityByCid...");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());String clueId = request.getParameter("clueId");List<Activity> activityList = activityService.getActivityByCid(clueId);
//        Map<String,Object> map = new HashMap<>();
//        map.put("code",0);
//        map.put("message","请求成功");
//        map.put("count",activityList.size());
//        map.put("data",activityList);JSONUtil.getJSON(response,activityList);}private void deleteActivities(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入deleteActivities");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());String[] ids = request.getParameterValues("id");boolean flag = activityService.deleteActivities(ids);response.getWriter().print(flag);}private void deleteActivity(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入deleteActivity");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());String id = request.getParameter("id");int res = activityService.deleteActivity(id);boolean flag = (res==1?true:false);response.getWriter().print(flag);}private void updateActivity(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入updateActivity");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());String id = request.getParameter("id");String owner = request.getParameter("owner");String name = request.getParameter("name");String startDate = request.getParameter("startDate");String endDate = request.getParameter("endDate");String cost = request.getParameter("cost");String description = request.getParameter("description");String editTime = DateUtil.now();String editBy = ((User)request.getSession().getAttribute("user")).getName();Activity activity = new Activity();activity.setId(id);activity.setOwner(owner);activity.setName(name);activity.setStartDate(startDate);activity.setEndDate(endDate);activity.setCost(cost);activity.setDescription(description);activity.setEditTime(editTime);activity.setEditBy(editBy);int res = activityService.updateActivity(activity);boolean flag = (res==1?true:false);response.getWriter().print(flag);}private void createActivity(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入createActivity");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());String id = IdUtil.simpleUUID();String owner = request.getParameter("create-owner");String name = request.getParameter("create-name");String startDate = request.getParameter("create-startDate");String endDate = request.getParameter("create-endDate");String cost = request.getParameter("create-cost");String description = request.getParameter("create-description");String createTime = DateUtil.now();String createBy = ((User)request.getSession().getAttribute("user")).getName();Activity activity = new Activity();activity.setId(id);activity.setOwner(owner);activity.setName(name);activity.setStartDate(startDate);activity.setEndDate(endDate);activity.setCost(cost);activity.setDescription(description);activity.setCreateTime(createTime);activity.setCreateBy(createBy);int res = activityService.createActivity(activity);boolean flag = (res==1?true:false);response.getWriter().print(flag);}private void getActivity(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入getActivity");activityService = (ActivityService) ServiceFactory.getService(new ActivityServiceImpl());String owner = request.getParameter("owner");String name = request.getParameter("name");String startDate = request.getParameter("startDate");String endDate = request.getParameter("endDate");int page = Integer.parseInt(request.getParameter("page"));int limit = Integer.parseInt(request.getParameter("limit"));int pageNumber = (page-1)*limit;int pageSize = limit;Map<String,Object> data = new HashMap<>();data.put("owner",owner);data.put("name",name);data.put("startDate",startDate);data.put("endDate",endDate);data.put("pageNumber",pageNumber);data.put("pageSize",pageSize);PageVO<Activity> vo = activityService.getActivity(data);Map<String,Object> map = new HashMap<>();map.put("code",0);map.put("message","请求成功");map.put("count",vo.getTotal());map.put("data",vo.getDatas());JSONUtil.getJSON(response,map);}}

ClueController

package com.crsbg.controller;import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONObject;
import com.crsbg.entity.Clue;
import com.crsbg.entity.PageVO;
import com.crsbg.entity.Tran;
import com.crsbg.entity.User;
import com.crsbg.service.ClueService;
import com.crsbg.service.impl.ClueServiceImpl;
import com.crsbg.utils.JSONUtil;
import com.crsbg.utils.ServiceFactory;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class ClueController extends HttpServlet {private ClueService clueService = null;@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String path = request.getServletPath();if("/controller/getClue".equals(path)){getClue(request,response);} else if("/controller/addClue".equals(path)){addClue(request,response);} else if("/controller/detailClue".equals(path)){clueDetail(request,response);} else if("/controller/removeClueActivity".equals(path)){removeClueActivity(request,response);} else if("/controller/addClueActivity".equals(path)){addClueActivity(request,response);} else if("/controller/getClueByIdAndUser".equals(path)){getClueByIdAndUser(request,response);} else if("/controller/updateClue".equals(path)){updateClue(request,response);} else if("/controller/deleteClue".equals(path)){deleteClue(request,response);} else if("/controller/deleteClues".equals(path)){deleteClues(request,response);} else if("/controller/convert".equals(path)){convert(request,response);}}private void convert(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("进入线索转换convert...");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());String clueId = request.getParameter("clueId");String isCreateTran = request.getParameter("isCreateTran");String createBy = ((User)request.getSession().getAttribute("user")).getName();Tran tran = null;if("yes".equals(isCreateTran)){String id = IdUtil.simpleUUID();String name = request.getParameter("name");String money = request.getParameter("money");String expectedDate = request.getParameter("expectedDate");String stage = request.getParameter("stage");String activityId = request.getParameter("activityId");String createTime = DateUtil.now();tran = new Tran();tran.setId(id);tran.setName(name);tran.setMoney(money);tran.setExpectedDate(expectedDate);tran.setStage(stage);tran.setActivityId(activityId);tran.setCreateBy(createBy);tran.setCreateTime(createTime);}boolean flag = clueService.convert(clueId,createBy,tran);request.setAttribute("convertRes",flag);request.getRequestDispatcher("/pages/clue.jsp").forward(request,response);}private void deleteClues(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入批量删除线索deleteClues...");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());String[] ids = request.getParameterValues("id");boolean flag = clueService.deleteClues(ids);response.getWriter().print(flag);}private void deleteClue(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入单条删除线索deleteClue...");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());String id = request.getParameter("id");boolean flag = clueService.deleteClue(id);response.getWriter().print(flag);}private void updateClue(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入线索修改updateClue...");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());String id = request.getParameter("id");String fullname = request.getParameter("fullname");String appellation = request.getParameter("appellation");String owner = request.getParameter("owner");String company = request.getParameter("company");String job = request.getParameter("job");String email = request.getParameter("email");String tel = request.getParameter("tel");String website = request.getParameter("website");String phone = request.getParameter("phone");String state = request.getParameter("state");String source = request.getParameter("source");String editBy = ((User)request.getSession().getAttribute("user")).getName();String editTime = DateUtil.now();String description = request.getParameter("description");String contactSummary = request.getParameter("contactSummary");String nextContactDate = request.getParameter("nextContactDate");String address = request.getParameter("address");Clue clue = new Clue();clue.setId(id);clue.setFullname(fullname);clue.setAppellation(appellation);clue.setOwner(owner);clue.setCompany(company);clue.setJob(job);clue.setEmail(email);clue.setTel(tel);clue.setWebsite(website);clue.setPhone(phone);clue.setState(state);clue.setSource(source);clue.setEditBy(editBy);clue.setEditTime(editTime);clue.setDescription(description);clue.setContactSummary(contactSummary);clue.setNextContactDate(nextContactDate);clue.setAddress(address);boolean flag = clueService.updateClue(clue);response.getWriter().print(flag);}private void getClueByIdAndUser(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入查询线索和用户getClueByIdAndUser...");String id = request.getParameter("id");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());Map map = clueService.getClueByIdAndUser(id);JSONUtil.getJSON(response, map);}private void removeClueActivity(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入解除线索和市场活动关系removeClueActivity...");String id = request.getParameter("id");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());boolean flag = clueService.removeClueActivity(id);response.getWriter().print(flag);}private void addClueActivity(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入添加线索和市场活动关系addClueActivity...");String clueId = request.getParameter("cid");String[] activityIds = request.getParameterValues("aid");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());boolean flag = clueService.addClueActivity(clueId,activityIds);response.getWriter().print(flag);}private void clueDetail(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {System.out.println("进入查询线索详细信息detailClue...");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());String id = request.getParameter("id");Clue clue = clueService.detailClue(id);request.setAttribute("clue",clue);request.getRequestDispatcher("/pages/clue-detail.jsp").forward(request,response);}private void addClue(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入addClue...");clueService = (ClueService) ServiceFactory.getService(new ClueServiceImpl());String id = IdUtil.simpleUUID();String fullname = request.getParameter("fullname");String appellation = request.getParameter("appellation");String owner = request.getParameter("owner");String company = request.getParameter("company");String job = request.getParameter("job");String email = request.getParameter("email");String tel = request.getParameter("tel");String website = request.getParameter("website");String phone = request.getParameter("phone");String state = request.getParameter("state");String source = request.getParameter("source");String createBy = ((User)request.getSession().getAttribute("user")).getName();String createTime = DateUtil.now();String description = request.getParameter("description");String contactSummary = request.getParameter("contactSummary");String nextContactDate = request.getParameter("nextContactDate");String address = request.getParameter("address");Clue clue = new Clue();clue.setId(id);clue.setFullname(fullname);clue.setAppellation(appellation);clue.setOwner(owner);clue.setCompany(company);clue.setJob(job);clue.setEmail(email);clue.setTel(tel);clue.setWebsite(website);clue.setPhone(phone);clue.setState(state);clue.setSource(source);clue.setCreateBy(createBy);clue.setCreateTime(createTime);clue.setDescription(description);clue.setContactSummary(contactSummary);clue.setNextContactDate(nextContactDate);clue.setAddress(address);boolean flag = clueService.addClue(clue);response.getWriter().print(flag);}private void getClue(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("进入getClue...");String owner = request.getParameter("owner");String fullname = request.getParameter("fullname");String company = request.getParameter("company");int page = Integer.parseInt(request.getParameter("page"));int limit = Integer.parseInt(request.getParameter("limit"));int pageNumber = (page-1)*limit;int pageSize = limit;clueService = (ClueService)ServiceFactory.getService(new ClueServiceImpl());Map<String,Object> param = new HashMap<>();param.put("owner",owner);param.put("fullname",fullname);param.put("company",company);param.put("pageNumber",pageNumber);param.put("pageSize",pageSize);PageVO<Clue> vo = clueService.getClue(param);Map<String,Object> map = new HashMap<>();map.put("code",0);map.put("message","请求成功");map.put("count",vo.getTotal());map.put("data",vo.getDatas());JSONUtil.getJSON(response,map);}}

如果也想学习本系统,下面领取。关注并回复:006jsp

Java项目:基于Servlet+Mybatis+Layui的CRM客户关系管理系统相关推荐

  1. jsp+servlet+mysql实现的CRM客户关系管理系统源码+运行教程

    今天给大家演示一下如何将一款由jsp servlet mysql实现的房地产公司crm客户关系管理系统运行部署起来,该系统实现了客户关系管理的所有功能,如客户信息录入.客户分配.客户跟进.客户关怀等等 ...

  2. CRM客户关系管理系统源码

    项目介绍: 这是一个基于Springboot+MySql实现的CRM客户关系管理系统. 技术特点: SpringBoot+MyBatis+Maven+Jquery+Bootstrap 推荐环境配置: ...

  3. 悟空CRM客户关系管理系统

    今日总结:上午是复习了一下昨天的SQL数据库的select查询命令,进行了深入理解.然后下午是了解项目操作,目前熟悉悟空CRM客户关系管理系统的各个模块功能,清楚CRM系统里的业务需求 今天上午熟悉了 ...

  4. 基于javaweb的crm客户关系管理系统(java+springboot+echarts+freemarker+layui+mysql)

    基于javaweb的crm客户关系管理系统(java+springboot+echarts+freemarker+layui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 ecl ...

  5. 基于java的CRM客户关系管理系统的设计与实现

    本科毕业设计(论文) 题 目: 基于java的CRM客户关系管理系统的设计与实现 专题题目: 说 明 请按以下顺序编排: 封面 任务书 开题报告 中外文摘要及关键词 目录 正文 附录(可选) 参考文献 ...

  6. JavaWeb实训项目:基于SSM框架的CRM客户关系管理系统(文章最后有源码)

    JavaWeb实训项目:基于SSM框架的CRM客户关系管理系统(附部分源码) 一.项目背景 项目演示 二.项目介绍 三.涉及技术 总结 源码地址 一.项目背景 "世上本来没有CRM,大家的生 ...

  7. 毕业设计之 - 基于java的CRM客户关系管理系统的设计与实现【源码+论文】

    文章目录 前言 一.项目设计 1. 模块设计 数据库设计 2. 实现效果 二.部分源码 项目源码 前言 今天学长向大家分享一个 java web 毕业设计 项目: 基于java web 的CRM客户关 ...

  8. Java项目:CRM客户关系管理系统(java+Springboot+maven+mysql)

    源码获取:博客首页 "资源" 里下载! Springboot项目CRM客户关系管理系统: 系统实现了CRM客户关系系统的基本功能,主要有看板(当月参与的业务机会.当月转化情况.将要 ...

  9. 基于java的CRM客户关系管理系统的设计和实现

    基于java的CRM客户关系管理系统的设计和实现这个系统开发的开发环境: 开发工具:MyEclipse2010版数据库:MySql+HeidiSqlJDK:MyEclipse2010自带的JDK1.7 ...

最新文章

  1. 【206】Firefox 扩展收集
  2. AI工程师面试知识点:TensorFlow 框架
  3. Python调用PyAutoGUI模块
  4. 输入记忆功能如何恢复
  5. Codeforces 482 - Diverse Permutation 构造题
  6. chackbox的值 php获取_PHP操作Redis数据库常用方法
  7. 190225每日一句
  8. python能编译成exe文件吗_python编译成exe文件
  9. 【并联机构工作空间分析系列1】 多个圆/圆环求交 得到重叠部分边界 Matlab程序
  10. oracle数据库报12514,Oracle数据库ORA-12514错误的解决办法
  11. IDEA “Cannot resolve symbol” 解决办法
  12. 用深度学习构造聊天机器人简介
  13. 图南淘宝开网店运营培训电商课程之学历分析
  14. window内置对象和js内置对象与方法
  15. mfp 服务器控制中心,固网1008MFP驱动
  16. 人品比能力更重要---个人收藏
  17. php用360浏览器显示不正常,win10系统下360浏览器网页显示不正常的解决方法
  18. Angular常用ng指令详解
  19. 豌豆荚工程师谈其新版应用搜索技术
  20. 24帧电影实时转60FPS,享受丝般顺滑!

热门文章

  1. windows下如何查看本机所在局域网内所有可以访问的IP
  2. 个人Android学习社区
  3. kindeditor html上传本地图片
  4. S-MSCKF(前端)代码解读
  5. linux tc实现ip流量限制
  6. 从零开始写CMOS摄像头驱动(一)
  7. linux下脚本录制工具——script和scriptreplay
  8. 简单 html 分页标签
  9. WAS上配置数据源连接失败
  10. Windows10下Latex缺少sty文件时的安装方法