public static function UpdatePadOrder($dpid, $orderId, $goodsIds) { if ($goodsIds) { $transaction = Yii::app()->db->beginTransaction(); try { foreach ($goodsIds as $key => $val) { if (!strpos($key, 'group')) { //去除套餐中的 checkbox $goodsArr = explode(',', $key); //如果数组元素个数是2 证明书套餐 if (count($goodsArr) == 2) { $setId = $goodsArr[0]; $sql = 'delete from nb_order_product where order_id=:orderId and set_id=:setId and dpid=:dpid'; $connect = Yii::app()->db->createCommand($sql); $connect->bindValue(':setId', $setId); $connect->bindValue(':orderId', $orderId); $conn->bindValue(':dpid', $dpid); $connect->execute(); $goodsData = explode('-', $goodsArr[1]); foreach ($goodsData as $goods) { $se = new Sequence("order_product"); $lid = $se->nextval(); $insertData = array('lid' => $lid, 'dpid' => $dpid, 'create_at' => date('Y-m-d H:i:s', time()), 'order_id' => $orderId, 'set_id' => $setId, 'product_id' => $goods, 'price' => ProductSetClass::GetProductSetPrice($dpid, $setId, $goods), 'update_at' => date('Y-m-d H:i:s', time()), 'amount' => $val, 'taste_memo' => yii::t('app', '无')); Yii::app()->db->createCommand()->insert('nb_order_product', $insertData); } } else { $sql = 'update nb_order_product set amount = :amount where order_id = :orderId and product_id = :productId and dpid=:dpid'; $conn = Yii::app()->db->createCommand($sql); $conn->bindValue(':amount', $val); $conn->bindValue(':orderId', $orderId); $conn->bindValue(':productId', $key); $conn->bindValue(':dpid', $dpid); $conn->execute(); } } } $transaction->commit(); return true; } catch (Exception $e) { $transaction->rollback(); //如果操作失败, 数据回滚 return false; } } else { return false; } }