基于JAVA+Vue+SpringBoot+MySQL的CRM客户管理系统,包含了客户管理、客户分析、商品管理、客户跟踪、客户消费模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,CRM客户管理系统基于角色的访问控制,给客户管理员、工作人员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。
CRM客户管理系统的系统设计是一个基于系统分析结果的过程,使用科学的系统理念和方法来设计一个新系统,该系统可以最大限度地实现所需的目的。系统设计主要是功能设计,创建理想系统并制定设计计划;将系统划分为若干子系统;子系统和整个系统的详细设计和评估;演示系统方案并预测性能效果,本系统主要从五个功能模块分析。
首先是客户管理模块,主要实现用户的增删改查,对客户信息进行快速、准确的记录和查询操作,标记客户信息并对它进行分类,每个客户都具有唯一的编号,姓名,联系方式等基本信息,同时还有客户类型,客户状态等附加信息,能够导出客户信息。
第二是客户跟踪模块,该模块主要就是对潜在客户进行跟踪,记录跟踪内容和对跟踪信息增删改查,每个客户的跟踪记录包括跟踪日期、跟踪人、跟进内容等信息。
第三是客户消费模块,记录客户的消费情况,对客户的消费记录进行增删改查,同时也能导出客户消费记录信息到本地。
第四是商品管理模块,包括商品信息的增删改查、商品分类、商品库存管理等功能。
第五是系统基础模块,该模块包含若干子功能,但是该功能模块只有管理员角色可以操作。
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询客户")
public Result<IPage<Customer>> getByPage(@ModelAttribute Customer customer ,@ModelAttribute PageVo page){
QueryWrapper<Customer> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(customer.getType())) {
qw.eq("type",customer.getType());
}
if(!ZwzNullUtils.isNull(customer.getTitle())) {
qw.like("title",customer.getTitle());
}
IPage<Customer> data = iCustomerService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<Customer>>().setData(data);
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增客户跟踪")
public Result<CustomerItem> insert(CustomerItem customerItem){
Customer customer = iCustomerService.getById(customerItem.getCustomerId());
if(customer == null) {
return ResultUtil.error("客户不存在");
}
User currUser = securityUtil.getCurrUser();
customerItem.setCustomerName(customer.getTitle());
customerItem.setDate(DateUtil.now());
customerItem.setUserId(currUser.getId());
customerItem.setUserName(currUser.getNickname());
iCustomerItemService.saveOrUpdate(customerItem);
return new ResultUtil<CustomerItem>().setData(customerItem);
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增客户消费")
public Result<CustomerOrder> insert(CustomerOrder customerOrder){
Customer customer = iCustomerService.getById(customerOrder.getUserId());
if(customer == null) {
return ResultUtil.error("客户不存在");
}
customerOrder.setUserName(customer.getTitle());
Commodity commodity = iCommodityService.getById(customerOrder.getCommodityId());
if(commodity == null) {
return ResultUtil.error("商品不存在");
}
if(commodity.getNumber() == null) {
commodity.setNumber(BigDecimal.ZERO);
}
if(customerOrder.getNumber().compareTo(commodity.getNumber()) > 0) {
return ResultUtil.error("库存不足");
}
commodity.setNumber(commodity.getNumber().subtract(customerOrder.getNumber()));
iCommodityService.saveOrUpdate(commodity);
customerOrder.setTitle(commodity.getTitle());
customerOrder.setType(commodity.getType());
customerOrder.setPrice(commodity.getPrice());
customerOrder.setImage(commodity.getImage());
customerOrder.setUserId(customer.getId());
customerOrder.setUserName(customer.getTitle());
customerOrder.setDate(DateUtil.now());
iCustomerOrderService.saveOrUpdate(customerOrder);
return new ResultUtil<CustomerOrder>().setData(customerOrder);
}
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询商品")
public Result<IPage<Commodity>> getByPage(@ModelAttribute Commodity commodity ,@ModelAttribute PageVo page){
QueryWrapper<Commodity> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(commodity.getTitle())) {
qw.like("title",commodity.getTitle());
}
if(!ZwzNullUtils.isNull(commodity.getType())) {
qw.eq("type",commodity.getType());
}
IPage<Commodity> data = iCommodityService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<Commodity>>().setData(data);
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增商品购买")
public Result<CommodityBuy> insert(CommodityBuy commodityBuy){
Commodity commodity = iCommodityService.getById(commodityBuy.getCommodityId());
if(commodity == null) {
return ResultUtil.error("商品不存在");
}
User currUser = securityUtil.getCurrUser();
commodityBuy.setTitle(commodity.getTitle());
commodityBuy.setType(commodity.getType());
commodityBuy.setPrice(commodity.getPrice());
commodityBuy.setImage(commodity.getImage());
commodityBuy.setUserId(currUser.getId());
commodityBuy.setUserName(currUser.getNickname());
commodityBuy.setDate(DateUtil.now());
iCommodityBuyService.saveOrUpdate(commodityBuy);
if(commodity.getNumber() == null) {
commodity.setNumber(BigDecimal.ZERO);
}
commodity.setNumber(commodity.getNumber().add(commodityBuy.getNumber()));
iCommodityService.saveOrUpdate(commodity);
return new ResultUtil<CommodityBuy>().setData(commodityBuy);
}
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!