基于JSP+Mybatis实现的CRM客户关系管理系统
作者主页:
简介:Java领域优质创作者、CSDN博客专家 Java项目、简历模板、学习资料、面试题库、技术互助
文末获取源码
项目编号:BS-XX-111
该项目主要基于JAVAWEB技术,开发了一套CRM客户关系管理系统,实现了用户登录,权限控制,数据统计,以及市场活动、线索、客户、联系人、合同的CRUD,使用Proxy实现Service层的动态代理,实现DAO层事务控制。
运行环境
jdk8+tomcat8+mysql5.7+IntelliJ IDEA
项目技术(必填)
java servlet+mybatis+layui+jquery+echarts
下面展示一下具体的功能界面:

系统主页面

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

销售线索管理

客户管理

联系人管理

交易管理

个人信息管理

系统设置—用户管理

系统设置—角色管理

系统设置—权限管理

部分核心代码:
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;
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);
}
}
}
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;
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);
}
}
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;
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);
}
}