当前位置:   article > 正文

基于springboot的CRM客户关系管理系统源码和论文_基于springboot和mybatis的crm客户管理系统开题报告文献

基于springboot和mybatis的crm客户管理系统开题报告文献

随着市场经济的深入发展,市场竞争、行业竞争越演越烈产品和服务的差

异越来越小。以生产为中心、以销售产品为目的的市场战略逐渐被以客户为中心、

以服务为目的的市场战略所取代。谁能掌握客户的需求趋势、加强与客户的关系、

有效发掘和管理客户资源,谁就能获得市场竞争优势,在激烈的竞争中立于不败

之地。企业、供应商、分销商及客户连成一片的价值链成为企业之间竞争的核心。

为房地产企业开发一套客户关系管理系统(Customer Relationship Management:

CRM)成为必然趋势。

该系统所面向的对象为企业的管理和销售人员.整个系统从符合操作 简便、界面友好、灵活、使用安全的要求出发,采用 IDEA 作为开发工具,MYSQL  作为后台数据库平台,基于 B/S 的三层模式的客户关系管理系统。旨在实现利用数据库来存储、管理大量数据信息.设计并完成对其各种 数据的分类、查询和统计,尽可能实现友好的操作界面。

客户关系管理系统将大大提高客户满意度和忠诚度,工作效率, 发掘客户价值,从而提高企业盈利.该系统将给房地产企业整个的信息化建设带来 深远而有意义的影响。

关键词:CRM;客户关系管理;IDEA;MYSQL数据库

【677】基于springboot的CRM客户关系管理系统源码和论文

(1)管理员表t_user

序号

列名

数据类型

长度

不是空

1

id

int

11

True

2

user_name

varchar

20

False

3

user_pwd

varchar

100

False

4

true_name

varchar

20

False

5

email

varchar

30

False

6

phone

varchar

20

False

7

is_valid

int

11

False

8

create_date

varchar

100

False

用于保存管理员用户的相关基本信息,如表4.1所示。

(2)t_datadic表

用于保存服务类型的相关基本信息,如表4.2所示。

序号

列名

数据类型

长度

不是空

1

id

int

11

True

2

data_dic_name

varchar

50

False

3

data_dic_value

varchar

50

False

4

is_valid

tinyint

4

False

5

create_date

varchar

100

False

6

update_date

varchar

100

False

(3)t_customer_serve表

用于保存服务的相关基本信息,如表4.3所示。

序号

列名

数据类型

长度

不是空

1

id

int

11

True

2

serve_type

varchar

30

False

3

overview

varchar

500

False

4

customer

varchar

30

False

5

state

varchar

20

False

6

service_request

varchar

500

False

7

create_people

varchar

100

False

8

assigner

varchar

100

False

10

service_proce

varchar

500

False

11

service_proce_people

varchar

20

False

12

service_proce_time

varchar

100

False

13

service_proce_result

varchar

500

False

14

myd

varchar

50

False

15

is_valid

int

11

False

16

update_date

varchar

100

False

17

create_date

varchar

100

False

ABSTRACT

With the in-depth development of the market economy, market competition and industry competition are becoming more and more fierceThe difference is getting smaller and smaller. The market strategy of taking production as the center and selling products as the purpose is gradually being customer-centricReplaced by a market strategy for service. Who can grasp the demand trend of customers, strengthen the relationship with customersEffective exploration and management of customer resources, who can gain market competitive advantage and remain invincible in the fierce competitionThe land. The value chain of enterprises, suppliers, distributors and customers has become the core of competition among enterprises.Develop a customer relationship management system for real estate enterprises:CRM) has become an inevitable trend.

The object of the system is the management and sales personnel of enterprises Starting from the requirements of easy operation, friendly interface, flexibility and safe use, the entire system adopts IDEA as the development tool, MYSQL as the background database platform, and a customer relationship management system based on B/S three-tier model. It aims to use database to store and manage a large amount of data information Design and complete the classification, query and statistics of its various data, and achieve a friendly operation interface as far as possible.

Customer relationship management system will greatly improve customer satisfaction and loyalty, work efficiency, explore customer value, and thus improve enterprise profitability This system will bring far-reaching and meaningful influence to the whole information construction of real estate enterprises.

Keywords: CRM; Customer relationship management; IDEA; MYSQL database

         

 

  1. package com.xxxx.crm.controller;
  2. import com.xxxx.crm.base.BaseController;
  3. import com.xxxx.crm.base.ResultInfo;
  4. import com.xxxx.crm.query.CustomerServeQuery;
  5. import com.xxxx.crm.service.CustomerServeService;
  6. import com.xxxx.crm.utils.LoginUserUtil;
  7. import com.xxxx.crm.vo.CustomerServe;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.ui.Model;
  10. import org.springframework.web.bind.annotation.PathVariable;
  11. import org.springframework.web.bind.annotation.PostMapping;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import javax.annotation.Resource;
  15. import javax.servlet.http.HttpServletRequest;
  16. import java.util.Map;
  17. @Controller
  18. @RequestMapping("/customer_serve")
  19. public class CustomerServeController extends BaseController {
  20. @Resource
  21. private CustomerServeService customerServeService;
  22. /**
  23. * 分页多条件查询客户服务数据
  24. * @param customerServeQuery
  25. * @return
  26. */
  27. @RequestMapping("/list")
  28. @ResponseBody
  29. public Map<String,Object> queryCustomerServeByParams(CustomerServeQuery customerServeQuery,
  30. Integer flag, HttpServletRequest request) {
  31. //判断是否执行服务处理,如果是则查询分配给当前登录用户的服务记录
  32. if(flag != null && flag == 1) {
  33. //设置查询条件:分配人
  34. customerServeQuery.setAssigner(LoginUserUtil.releaseUserIdFromCookie(request));
  35. }
  36. return customerServeService.queryCustomerServeByParams(customerServeQuery);
  37. }
  38. /**
  39. * 打开客户服务创建、服务分配、服务处理、服务反馈、服务归档页面
  40. * @param type
  41. * @return
  42. */
  43. @RequestMapping("/index/{type}")
  44. public String index(@PathVariable(value = "type") Integer type) {
  45. //判断类型是否为空
  46. if(type != null) {
  47. if(type == 1) {
  48. //进入服务创建页面
  49. return "customerServe/customer_serve";
  50. } else if(type == 2) {
  51. //进入服务分配页面
  52. return "customerServe/customer_serve_assign";
  53. } else if(type == 3) {
  54. //进入服务处理页面
  55. return "customerServe/customer_serve_proce";
  56. } else if(type == 4) {
  57. //进入服务反馈页面
  58. return "customerServe/customer_serve_feed_back";
  59. } else if(type == 5) {
  60. //进入服务归档页面
  61. return "customerServe/customer_serve_archive";
  62. } else {
  63. return "";
  64. }
  65. } else {
  66. return "";
  67. }
  68. }
  69. /**
  70. * 打开服务添加页面
  71. * @return
  72. */
  73. @RequestMapping("/toAddCustomerServePage")
  74. public String toAddCustomerServePage() {
  75. return "customerServe/customer_serve_add";
  76. }
  77. /**
  78. * 服务添加操作
  79. * @param customerServe
  80. * @return
  81. */
  82. @PostMapping("/add")
  83. @ResponseBody
  84. public ResultInfo addCustomerServe(CustomerServe customerServe) {
  85. customerServeService.addCustomerServe(customerServe);
  86. return success("条件成功");
  87. }
  88. /**
  89. * 服务更新操作(服务分配、服务处理、服务反馈)
  90. * @param customerServe
  91. * @return
  92. */
  93. @RequestMapping("/update")
  94. @ResponseBody
  95. public ResultInfo updateCustomerServe(CustomerServe customerServe) {
  96. customerServeService.updateCustomerServe(customerServe);
  97. return success("更新成功");
  98. }
  99. /**
  100. * 打开服务分配页面
  101. * @param id
  102. * @return
  103. */
  104. @RequestMapping("/toCustomerServeAssignPage")
  105. public String toCustomerServeAssignPage(Integer id, Model model) {
  106. //通过id查询服务记录
  107. CustomerServe customerServe = customerServeService.selectByPrimaryKey(id);
  108. //设置到请求域中
  109. model.addAttribute("customerServe",customerServe);
  110. return "customerServe/customer_serve_assign_add";
  111. }
  112. /**
  113. * 打开服务处理页面
  114. * @param id
  115. * @param model
  116. * @return
  117. */
  118. @RequestMapping("/toCustomerServeProcePage")
  119. public String toCustomerServeProcePage(Integer id, Model model) {
  120. //通过id查询服务记录
  121. CustomerServe customerServe = customerServeService.selectByPrimaryKey(id);
  122. //设置到请求域中
  123. model.addAttribute("customerServe",customerServe);
  124. return "customerServe/customer_serve_proce_add";
  125. }
  126. /**
  127. * 打开服务反馈页面
  128. * @param id
  129. * @param model
  130. * @return
  131. */
  132. @RequestMapping("/toCustomerServeFeedBackPage")
  133. public String toCustomerServeFeedBackPage(Integer id,Model model) {
  134. //通过id查询服务记录
  135. CustomerServe customerServe = customerServeService.selectByPrimaryKey(id);
  136. //设置到请求域中
  137. model.addAttribute("customerServe",customerServe);
  138. return "customerServe/customer_serve_feed_back_add";
  139. }
  140. }
  1. package com.xxxx.crm.controller;
  2. import com.xxxx.crm.annotation.RequiredPermission;
  3. import com.xxxx.crm.base.BaseController;
  4. import com.xxxx.crm.base.ResultInfo;
  5. import com.xxxx.crm.enums.StateStatus;
  6. import com.xxxx.crm.query.SaleChanceQuery;
  7. import com.xxxx.crm.service.SaleChanceService;
  8. import com.xxxx.crm.utils.CookieUtil;
  9. import com.xxxx.crm.utils.LoginUserUtil;
  10. import com.xxxx.crm.vo.SaleChance;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.web.bind.annotation.PostMapping;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.ResponseBody;
  15. import javax.annotation.Resource;
  16. import javax.servlet.http.HttpServletRequest;
  17. import java.util.Map;
  18. @Controller
  19. @RequestMapping("/sale_chance")
  20. public class SaleChanceController extends BaseController {
  21. @Resource
  22. private SaleChanceService saleChanceService;
  23. /**
  24. * 分页条件查询营销机会数据列表 101001
  25. * @param saleChanceQuery
  26. * @param flag 如果flag的值不为空,并且值为1,则表示当前查询的是客户开发计划,否则查询营销机会
  27. * @return
  28. */
  29. @RequiredPermission(code = "101001")
  30. @RequestMapping("/list")
  31. @ResponseBody
  32. public Map<String,Object> querySaleChanceByParams(SaleChanceQuery saleChanceQuery,
  33. Integer flag, HttpServletRequest request) {
  34. if(flag != null && flag == 1) {
  35. //查询客户开发计划
  36. //1、设置分配状态
  37. saleChanceQuery.setState(StateStatus.STATED.getType());
  38. //2、设置指派人(当前登录用户的id)
  39. int userId = LoginUserUtil.releaseUserIdFromCookie(request);
  40. saleChanceQuery.setAssignMan(userId);
  41. }
  42. //查询营销机会数据
  43. return saleChanceService.querySaleChanceByParams(saleChanceQuery);
  44. }
  45. /**
  46. * 打开营销机会管理页面 1010
  47. * @return
  48. */
  49. @RequiredPermission(code = "1010")
  50. @RequestMapping("/index")
  51. public String index() {
  52. return "saleChance/sale_chance";
  53. }
  54. /**
  55. * 添加操作 101002
  56. * @param saleChance
  57. * @return
  58. */
  59. @RequiredPermission(code = "101002")
  60. @RequestMapping("/add")
  61. @ResponseBody
  62. public ResultInfo addSaleChance(SaleChance saleChance, HttpServletRequest request) {
  63. //从cookie中获取当前登录的userName
  64. String userName = CookieUtil.getCookieValue(request, "userName");
  65. //设置创建人到saleChance对象中
  66. saleChance.setCreateMan(userName);
  67. //调用service层的添加方法
  68. saleChanceService.addSaleChance(saleChance);
  69. return success("添加成功");
  70. }
  71. /**
  72. * 打开添加或者修改页面
  73. * @return
  74. */
  75. @RequestMapping("/toSaleChancePage")
  76. public String toSaleChancePage(Integer saleChanceId, HttpServletRequest request) {
  77. //判断saleChanceId是否为空
  78. if(saleChanceId != null) {
  79. //通过id查询
  80. SaleChance saleChance = saleChanceService.selectByPrimaryKey(saleChanceId);
  81. //将数据设置到request域中
  82. request.setAttribute("saleChance",saleChance);
  83. }
  84. return "saleChance/add_update";
  85. }
  86. /**
  87. * 修改操作 101004
  88. * @param saleChance
  89. * @return
  90. */
  91. @RequiredPermission(code = "101004")
  92. @PostMapping("/update")
  93. @ResponseBody
  94. public ResultInfo updateSaleChance(SaleChance saleChance) {
  95. //调用service层的添加方法
  96. saleChanceService.updateSaleChance(saleChance);
  97. return success("更新成功");
  98. }
  99. /**
  100. * 批量删除操作 101003
  101. * @param ids
  102. * @return
  103. */
  104. @RequiredPermission(code = "101003")
  105. @PostMapping("/delete")
  106. @ResponseBody
  107. public ResultInfo deleteSalChance(Integer[] ids) {
  108. saleChanceService.deleteSaleChance(ids);
  109. return success("删除成功");
  110. }
  111. /**
  112. * 修改营销机会的开发状态
  113. * @param id
  114. * @param devResult
  115. * @return
  116. */
  117. @PostMapping("/updateSaleChanceDevResult")
  118. @ResponseBody
  119. public ResultInfo updateSaleChanceDevResult(Integer id,Integer devResult) {
  120. saleChanceService.updateSaleChanceDevResult(id,devResult);
  121. return success("开发状态更新成功");
  122. }
  123. }
  1. package com.xxxx.crm.controller;
  2. import com.xxxx.crm.base.BaseController;
  3. import com.xxxx.crm.base.ResultInfo;
  4. import com.xxxx.crm.model.UserModel;
  5. import com.xxxx.crm.query.UserQuery;
  6. import com.xxxx.crm.service.UserService;
  7. import com.xxxx.crm.utils.LoginUserUtil;
  8. import com.xxxx.crm.vo.User;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.*;
  11. import javax.annotation.Resource;
  12. import javax.servlet.http.HttpServletRequest;
  13. import java.util.List;
  14. import java.util.Map;
  15. @Controller
  16. @RequestMapping("/user")
  17. public class UserController extends BaseController {
  18. @Resource
  19. private UserService userService;
  20. /**
  21. * 用户登录
  22. * @param userName
  23. * @param userPwd
  24. * @return
  25. */
  26. @PostMapping("/login")
  27. @ResponseBody
  28. public ResultInfo userLogin(String userName, String userPwd) {
  29. ResultInfo resultInfo = new ResultInfo();
  30. //调用service层的登录方法
  31. UserModel userModel = userService.userLogin(userName, userPwd);
  32. //设置ResultInfo的result值(将数据返回给请求)
  33. resultInfo.setResult(userModel);
  34. return resultInfo;
  35. }
  36. /**
  37. * 修改密码
  38. * @param request
  39. * @param oldPassword
  40. * @param newPassword
  41. * @param repeatPassword
  42. * @return
  43. */
  44. @PostMapping("/updatePwd")
  45. @ResponseBody
  46. public ResultInfo updateUserPassword(HttpServletRequest request, String oldPassword,
  47. String newPassword, String repeatPassword) {
  48. ResultInfo resultInfo = new ResultInfo();
  49. //获取cookie中的用户id
  50. Integer userId = LoginUserUtil.releaseUserIdFromCookie(request);
  51. //调用service层的修改密码方法
  52. userService.updatePassword(userId, oldPassword, newPassword, repeatPassword);
  53. return resultInfo;
  54. }
  55. /**
  56. * 打开修改密码页面
  57. * @return
  58. */
  59. @RequestMapping("/toPasswordPage")
  60. public String toPasswordPage() {
  61. return "user/password";
  62. }
  63. /**
  64. * 打开基本资料页面
  65. * @return
  66. */
  67. @RequestMapping("/toSettingPage")
  68. public String toSettingPage(HttpServletRequest request) {
  69. //获取cookie中的用户id
  70. Integer userId = LoginUserUtil.releaseUserIdFromCookie(request);
  71. User user = userService.selectByPrimaryKey(userId);
  72. request.setAttribute("user",user);
  73. return "user/info";
  74. }
  75. /**
  76. * 查询所有的销售人员
  77. * @return
  78. */
  79. @RequestMapping("/queryAllSales")
  80. @ResponseBody
  81. public List<Map<String,Object>> queryAllSales() {
  82. return userService.queryAllSales();
  83. }
  84. /**
  85. * 分页条件查询用户列表
  86. * @param userQuery
  87. * @return
  88. */
  89. @RequestMapping("/list")
  90. @ResponseBody
  91. public Map<String,Object> selectByParams(UserQuery userQuery) {
  92. return userService.queryByParamsForTable(userQuery);
  93. }
  94. /**
  95. * 打开用户列表页面
  96. * @return
  97. */
  98. @RequestMapping("/index")
  99. public String index() {
  100. return "user/user";
  101. }
  102. /**
  103. * 添加操作
  104. * @param user
  105. * @return
  106. */
  107. @PostMapping("/add")
  108. @ResponseBody
  109. public ResultInfo addUser(User user) {
  110. userService.addUser(user);
  111. return success("添加成功");
  112. }
  113. /**
  114. * 打开添加或修改页面
  115. * @return
  116. */
  117. @RequestMapping("/toAddOrUpdateUserPage")
  118. public String toAddOrUpdateUserPage(Integer id,HttpServletRequest request) {
  119. if(id != null) {
  120. User user = userService.selectByPrimaryKey(id);
  121. request.setAttribute("userInfo",user);
  122. }
  123. return "user/add_update";
  124. }
  125. /**
  126. * 修改操作
  127. * @param user
  128. * @return
  129. */
  130. @PostMapping("/update")
  131. @ResponseBody
  132. public ResultInfo updateUser(User user) {
  133. userService.updateUser(user);
  134. return success("修改成功");
  135. }
  136. /**
  137. * 删除操作
  138. * @param ids
  139. * @return
  140. */
  141. @PostMapping("/delete")
  142. @ResponseBody
  143. public ResultInfo deleteUser(Integer[] ids) {
  144. userService.deleteUser(ids);
  145. return success("删除成功");
  146. }
  147. /**
  148. * 查询所有的客户经理
  149. * @return
  150. */
  151. @GetMapping("/queryAllCustomerManagers")
  152. @ResponseBody
  153. public List<Map<String,Object>> queryAllCustomerManagers() {
  154. return userService.queryAllCustomerManagers();
  155. }
  156. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/820405
推荐阅读
相关标签
  

闽ICP备14008679号