db->beginTransaction(); try { $order = PkOrder::findOne(['order_no' => $order_info['order_no']]); if ($order['is_pay']) { throw new Exception("PK订单已支付"); } $trade = PaymentTradeOrder::getOne([['order_no' => $order_info['order_no']]],true); //添加活动统计数据 $activity_data['mall_id'] = $order['mall_id']; $activity_data['user_id'] = $order['user_id']; $activity_data['activity_id'] = $order['activity_id']; $activity_data['target'] = $order['performance_goal']; $activity_data['status'] = StatusEnum::ENABLED; $activity = PkActivityStatistic::setData($activity_data); $order->pay_type = $trade['pay_type']; $order->is_pay = PkEnum::IS_PAY; $order->save(); if(!$activity) throw new Exception("活动统计插入失败"); if($order === false) throw new Exception(PkOrder::getStaticError()); $pkActivity = PkActivity::findOne(['id' => $order['activity_id']]); $pkActivity->member_num = $pkActivity->member_num + 1; $pkActivity->save(); $statistic['mall_id'] = $order['mall_id']; $statistic['join_user_num'] = 1; $add_static = PkStatistic::setData($statistic); if (!$add_static) { throw new Exception("活动总统计插入失败"); } $date_statistic['mall_id'] = $order['mall_id']; $date_statistic['join_user_num'] = 1; $date_statistic['date'] = date("Y-m-d"); $date_static = PkDateStatistic::setData($date_statistic); if (!$date_static) { throw new Exception("活动日统计插入失败"); } $trans->commit(); return true; } catch (Exception $e) { $trans->rollBack(); $this->setStaticError($e->getMessage()); return false; } } }