您的位置:首页 > 其它

CRM客户管理系统之客户升级功能的实现方法

2018-12-02 20:10 337 查看

        客户管理系统中,我们将客户分为潜在客户和正式客户,潜在客户页面中应该设置一个’客户升级‘按钮,功能效果为选中一个客户后,我们可以对这位客户进行升级,将他升级为正式客户。

        我们可以分析执行这一步操作,需要哪几个步骤:

一:将潜在客户升级,必须先拿到这个客户的所有信息,确认选中这一行,然后将这些信息传到正式客户表中。

二:潜在客户的所有信息传入到正式客户表之后,他就不再是潜在客户了,需要将他的信息在潜在客户表中删除。

        分析出这两个步骤之后,我们就可以使用代码来实现:

潜在客户升级js代码:

点击客户升级按钮前先进行判断,是否选中一位客户

[code]//潜在客户升级、
potentialCustomerUpgrade : function(){

var row = potentialcustomerDatagrid.datagrid("getSelected");
//判断是否选中
if(!row){
$.messager.alert('温馨提示','请选择一位客户进行升级!','info');
return;
}
//打开模态框
customerUpDialog.dialog("open").dialog("setTitle","潜在客户升级").dialog("center");
//回显form表单
customerUpDialogForm.form("load",row);
}

选中后打开模态框,并回显客户信息

模态框编辑完成后点击确定的js代码:

[code]                        //客户升级模态框 确定
customerUpSave : function(){
//调用easyui的form组件的submit方法
customerUpDialogForm.form('submit', {
url:'customer/ups',
onSubmit: function(){
return customerUpDialogForm.form("validate");
},
success:function(data){
var result = $.parseJSON(data);
if(result.success){
//成功
$.messager.alert('温馨提示','升级成功!','info');
//关闭模态框
customerUpDialog.dialog("close");
//刷新datagrid
potentialcustomerDatagrid.datagrid("reload");
}else{
$.messager.alert('温馨提示',result.code+"-"+result.message,'error');
}
}
});

}

前端js代码写完之后,我们需要在后台来完成这一步操作,提交的时候,我们访问的后台路径为 url:'customer/ups'

我们在后台找到这个路径,写一个方法就可以了

后台代码:

[code]	@RequestMapping("/ups")
@ResponseBody
public AjaxResult up(Customer cus){
AjaxResult ar = null;
System.out.println(cus);
try {
if(!cus.equals(null)){

customerService.ups(cus);

}
ar = new AjaxResult("保存成功!");
} catch (Exception e) {
e.printStackTrace();
ar = new AjaxResult("保存失败!"+e.getMessage(), -1002);
}
return ar;
}

由于这项操作需要同时完成,因此我们需要把这两个操作放到一个事务中,避免出现 潜在客户信息被删除而正式客户没有添加成功,或者正式客户添加成功,但是潜在客户没有将这条信息删除的情况。上面这两种情况是一定要规避的,不然就是一个bug。

所以我们不能直接在controller中写这两项操作,而是在实现类中重写这个方法,然后来调用这个方法。

实现类的代码实现:

[code]@Override
@Transactional
public void ups(Customer cus) {
//删除潜在客户
potentialCustomerMapper.deleteByPrimaryKey(cus.getId());
//添加正式客户
//设置录入人
cus.setInputuser(UserContext.getUser());
customerMapper.insert(cus);
}

前面一定要加上@Transactional注解,然后可以设置一个录入人,使信息更加完善,确定是当前登陆的员工执行的这一操作

做完以上几步操作,我们的客户升级功能就实现了。

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐