基于SSM技客户管理系统源码和论文079
开发工具:idea
数据库mysql5.7+
数据库链接工具:navcat,小海豚等
技术:ssm
一、课题的背景和意义
1、课题目的
客户管理是每个企业中最重要的模块,对客户的分类管理有利于更有效地了解从而提高工作效率,一个良好的客户管理系统对于每个企业是至关重要的,记录到系统的数据库中的不仅是客户的基本信息资料,也可以对客户添加各种标签利于分类。设计一个多用途的客户管理系统也是必要的,可以对所记录的数据准确的记录和有效的利用。
2、课题意义
本课题主要研究和开发客户管理系统,以及对客户数据准确的记录和分类查看的应用。
目前我们已经生活在一个相当数字化、信息化的时代中。计算机的应用时刻影响着我们中的每一个人,它可以在工作中和学习中给我们带来很大的帮助。然而,大量的信息既给我们带来益处,同时也带来了很多的麻烦,数据的多样化使我们难以分类记录,数据的多量化也会使我们不好记录和利用。因此,我们要想对数据有效的记录和高效的利用,就必须开发一个数据管理系统。在此本课题研究的主要是对客户资料信息进行记录和利用,是对大量客户资料进行提取记录和有效利用的一个过程。
客户管理系统是为了实现对客户资料记录和而开发的一套软件系统,以提高客户信息的利用速度,改变传统客户信息资料的收集和查看的方式,实现高效的收集客户资料信息和随时随地查看并统计。本系统的最终用户为企业员工和系统管理员。该系统的研制具有以下几点意义:
1)该系统可适用于大部分企业中收集客户资料信息
2)该系统的存在图形分析,可实时统计相关数据,以更易懂的形式展示出来
3、国内外发展状况
近几年随着科技的发展,市场上也出现了各种各样的客户管理系统,改变了传统上的对客户资料信息的管理,也是对此行业的一次革命。传统上的客户管理只是对客户资料的简单的收集并分类,但对其的利用率很低,并未有效地使用。目前很多企业开发的客户管理系统也是对特定的公司而设计开发的,满足其公司对客户管理的需求,市面上极小存在符合大部分公司的客户管理系统,并且市面上出现的客户管理系统也并不完善,只满足了用户的基本的需求,并未对其优化,因此,在客户管理方面的研发仍在不断地进行着。
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.KehuEntity;
import com.service.KehuService;
import com.entity.view.KehuView;
import com.utils.PageUtils;
import com.utils.R;
/**
* 客户
* 后端接口
* @author
* @email
* @date 2021-03-13
*/
@RestController
@Controller
@RequestMapping("/kehu")
public class KehuController {
private static final Logger logger = LoggerFactory.getLogger(KehuController.class);
@Autowired
private KehuService kehuService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isNotEmpty(role) && "用户".equals(role)){
params.put("yonghuId",request.getSession().getAttribute("userId"));
}
PageUtils page = kehuService.queryPage(params);
//字典表数据转换
List<KehuView> list =(List<KehuView>)page.getList();
for(KehuView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
KehuEntity kehu = kehuService.selectById(id);
if(kehu !=null){
//entity转view
KehuView view = new KehuView();
BeanUtils.copyProperties( kehu , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody KehuEntity kehu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,kehu:{}",this.getClass().getName(),kehu.toString());
Wrapper<KehuEntity> queryWrapper = new EntityWrapper<KehuEntity>()
.eq("phone", kehu.getPhone())
.or()
.eq("id_number", kehu.getIdNumber());
logger.info("sql语句:"+queryWrapper.getSqlSegment());
KehuEntity kehuEntity = kehuService.selectOne(queryWrapper);
if(kehuEntity==null){
kehu.setInsertTime(new Date());
kehu.setCreateTime(new Date());
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// kehu.set
// }
kehuService.insert(kehu);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody KehuEntity kehu, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,kehu:{}",this.getClass().getName(),kehu.toString());
//根据字段查询是否有相同数据
Wrapper<KehuEntity> queryWrapper = new EntityWrapper<KehuEntity>()
.notIn("id",kehu.getId())
.andNew()
.eq("phone", kehu.getPhone())
.or()
.eq("id_number", kehu.getIdNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
KehuEntity kehuEntity = kehuService.selectOne(queryWrapper);
if("".equals(kehu.getMyPhoto()) || "null".equals(kehu.getMyPhoto())){
kehu.setMyPhoto(null);
}
if(kehuEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// kehu.set
// }
kehuService.updateById(kehu);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
kehuService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}