فهرست منبع

平台订单导入,优化解析条件、导入价格和其他

wufeng 2 سال پیش
والد
کامیت
f48a7322dd
3فایلهای تغییر یافته به همراه65 افزوده شده و 22 حذف شده
  1. 1 0
      app/admin/controller/OrderImport.php
  2. 58 14
      app/command/ImportOrderFromCAnalysisData.php
  3. 6 8
      app/command/ImportOrderFromCHandleData.php

+ 1 - 0
app/admin/controller/OrderImport.php

@@ -125,6 +125,7 @@ class OrderImport extends Base
         $res['updateid'] = $info['updateid'];
         $res['updater'] = $info['updater'];
         $res['orderCode'] = $info['orderCode'];
+        $res['success_date'] = $info['status'] == OIFCModel::$status_success ? $info['updatetime'] : '';//录入成功时间
 
         //导入原始数据
         $res['import'] = $info;

+ 58 - 14
app/command/ImportOrderFromCAnalysisData.php

@@ -45,17 +45,26 @@ class ImportOrderFromCAnalysisData extends Command
             $val = Validate::rule([
                 'platform_code|平台订单号' => 'require',
                 'platform_time|平台下单时间' => 'require|date',
-                'sale_source|销售渠道' => 'require',
+                'sale_source|销售渠道' => 'require|checkSaleSource:',
                 'plat_code|平台商品编号' => 'require',
                 'price|单价' => 'require|float',
-                'num|数量' => 'require|number',
-                'before_discount_all_price|优惠前总金额' => 'require|float',
-                'mode|收费模式' => 'require',
+                'num|数量' => 'require|number|gt:0',
+                'before_discount_all_price|总金额' => 'require|float',
+                'mode|收费模式' => 'require|in:卡券支付,现金支付,混合支付',
                 'contactor|收货人' => 'require',
                 'mobile|联系电话' => 'require',
                 'addr|联系地址' => 'require',
             ]);
 
+            //校验销售渠道
+            $val->extend('checkSaleSource', function ($val) {
+                $temp = Db::name('platform_source')
+                    ->field('id')
+                    ->where(['source' => $val, 'is_del' => 0])
+                    ->find();
+                return empty($temp) ? '销售渠道不存在' : true;
+            });
+
             $update_c_data = [
                 'updatetime' => date('Y-m-d H:i:s'),
                 'updateid' => 0,
@@ -63,7 +72,7 @@ class ImportOrderFromCAnalysisData extends Command
             ];
             if (!$val->check($rs)) {
                 $update_c_data['status'] = OIFCModel::$status_wait_confirm;
-                $update_c_data['remark'] = '数据格式不对,' . $val->getError();
+                $update_c_data['remark'] = '数据错误,' . $val->getError();
             }
 
             $extend_insert_data = [
@@ -82,14 +91,17 @@ class ImportOrderFromCAnalysisData extends Command
                 'mobile' => $rs['mobile'],
                 'addr' => $rs['addr'],
                 'type' => 1,//1系统解析,2用户确认
-                'addtime' => date('Y-m-d H:i:s')
+                'addtime' => date('Y-m-d H:i:s'),
+                'sale_source' => $rs['sale_source'],
+                'mode' => $rs['mode'],
+
             ];
 
 
             //销售渠道
-            $extend_insert_data['sale_source'] = Db::name('platform_source')
-                ->where(['source' => $rs['sale_source'], 'is_del' => 0])
-                ->value('source', '');
+//            $extend_insert_data['sale_source'] = Db::name('platform_source')
+//                ->where(['source' => $rs['sale_source'], 'is_del' => 0])
+//                ->value('source', '');
 
             //组织extend的数据
             $good_platform_info = Db::name('good_platform')
@@ -105,7 +117,7 @@ class ImportOrderFromCAnalysisData extends Command
                 $extend_insert_data['plat_code'] = $good_platform_info['plat_code'];
 
                 $good_info = Db::name('good')
-                    ->field('good_name,companyNo,supplierNo')
+                    ->field('id,good_name,companyNo,supplierNo')
                     ->where(['is_del' => 0])
                     ->where('spuCode', $extend_insert_data['spuCode'])
                     ->find();
@@ -118,6 +130,30 @@ class ImportOrderFromCAnalysisData extends Command
                     $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',在上线商品表中查不到spuCode对应的商品信息' : '在上线商品表中查不到spuCode对应的商品信息';
                 }
 
+                //商品价格和总价
+                $good_ladder = Db::name("good_ladder")
+                    ->field('id,sale_price')
+                    ->where(["skuCode" => $good_platform_info['spuCode'], "is_del" => 0, "status" => 1])
+                    ->where([["min_num", "<=", $rs['num']]])
+                    ->order("min_num desc")
+                    ->find();
+                if (empty($good_ladder)) {
+                    $update_c_data['status'] = OIFCModel::$status_wait_confirm;
+                    $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',找不到商品售价' : '找不到商品售价';
+                } else {
+
+                    if ($rs['price'] < $good_ladder['sale_price']) {
+                        $update_c_data['status'] = OIFCModel::$status_wait_confirm;
+                        $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',售价低于系统标准价' . $good_ladder['sale_price'] : '售价低于系统标准价' . $good_ladder['sale_price'];
+                    }
+
+                    if (($rs['num'] * $rs['price']) != $rs['before_discount_all_price']) {
+                        $update_c_data['status'] = OIFCModel::$status_wait_confirm;
+                        $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',导入总价错误' : '导入总价错误';
+                    }
+
+                }
+
             } else {
                 $update_c_data['status'] = OIFCModel::$status_wait_confirm;
                 $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',在商品平台表中查不到平台商品编号对应的spuCode' : '在商品平台表中查不到平台商品编号对应的spuCode';
@@ -125,14 +161,22 @@ class ImportOrderFromCAnalysisData extends Command
 
             //活动信息
             if ($rs['activity_name']) {
-                $extend_insert_data['activity_code'] = Db::name('good_activity')
+                $activity_info = Db::name('good_activity')
+                    ->field('id,activity_name,activity_code')
                     ->where(['activity_name' => $rs['activity_name'], 'is_del' => 0])
-                    ->value('activity_code', '');
-                $extend_insert_data['activity_name'] = $extend_insert_data['activity_code'] ? $rs['activity_name'] : '';
+                    ->find();
+                if (empty($activity_info)) {
+                    $update_c_data['status'] = OIFCModel::$status_wait_confirm;
+                    $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',该活动不存在' : '该活动不存在';
+                } else {
+                    $extend_insert_data['activity_code'] = $activity_info['activity_code'];
+                    $extend_insert_data['activity_name'] = $activity_info['activity_name'];
+                }
+
             }
 
             //收费模式
-            $extend_insert_data['mode'] = in_array($rs['mode'], ['卡券支付', '现金支付', '混合支付']) ? $rs['mode'] : '';
+//            $extend_insert_data['mode'] = in_array($rs['mode'], ['卡券支付', '现金支付', '混合支付']) ? $rs['mode'] : '';
 
             //企业客户
             $co = Db::name('good_platform')

+ 6 - 8
app/command/ImportOrderFromCHandleData.php

@@ -117,14 +117,13 @@ class ImportOrderFromCHandleData extends Command
                 $origin_price = $origin['nake_total'];
                 $sale_price = $extend_data['price'];
                 if ($goodtype == 1) {
-                    $good = Db::name("good_ladder")
-                        ->where(["skuCode" => $skuCode, "is_del" => 0, "status" => 1])
-                        ->where([["min_num", "<=", $good_num]])
-                        ->order("min_num desc")
-                        ->find();
-                    if ($good == false) throw new Exception('未找到相关阶梯价格');
+//                    $good = Db::name("good_ladder")
+//                        ->where(["skuCode" => $skuCode, "is_del" => 0, "status" => 1])
+//                        ->where([["min_num", "<=", $good_num]])
+//                        ->order("min_num desc")
+//                        ->find();
+////                    if ($good == false) throw new Exception('未找到相关阶梯价格');
 
-                    $sale_price = $good['sale_price'];
                     if ($is_activity == 1) {
                         $act = Db::name("activity_info")
                             ->alias("a")
@@ -134,7 +133,6 @@ class ImportOrderFromCHandleData extends Command
                         if ($act == false) throw new Exception('未找到相关活动价');
                         if ($act['moq_num'] > $good_num) throw new Exception('商品不满足活动价起订量' . $act['moq_num']);
                         if ($act['activity_stock'] < $good_num) throw new Exception('商品活动库存剩余' . $act['activity_stock']);
-                        $sale_price = $act['activity_price'];
                     }
                 }
                 $cgd = [