|  | @@ -29,68 +29,19 @@ class Notify extends Api
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          $data = $pay->verify();
 | 
	
		
			
				|  |  | +        Db::startTrans();
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            $payamount = $data['total_fee'] / 100;
 | 
	
		
			
				|  |  | -            $out_trade_no = $data['out_trade_no'];
 | 
	
		
			
				|  |  | -            $transaction_id = $data['transaction_id'];
 | 
	
		
			
				|  |  | -            Db::startTrans();
 | 
	
		
			
				|  |  | -            try {
 | 
	
		
			
				|  |  | -                $orderModel = new \app\common\model\RecharOrder();
 | 
	
		
			
				|  |  | -                $userModel = new \app\common\model\User();
 | 
	
		
			
				|  |  | -                $jewellogModel = new \app\common\model\UserJewelLog();
 | 
	
		
			
				|  |  | -                $rechargelogModel = new \app\common\model\UserRechargeLog();
 | 
	
		
			
				|  |  | -                $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
 | 
	
		
			
				|  |  | -                $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
 | 
	
		
			
				|  |  | -                // 修改订单状态
 | 
	
		
			
				|  |  | -                $res1 = $orderModel->update(["status" => 1,'transaction_id'=>$transaction_id], ["order_no" => $out_trade_no]);
 | 
	
		
			
				|  |  | -                // 修改用户钻石余额
 | 
	
		
			
				|  |  | -                $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
 | 
	
		
			
				|  |  | -                //判断是否首充
 | 
	
		
			
				|  |  | -                $jewellogWhere['user_id'] = $orderInfo["user_id"];
 | 
	
		
			
				|  |  | -                $jewellogWhere['type'] = 1;
 | 
	
		
			
				|  |  | -                $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
 | 
	
		
			
				|  |  | -                $isFirst = 1;
 | 
	
		
			
				|  |  | -                if (!empty($userJewelLog)) {
 | 
	
		
			
				|  |  | -                    $isFirst = 0;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                $preUserId = $userInfo['pre_userid'];
 | 
	
		
			
				|  |  | -                // 添加钻石流水记录
 | 
	
		
			
				|  |  | -                $detail = "钻石充值";
 | 
	
		
			
				|  |  | -                $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
 | 
	
		
			
				|  |  | -                // 添加充值记录
 | 
	
		
			
				|  |  | -                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], 0, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1,$isFirst,$preUserId);
 | 
	
		
			
				|  |  | -                if ($res1 && $res2 && $res3 && $res4) {
 | 
	
		
			
				|  |  | -                    // 添加统计
 | 
	
		
			
				|  |  | -                    $userInfo->chargecount = $userInfo->chargecount + $payamount;
 | 
	
		
			
				|  |  | -                    $userInfo->chargetime = time();
 | 
	
		
			
				|  |  | -                    $userInfo->save();
 | 
	
		
			
				|  |  | -                    $userService = new UserService();
 | 
	
		
			
				|  |  | -                    $userService->inviteMoney(['user_id'=>$orderInfo["user_id"]]);
 | 
	
		
			
				|  |  | -                    // +EXP 充值任意金额
 | 
	
		
			
				|  |  | -                    \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "5EMwg7la", 1);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    // 查询今日充值记录
 | 
	
		
			
				|  |  | -                    $today = strtotime(date("Y-m-d 00:00:00"));
 | 
	
		
			
				|  |  | -                    $rechargeMoney = \app\common\model\RecharOrder::where(["user_id" => $orderInfo["user_id"], "createtime" => ["gt", $today]])->sum("money");
 | 
	
		
			
				|  |  | -                    if ($rechargeMoney >= 100) {
 | 
	
		
			
				|  |  | -                        // +EXP 充值超过100
 | 
	
		
			
				|  |  | -                        \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "DaCVgOLu", 1);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    Db::commit();
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            } catch (ValidateException $e) {
 | 
	
		
			
				|  |  | -                Db::rollback();
 | 
	
		
			
				|  |  | -                $this->error($e->getMessage());
 | 
	
		
			
				|  |  | -            } catch (PDOException $e) {
 | 
	
		
			
				|  |  | -                Db::rollback();
 | 
	
		
			
				|  |  | -                $this->error($e->getMessage());
 | 
	
		
			
				|  |  | -            } catch (Exception $e) {
 | 
	
		
			
				|  |  | -                Db::rollback();
 | 
	
		
			
				|  |  | -                $this->error($e->getMessage());
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            //你可以在此编写订单逻辑
 | 
	
		
			
				|  |  | +            $this->payhandel($data);
 | 
	
		
			
				|  |  | +            Db::commit();
 | 
	
		
			
				|  |  | +        } catch (ValidateException $e) {
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error($e->getMessage());
 | 
	
		
			
				|  |  | +        } catch (PDOException $e) {
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error($e->getMessage());
 | 
	
		
			
				|  |  |          } catch (Exception $e) {
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error($e->getMessage());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          echo $pay->success();
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -136,80 +87,81 @@ class Notify extends Api
 | 
	
		
			
				|  |  |              "point_amount": "0.00"
 | 
	
		
			
				|  |  |          }';
 | 
	
		
			
				|  |  |          $data = json_decode($dataStr,true);*/
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        Db::startTrans();
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            $payamount = $data['total_amount'];
 | 
	
		
			
				|  |  | -            $out_trade_no = $data['out_trade_no'];
 | 
	
		
			
				|  |  | -            $trade_no = $data['trade_no'];
 | 
	
		
			
				|  |  | -            Db::startTrans();
 | 
	
		
			
				|  |  | -            try {
 | 
	
		
			
				|  |  | -                $orderModel = new \app\common\model\RecharOrder();
 | 
	
		
			
				|  |  | -                $userModel = new \app\common\model\User();
 | 
	
		
			
				|  |  | -                $jewellogModel = new \app\common\model\UserJewelLog();
 | 
	
		
			
				|  |  | -                $rechargelogModel = new \app\common\model\UserRechargeLog();
 | 
	
		
			
				|  |  | -                $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
 | 
	
		
			
				|  |  | -                $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
 | 
	
		
			
				|  |  | -                // 修改订单状态
 | 
	
		
			
				|  |  | -                $res1 = $orderModel->update(["status" => 1,'transaction_id' => $trade_no], ["order_no" => $out_trade_no]);
 | 
	
		
			
				|  |  | -                // 修改用户钻石余额
 | 
	
		
			
				|  |  | -                $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
 | 
	
		
			
				|  |  | -                //判断是否首充
 | 
	
		
			
				|  |  | -                $jewellogWhere['user_id'] = $orderInfo["user_id"];
 | 
	
		
			
				|  |  | -                $jewellogWhere['type'] = 1;
 | 
	
		
			
				|  |  | -                $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
 | 
	
		
			
				|  |  | -                $isFirst = 1;
 | 
	
		
			
				|  |  | -                if (!empty($userJewelLog)) {
 | 
	
		
			
				|  |  | -                    $isFirst = 0;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                $preUserId = $userInfo['pre_userid'];
 | 
	
		
			
				|  |  | -                // 添加钻石流水记录
 | 
	
		
			
				|  |  | -                $detail = "钻石充值";
 | 
	
		
			
				|  |  | -                $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
 | 
	
		
			
				|  |  | -                // 添加充值记录
 | 
	
		
			
				|  |  | -                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 2,$isFirst,$preUserId);
 | 
	
		
			
				|  |  | -                if ($res1 && $res2 && $res3 && $res4) {
 | 
	
		
			
				|  |  | -                    // 添加统计
 | 
	
		
			
				|  |  | -                    $userInfo->chargecount = $userInfo->chargecount + $payamount;
 | 
	
		
			
				|  |  | -                    $userInfo->chargetime = time();
 | 
	
		
			
				|  |  | -                    $userInfo->save();
 | 
	
		
			
				|  |  | -                    $userService = new UserService();
 | 
	
		
			
				|  |  | -                    $userService->inviteMoney(['user_id'=>$orderInfo["user_id"]]);
 | 
	
		
			
				|  |  | -                    // +EXP 充值任意金额
 | 
	
		
			
				|  |  | -                    \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "5EMwg7la", 1);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    // 查询今日充值记录
 | 
	
		
			
				|  |  | -                    $today = strtotime(date("Y-m-d 00:00:00"));
 | 
	
		
			
				|  |  | -                    $rechargeMoney = \app\common\model\RecharOrder::where(["user_id" => $orderInfo["user_id"], "createtime" => ["gt", $today]])->sum("money");
 | 
	
		
			
				|  |  | -                    if ($rechargeMoney >= 100) {
 | 
	
		
			
				|  |  | -                        // +EXP 充值超过100
 | 
	
		
			
				|  |  | -                        \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "DaCVgOLu", 1);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                } else {
 | 
	
		
			
				|  |  | -                    $res1 = $orderModel->update(["status" => -1], ["order_no" => $out_trade_no]);
 | 
	
		
			
				|  |  | -                    if (!$res1) {
 | 
	
		
			
				|  |  | -                        throw new Exception('更新充值状态失败:'.$out_trade_no);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                Db::commit();
 | 
	
		
			
				|  |  | -            } catch (ValidateException $e) {
 | 
	
		
			
				|  |  | -                Db::rollback();
 | 
	
		
			
				|  |  | -                $this->error($e->getMessage());
 | 
	
		
			
				|  |  | -            } catch (PDOException $e) {
 | 
	
		
			
				|  |  | -                Db::rollback();
 | 
	
		
			
				|  |  | -                $this->error($e->getMessage());
 | 
	
		
			
				|  |  | -            } catch (Exception $e) {
 | 
	
		
			
				|  |  | -                Db::rollback();
 | 
	
		
			
				|  |  | -                $this->error($e->getMessage());
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            //你可以在此编写订单逻辑
 | 
	
		
			
				|  |  | +            $this->payhandel($data);
 | 
	
		
			
				|  |  | +            Db::commit();
 | 
	
		
			
				|  |  | +        } catch (ValidateException $e) {
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error($e->getMessage());
 | 
	
		
			
				|  |  | +        } catch (PDOException $e) {
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error($e->getMessage());
 | 
	
		
			
				|  |  |          } catch (Exception $e) {
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error($e->getMessage());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          echo $pay->success();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  | +     * 支付处理方法
 | 
	
		
			
				|  |  | +     * @return void
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private function payhandel($params = [])
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        $payamount    = $params['total_amount'];
 | 
	
		
			
				|  |  | +        $out_trade_no = $params['out_trade_no'];
 | 
	
		
			
				|  |  | +        $trade_no     = $params['trade_no'];
 | 
	
		
			
				|  |  | +        $orderModel = new \app\common\model\RecharOrder();
 | 
	
		
			
				|  |  | +        $userModel = new \app\common\model\User();
 | 
	
		
			
				|  |  | +        $jewellogModel = new \app\common\model\UserJewelLog();
 | 
	
		
			
				|  |  | +        $rechargelogModel = new \app\common\model\UserRechargeLog();
 | 
	
		
			
				|  |  | +        $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
 | 
	
		
			
				|  |  | +        $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
 | 
	
		
			
				|  |  | +        // 修改订单状态
 | 
	
		
			
				|  |  | +        $res1 = $orderModel->update(["status" => 1,'transaction_id' => $trade_no], ["order_no" => $out_trade_no]);
 | 
	
		
			
				|  |  | +        // 修改用户钻石余额
 | 
	
		
			
				|  |  | +        $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
 | 
	
		
			
				|  |  | +        //判断是否首充
 | 
	
		
			
				|  |  | +        $jewellogWhere['user_id'] = $orderInfo["user_id"];
 | 
	
		
			
				|  |  | +        $jewellogWhere['type'] = 1;
 | 
	
		
			
				|  |  | +        $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
 | 
	
		
			
				|  |  | +        $isFirst = 1;
 | 
	
		
			
				|  |  | +        if (!empty($userJewelLog)) {
 | 
	
		
			
				|  |  | +            $isFirst = 0;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $preUserId = $userInfo['pre_userid'];
 | 
	
		
			
				|  |  | +        // 添加钻石流水记录
 | 
	
		
			
				|  |  | +        $detail = "钻石充值";
 | 
	
		
			
				|  |  | +        $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
 | 
	
		
			
				|  |  | +        // 添加充值记录
 | 
	
		
			
				|  |  | +        $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 2,$isFirst,$preUserId);
 | 
	
		
			
				|  |  | +        if ($res1 && $res2 && $res3 && $res4) {
 | 
	
		
			
				|  |  | +            // 添加统计
 | 
	
		
			
				|  |  | +            $userInfo->chargecount = $userInfo->chargecount + $payamount;
 | 
	
		
			
				|  |  | +            $userInfo->chargetime = time();
 | 
	
		
			
				|  |  | +            $userInfo->save();
 | 
	
		
			
				|  |  | +            $userService = new UserService();
 | 
	
		
			
				|  |  | +            $userService->inviteMoney(['user_id'=>$orderInfo["user_id"]]);
 | 
	
		
			
				|  |  | +            // +EXP 充值任意金额
 | 
	
		
			
				|  |  | +            \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "5EMwg7la", 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 查询今日充值记录
 | 
	
		
			
				|  |  | +            $today = strtotime(date("Y-m-d 00:00:00"));
 | 
	
		
			
				|  |  | +            $rechargeMoney = \app\common\model\RecharOrder::where(["user_id" => $orderInfo["user_id"], "createtime" => ["gt", $today]])->sum("money");
 | 
	
		
			
				|  |  | +            if ($rechargeMoney >= 100) {
 | 
	
		
			
				|  |  | +                // +EXP 充值超过100
 | 
	
		
			
				|  |  | +                \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "DaCVgOLu", 1);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            $res1 = $orderModel->update(["status" => -1], ["order_no" => $out_trade_no]);
 | 
	
		
			
				|  |  | +            if (!$res1) {
 | 
	
		
			
				|  |  | +                throw new Exception('更新充值状态失败:'.$out_trade_no);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  |       * 支付回调
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      public function wechatkjnotify()
 |