$m1_model = $this;
$m2_model = M('SchIcardStudent');//发卡记录
//卡记录UUID转卡号
$w = array();
$w['card_uuid'] = array("IN",$ids_arr);
// $w['school_uuid'] = $school_uuid;
$w['private_station_uuid'] = $private_station_uuid;
$code_arr = $this->where($w)->getField('card_code',true);//卡号
//两个表都有记录可删,事务才能成功
$w = array();
$w['card_code'] = array("IN",$code_arr);
$count2 = $m2_model->where($w)->count();//指定的卡中,只要有一个卡有发卡记录就能确保事务正常执行
//有发卡记录时,启用事务删除
if ($count2){
//启用事务处理,确保删除数据时完整
$m1_model->startTrans();//在第一个模型里启用事务处理,或者第二个也行
//条件 删除指定的卡和发卡记录
$w = array();
$w['card_code'] = array("IN",$code_arr);
// $w['school_uuid'] = $school_uuid;
// $w['private_station_uuid'] = $private_station_uuid;
//执行删除
$result_1 = $m1_model->where($w)->delete();
$result_2 = $m2_model->where($w)->delete();
if($result_1 && $result_2){
$m1_model->commit();//成功则提交
die(json_encode(array("stat"=>"1", "msg"=>"操作成功")));
}else{
$m1_model->rollback();//不成功,则回滚
die(json_encode(array("stat"=>"0", "msg"=>"操作失败")));
}
}else{
//当无发卡记录时,直接删除卡号表
$w = array();
$w['card_code'] = array("IN",$code_arr);
$result_1 = $m1_model->where($w)->delete();
if($result_1){
die(json_encode(array("stat"=>"1", "msg"=>"操作成功")));
}else{
die(json_encode(array("stat"=>"0", "msg"=>"操作失败")));
}
}
评论