Browse Source

短信

develop
lemon 4 years ago
parent
commit
6dc7286067
  1. 21
      app/Http/Controllers/Api/VerificationController.php
  2. 39
      app/Providers/DemandBiddingServiceProvider.php
  3. 7
      app/Providers/ProductServiceProvider.php
  4. 18
      app/Traits/SmsTraits.php
  5. 9
      config/sms.php

21
app/Http/Controllers/Api/VerificationController.php

@ -4,9 +4,13 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Agent; use App\Models\Agent;
use App\Models\Order; use App\Models\Order;
use App\Models\Supplier;
use App\Models\Product; use App\Models\Product;
use App\Models\OrderProductItem;
use App\Models\User; use App\Models\User;
use App\Common\OrderStatus; use App\Common\OrderStatus;
use App\Service\SmsService;
use App\Traits\SmsTraits;
use EasyWeChat\Factory; use EasyWeChat\Factory;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
@ -22,9 +26,8 @@ class VerificationController extends Controller
return $this->error('参数错误'); return $this->error('参数错误');
} }
list($id, $verify_code) = $code_arr; list($id, $verify_code) = $code_arr;
$order = Order::with('agentProduct:id,verifier')
->where(['agent_id' => $this->agent_id, 'verify_code' => $verify_code])
$order = Order::with(['agentProduct:id,verifier','user','agent'])
->where(['verify_code' => $verify_code])
->whereIn('status', [OrderStatus::PAID, OrderStatus::PAID_RETAINAGE, OrderStatus::OFFLINE_PAID]) ->whereIn('status', [OrderStatus::PAID, OrderStatus::PAID_RETAINAGE, OrderStatus::OFFLINE_PAID])
->find($id); ->find($id);
if (!$order) { if (!$order) {
@ -39,7 +42,17 @@ class VerificationController extends Controller
} }
$order->status = OrderStatus::SUCCESS; $order->status = OrderStatus::SUCCESS;
$order->save();
if ($order->save()) {
if(env('SMS_SWITCH','') == true) {
if (!empty($order->user->mobile)) {
(new SmsService)->send('verify', [$order->order_no,SmsTraits::$systeaNameText['user']], [$order->user->mobile]);//用户
}
$supplierIds = OrderProductItem::query()->with('supplier')->where('order_id',$order->id)->distinct()->pluck('supplier_id');
$phone = Supplier::query()->whereIn('id',$supplierIds)->pluck('contact_phone')->toArray();
(new SmsService)->send('verify', [$order->order_no,SmsTraits::$systeaNameText['supplier']], $phone);//供应商
(new SmsService)->send('verify', [$order->order_no,SmsTraits::$systeaNameText['agent']], [$order->agent->contact_phone]);//代理商
}
}
return $this->success(); return $this->success();
} }

39
app/Providers/DemandBiddingServiceProvider.php

@ -6,6 +6,7 @@ use App\Models\Demand;
use App\Models\DemandBidding; use App\Models\DemandBidding;
use App\Service\SmsService; use App\Service\SmsService;
use App\Traits\DemandTraits; use App\Traits\DemandTraits;
use App\Traits\SmsTraits;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
@ -28,23 +29,25 @@ class DemandBiddingServiceProvider extends ServiceProvider
*/ */
public function boot() public function boot()
{ {
//DemandBidding::created(function ($order) {
// $demand = Demand::query()->with(['publisher'])->where('id',$order->demand_id)->first();
// if(!empty($demand->publisher->contact_phone)) {
// $sms = new SmsService();
// $sms->send('bidding',[$order->biddingUser->name,$demand->id,DemandTraits::$polymorphic[$demand->publisher_type]],[$demand->publisher->contact_phone]);
// }
//});
//
//
//Demand::updated(function ($demand) {
// //如果状态改变了
// if($demand->isDirty('bidding_id')) {
// if(!empty($demand->publisher->contact_phone)) {
// $sms = new SmsService();
// $sms->send('demand',[$demand->publisher->name,$demand->id,DemandTraits::$polymorphic[$demand->bidding_user_type]],[$demand->biddingUser->contact_phone]);
// }
// }
//});
DemandBidding::created(function ($order) {
if(env('SMS_SWITCH','') == true){
$demand = Demand::query()->with(['publisher'])->where('id', $order->demand_id)->first();
if (!empty($demand->publisher->contact_phone)) {
$sms = new SmsService();
$sms->send('bidding', [$order->biddingUser->name, $demand->id, SmsTraits::$systeaNameText['agent']], [$demand->publisher->contact_phone]);
}
}
});
Demand::updated(function ($demand) {
//如果状态改变了
if(env('SMS_SWITCH' , '') == true && $demand->isDirty('bidding_id')) {
if(!empty($demand->publisher->contact_phone)) {
$sms = new SmsService();
$sms->send('demand',[$demand->publisher->name,$demand->id,SmsTraits::$systeaNameText['supplier']],[$demand->biddingUser->contact_phone]);
}
}
});
} }
} }

7
app/Providers/ProductServiceProvider.php

@ -7,8 +7,10 @@ use App\Models\AgentProduct;
use App\Models\AgentProductItem; use App\Models\AgentProductItem;
use App\Models\AgentSetting; use App\Models\AgentSetting;
use App\Models\Category; use App\Models\Category;
use App\Models\Agent;
use App\Models\Product; use App\Models\Product;
use App\Service\SmsService; use App\Service\SmsService;
use App\Traits\SmsTraits;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -90,7 +92,10 @@ class ProductServiceProvider extends ServiceProvider
'product_id' => $product->id, 'product_id' => $product->id,
]); ]);
DB::commit(); DB::commit();
(new SmsService)->send('auto_shelves',[$product->supplier->name,now(),'代理商后台'],$product->supplier->contact_phone);
if(env('SMS_SWITCH','') == true) {
$phone = Agent::query()->where('id',$v)->value('contact_phone');
(new SmsService)->send('auto_shelves',[$product->supplier->name,now(),SmsTraits::$systeaNameText['agent']],[$phone]);
}
} catch (\Exception $e) { } catch (\Exception $e) {
Log::error('自动上架失败::' . $e->getTraceAsString()); Log::error('自动上架失败::' . $e->getTraceAsString());
DB::rollBack(); DB::rollBack();

18
app/Traits/SmsTraits.php

@ -0,0 +1,18 @@
<?php
namespace App\Traits;
trait SmsTraits
{
public static $systeaName = [
'agent',
'supplier',
'user',
];
public static $systeaNameText = [
'agent' => '代理商后台',
'supplier' => '供应商后台',
'user' => '海南小程序',
];
}

9
config/sms.php

@ -10,9 +10,10 @@ return [
'secret_key' => env('SECRET_KEY'), 'secret_key' => env('SECRET_KEY'),
'sign_name' => '领峰远扬', 'sign_name' => '领峰远扬',
'templates' => [ 'templates' => [
'bidding' => '1100494', //发标人:[{竞标人的公司名称}]参与了您发起的竞标[{编号}],详情请登录{系统名称}查看。
'demand' => '1100494', //竞标人:恭喜您中标啦!竞标[{编号}]已成功中标!详情请登录{系统名称}查看。
'auto_shelves' => '1100494', //代理商:供应商[{供应商名称}]在{时间}上传了一件新的产品,已为您自动上架,如需修改产品利润,请登录{系统名称}查看并修改。
'bidding' => '1076646', //{竞标人的公司名称}]参与了您发起的竞标{编号},详情请登录{系统名称}查看。
'demand' => '1100494', //恭喜您中标啦!竞标[{编号}]已成功中标!详情请登录{系统名称}查看。
'auto_shelves' => '1100494', //供应商[{供应商名称}]在{时间}上传了一件新的产品,已为您自动上架,如需修改产品利润,请登录{系统名称}查看并修改。
'verify' => '1076646', //您有一笔订单[{订单号}]已成功核销,详情请登录{系统名称}查看
] ]
]
],
]; ];
Loading…
Cancel
Save