一、摘要
1.1 項目介紹
基于JAVA+Vue+SpringBoot+MySQL的CRM客戶管理系統(tǒng),包含了客戶管理、客戶分析、商品管理、客戶跟蹤、客戶消費模塊,還包含系統(tǒng)自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,CRM客戶管理系統(tǒng)基于角色的訪問控制,給客戶管理員、工作人員使用,可將權(quán)限精確到按鈕級別,您可以自定義角色并分配權(quán)限,系統(tǒng)適合設(shè)計精確的權(quán)限約束需求。
1.2 項目錄屏
二、功能模塊
CRM客戶管理系統(tǒng)的系統(tǒng)設(shè)計是一個基于系統(tǒng)分析結(jié)果的過程,使用科學(xué)的系統(tǒng)理念和方法來設(shè)計一個新系統(tǒng),該系統(tǒng)可以最大限度地實現(xiàn)所需的目的。系統(tǒng)設(shè)計主要是功能設(shè)計,創(chuàng)建理想系統(tǒng)并制定設(shè)計計劃;將系統(tǒng)劃分為若干子系統(tǒng);子系統(tǒng)和整個系統(tǒng)的詳細(xì)設(shè)計和評估;演示系統(tǒng)方案并預(yù)測性能效果,本系統(tǒng)主要從五個功能模塊分析。
-
首先是客戶管理模塊,主要實現(xiàn)用戶的增刪改查,對客戶信息進(jìn)行快速、準(zhǔn)確的記錄和查詢操作,標(biāo)記客戶信息并對它進(jìn)行分類,每個客戶都具有唯一的編號,姓名,聯(lián)系方式等基本信息,同時還有客戶類型,客戶狀態(tài)等附加信息,能夠?qū)С隹蛻粜畔ⅰ?/p>
-
第二是客戶跟蹤模塊,該模塊主要就是對潛在客戶進(jìn)行跟蹤,記錄跟蹤內(nèi)容和對跟蹤信息增刪改查,每個客戶的跟蹤記錄包括跟蹤日期、跟蹤人、跟進(jìn)內(nèi)容等信息。
-
第三是客戶消費模塊,記錄客戶的消費情況,對客戶的消費記錄進(jìn)行增刪改查,同時也能導(dǎo)出客戶消費記錄信息到本地。
-
第四是商品管理模塊,包括商品信息的增刪改查、商品分類、商品庫存管理等功能。
-
第五是系統(tǒng)基礎(chǔ)模塊,該模塊包含若干子功能,但是該功能模塊只有管理員角色可以操作。
三、系統(tǒng)設(shè)計
3.1 用例設(shè)計
3.2 E-R 圖設(shè)計
3.3 數(shù)據(jù)庫設(shè)計
3.3.1 客戶表
3.3.2 商品表
3.3.3 客戶跟蹤表
3.3.4 客戶消費表
3.3.5 系統(tǒng)角色表
四、系統(tǒng)展示
五、核心代碼
5.1 查詢客戶
@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);
}
5.2 新增客戶跟蹤記錄
@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);
}
5.3 新增客戶消費訂單
@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);
}
5.4 查詢商品
@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);
}
5.5 商品購買
@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);
}
六、免責(zé)說明
- 本項目僅供個人學(xué)習(xí)使用,商用授權(quán)請聯(lián)系博主,否則后果自負(fù)。
- 博主擁有本軟件構(gòu)建后的應(yīng)用系統(tǒng)全部內(nèi)容所有權(quán)及獨立的知識產(chǎn)權(quán),擁有最終解釋權(quán)。
- 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復(fù),相關(guān)意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統(tǒng)代碼或使用本系統(tǒng)的用戶,必須同意以下內(nèi)容,否則請勿下載!文章來源:http://www.zghlxwxcb.cn/news/detail-788292.html
- 出于自愿而使用/開發(fā)本軟件,了解使用本軟件的風(fēng)險,且同意自己承擔(dān)使用本軟件的風(fēng)險。
- 利用本軟件構(gòu)建的網(wǎng)站的任何信息內(nèi)容以及導(dǎo)致的任何版權(quán)糾紛和法律爭議及后果和博主無關(guān),博主對此不承擔(dān)任何責(zé)任。
- 在任何情況下,對于因使用或無法使用本軟件而導(dǎo)致的任何難以合理預(yù)估的損失(包括但不僅限于商業(yè)利潤損失、業(yè)務(wù)中斷與業(yè)務(wù)信息丟失),博主概不承擔(dān)任何責(zé)任。
- 必須了解使用本軟件的風(fēng)險,博主不承諾提供一對一的技術(shù)支持、使用擔(dān)保,也不承擔(dān)任何因本軟件而產(chǎn)生的難以預(yù)料的問題的相關(guān)責(zé)任。
文章來源地址http://www.zghlxwxcb.cn/news/detail-788292.html
到了這里,關(guān)于【開源】基于Vue+SpringBoot的CRM客戶管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!