/**
* 编辑检查组
*
* @param checkitemIds
* @param checkgroup
*/
@Override
public void update(Integer[] checkitemIds, Checkgroup checkgroup) {
//1,编辑检查组的基本信息
//checkgroup里面包含检查组对应的id
checkgroupMapper.updateById(checkgroup);
//2,编辑检查组和检查项的中间表的[先删除,再添加]
//2.1删除中间表 :不能用deleteById
//因为中间表是联合主键,要根据map集合来删除
Map<String, Object> map = new HashMap<>();
map.put("checkgroup_id", checkgroup.getId());
int i = checkgroupCheckitemMapper.deleteByMap(map);
System.out.println("删除的中间表的行数:" + i);
//2.2添加中间表
//1,先创建中间表对象
CheckgroupCheckitem checkgroupCheckitem = new CheckgroupCheckitem();
//2,设置中间表的检查组id
checkgroupCheckitem.setCheckgroupId(checkgroup.getId());
//3,循环遍历传过来的检查项的id,set到中间表里面
for (Integer checkitemId : checkitemIds) {
// set到中间表里面
checkgroupCheckitem.setCheckitemId(checkitemId);
//循环一次,往中间表添加一次
checkgroupCheckitemMapper.insert(checkgroupCheckitem);
}
}
/**
* 删除检查组
* 删除中间表:根据map集合来删除,map集合里面放其中一个表的id
*
* @param id
*/
@Override
public void deleteById(Integer id) {
//1,删除中间表
//传过来的id是检查组id,不能直接用来删除检查项,检查项的中间表
//准备一个map集合,将检查组的id放进去,根据map集合将中间表删除掉
Map<String, Object> map = new HashMap<>();
map.put("checkgroup_id", id);
//根据map集合将中间表删除
//删除的中间表数据可能有多个
int i = checkgroupCheckitemMapper.deleteByMap(map);
System.out.println("删除的中间表数据" + i);
//2,删除检查组
checkgroupMapper.deleteById(id);
}
以上均是业务层实现