dao = $dao; } /** * Common: 公共查询模型 * Author: wu-hui * Time: 2024/02/01 14:56 * @param $search * @return \app\common\model\marketing\AgentApply */ public function getSearchModel($search){ return $this->dao->searchList($search); } // 提交申请信息(同步生成订单) public function editApplyInfo($params){ return Db::transaction(function() use ($params){ // 生成申请信息 $applyInfoKeys = array_flip((array)[ "uid", "pid", "agent_type", "contact_name", "contact_phone", "province_id", "city_id", "area_id", "street_id", "address", "mer_name", "mer_class_id", "mer_type_id", "mer_images" ]); $applyInfo = array_intersect_key($params['data'], $applyInfoKeys); // 支付信息 $payInfo = array_intersect_key($params['data'],array_flip((array)["pay_type","return_url"])); $payResult = []; // 根据操作类型进行对应的处理 if($params['agentApplyId'] > 0){ // 编辑 debug("开发中......"); return '成功'; } else{ // 添加 是否需要支付 $payMoney = 0;// 默认 无需支付 $config = app()->make(AgentRepository::class)->getConfig(); switch ((int)$applyInfo['agent_type']) { case 2: $payMoney = $config['province_money'] ?? 0;break; case 3: $payMoney = $config['field_staff_money'] ?? 0;break; case 4: $payMoney = $config['internal_staff_money'] ?? 0;break; case 5: $payMoney = $config['operator_money'] ?? 0;break; case 6: $payMoney = $config['partner_money'] ?? 0;break; case 7: $payMoney = $config['mer_money'] ?? 0;break; case 8: $payMoney = $config['delivery_money'] ?? 0;break; } // 判断:是否需要支付 需要支付生成订单并且获取支付信息 $orderId = 0;// 默认 无需支付、无订单信息 if((float)$payMoney > 0){ $userInfo = $params['user_info'] ?? []; $payInfo['money'] = (float)$payMoney; // 发起支付 $groupOrder = app() ->make(LockService::class) ->exec('online_order.create',function() use ($payInfo,$userInfo){ $payType = array_search($payInfo['pay_type'],StoreOrderRepository::PAY_TYPE); return app() ->make(StoreOrderCreateRepository::class) ->onlinePayment($payType,$payInfo,$userInfo, 32); }); $payResult = app() ->make(StoreOrderRepository::class) ->pay($payInfo['pay_type'],$userInfo,$groupOrder,$payInfo['return_url'],$params['is_app']); // 子订单只存在一个 直接查询即可 $orderId = app()->make(StoreOrderRepository::class) ->getSearch([]) ->where('group_order_id',$groupOrder->group_order_id) ->value('order_id'); } // 生成申请信息 $applyInfo['order_id'] = $orderId; $this->dao->create($applyInfo); return $payResult; } }); } }