【開源】基于Vue+SpringBoot的河南軟件客服系統

在這里插入圖片描述
文末獲取源碼,項目編號: S 067 。 \color{red}{文末獲取源碼,項目編號:S067。} 文末獲取源碼,項目編號:S067


目錄

  • 一、摘要
    • 1.1 項目介紹
    • 1.2 項目錄屏
  • 二、功能模塊
    • 2.1 系統管理人員
    • 2.2 業務操作人員
  • 三、系統展示
  • 四、核心代碼
    • 4.1 查詢客戶
    • 4.2 新增客戶跟進情況
    • 4.3 查詢客戶歷史
    • 4.4 新增服務派單
    • 4.5 新增客戶服務費
  • 五、免責說明


一、摘要

1.1 項目介紹

基于JAVA+Vue+SpringBoot+MySQL的河南軟件客服系統,包含了客戶信息維護模塊、客戶跟進記錄模塊、客戶服務費模塊、售后服務單模塊、客服統計分析模塊,還包含系統自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數據字典管理、文件管理、圖表展示等基礎模塊,河南軟件客服系統基于角色的訪問控制,給客服主管、普通客服使用,可將權限精確到按鈕級別,您可以自定義角色并分配權限,系統適合設計精確的權限約束需求。

1.2 項目錄屏

源碼下載


二、功能模塊

2.1 系統管理人員

包括系統維護,基礎資料維護、統計分析/報表導出、系統登錄、企業資源導入等功能;主要體現在系統的運行保障上面;數據統計導出相關報表,可讓領導即時了解客戶跟進情況,提取有用的信息轉化成商機(銷售軟件、升級、加站等)﹐直接或者間接提升公司效益。

  1. 系統維護:用戶管理(系統管理員、客服入員、資源分派員、技術服務等;包含基本信息、所屬部門、角色、聯系方式等)﹐數據字典維護,系統日志審計等。
  2. 基礎資料維護:客戶資料維護(包含企業名稱、詳細地址、企業社會信用碼、注冊日期、區域、法人、法人電話、財務、財務電話、出納、出納電話、所屬行業、運營狀態、跟進狀態等))、部門、角色等。客戶資料可手工錄入亦可使用 Excel 根據制定的模板批量導入(通過一些渠道獲取的大批量企業信息);
  3. 統計分析/報表導出:生成跟進匯總統計報表,可按日期時間段、客服人員、跟進進度等進行統計,可統計服務費收取情況、服務費到期情況、技術服務派單情況、商機轉化情況,可導出Excel、PDF文件留檔;
  4. 系統登錄:系統管理員和業務員登錄認證功能:根據登錄用戶的角色不同,所擁有的權限不同,顯示不同的頁面內容。
  5. 客戶資源分派維護:客戶資料可依據多種條件進行篩選(基本資料各個字段皆可作為條件任意組合進行正向或反向篩選,還需要根據分派情況正向或反向篩選),然后給客服人員進行分派;跟進不理想的資源可收回重新分派。
  6. 服務費審核:生成服務費流水賬表,由財務人員進行對賬審核;審核過之后才能計入對應客服的業績。

2.2 業務操作人員

主要包括客戶信息維護、服務費收取、客戶跟進維護、售后服務、服務派單、客戶評價等;成交客戶反饋問題后,由客服人員錄入系統,客服經理收到信息提示,然后進行服務派單,完成后由技術人員錄入解決情況匯總到該客戶檔案中;資源池中客戶被分派給跟進人進行電話跟進,根據情況轉化成商機。

  1. 客戶信息維護:客服人員收集到一些客戶信息錄入系統,有些信息可能有誤或者企業信息變更,在跟進過程中可以進行修改調整,修改過程歷史記錄保留,可進行回查復核。添加企業聯系人和電話,定期計算聯系電話任職于幾個企業,可查詢相關聯的企業信息。
  2. 客戶跟進維護:客服人員定期主動電話聯系客戶,溝通信息化需求或者使用過程中的問題,記錄跟進情況和維護跟進進度(跟進進度:啟新老客戶、已用金蝶、已用用友、已用其他軟件、意向客戶、長期跟進、暫無需求、其他)。歷史記錄保留可查,每次跟進人、跟進情況、跟進時間等。
  3. 服務費收取:成交客戶可查看成交記錄和服務費收取記錄,以及服務費到期時間,服務費即將到期的客戶要有消息提醒和一鍵查詢功能,服務費逾期客戶紅色標注,收取服務費后錄入系統,提示后臺進行服務費審核對賬。
  4. 售后服務:客服接到成交客戶的咨詢或者問題反饋后可快速查詢定位到客戶,調出客戶檔案和跟進歷史記錄,將客戶多描述情況匯總錄入系統,提交給客服經理,客戶經理收到問題反饋,初步評估之后分派給技術服務人員跟進解決(亦可客服經理親自解決),技術人員解決后將解決情況錄入系統,該問題關閉。
  5. 回訪評價:客戶的問題解決后,由客服人員進行回訪,根據客戶反饋的情況對技術人員的服務態度、技術能力、回應速度等進行客觀評價(很滿意、滿意、一般、有待改善)。

三、系統展示

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述


四、核心代碼

4.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.getCompanyName())) {qw.like("company_name",customer.getCompanyName());}if(!ZwzNullUtils.isNull(customer.getTrade())) {qw.like("trade",customer.getTrade());}if(!ZwzNullUtils.isNull(customer.getStatus2())) {qw.eq("status2",customer.getStatus2());}if(!ZwzNullUtils.isNull(customer.getMobile1())) {qw.and(wrapper -> wrapper.eq("mobile1", customer.getMobile1()).or().eq("mobile1",customer.getMobile1()).or().eq("mobile3",customer.getMobile1()));}IPage<Customer> data = iCustomerService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Customer>>().setData(data);
}

4.2 新增客戶跟進情況

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增單條客戶跟進")
public Result<Object> addOne(@RequestParam String id,@RequestParam String level,@RequestParam String content){Customer customer = iCustomerService.getById(id);if(customer == null) {return ResultUtil.error("客戶不存在");}CustomerItem customerItem = new CustomerItem();customerItem.setCustomerId(customer.getId());customerItem.setCustomerName(customer.getCompanyName());customerItem.setLevel(level);customerItem.setContent(content);User currUser = securityUtil.getCurrUser();customerItem.setUserId(currUser.getId());customerItem.setUserName(currUser.getNickname());customerItem.setTime(DateUtil.now());iCustomerItemService.saveOrUpdate(customerItem);return ResultUtil.success();
}

4.3 查詢客戶歷史

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢客戶歷史")
public Result<IPage<CustomerHistory>> getByPage(@ModelAttribute CustomerHistory customerHistory ,@ModelAttribute PageVo page){QueryWrapper<CustomerHistory> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(customerHistory.getCompanyName())) {qw.like("company_name",customerHistory.getCompanyName());}IPage<CustomerHistory> data = iCustomerHistoryService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<CustomerHistory>>().setData(data);
}

4.4 新增服務派單

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增單條服務派單")
public Result<Object> addOne(@RequestParam String id,@RequestParam String content){Customer customer = iCustomerService.getById(id);if(customer == null) {return ResultUtil.error("客戶不存在");}ServiceOrder serviceOrder = new ServiceOrder();serviceOrder.setCustomerId(customer.getId());serviceOrder.setCustomerName(customer.getCompanyName());serviceOrder.setContent(content);User currUser = securityUtil.getCurrUser();serviceOrder.setStatus("未派單");serviceOrder.setUserId(currUser.getId());serviceOrder.setUserName(currUser.getNickname());serviceOrder.setWorkId("");serviceOrder.setWorkName("");serviceOrder.setReplyContent("");serviceOrder.setAppraiseLevel("");serviceOrder.setAppraiseContent("");iServiceOrderService.saveOrUpdate(serviceOrder);return ResultUtil.success();
}

4.5 新增客戶服務費

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增客戶服務費")
public Result<Object> addOne(@RequestParam String id,@RequestParam String startDate,@RequestParam String endDate,@RequestParam BigDecimal price){Customer customer = iCustomerService.getById(id);if(customer == null) {return ResultUtil.error("客戶不存在");}User currUser = securityUtil.getCurrUser();ServicePrice servicePrice = new ServicePrice();servicePrice.setCustomerId(customer.getId());servicePrice.setCustomerName(customer.getCompanyName());servicePrice.setStartDate(startDate);servicePrice.setEndDate(endDate);servicePrice.setPrice(price);servicePrice.setStatus("未審核");servicePrice.setUserId(currUser.getId());servicePrice.setUserName(currUser.getNickname());servicePrice.setTime(DateUtil.now());iServicePriceService.saveOrUpdate(servicePrice);return ResultUtil.success();
}

五、免責說明

  • 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
  • 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
  • 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。

下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!

  1. 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
  2. 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
  3. 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
  4. 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209627.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搞懂內存函數

引言 本文介紹memcpy的使用和模擬實現、memmove的使用和模擬實現、memcmp使用、memset使用 ? 豬巴戒&#xff1a;個人主頁? 所屬專欄&#xff1a;《C語言進階》 &#x1f388;跟著豬巴戒&#xff0c;一起學習C語言&#x1f388; 目錄 引言 memcpy memcpy的使用 memcpy的…

JS加密/解密之HOOK實戰2

上一篇文章介紹了HOOK常規的應用場景&#xff0c;這篇我們講一下HOOK其他原生函數。又是一個新的其他思路 很多時候&#xff0c;當我們想要某些網站的請求參數的時候&#xff0c;因為某些加密導致了獲取起來很復雜。 這時候hook就十分方便了 源代碼 var _JSON_Parse JSON.…

scp 指令詳細介紹

目錄 1. 基本語法 2. 例子 從本地到遠程 從遠程到本地 從遠程到遠程 使用端口和指定私鑰 遞歸復制目錄 3. 注意事項 如何拷貝文件的軟鏈接 SCP&#xff08;Secure Copy Protocol&#xff09;是一種用于在計算機之間安全地傳輸文件的協議。它通過加密的方式在網絡上安全…

Vue:Vue的開發者工具不顯示Vue實例中的data數據

一、情況描述 代碼&#xff1a; 頁面&#xff1a; 可以看到&#xff0c;input獲取到了data數據&#xff0c;但是&#xff0c;vue-devtool沒有獲取到data數據 二、解決辦法 解決辦法1&#xff1a; data.name的值不能全是中文&#xff0c;比如改成aa尚硅谷 解決辦法2&…

C語言 編程題

C語言學習&#xff01; 1.小明上課需要走n階臺階&#xff0c;他每次可以選擇走一階或者走兩階&#xff0c;他一共有多少種走法&#xff1f; 輸入描述&#xff1a;輸入包含一個整數n&#xff08;1 ≤ n ≤30&#xff09; 輸出描述&#xff1a;輸出一個整數&#xff0c;即小明可…

LeetCode 1457. 二叉樹中的偽回文路徑||位運算 DFS

1457. 二叉樹中的偽回文路徑 給你一棵二叉樹&#xff0c;每個節點的值為 1 到 9 。我們稱二叉樹中的一條路徑是 「偽回文」的&#xff0c;當它滿足&#xff1a;路徑經過的所有節點值的排列中&#xff0c;存在一個回文序列。 請你返回從根到葉子節點的所有路徑中 偽回文 路徑的…

Golang優雅實現按比例切分流量

我們在進行灰度發布時&#xff0c;往往需要轉發一部分流量到新上線的服務上&#xff0c;進行小規模的驗證&#xff0c;隨著功能的不斷完善&#xff0c;我們也會逐漸增加轉發的流量&#xff0c;這就需要按比例去切分流量&#xff0c;那么如何實現流量切分呢&#xff1f; 我們很容…

力扣(LeetCode)-1. 兩數之和

給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案。但是&#xff0c;數組中同一個元素在答案里不能重復出現。 你可以按任意順序返回…

【交流】PHP生成唯一邀請碼

目錄 前言&#xff1a; 1.隨機生成&#xff0c;核對user表是否已存在 代碼&#xff1a; 解析&#xff1a; 缺點&#xff1a; 2.建表建庫&#xff0c;每次從表中隨機抽取一條&#xff0c;用完時擴充 表結構 表視圖 代碼 解析 缺點 結論&#xff1a; 前言&#xff1a; …

LinuxBasicsForHackers筆記 -- 壓縮和歸檔

壓縮分為有損或無損。有損壓縮對于減小文件大小非常有效&#xff0c;但會丟失信息的完整性。換句話說&#xff0c;壓縮后的文件與原始文件并不完全相同。 這種類型的壓縮非常適合圖形、視頻和音頻文件&#xff0c;文件中的微小差異幾乎不會被注意到。 本章重點介紹這種無損壓縮…

解讀Stable Video Diffusion:詳細解讀視頻生成任務中的數據清理技術

Diffusion Models視頻生成-博客匯總 前言:Stable Video Diffusion已經開源一周多了,技術報告《Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets》對數據清洗的部分描述非常詳細,雖然沒有開源源代碼,但是博主正在嘗試復現其中的操作。這篇…

醫學影像PACS信息化數字平臺源碼

PACS系統對醫院影像科意義重大&#xff0c;將業務量巨大的影像檢驗流程依托于信息化技術&#xff0c;對于進行信息化建設的醫院而言&#xff0c;是十分必要的。 PACS系統源碼&#xff0c;集成三維影像后處理功能&#xff0c;包括三維多平面重建、三維容積重建、三維表面重建、三…

包裝類, 泛型---java

目錄 一. 包裝類 1.1 基本數據類型和對應的包裝類 1.2 裝箱和拆箱 二. 泛型 2.1什么是泛型 2.2泛型的引入 2.3 泛型類語法 2.4 泛型類的使用 2.5 裸類型(Raw Type)(了解) 2.6 泛型是如何編譯的 2.7 泛型的上界 2.8 泛型方法 一. 包裝類 在 Java 中&#xff0c;由于基本…

uniapp實戰 —— 豎排多級分類展示

效果預覽 完整范例代碼 頁面 src\pages\category\category.vue <script setup lang"ts"> import { getCategoryTopAPI } from /apis/category import type { CategoryTopItem } from /types/category import { onLoad } from dcloudio/uni-app import { compu…

vue指令

v-text 更新元素的 textContent。如果要更新部分的 textContent&#xff0c;需要使用 {{ Mustache }} 插值。 <span v-text"msg"></span> <!-- 和下面的一樣 --> <span>{{msg}}</span>v-html 更新元素的 innerHTML。注意&#xff1a;內…

基于高通MSM8953平臺android9.0的GPIO驅動開發

2.1、注冊設備&#xff1a; 2.1.1、添加編譯選項&#xff1a; 1&#xff09;、修改kernel/msm-4.9/drivers/leds下Makefile文件&#xff1a; obj-$(CONFIG_LED_GPIO) led_gpio.o 2&#xff09;、修改kernel/msm-4.9/drivers/leds下Kconfig文件&#xff1a; config LED_GPIO…

Java實現歸并排序算法

歸并排序算法 &#xff08;1&#xff09;基本思想&#xff1a;歸并&#xff08;Merge&#xff09;排序法是將兩個&#xff08;或兩個以上&#xff09;有序表合并成一個新的有序表&#xff0c;即把待排序序列分為若干個子序列&#xff0c;每個子序列是有序的。然后再把有序子序…

蛋白質序列FeatureDict轉化為TensorDict

主要轉化語句為 tensor_dict {k: tf.constant(v) for k, v in np_example.items() if k in features_metadata}。 增加了特征名稱的選擇&#xff0c;不同特征維度&#xff0c;特征數的判斷等。 from typing import Dict, Tuple, Sequence, Union, Mapping, Optional #import …

postgresql_conf中常用配置項

在 PostgreSQL 的 postgresql.conf 配置文件中&#xff0c;有許多常用的配置項&#xff0c;這些配置項可以根據特定需求和性能優化進行調整。以下是一些常用的配置項及其作用&#xff1a; 1. shared_buffers 用于設置 PostgreSQL 實例使用的共享內存緩沖區大小。增加此值可以…

游戲被攻擊該怎么辦?游戲盾該如何使用,游戲盾如何防護攻擊

隨著Internet互聯網絡帶寬的增加和多種DDOS黑客工具的不斷發布&#xff0c;DDOS拒絕服務攻擊的實施越來越容易&#xff0c;DDOS攻擊事件正在成上升趨勢。出于商業競爭、打擊報復和網絡敲詐等多種因素&#xff0c;導致很多商業站點、游戲服務器、聊天網絡等網絡服務商長期以來一…