bug分析
在写前端界面测试时发现添加数据时不指定分配人添加不了数据,无error报错,界面显示添加成功,用postman试过,有分配人就能加上,没有分配人就添加不到数据库,刚开始以为一直以为是sql的问题,因为恰好动了一下sql语句
后来发现是最后一行的大括号打错位置了,本意是是否指定指派人都能添加,改成了只有分配人才能添加到数据库
数据库代码
select
s.id, chance_source, customer_name, cgjl, overview, link_man, link_phone, description,
create_man, assign_man, assign_time, state, dev_result, s.is_valid, s.create_date, s.update_date
,u.user_name as uname
from
t_sale_chance s
left join
t_user u
on
s.assign_man = u.id
原service代码,改动最后一个大括号即可
@Transactional(propagation = Propagation.REQUIRED)
public void addSaleChance(SaleChance saleChance){
/* 1.检验参数*/
checkSaleChanceParams(saleChance.getCustomerName(),saleChance.getLinkMan(),saleChance.getLinkPhone());
/*2.设置相关字段默认值*/
//1有效
saleChance.setIsValid(1);
//默认是系统当前时间
saleChance.setCreateDate(new Date());
saleChance.setUpdateDate(new Date());
//判断是否指定指派人
if(StringUtils.isBlank(saleChance.getAssignMan())){
//未设置指派人
//state分配状态 (0=未分配,1=已分配)
saleChance.setState(StateStatus.UNSTATE.getType());
saleChance.setAssignTime(null);
saleChance.setDevResult(DevResult.UNDEV.getStatus());
}else {
//不为空 设置了指派人
saleChance.setState(StateStatus.STATED.getType());
saleChance.setAssignTime(new Date());
saleChance.setDevResult(DevResult.DEVING.getStatus());
//执行添加操作,
AssertUtil.isTrue(saleChanceMapper.insertSelective(saleChance)!=1,"添加营销机会失败!");
}
}