"套餐升级", "2"=>"充值积分", "3"=>"简历置顶", "4"=>"醒目标签", "5"=>"简历模板", "6"=>"简历包", "7"=>"短信包", "8"=>"职位置顶", "9"=>"职位紧急", "10"=>"企业模板", "12"=>"预约刷新职位", "13"=>"职位刷新", "14"=>"简历下载", "15"=>"简历包", "16"=>"招聘会包", ]; /** * OrderService constructor. * @param $orderRepository * @param $setmealRepository * @param $companyRepository * @param $memberPointRepository * @param $serviceService * @param $memberLogRepository * @param $membersChargeLogRepository * @param $memberHandselRepository * @param $setmealIncrementsRepository * @param $memberSetmealRepository * @param $memberRepository * @param $resumeRepository * @param $companyDownResumeRepository * @param $invoiceRepository * @param $paymentRepository * @param $invoiceCategoryRepository * @param $payService * @param $queueAutoRefreshRepository * @param $promotionRepository * @param $jobsRepository * @param $smsService * @param $membersSetmealLogRepository */ public function __construct(MembersSetmealLogRepository $membersSetmealLogRepository,OrderRepository $orderRepository, SmsService $smsService, JobsRepository $jobsRepository, PromotionRepository $promotionRepository, QueueAutoRefreshRepository $queueAutoRefreshRepository, PayService $payService, InvoiceCategoryRepository $invoiceCategoryRepository, PaymentRepository $paymentRepository, InvoiceRepository $invoiceRepository, MembersChargeLogRepository $membersChargeLogRepository, MemberLogRepository $memberLogRepository, ServiceService $serviceService, MemberPointRepository $memberPointRepository, SetmealRepository $setmealRepository, CompanyRepository $companyRepository, MemberHandselRepository $memberHandselRepository, SetmealIncrementsRepository $setmealIncrementsRepository, MemberSetmealRepository $memberSetmealRepository, MemberRepository $memberRepository, ResumeRepository $resumeRepository, CompanyDownResumeRepository $companyDownResumeRepository) { $this->orderRepository = $orderRepository; $this->setmealRepository = $setmealRepository; $this->companyRepository = $companyRepository; $this->memberPointRepository = $memberPointRepository; $this->serviceService = $serviceService; $this->memberLogRepository = $memberLogRepository; $this->membersChargeLogRepository = $membersChargeLogRepository; $this->memberHandselRepository = $memberHandselRepository; $this->setmealIncrementsRepository = $setmealIncrementsRepository; $this->memberSetmealRepository = $memberSetmealRepository; $this->memberRepository = $memberRepository; $this->resumeRepository = $resumeRepository; $this->companyDownResumeRepository = $companyDownResumeRepository; $this->invoiceRepository = $invoiceRepository; $this->paymentRepository = $paymentRepository; $this->invoiceCategoryRepository = $invoiceCategoryRepository; $this->payService = $payService; $this->queueAutoRefreshRepository = $queueAutoRefreshRepository; $this->promotionRepository = $promotionRepository; $this->jobsRepository = $jobsRepository; $this->smsService = $smsService; $this->membersSetmealLogRepository=$membersSetmealLogRepository; } /**订单列表 * @param $request * @return array */ public function orderList($request, $user) { $order_type_choose = ['setmeal'=>'套餐订单','increment'=>'增值服务订单','points'=>'积分订单']; $pay_status_choose = [1=>'未支付',2=>'已完成',3=>'已取消']; $type = isset($request['type'])?$request['type']:""; $is_pay = isset($request['is_pay'])?$request['is_pay']:0; $where = []; $map = []; switch ($type) { case 'setmeal': $where = ['1']; break; case 'increment': $where= ['3','4','6','7','8','9','10','12','15','16']; break; case "points": $where = ['2']; break; default: $where = ['1','2','3','4','6','7','8','9','10','12','13','14','15','16']; } if ($is_pay) { $map['is_pay'] = $is_pay; } $map['uid'] = $user->id; $map['utype'] = 1; $orderList = $this->orderRepository->orderList($map, $where); foreach ($orderList as $key => $value) { $orderList[$key]->invoice = $this->invoiceRepository->getOne($value->id, $user); } $param_array = ['type','is_pay']; $params= array(); if ($request) { foreach ($request as $k => $v) { if (in_array($k, $param_array)) { $params[$k] = $v; } } } $result = [ 'orderList'=>$orderList, 'params'=>$params, 'type'=>$type, 'is_pay'=>$is_pay, 'order_type_choose'=>$order_type_choose, 'pay_status_choose'=>$pay_status_choose, 'order_type'=>$this->order_type, ]; return $result; } public function orderDetail($id, $user) { $order_type = [1=>'套餐升级',2=>'充值积分',3=>'简历置顶',4=>'醒目标签',5=>'简历模板',6=>'简历包',7=>'短信包',8=>'职位置顶',9=>'职位紧急',10=>'企业模板',11=>'诚聘通',12=>'预约刷新职位',13=>'职位刷新',14=>'简历下载',15=>'简历包',14=>'招聘会包']; if (!$order = $this->orderRepository->getOrder(['id'=>$id,'uid'=>$user->id])) { throw new ResponseException('无此订单!'); } if(is_array(unserialize($order->params))){ $order->params_arr =unserialize($order->params); }else{ $order->params_arr =json_decode(unserialize($order->params),true); } $order->discount_money =floatval(intval($order->pay_points)/config('aix.companyset.points.points_set.payment_rate')); $old_price = $this->getOldPrice($order); $order->old_price = $old_price?$old_price:$order->amount; $res['user'] = $user; $res['order'] = $order; $res['open_invoice'] = config('aix.companyset.comset.com_set.open_invoice'); $res['invoice'] = $this->invoiceRepository->getOneInvoice($id, $user); $res['order_type_cn'] = $order_type[$res['order']->order_type]; $res['mysetmeal'] = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype); $res['payment_info'] = $this->paymentRepository->findByField(['alias'=>$res['order']->payment]); $res['myPoints'] = $this->memberPointRepository->getComPointsById($user->id, 1); $res['payment_rate'] = config('aix.companyset.points.points_set.payment_rate'); $res['points_enough'] = 1; if ($res['myPoints']->points < $order->pay_points) { $res['points_enough'] = 0; } if ($res['order']->is_pay == 2 || $res['order']->is_pay == 3) { $category = $this->invoiceCategoryRepository->get()->toArray(); $category_arr = []; foreach ($category as $key => $val) { $category_arr[$val['id']] = $val; } $res['category'] = $category_arr; } $res["orderExplain"]=config("aix.system.pay.offline.service_tel"); $mysetmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype); //获取买的套餐信息 switch ($order->order_type){ case 1: //套餐升级 $setmealIncr=$this->setmealRepository->find($order->setmeal); $setmealIncrDay=$setmealIncr->days; //理因到期时间 $expireTimeBase=date("Y-m-d H:i:s",strtotime("+{$setmealIncrDay} day",$order->payment_time)); $res['expireTime']=$expireTimeBase; break; case 2:case 10:case 5://充值积分 $res['expireTime']="无期限"; break; case 7:case 14:case 15:case 16: $res['expireTime']="无期限"; break; case 8: case 9: case 12: case 13: try{ //因为有那个单个的职位刷新 没有增值服务 $setmealIncr=$this->setmealIncrementsRepository->find($order->setmeal); $setmealIncrDay=$setmealIncr->value; //理因到期时间 $expireTimeBase=date("Y-m-d H:i:s",strtotime("+{$setmealIncrDay} day",$order->payment_time)); $expireTime=strtotime($expireTimeBase); //我会员的结束时间小于套餐的到期时间 if (strtotime($expireTimeBase)>strtotime($mysetmeal->endtime)) { $expireTime=$mysetmeal->endtime; } if($mysetmeal->endtime==0){//免费的 $expireTime=strtotime($expireTimeBase); } $res['expireTime']=date("Y-m-d H:i:s",$expireTime); }catch (\Exception $exception){ $res['expireTime']="--"; } break; default: $res['expireTime']="--"; break; } if($order->is_pay==3){ $res['expireTime']="--"; $res['payment_time']="--"; } return $res; } /** * 订单详情页获取原价 */ protected function getOldPrice($order) { $arr = [6,7,8,9,12]; if (in_array($order->order_type, $arr)) { $increment = $this->setmealIncrementsRepository->find($order->setmeal); return $increment->price; } else { return false; } } public function orderPayRepeat($id) { $user = auth('web-company')->user(); $orderInfo = $this->orderRepository->find($id); $myPoints = $this->memberPointRepository->getComPointsById($user->id, 1); if ($orderInfo->pay_points > 0 && $myPoints->points < $orderInfo->pay_points) { $back_url = \Illuminate\Support\Facades\URL::previous(); return $this->showMessage('积分不足,无法完成支付,请重新下单!', $back_url, true, '上一页', '3'); // throw new ResponseException('积分不足,无法完成支付,请重新下单!'); } if ($orderInfo->payment == 'wechat') { $type = 'scan'; } else { $type = 'web'; } $payOrder = new PayOrder(); $payOrder->trade_no = $orderInfo->oid; $payOrder->subject = '购买' . $orderInfo->service_name; $payOrder->detail = $orderInfo->description; $payOrder->price = $orderInfo->pay_amount; $payOrder->callback = "App\Services\Common\OrderService.orderPaySave"; $result = $this->payService->pay($orderInfo->payment, $type, $payOrder); if ($orderInfo->payment == 'wechat') { return response()->json([ 'status' => 1, 'tradeCode' => get_qrcode_html($result->code_url), 'tradeNo' => $orderInfo->oid, ]); } else { return $result; } } public function mobileOrderPayRepeat($id) { $user = auth('web-company')->user(); $orderInfo = $this->orderRepository->find($id); $myPoints = $this->memberPointRepository->getComPointsById($user->id, 1); if ($orderInfo->pay_points > 0 && $myPoints->points < $orderInfo->pay_points) { $back_url = \Illuminate\Support\Facades\URL::previous(); return $this->showMessage('积分不足,无法完成支付,请重新下单!', $back_url, true, '上一页', '3'); } if ($orderInfo->payment == 'wechat') { $type = 'wap'; } else { $type = 'wap'; } $payOrder = new PayOrder(); $payOrder->trade_no = $orderInfo->oid; $payOrder->subject = '购买' . $orderInfo->service_name; $payOrder->detail = $orderInfo->description; $payOrder->price = $orderInfo->amount; $payOrder->callback = "App\Services\Common\OrderService.orderPaySave"; if ($orderInfo->payment == 'wechat') { if (!is_weixin()) { $type = 'wap'; } else { //预留 } $payOrder->return_url=route('mobile.common.orderWechat', ['oid'=>$payOrder->trade_no]); } else { $type = 'wap'; $payOrder->return_url=route('mobile.firm.service.order.index'); } $result = $this->payService->pay($orderInfo->payment, $type, $payOrder); return $result; } public function orderPaySave(PayOrder $payOrder) { $trade_no = $payOrder->trade_no; $this->orderRepository->updateStatus($trade_no, ['is_pay'=>2, 'payment_time'=>time()]); } /**订单删除 * @param $id * @return \Illuminate\Http\JsonResponse * @throws \ErrorException * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function orderDel($id,$user) { $info = $this->orderRepository->findWhere(['id'=>$id,'uid'=>$user->id])->first(); if (empty($info)){ return response()->json(['status'=>0,'msg'=>'没有这个订单']); } if ($info->is_pay == 2) { return response()->json(['status'=>0,'msg'=>'已完成的订单不允许删除!']); } if (!$this->orderRepository->delete($id)) { return response()->json(['status'=>0,'msg'=>'删除订单失败!']); } $this->memberLogRepository->createLog($user, 9005, [$info->oid]); return response()->json(['status'=>1,'msg'=>'删除订单成功!']); } public function invoiceSave($data, $user) { $has = $this->invoiceRepository->getOne($data['order_id'], $user); if ($has) { return response()->json(['status'=>0,'msg'=>"您已经索取过发票了!"]); } if ($data['title'] == 2) { unset($data['organization']); } $order = $this->orderRepository->find($data['order_id']); $data['order_num'] = $data['order_id']; $data['oid'] = $order->oid; $data['uid'] = $user->id; $order_id = $data['order_id']; unset($data['order_id']); if (!$this->invoiceRepository->create($data)) { return response()->json(['status'=>0,'msg'=>"操作失败!"]); } $this->memberLogRepository->createLog($user, 9003, [$order_id]); return array('status'=>1,'msg'=>'索取发票成功!','data'=>$this->invoiceRepository->getOne($data['order_num'], $user)); } /**订单取消 * @param $id * @return \Illuminate\Http\JsonResponse * @throws \ErrorException * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function orderCancel($id, $user) { $info = $this->orderRepository->findWhere(['uid'=>$user->id],$id)->first(); if (!$info) { return response()->json(['status'=>0,'msg'=>'没有找到对应的订单!']); } elseif ($info->is_pay !=1) { return response()->json(['status'=>0,'msg'=>'该订单不允许取消!']); } if (!$this->orderRepository->update(['is_pay'=>3], $id)) { return response()->json(['status'=>0,'msg'=>'取消订单失败!']); } $this->memberLogRepository->createLog($user, 9004, [$info->oid]); return response()->json(['status'=>1,'msg'=>'取消订单成功!']); } /** * 电子票据 */ // public function enote($id) // { // // // $result = []; // return $result; // } /** * @param PayOrder $payOrder */ public function updateOrder(PayOrder $payOrder) { $trade_no = $payOrder->trade_no; Order::where(['oid'=>$trade_no])->update(['is_pay'=>2,'payment_time'=>time()]); $order = Order::where(['oid'=>$trade_no])->first(); $input = json_decode($order->charge); $resume = Resume::where('id', $input->resume_id)->first(); $uid = $resume->uid; $TYPE = $input->type; $member = Member::where('id', $uid)->first(); $uytpe = $member->utype; $POINTS = MembersPoint::where(['uid'=>$uid, 'utype'=>$uytpe])->first(); if ($order->pay_points > 0) { $STATUS = $TYPE=='tag' ? '简历标签' : '简历置顶'; if ($POINTS) { if ($POINTS->points>=$order->pay_points) { MembersPoint::where( ['uid'=>$uid,'utype'=>$uytpe] )->decrement('points', $order->pay_points); } else { MembersPoint::where( ['uid'=>$uid,'utype'=>$uytpe] )->update(['points'=>0]); } } MembersHandsel::create( [ 'uid'=>$uid, 'utype'=>$uytpe, 'htype'=>'','htype_cn'=>$STATUS.$input->days.'天', 'operate'=>2,'points'=>$order->pay_points ] ); } if ($TYPE=='tag') { $categorys = Category::where('id', $input->tagid)->first(); $personal_service_tags = PersonalServiceTag::where('days', $input->days)->first(); $tag_logs = PersonalServiceTagLog::where(['resume_id'=>$input->resume_id,'resume_uid'=>$uid])->first(); if ($tag_logs) { $dat['days']= $input->days; $dat['points']= $personal_service_tags->points; $dat['tag_id']= $input->tagid; $dat['tag_cn']= $categorys->demand; $dat['addtime']= time(); $dat['endtime']= strtotime("+".$input->days." day"); PersonalServiceTagLog::where( ['resume_id'=>$input->resume_id,'resume_uid'=>$uid] )->update($dat); } else { $dat['resume_id']= $input->resume_id; $dat['resume_uid']= $uid; $dat['days']= $input->days; $dat['points']= $personal_service_tags->points; $dat['tag_id']= $input->tagid; $dat['tag_cn']= $categorys->demand; $dat['addtime']= time(); $dat['endtime']= strtotime("+".$input->days." day"); PersonalServiceTagLog::create($dat); } } else { Resume::where('id', $input->resume_id)->update(['stick'=>1,'stime'=>strtotime("+".$input->days." day")]); $stick_logs = PersonalServiceStickLog::where( ['resume_id'=>$input->resume_id,'resume_uid'=>$uid] )->first(); $personal_service_sticks = PersonalServiceStick::where('days', $input->days)->first(); if ($stick_logs) { $dat['days']= $input->days; $dat['points']= $personal_service_sticks->points; $dat['addtime']= time(); $dat['endtime']= strtotime("+".$input->days." day"); PersonalServiceStickLog::where( ['resume_id'=>$input->resume_id,'resume_uid'=>$uid] )->update($dat); } else { $dat['resume_id']= $input->resume_id; $dat['resume_uid']= $uid; $dat['days']= $input->days; $dat['points']= $personal_service_sticks->points; $dat['addtime']= time(); $dat['endtime']= strtotime("+".$input->days." day"); PersonalServiceStickLog::create($dat); } } return; } /** * @param $user * @param $order_type * @param $amount * @param $pay_amount * @param $pay_points * @param $service_name * @param $payment * @param $payment_cn * @param $description * @param $is_paid * @param $points * @param $setmeal * @param $payment_time * @param $params * @param $discount * @param $notes * @return Order */ public function addOrder($user, $order_type, $amount, $pay_amount, $pay_points, $service_name, $payment, $payment_cn, $description, $is_paid, $points, $setmeal, $payment_time, $params,$my_discount="") { return $this->orderRepository->addOrder($user, $order_type, $amount, $pay_amount, $pay_points, $service_name, $payment, $payment_cn, $description, $is_paid, $points, $setmeal, $payment_time, $params,$my_discount); } /**支付成功后回调此函数,修改各表值,生成记录 * @param PayOrder $payOrder * @throws \ErrorException * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function updateCompany(PayOrder $payOrder) { //支付成功后操作== 修改订单表中状态和支付时间 $trade_no = $payOrder->trade_no; $data = [ 'is_pay'=>2, 'payment_time'=>time(), ]; if ($payOrder->attch) { $data['notes'] = $payOrder->attch; } $this->orderRepository->updateStatus($trade_no, $data); $order = $this->orderRepository->getOneOder($trade_no); $params = unserialize($order->params); $setmeal_id = $params['setmeal_id']; $id = $params['company_id']; $utype = $params['utype']; $username = $params['username']; $subsite_id = $params['subsite_id']; $setmealInfo = $this->setmealRepository->find($setmeal_id); $user =(object)['id'=>$id,'utype'=>$utype,'username'=>$username,'subsite_id'=>$subsite_id]; $this->serviceService->setMembersSetmeal($user, $setmeal_id); switch ($order->pay_type) { case 1: $paytype = '积分兑换'; break; case 2: $paytype = '现金'; break; case 3: $paytype = '现金+积分'; break; } if ($order->pay_type !=1) { $comInfo = $this->companyRepository->find($id, ['mobile']); if ($comInfo->mobile) { $this->smsService->sendSms($comInfo->mobile, Smser::TEMPLATE_SMS_ORDER, ['sitename'=>config('aix.system.site.site.site_name'),'oid'=>$trade_no,'paymenttpye'=>$order->payment_cn,'amount'=>$order->pay_amount,'sitedomain'=>config('aix.system.site.site.site_domain')]); } } } /**查询订单ID * @param $tradeNo * @return \Illuminate\Http\JsonResponse */ public function getOrderbyTradeNo($tradeNo) { $orderInfo = $this->orderRepository->getOneOder($tradeNo); if ($orderInfo->is_pay != 2) { return response()->json(['status'=>0]); } return response()->json(['status'=>1]); } public function pointsSave(PayOrder $payOrder) { $trade_no = $payOrder->trade_no; $this->orderRepository->updateStatus($trade_no, ['is_pay'=>2, 'payment_time'=>time()]); $order = $this->orderRepository->getOneOder($trade_no); $user = $this->companyRepository->getCompanyInfo(['id'=>$order->uid]); if ($user->mobile) { $this->smsService->sendSms($user->mobile, Smser::TEMPLATE_SMS_ORDER, ['sitename'=>config('aix.system.site.site.site_name'),'oid'=>$trade_no,'paymenttpye'=>$order->payment_cn,'amount'=>$order->pay_amount,'sitedomain'=>config('aix.system.site.site.site_domain')]); } $points = $order->amount*config('aix.companyset.points.points_set.payment_rate'); //增加积分记录 $handsel['uid'] = $user->id; $handsel['utype'] = $user->utype; $handsel['htype'] = 'cash_buy_points'; $handsel['htype_cn'] = $order->service_name; $handsel['operate'] = 1; $handsel['points'] = $points; $this->memberHandselRepository->create($handsel); $this->setPointByOrder($order);//更新邓积分 } //根据传入订单,给积分总量++ public function setPointByOrder(Order $order){ if (empty($order) || empty($order->params)){ throw new \Exception("订单错误!"); } $pointsArr=unserialize($order->params); $points=$pointsArr["points"]; $this->memberPointRepository->reportDeal($order->uid,$order->utype,1,$points); } /** * @param PayOrder $payOrder */ public function incrementSave(PayOrder $payOrder) { $trade_no = $payOrder->trade_no; $data = [ 'is_pay'=>2, 'payment_time'=>time(), ]; if ($payOrder->attch) { $data['notes'] = $payOrder->attch; } $this->orderRepository->updateStatus($trade_no, $data); $order = $this->orderRepository->getOneOder($trade_no); $user = $this->companyRepository->getCompanyInfo(['id'=>$order->uid]); if ($user->mobile) { $this->smsService->sendSms($user->mobile, Smser::TEMPLATE_SMS_ORDER, ['sitename'=>config('aix.system.site.site.site_name'),'oid'=>$trade_no,'paymenttpye'=>$order->payment_cn,'amount'=>$order->pay_amount,'sitedomain'=>config('aix.system.site.site.site_domain')]); } $this->orderPaidResumeIncrement($order, $user); } public function orderPaidResumeIncrement($order, $user) { //处理支付方式 switch ($order->pay_type) { case 1: $paytype = '积分抵扣'; break; case 2: $paytype = $order->payment_cn; break; case 3: $paytype = $order->payment_cn.'+积分抵扣'; break; } //会员日志 - 添加创建增值服务订单 $this->memberLogRepository->createLog($user, 9001, array($order->oid,$paytype,'')); //如果有积分抵扣 - 修改会员积分信息 if ($order->pay_points > 0) { $p_rst = $this->memberPointRepository->reportDeal($user->id, $user->utype, 2, $order->pay_points); if ($p_rst) { //添加会员积分操作日志 $stime = date('Y-m-d H:i:s', time()); $handsel['uid'] = $user->id; $handsel['utype'] = $user->utype; $handsel['htype'] = ''; $handsel['htype_cn'] = $order->service_name; $handsel['operate'] = 2; $handsel['points'] = $order->pay_points; $this->memberHandselRepository->create($handsel); } } //修改会员套餐相关字段 try{ $setmeal_increment = $this->setmealIncrementsRepository->getIncrementCache('', $order->setmeal); if ($setmeal_increment->cat == 'auto_refresh_jobs') { //智能刷新 $params = unserialize($order->params); $days = $params['days']; $nowtime = time(); for ($i=0; $i < $days*4; $i++) { $timespace = 3600*6*$i; $this->queueAutoRefreshRepository->create(['uid'=>$user->id,'pid'=>$params['jobs_id'],'type'=>1,'refreshtime'=>$nowtime+$timespace]); } } elseif ($setmeal_increment->cat =='sms') { //增加短信 $this->companyRepository->updataSmsNum($user->id, 1, $setmeal_increment->value); event_search_update(Company::class, (string)$user->id, 'update'); } elseif ($setmeal_increment->cat =='stick' || $setmeal_increment->cat =='emergency') { //职位置顶和紧急 $params = unserialize($order->params); $data['jobid'] = $params['jobs_id']; $data['starttime'] = $params['starttime']; $data['endtime'] = $params['endtime']; $data['days'] = $params['days']; if ($setmeal_increment->cat =='stick') { $data['ptype'] = 1; } else { $data['ptype'] = 2; } $data['companyid'] = $user->id; $this->promotionRepository->create($data); $stickEmergency[$setmeal_increment->cat] = 1; if ($data['ptype'] == 1) { $stickEmergency['deadline'] = $data['starttime']; } $this->jobsRepository->update($stickEmergency, $params['jobs_id']); event_search_update(Jobs::class, (string)$params['jobs_id'], 'update'); } else { //职位、招聘会、简历 if ($setmeal_increment->cat == 'jobs') { $setmeal_increment->cat = 'jobs_meanwhile'; } $this->memberSetmealRepository->incrementData(array('uid'=>$user->id), $setmeal_increment->cat, $setmeal_increment->value); } }catch (\Exception $e){ } $order_type=$order->order_type; //订单类型 $order_params=unserialize($order->params);Log::info($order_params); Log::info($order_type); switch ($order_type){ case "12": case "13": { //智能刷新 $this->jobsRepository->jobsRefresh($order_params['jobs_id']); break; } } //会员日志 - 开通服务 // $this->memberLogRepository->createLog($user, 9002, array($order->service_name,$paytype,'')); } public function orderPaid(PayOrder $payOrder) { //修改订单表中状态和支付时间 $trade_no = $payOrder->trade_no; $this->orderRepository->updateStatus($trade_no, ['is_pay'=>2, 'payment_time'=>time()]); $order = $this->orderRepository->getOneOder($trade_no); //获取订单信息 //会员信息 if ($order->utype == 1) { $user = $this->companyRepository->getCompanyInfo(array('id'=>$order->uid,'utype'=>1)); $email_url = route('com.index'); } else { $user = $this->memberRepository->getMemberById($order->uid); $email_url = route('person.index'); } $email = $user->email; if ($order->amount && $email && $user->email_audit == 1) { $emailService = new EmailService; $emailService->sendMail($email, 'mail_payment', [], ['sitedomain'=>$email_url]); } if ($order->order_type == 6) { $this->orderPaidResumeIncrement($order, $user); } elseif ($order->order_type == 14) { $this->orderPaidSingleResumeDownload($order, $user); } } public function orderPaidSingleResumeDownload($order, $user) { $params = unserialize($order->params); $uid = $order->uid; $deductible = $order->pay_points; $resume_id = $params['resume_id']; //有抵扣积分 - 修改会员积分、添加会员积分操作日志 if ($deductible>0) { $p_rst = $this->memberPointRepository->reportDeal($user->id, $user->utype, 2, $deductible); if ($p_rst) { $stime = date('Y-m-d H:i:s', time()); $handsel['uid'] = $user->id; $handsel['utype'] = $user->utype; $handsel['htype'] = ''; $handsel['htype_cn'] = $order->service_name; $handsel['operate'] = 2; $handsel['points'] = $deductible; $this->memberHandselRepository->create($handsel); } } //获取企业信息 $company = $this->companyRepository->getCompanyInfo(array('id'=>$user->id)); //循环操作简历 - 添加简历下载记录 $resume_arr = $this->resumeRepository->getResumesWithInfo($resume_id); if ($resume_arr->toArray()) { foreach ($resume_arr as $key => $value) { $addarr = array(); $memberInfo = $value->memberInfos; $addarr['resume_id'] = $value->id; if ($memberInfo->display_name == "2") { $addarr['resume_name'] = "N" . str_pad($value->id, 7, "0", STR_PAD_LEFT); } elseif ($memberInfo->display_name == "3") { if ($memberInfo->sex == 1) { $addarr['resume_name'] = cut_str($memberInfo->realname, 1, 0, "先生"); } elseif ($memberInfo->sex == 2) { $addarr['resume_name'] = cut_str($memberInfo->realname, 1, 0, "女士"); } } else { $addarr['resume_name'] = $memberInfo->realname; } $addarr["resume_uid"]=$value->uid; $addarr["company_uid"]=$company->id; $addarr["company_name"]=$company->companyname; $addarr['down_addtime'] = time(); $addarr['is_reply'] = 0; $info = $this->companyDownResumeRepository->create($addarr); $this->membersSetmealLogRepository->createLog($user,"下载了简历【".$addarr['resume_name']."】"); } } //添加会员操作日志 - 开通服务 if ($deductible>0) { $log_payment = $order->payment_cn.'+积分抵扣'; } else { $log_payment = $order->payment_cn; } // $this->memberLogRepository->createLog($user, '9002', array($order->service_name,$log_payment,'')); } public function incrementTplUpdate(PayOrder $payOrder) { $trade_no = $payOrder->trade_no; $order = Order::where(['oid'=>$trade_no])->first(); $order->is_pay = 2; $order->payment_time = time(); $order->save(); $input = json_decode($order->charge); $tpl = Tpl::find($input->project_id); $points = $input->is_deductible ? $input->deductible : 0; CompanyTpl::create(['uid'=>$input->uid,'tplid'=>$input->project_id]); MembersHandsel::create( [ 'uid'=>$input->uid, 'utype'=>$input->utype, 'htype'=>'increment_tpl', 'htype_cn'=>'购买企业模板:'.$tpl->name, 'operate'=>2, 'points'=>$points ] ); if ($points) { MembersPoint::where(['uid'=>$input->uid,'utype'=>$input->utype])->decrement('points', $points); } return; } public function incrementPersonTplUpdate(PayOrder $payOrder) { $trade_no = $payOrder->trade_no; $order = Order::where(['oid'=>$trade_no])->first(); $order->is_pay = 2; $order->payment_time = time(); $order->save(); $input = json_decode($order->charge); $tpl = Tpl::find($input->tplid); PersonTpl::create(['uid'=>$input->uid,'tplid'=>$input->tplid]); MembersHandsel::create( [ 'uid'=>$input->uid, 'utype'=>$input->utype, 'htype'=>'increment_tpl', 'htype_cn'=>'购买简历模板:'.$tpl->name, 'operate'=>2, 'points'=>$input->points, ] ); return; } public function canselOrder() { $order_id = []; $res = $this->orderRepository->canselOrder(); if($res){ $order_id = array_column($res,'id'); } return $order_id; } }