Просмотр исходного кода

Merge branch 'master' of e.coding.net:zdap/weixiu/weixiu_api into m--douyin

liugc 10 месяцев назад
Родитель
Сommit
fb01d43060

+ 3 - 0
app/adminapi/logic/goods/GoodsLogic.php

@@ -49,6 +49,7 @@ class GoodsLogic extends BaseLogic
             if((!$params['type'] || !$params['rate']) && $params['goods_status']==1){
                 throw new Exception('商品规格的绩效未配置,不允许上架');
             }
+            if(!in_array($params['type'],[1,3])) throw new Exception('商品绩效应为固定提点或工单结算金额');
 
             $params['goods_category_id'] = end($params['goods_category_ids']);
             if ($params['is_type'] == 1) {
@@ -152,6 +153,7 @@ class GoodsLogic extends BaseLogic
             if((!$params['type'] || !$params['rate']) && $params['goods_status']==1){
                 throw new Exception('商品规格的绩效未配置,不允许上架');
             }
+            if(!in_array($params['type'],[1,3])) throw new Exception('商品绩效应为固定提点或工单结算金额');
 
             $params['goods_category_id'] = end($params['goods_category_ids']);
             if ($params['is_type'] == 1) {
@@ -267,6 +269,7 @@ class GoodsLogic extends BaseLogic
     {
         Db::startTrans();
         try {
+            if(!in_array($params['type'],[1,3])) throw new Exception('商品绩效应为固定提点或工单结算金额');
             if(in_array($params['type'],[0,1,2])){
                 // 0-1
                 if($params['rate']>1){

+ 1 - 1
app/api/logic/PerformanceLogic.php

@@ -82,7 +82,7 @@ class PerformanceLogic extends BaseLogic
                 $retentionData['action'] = WorkerAccountLogEnum::INC;
                 $retentionData['worker_id'] = $work->master_worker_id;
                 $retentionData['work_id'] = $work->id;
-                $amount = bcmul($worker_price, bcdiv($masterWorkerInfo['installment_ratio'], 100, 4),2);
+                $amount = bcmul(bcsub($worker_price ,$work->spare_total), bcdiv($masterWorkerInfo['installment_ratio'], 100, 4),2);
                 //$amount = bcmul($settlement_amount, bcdiv($masterWorkerInfo['installment_ratio'], 100, 4),2);
                 $retentionData['amount'] = $amount;
                 //$retentionData['remark'] = "分期缴纳质保金:该单实提成--{$settlement_amount},分期每单缴纳比例--{$masterWorkerInfo['installment_ratio']}%,缴纳金额--{$amount}";

+ 7 - 3
app/api/logic/ServiceOrderLogic.php

@@ -149,7 +149,10 @@ class ServiceOrderLogic extends BaseLogic
             // TODO tmp外部平台
             // 外部平台appid
             $external_platform_id = ExternalPlatform::where('appid',$params['platform_appid']??0)->value('id')?:0;
-
+            // 若为详情页加单
+            if(isset($params['service_work_id']) && !empty($params['service_work_id'])){
+                $external_platform_id = ServiceWork::where('id',$params['service_work_id'])->value('external_platform_id')??0;
+            }
             //生成服务工单
             $work_data = [
                 'work_sn' => generate_sn(ServiceWork::class, 'work_sn'),
@@ -179,8 +182,9 @@ class ServiceOrderLogic extends BaseLogic
             ];
 
             //判断是否是加单
-            if(!empty($params['worker'])){
-                $worker_id = MasterWorker::where('worker_number',$params['worker'])->value('id');
+            if(!empty($params['worker']) || (isset($params['service_work_id']) && !empty($params['service_work_id']))){
+                isset($params['service_work_id']) && $params['service_work_id'] && $worker_id = ServiceWork::where('id',$params['service_work_id'])->value('master_worker_id');
+                $params['worker'] && $worker_id = MasterWorker::where('worker_number',$params['worker'])->value('id');
                 $work_data['master_worker_id'] = $worker_id;
                 $work_data['work_status'] = 4;
                 $work_data['dispatch_time'] = time();

+ 1 - 1
app/common/command/OpenObtainOrder.php

@@ -24,7 +24,7 @@ class OpenObtainOrder extends Command
     protected function execute(Input $input, Output $output)
     {
         try {
-            $infoWorkerIds = MasterWorkerInfo::where(['audit_state'=>1])->column('worker_id');
+            $infoWorkerIds = MasterWorkerInfo::where(['audit_state'=>1,'is_disable'=>0])->column('worker_id');
             $bankWorkerIds = BankAccount::where(['audit_state'=>1])->column('worker_id');
             $ids = array_intersect($infoWorkerIds,$bankWorkerIds);
             $workerIds = MasterWorker::where([

+ 21 - 0
app/common/controller/InternalApiController.php

@@ -102,6 +102,27 @@ class InternalApiController extends BaseLikeAdminController
             if(!empty($params['pay_way']??'')) $params['extra']['pay_way'] = $params['pay_way'];
             $payNotifyLogic = PayNotifyLogic::handle('goods', $params['sn'], $params['extra']??[]);
             if($payNotifyLogic === true){
+                // 用户下单后,给订单运营专员(配置固定ID)发送公众号提醒(订单信息)
+                $order = RechargeOrder::where('sn', $params['sn'])
+                    ->where('payment_type','IN',[0,1])
+                    ->where('pay_status','=',1)
+                    ->findOrEmpty();
+                if(!$order->isEmpty()){
+                    $workDetail = ServiceWork::findOrEmpty($order->work_id);
+                    if(!$workDetail->isEmpty()){
+                        event('Notice',  [
+                            'scene_id' => 100,
+                            'params' => [
+                                'user_id' => 0,
+                                'order_id' => $workDetail['id'],
+                                'thing3' => $workDetail['title'],
+                                'time6' => $workDetail['appointment_time'],
+                                'phone_number8' => asteriskString($workDetail['mobile']),
+                                'thing5' => (iconv_strlen($workDetail['address'])>15)?(mb_substr($workDetail['address'],0,15,'UTF-8').'...'):$workDetail['address'],
+                            ]
+                        ]);
+                    }
+                }
                 return $this->success('内部支付完成', [], 0, 1);
             }
             throw new \Exception($payNotifyLogic,404);

+ 22 - 0
app/common/logic/ThirdOrderLogic.php

@@ -367,6 +367,28 @@ class ThirdOrderLogic extends BaseLogic
                 \app\common\model\recharge\RechargeOrder::create($order_weikuan_data);
             }
             Db::commit();
+
+            // 用户下单后,给订单运营专员(配置固定ID)发送公众号提醒(订单信息)
+            $order = \app\common\model\recharge\RechargeOrder::where('sn', $order['sn'])
+                ->where('payment_type','IN',[0,1])
+                ->where('pay_status','=',1)
+                ->findOrEmpty();
+            if(!$order->isEmpty()){
+                $workDetail = ServiceWork::findOrEmpty($order->work_id);
+                if(!$workDetail->isEmpty()){
+                    event('Notice',  [
+                        'scene_id' => 100,
+                        'params' => [
+                            'user_id' => 0,
+                            'order_id' => $workDetail['id'],
+                            'thing3' => $workDetail['title'],
+                            'time6' => $workDetail['appointment_time'],
+                            'phone_number8' => asteriskString($workDetail['mobile']),
+                            'thing5' => (iconv_strlen($workDetail['address'])>15)?(mb_substr($workDetail['address'],0,15,'UTF-8').'...'):$workDetail['address'],
+                        ]
+                    ]);
+                }
+            }
             return $service_work['id'];
         } catch (\Exception $e) {
             Db::rollback();

+ 6 - 1
app/workerapi/logic/GoodsCategoryLogic.php

@@ -22,13 +22,18 @@ class GoodsCategoryLogic extends BaseLogic
     {
         try {
             //external_platform_id
+            $scene = '&type=2&id='.$params['id'];
+            isset($params['user_info']['worker_number']) && $scene .= '&worker='.$params['user_info']['worker_number'];
+            isset($params['service_work_id']) && $scene .= '&sid='.($params['service_work_id']??0);
+            Log::info('生成小程序码:['.json_encode($params).']');
             $response = (new WeChatMnpService())->getUnlimitedQRCode(
-                '&type=2&id='.$params['id'].'&worker='.$params['user_info']['worker_number'].'&service_work_id='.($params['service_work_id']??0),
+                $scene,
                 "pages/good/good",
                 'release',//trial、release、develop
                 false
             );
             $qrcode = $response->getContent();
+            //Log::info('生成小程序码:['.$qrcode.']');
             if(!is_dir('./uploads/wx_qrcode/'.date('Ymd'))){
                 mkdir('./uploads/wx_qrcode/'.date('Ymd'));
             }