| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- namespace addons\Pk\common\logic\notify;
- use addons\Pk\common\enums\PkEnum;
- use addons\Pk\common\models\PkActivity;
- use addons\Pk\common\models\PkActivityStatistic;
- use addons\Pk\common\models\PkDateStatistic;
- use addons\Pk\common\models\PkOrder;
- use addons\Pk\common\models\PkStatistic;
- use common\enums\StatusEnum;
- use common\models\common\PaymentTrade;
- use common\models\common\PaymentTradeOrder;
- use common\traits\ErrorTrait;
- use Exception;
- /**
- * Class Notify
- * @Author: ltm
- * @DateTime: 2021/10/18 9:39
- * @Copyright: copyright (c) 2021
- * @package common\logic\notify
- */
- class Notify
- {
- use ErrorTrait;
- /**
- * @Author: hua
- * @DateTime: 2021/10/18 9:57
- * @Copyright: copyright (c) 2021
- * @param $order_info
- * @return bool
- */
- public function notify($order_info)
- {
- $trans = \Yii::$app->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;
- }
- }
- }
|