销售机会管理增删改+客户开发计划
5、销售机会管理增删改,客户开发计划查询
4章节中“客户经理乱码的,加载不出来的”在navicat中输入命令查看MySQL编码命令
show variables like 'character%';
结果这样就是对的:
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8
指派给的选中事件:
$(function () {
$("#assignMan").combobox({
//选中事件
onSelect: function (record) {
console.log(record);
if (record.truename != '') {
$("#assignTime").val(getCurrentDateTime());
} else {
$("#assignTime").val("");
}
}
});
});
保存的前台代码:
function saveSaleChance() {
$("#fm").form("submit", {
url: url,
onSubmit: function () {//提交表单调用
return $(this).form("validate");//表单验证
},
success: function (result) {//请求成功的回调
result = eval("("+ result +")"); //{success:true/false}
if (result.success) {
$.messager.alert("系统提示", "保存成功!");
resetValue();
$("#dlg").dialog("close");
$("#dg").datagrid("reload");//重新加载数据 datagrid会再发送一次url加载最新数据
} else {
$.messager.alert("系统提示", "保存失败!");
return;
}
}
});
}
逻辑:
新增销售机会:
前台:easyUI-form easyui-validatebox easyui-combobox
点击保存按钮,提交表单ajax请求 saleChance/save
后台处理请求插入数据库,返回{success:true/false}
前台success回调方法中:
$("#dlg").dialog("close");关闭对话框
$("#dg").datagrid("reload"); 重新加载数据
修改销售机会:
$("#dg").form("load",row); row是选中的一条对应的json数据(js对象),通过
load方法自动回显数据,只要row里的属性名和form表单中的name一致就行了
需要考虑的是,如果用户点击的是未指派的数据然后指派了一个人,那么我们要把state修改为1
删除销售机会:
前台根据js代码发送所有选中的ids:1,2,3,4,5
后台单表删除即可,因为删除的是未开发的(没有销售计划的)
5.1、添加销售机会代码:(因为前台json数据,所以用TSaleChance来接收,new HashMap,向前台传success,判断true/false)
SaleChanceController
ISaleChanceService
//插入销售机会数据
void insertSaleChance(TSaleChance saleChance);
SaleChanceServiceImpl,里面public上方@service注解下面要加上@Transactional注解(事务)
@Transactional(readOnly = true)//没事务加事务,有事务用当前事务,这段代码要不要都行
到此发现日期接收格式不正确(createtime,assigntime)-----接收需要自己设置日期格式
bean中TSaleChance 里面定义
至此,添加完成
5.2、修改,更新销售机会代码:(因为前台json数据,所以还用TSaleChance来接收,new HashMap)
SaleChanceController
ISaleChanceService
//修改,更新销售机会数据
void updateSaleChance(TSaleChance saleChance);
SaleChanceServiceImpl
修改完成
5.3、删除销售机会代码:(用string字符串来接收ids)
SaleChanceController
ISaleChanceService
//删除销售机会数据
void deleteSaleChance(String ids);
SaleChanceServiceImpl
销售机会管理增删改完成
6、客户开发计划分页查询
1.查询
查询的条件为所有已经分配的销售机会state=1
修改controller代码:
if (devResultOrState == 1){
saleChance.setState(1);
}
if (devResultOrState == 0){
saleChance.setDevresult(0);
}
点击开发按钮:调用main.jsp中的openTab方法,传入url为cusdevplanitemManage?saleChanceId=xx,新增选项卡
在新的页面中,通过参数域把id取出来${param.saleChanceId}
直接在页面中通过$.post发送了findById?saleChanceId=xx请求
通过datagrid发送url,GET cusDevPlan/52
后台处理这两个异步请求即可。(销售计划的增删改查采用restFul请求风格)
6.1、显示、检索客户开发计划(由于逻辑与销售机会管理查询相通,所以改一处代码即可完成查询数据)
修改SaleChanceController中的
6.2、根据id检索销售机会
SaleChanceController
ISaleChanceService
//根据id检索销售机会
TSaleChance selectSaleChanceById(int id);
SaleChanceServiceImpl
6.3、根据外键查询devPlan表数据(开发计划项数据显示)
新建DevPlanController
IDevPlanService
//根据外键查询devPlan表数据
DatagridResult selectPlanSaleChanceId(int saleChanceId);
DevPlanServiceImpl