项目编号: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;
@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);
}
}
}
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);
}
}
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);
}
}