diff --git a/app/AdminAgent/Controllers/DemandController.php b/app/AdminAgent/Controllers/DemandController.php index c22a9cf..1a778c0 100755 --- a/app/AdminAgent/Controllers/DemandController.php +++ b/app/AdminAgent/Controllers/DemandController.php @@ -4,6 +4,7 @@ namespace App\AdminAgent\Controllers; use App\AdminAgent\Actions\Grid\DemandConfirm; use App\AdminAgent\Lazys\DemandBiddingLazys; +use App\Common\AgentType; use App\Models\AgentProduct; use App\Models\Product; use App\Traits\ResponseHelper; @@ -147,17 +148,25 @@ class DemandController extends AdminController return json_encode($path); }); $form->hidden('deadline'); - $form->select('bidding_user_type','竞标用户类型') - ->when([2],function (Form $form){ - $form->select('agent_product_id','产品')->options(function (){ - return AgentProduct::query()->where('agent_id',Admin::user()->id)->where('status',1)->pluck('title','id'); - }); - }) - ->options([ - 1 => '供应商', - 2 => '地接' - ]) - ->default(1); + if (Admin::user()->type == AgentType::CLUSTER) { + $form->select('bidding_user_type', '竞标用户类型') + ->when([2], function (Form $form) { + $form->select('agent_product_id', '产品')->options(function () { + return AgentProduct::query()->where('agent_id', Admin::user()->id)->where('status', 1)->pluck('title', 'id'); + }); + }) + ->options([ + 1 => '供应商', + 2 => '地接' + ]) + ->default(1); + }else{ + $form->select('bidding_user_type', '竞标用户类型') + ->options([ + 1 => '供应商', + ]) + ->default(1); + } $form->decimal('price'); $form->number('stock'); $form->hidden('publisher_type'); diff --git a/app/Http/Controllers/Api/VerificationController.php b/app/Http/Controllers/Api/VerificationController.php index fcbea2c..42ddf41 100644 --- a/app/Http/Controllers/Api/VerificationController.php +++ b/app/Http/Controllers/Api/VerificationController.php @@ -4,9 +4,13 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Models\Agent; use App\Models\Order; +use App\Models\Supplier; use App\Models\Product; +use App\Models\OrderProductItem; use App\Models\User; use App\Common\OrderStatus; +use App\Service\SmsService; +use App\Traits\SmsTraits; use EasyWeChat\Factory; use Illuminate\Support\Facades\Storage; @@ -22,9 +26,8 @@ class VerificationController extends Controller return $this->error('参数错误'); } 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]) ->find($id); if (!$order) { @@ -39,7 +42,17 @@ class VerificationController extends Controller } $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(); } diff --git a/app/Providers/DemandBiddingServiceProvider.php b/app/Providers/DemandBiddingServiceProvider.php index e34011a..fbb0720 100644 --- a/app/Providers/DemandBiddingServiceProvider.php +++ b/app/Providers/DemandBiddingServiceProvider.php @@ -6,6 +6,7 @@ use App\Models\Demand; use App\Models\DemandBidding; use App\Service\SmsService; use App\Traits\DemandTraits; +use App\Traits\SmsTraits; use Illuminate\Support\Facades\Log; use Illuminate\Support\ServiceProvider; @@ -28,23 +29,25 @@ class DemandBiddingServiceProvider extends ServiceProvider */ 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('bidding',[$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]); + } + } + }); } } diff --git a/app/Providers/ProductServiceProvider.php b/app/Providers/ProductServiceProvider.php index b13c022..33f7b57 100644 --- a/app/Providers/ProductServiceProvider.php +++ b/app/Providers/ProductServiceProvider.php @@ -7,7 +7,10 @@ use App\Models\AgentProduct; use App\Models\AgentProductItem; use App\Models\AgentSetting; use App\Models\Category; +use App\Models\Agent; use App\Models\Product; +use App\Service\SmsService; +use App\Traits\SmsTraits; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; @@ -89,6 +92,10 @@ class ProductServiceProvider extends ServiceProvider 'product_id' => $product->id, ]); DB::commit(); + 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) { Log::error('自动上架失败::' . $e->getTraceAsString()); DB::rollBack(); diff --git a/app/Traits/SmsTraits.php b/app/Traits/SmsTraits.php new file mode 100644 index 0000000..566522e --- /dev/null +++ b/app/Traits/SmsTraits.php @@ -0,0 +1,18 @@ + '代理商后台', + 'supplier' => '供应商后台', + 'user' => '海南小程序', + ]; +} diff --git a/config/sms.php b/config/sms.php index cfa0a03..a8b311f 100644 --- a/config/sms.php +++ b/config/sms.php @@ -10,7 +10,10 @@ return [ 'secret_key' => env('SECRET_KEY'), 'sign_name' => '领峰远扬', 'templates' => [ - 'bidding' => '1100494' //{1}参与了您发起的竞标{2},详情请登录{3}查看。 + 'bidding' => '1076646', //{竞标人的公司名称}]参与了您发起的竞标{编号},详情请登录{系统名称}查看。 + 'demand' => '1100494', //恭喜您中标啦!竞标[{编号}]已成功中标!详情请登录{系统名称}查看。 + 'auto_shelves' => '1100494', //供应商[{供应商名称}]在{时间}上传了一件新的产品,已为您自动上架,如需修改产品利润,请登录{系统名称}查看并修改。 + 'verify' => '1076646', //您有一笔订单[{订单号}]已成功核销,详情请登录{系统名称}查看 ] - ] + ], ];