基于JSP+Mybatis实现的CRM客户关系管理系统

简介: 该项目主要基于JAVAWEB技术,开发了一套CRM客户关系管理系统,实现了用户登录,权限控制,数据统计,以及市场活动、线索、客户、联系人、合同的CRUD,使用Proxy实现Service层的动态代理,实现DAO层事务控制。

 作者主页:编程指南针

简介:Java领域优质创作者、CSDN博客专家  Java项目、简历模板、学习资料、面试题库、技术互助

文末获取源码

项目编号:BS-XX-111

该项目主要基于JAVAWEB技术,开发了一套CRM客户关系管理系统,实现了用户登录,权限控制,数据统计,以及市场活动、线索、客户、联系人、合同的CRUD,使用Proxy实现Service层的动态代理,实现DAO层事务控制。

运行环境

jdk8+tomcat8+mysql5.7+IntelliJ IDEA

项目技术(必填)

java servlet+mybatis+layui+jquery+echarts

下面展示一下具体的功能界面:

image.gif编辑

系统主页面

image.gif编辑

市场活动管理:查询的相关数据可以导出到EXCEL表里

image.gif编辑

销售线索管理

image.gif编辑

客户管理

image.gif编辑

联系人管理

image.gif编辑

交易管理

image.gif编辑

个人信息管理

image.gif编辑

系统设置—用户管理

image.gif编辑

系统设置—角色管理

image.gif编辑

系统设置—权限管理

image.gif编辑

部分核心代码:

package com.crsbg.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONArray;
import com.crsbg.entity.PageVO;
import com.crsbg.entity.User;
import com.crsbg.service.UserService;
import com.crsbg.service.impl.UserServiceImpl;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 *用户管理控制器
 */
public class UserController extends HttpServlet {
  private UserService userService = null;
  @Override
  protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String path = request.getServletPath();
      if("/controller/login".equals(path)){
        login(request,response);
        }else if("/controller/getUsers".equals(path)){
          getUsers(request,response);
        }else if("/controller/updateUser".equals(path)){
            updateUser(request,response);
        }else if("/controller/changePwd".equals(path)){
            changePwd(request,response);
        }else if("/controller/addUser".equals(path)){
            addUser(request,response);
        }else if("/controller/getUserList".equals(path)){
            getUserList(request,response);
        }else if("/controller/deleteUsers".equals(path)){
            deleteUsers(request,response);
        }else if("/controller/getUserById".equals(path)){
            getUserById(request,response);
        }else if("/controller/updateUser2".equals(path)){
            updateUser2(request,response);
        }else if("/controller/resetPwd".equals(path)){
            resetPwd(request,response);
        }else if("/controller/welcome".equals(path)){
            getDatas(request,response);
        }
  }
    private void getDatas(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        System.out.println("进入首页获取数据getDatas...");
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        Map<String,Object> map = userService.getDatas();
        request.setAttribute("activities",map.get("activities"));
        request.setAttribute("clues",map.get("clues"));
        request.setAttribute("trans",map.get("trans"));
        request.setAttribute("owners",map.get("owners"));
        request.setAttribute("volumes",map.get("volumes"));
        request.getRequestDispatcher("/pages/welcome.jsp").forward(request,response);
    }
    private void resetPwd(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入重置密码resetPwd...");
        String id = request.getParameter("id");
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        boolean flag = userService.resetPwd(id);
        response.getWriter().print(flag);
    }
    private void updateUser2(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入修改用户详情updateUser2...");
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String username = request.getParameter("username");
        String isEnable =request.getParameter("isEnable");
        String isAdmin =request.getParameter("isAdmin");
        String[] roleIds = request.getParameterValues("roleIds");
        String email =request.getParameter("email");
        String remark =request.getParameter("remark");
        User user = new User();
        user.setId(id);
        user.setName(name);
        user.setUsername(username);
        user.setIsEnable(isEnable);
        user.setIsAdmin(isAdmin);
        user.setEmail(email);
        user.setRemark(remark);
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        Map<String,Object> map = userService.updateUser2(user,roleIds);
        JSONUtil.getJSON(response,map);
    }
    private void getUserById(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入查询用户详情getUserById...");
        String id = request.getParameter("id");
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        User user = userService.getUserById(id);
        JSONUtil.getJSON(response,user);
    }
    private void deleteUsers(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入批量删除用户deleteUsers...");
        String[] ids = request.getParameterValues("id");
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        boolean flag = userService.deleteUsers(ids);
        response.getWriter().print(flag);
    }
    private void getUserList(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入获取用户列表getUserList...");
        String name = request.getParameter("name");
        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> param = new HashMap<>();
        param.put("name",name);
        param.put("pageNumber",pageNumber);
        param.put("pageSize",pageSize);
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        PageVO<User> vo = userService.getUserList(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);
    }
    private void addUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入添加用户addUser...");
        String name = request.getParameter("name");
        String username = request.getParameter("username");
        String isEnable =request.getParameter("isEnable");
        String isAdmin =request.getParameter("isAdmin");
        String[] roleIds = request.getParameterValues("roleIds");
        String email =request.getParameter("email");
        String remark =request.getParameter("remark");
        User user = new User();
        user.setId(IdUtil.simpleUUID());
        user.setName(name);
        user.setUsername(username);
        user.setPassword(SecureUtil.md5("123")); //123
        user.setIsEnable(isEnable);
        user.setIsAdmin(isAdmin);
        user.setEmail(email);
        user.setRemark(remark);
        user.setRegistTime(DateUtil.now());
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        Map<String,Object> map = userService.addUser(user,roleIds);
        JSONUtil.getJSON(response,map);
    }
    private void changePwd(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入重置密码changePwd...");
        String oldPwd = SecureUtil.md5(request.getParameter("oldPwd"));
        String password = SecureUtil.md5(request.getParameter("password"));
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("user");
        Map<String,Object> map = new HashMap<>();
        if(!user.getPassword().equals(oldPwd)){
            map.put("success",false);
            map.put("msg","修改失败,旧密码错误");
            JSONUtil.getJSON(response,map);
            //response.getWriter().print("{\"success\":false,\"msg\":\"重置失败,旧密码错误\"}");
        }else{
            user.setPassword(password);
            userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
            boolean flag = userService.changePwd(user);
            if(flag){
                session.setAttribute("user",user);
                map.put("success",true);
                map.put("msg","修改成功");
                JSONUtil.getJSON(response,map);
                //response.getWriter().print("{\"success\":true,\"msg\":\"重置成功\"}");
            }else{
                map.put("success",false);
                map.put("msg","修改失败");
                JSONUtil.getJSON(response,map);
                //response.getWriter().print("{\"success\":false,\"msg\":\"重置失败\"}");
            }
        }
    }
    private void updateUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入修改个人信息adminInfo...");
        String name = request.getParameter("name");
        String email = request.getParameter("email");
        String remark = request.getParameter("remark");
        User user = (User) request.getSession().getAttribute("user");
        user.setName(name);
        user.setEmail(email);
        user.setRemark(remark);
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
        boolean flag = userService.updateUser(user);
        if(flag){
            request.getSession().setAttribute("user",user);
        }
        response.getWriter().print(flag);
    }
    private void getUsers(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入getUsers方法");
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
      List<User> userList = userService.getUsers();
        JSONUtil.getJSON(response,userList);
    }
    private void login(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入login方法");
        userService = (UserService) ServiceFactory.getService(new UserServiceImpl());
      String username = request.getParameter("username");
        String password = SecureUtil.md5(request.getParameter("password"));
        Map<String,Object> map = new HashMap<>();
        try {
            User user = userService.login(username,password);
            request.getSession().setAttribute("user",user);
            map.put("success",true);
            JSONUtil.getJSON(response,map);
        } catch (Exception e) {
            String msg = e.getMessage();
            map.put("success",false);
            map.put("msg",msg);
            JSONUtil.getJSON(response,map);
        }
    }
}

image.gif

package com.crsbg.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.crsbg.entity.PageVO;
import com.crsbg.entity.Permission;
import com.crsbg.entity.Role;
import com.crsbg.service.PermissionService;
import com.crsbg.service.RoleService;
import com.crsbg.service.impl.PermissionServiceImpl;
import com.crsbg.service.impl.RoleServiceImpl;
import com.crsbg.utils.JSONUtil;
import com.crsbg.utils.ServiceFactory;
import javax.servlet.ServletContext;
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 RoleController extends HttpServlet {
  private RoleService roleService = null;
  @Override
  protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String path = request.getServletPath();
      if("/controller/getRoleList".equals(path)){
            getRoleList(request,response);
        }else if("/controller/addRole".equals(path)){
            addRole(request,response);
        }else if("/controller/deleteRoles".equals(path)){
            deleteRoles(request,response);
        }else if("/controller/getPermissionIds".equals(path)){
            getPermissionIds(request,response);
        }else if("/controller/updateRole".equals(path)){
            updateRole(request,response);
        }
  }
    private void updateRole(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入修改角色信息updateRole...");
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String orderNo = request.getParameter("orderNo");
        String[] permissionIds = request.getParameterValues("permissionIds");
        Role role = new Role();
        role.setId(id);
        role.setName(name);
        role.setOrderNo(orderNo);
        roleService = (RoleService) ServiceFactory.getService(new RoleServiceImpl());
        Map<String,Object> map = roleService.updateRole(role,permissionIds);
        JSONUtil.getJSON(response,map);
    }
    private void getPermissionIds(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入查询当前角色权限getPermissionIds...");
        String roleId = request.getParameter("roleId");
        roleService = (RoleService) ServiceFactory.getService(new RoleServiceImpl());
        List<String> permissionIds = roleService.getPermissionIds(roleId);
        Map<String,List<String>> map = new HashMap<>();
        map.put("pids",permissionIds);
        JSONUtil.getJSON(response,map);
    }
    private void deleteRoles(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入批量删除角色deleteRoles...");
        String[] ids = request.getParameterValues("id");
        roleService = (RoleService) ServiceFactory.getService(new RoleServiceImpl());
        boolean flag = roleService.deleteRoles(ids);
        response.getWriter().print(flag);
    }
    private void addRole(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入添加角色addRole...");
        String name = request.getParameter("name");
        String orderNo = request.getParameter("orderNo");
        String[] permissionIds = request.getParameterValues("permissionIds");
        Role role = new Role();
        role.setId(IdUtil.simpleUUID());
        role.setName(name);
        role.setOrderNo(orderNo);
        role.setCreateTime(DateUtil.now());
        roleService = (RoleService) ServiceFactory.getService(new RoleServiceImpl());
        Map<String,Object> map = roleService.addRole(role,permissionIds);
        if((boolean)map.get("success")){
            updateApplication(request,response);
        }
        JSONUtil.getJSON(response,map);
    }
    private void getRoleList(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入获取角色列表getPermissionList...");
        String name = request.getParameter("name");
        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> param = new HashMap<>();
        param.put("name",name);
        param.put("pageNumber",pageNumber);
        param.put("pageSize",pageSize);
        roleService = (RoleService) ServiceFactory.getService(new RoleServiceImpl());
        PageVO<Role> vo = roleService.getRoleList(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);
    }
    //更新application中的缓存
    private void updateApplication(HttpServletRequest request, HttpServletResponse response){
        ServletContext application = request.getServletContext();
        RoleService roleService = (RoleService) ServiceFactory.getService(new RoleServiceImpl());
        List<Role> roleList = roleService.getRole();
        application.setAttribute("roles",roleList);
    }
}

image.gif

package com.crsbg.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.SecureUtil;
import com.crsbg.entity.PageVO;
import com.crsbg.entity.Permission;
import com.crsbg.entity.User;
import com.crsbg.service.PermissionService;
import com.crsbg.service.UserService;
import com.crsbg.service.impl.PermissionServiceImpl;
import com.crsbg.service.impl.UserServiceImpl;
import com.crsbg.utils.JSONUtil;
import com.crsbg.utils.ServiceFactory;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 权限管理控制器
 */
public class PermissionController extends HttpServlet {
  private PermissionService permissionService = null;
  @Override
  protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String path = request.getServletPath();
      if("/controller/getPermissionList".equals(path)){
            getPermissionList(request,response);
        }else if("/controller/addPermission".equals(path)){
            addPermission(request,response);
        }else if("/controller/updatePermission".equals(path)){
            updatePermission(request,response);
        }else if("/controller/deletePermissions".equals(path)){
            deletePermissions(request,response);
        }
  }
    private void deletePermissions(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入批量删除权限deletePermissions...");
        String[] ids = request.getParameterValues("id");
        permissionService = (PermissionService) ServiceFactory.getService(new PermissionServiceImpl());
        boolean flag = permissionService.deletePermissions(ids);
        response.getWriter().print(flag);
    }
    private void updatePermission(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入修改权限updatePermission...");
        String id = request.getParameter("id");
        String title = request.getParameter("title");
        String url = request.getParameter("url");
        String orderNo = request.getParameter("orderNo");
        Permission permission = new Permission();
        permission.setId(id);
        permission.setTitle(title);
        permission.setUrl(url);
        permission.setOrderNo(orderNo);
        permissionService = (PermissionService) ServiceFactory.getService(new PermissionServiceImpl());
        boolean flag = permissionService.updatePermission(permission);
        response.getWriter().print(flag);
    }
    private void addPermission(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入添加权限addPermission...");
        String title = request.getParameter("title");
        String url = request.getParameter("url");
        String orderNo = request.getParameter("orderNo");
        Permission permission = new Permission();
        permission.setId(IdUtil.simpleUUID());
        permission.setTitle(title);
        permission.setUrl(url);
        permission.setOrderNo(orderNo);
        permission.setCreateTime(DateUtil.now());
        permissionService = (PermissionService) ServiceFactory.getService(new PermissionServiceImpl());
        Map<String,Object> map = permissionService.addPermission(permission);
        if((boolean)map.get("success")){
            updateApplication(request,response);
        }
        JSONUtil.getJSON(response,map);
    }
    private void getPermissionList(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("进入获取权限列表getPermissionList...");
        String title = request.getParameter("title");
        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> param = new HashMap<>();
        param.put("title",title);
        param.put("pageNumber",pageNumber);
        param.put("pageSize",pageSize);
        permissionService = (PermissionService) ServiceFactory.getService(new PermissionServiceImpl());
        PageVO<Permission> vo = permissionService.getPermissionList(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);
    }
    //更新application中的缓存
    private void updateApplication(HttpServletRequest request, HttpServletResponse response){
        ServletContext application = request.getServletContext();
      PermissionService permissionService = (PermissionService) ServiceFactory.getService(new PermissionServiceImpl());
        List<Permission> permissionList = permissionService.getPermission();
        application.setAttribute("permissions",permissionList);
    }
}

image.gif


相关文章
|
11月前
|
人工智能
AI大会回顾 | 阿里云上的Salesforce AI CRM正式发布!
AI大会回顾,阿里云上的Salesforce AI CRM正式发布!将AI无缝融入业务流程,成为企业解锁增长的核心工具。
|
机器学习/深度学习 人工智能 大数据
销售易CRM:技术革新助力客户关系管理智能化
销售易CRM是国内领先的客户关系管理系统,通过人工智能、大数据、云计算和低代码开发等技术,助力企业实现智能化转型。其AI与机器学习功能可深度挖掘客户数据价值,提供精准商机洞察;大数据分析赋能企业决策智能化,提升预测能力和运营效率;基于云计算的移动办公功能打破协作边界,提高团队效率;低代码平台支持快速定制化开发,灵活响应业务需求。销售易CRM以技术创新和服务升级,推动企业在数字化浪潮中取得竞争优势,实现可持续发展。
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
326 10
|
机器学习/深度学习 人工智能 物联网
销售易CRM:技术领航,开启智能客户关系管理新时代
销售易CRM是国内CRM市场的领导者,通过技术创新为企业提供智能化客户关系管理解决方案。其深度集成人工智能与机器学习,精准挖掘客户数据价值;依托大数据分析,助力企业决策智能化;基于云计算与移动技术,实现高效无边界协作;借助低代码平台,快速响应业务需求变化;通过开放API生态整合,构建一体化应用体系。销售易CRM持续探索区块链、物联网等新技术,推动行业智能化发展,赋能企业高效增长。
|
搜索推荐
企业CRM新选择——轻巧强大的阿里云上的Salesforce CN 企业版正式发布!
企业CRM新选择——轻巧强大的阿里云上的Salesforce CN 企业版正式发布!
|
人工智能 大数据 云计算
Salesforce联手阿里云,销售易联手腾讯,还在靠”卖血求生“的CRM独立玩家何去何从?
销售易与腾讯战略合作升级,李强任董事长,史彦泽继续担任CEO。此次合作将推动行业竞争进入新维度,中国企服市场迎来深层变革。通过腾讯的技术支持,销售易将为客户提供更优质的服务和智能化体验。与此同时,依赖融资扩张的某F CRM厂商需思考如何将资本转化为实际竞争力。随着资本市场态度转变,生态协同成为关键,中国CRM市场正经历历史性分化,企业需重新审视战略定位,以技术融合创造增量价值,满足客户业务增长需求。
|
人工智能 搜索推荐 数据挖掘
2024国产CRM测评:探讨企业客户关系管理新利器
近年来,国产CRM系统迅速崛起,成为企业客户关系管理的重要工具。中国CRM市场快速增长,得益于企业对提高客户满意度、增强客户粘性和优化销售流程的需求。本土CRM厂商如销售易、神州云动、白码CRM等,凭借对本土市场的深刻理解、强大的定制开发能力和智能化功能,逐渐崭露头角,推动了国产CRM系统的广泛应用和发展。
|
开发框架 人工智能 数据挖掘
2024年国产CRM软件排行榜:客户关系管理工具
CRM软件是企业数字化战略的核心,通过全渠道互动、客户细分和销售赋能提升竞争力。2024年,国产CRM软件凭借本土化优势、成本效益、政策支持和市场机会展现出强劲竞争力。销售易、白码CRM、悟空CRM、用友CRM、金蝶CRM、珍客CRM、八百客CRM和销帮帮CRM等名列前茅。选择CRM时需考虑本土化服务、技术兼容性和长期合作潜力等因素。随着国产CRM软件的崛起,企业应根据需求选择最适合的解决方案,实现客户关系管理和业务增长的优化。
|
搜索推荐
实现CRM与ERP系统无缝集成,优化客户关系管理
在当今竞争激烈的市场环境中,企业要想保持领先地位,必须高效地管理客户关系并优化内部资源。CRM(客户关系管理)系统与ERP(企业资源规划)系统的无缝集成,为企业提供了一种强大的工具,以实现这一目标
311 2
|
人工智能 安全 云计算
Salesforce核心CRM产品问题之阿里云上的Salesforce对中国云计算市场的影响如何解决
Salesforce核心CRM产品问题之阿里云上的Salesforce对中国云计算市场的影响如何解决