Browse Source

bug,平台支付渠道,同步数据到结算平台的临时脚本

wufeng 2 years ago
parent
commit
fb58800d75

+ 1 - 1
app/admin/controller/Check.php

@@ -586,7 +586,7 @@ public function __construct(App $app)
         }
         $list = Db::name("good_stock_info")->alias("d")
             ->join("good_stock c", "c.id=d.stockid and d.balance_num>0", "left")
-            ->join("good b", "c.spuCode=b.spuCode", "left")
+            ->join("good_basic b", "c.spuCode=b.spuCode", "left")
             ->where(['c.wsm_code' => $fo['wsm_code'], "b.is_del" => 0, "c.is_del" => 0])
             ->field("d.bnCode '商品批次号',b.spuCode'商品编码',b.good_name '商品名称',b.craft_desc '商品描述',b.brand_id '品牌',b.good_unit '单位',b.supplierNo '供应商编码','' as '供应商名称','' as  '一级分类','' as '二级分类','' as  '三级分类',b.addtime '新建时间',c.wsm_code '仓库编码','' as '仓库名称',c.usable_stock '可用总库存',d.balance_num '批次库存数','' as '盘点库存'")
             ->select()

+ 5 - 2
app/admin/controller/Consult.php

@@ -2357,7 +2357,7 @@ class Consult extends Base
             ->column('brand_name','id');
 
         $userCommon=new \app\admin\common\User();
-        $names = $userCommon->handle('getCodeAndName',['code'=>array_column($list,'khNo')]);
+        $names = $userCommon->handle('getCodeAndName',['code'=>array_unique(array_merge(array_column($list,'khNo'),array_column($list,'companyNo')))]);
 
         foreach ($list as $value){
             $value['can']= isset($value['cat_id']) && $value['cat_id'] !=0 ? made($value['cat_id']):[];
@@ -2370,7 +2370,7 @@ class Consult extends Base
 
 //            $brand = Db::name("brand")->where(['id'=>$value['brand_id']])->find();
             $value['brand_name']= $brand[$value['brand_id']]??'';//isset($brand['brand_name']) && $brand['brand_name']!='' ? $brand['brand_name']:"";
-            $value['khname']="";
+            $value['khname'] = $value['companyName'] = "";
             $value['specinfo']=isset($value['specinfo'])&&$value['specinfo']!=""? json_decode($value['specinfo'],true):[];
             if($value['khNo']!==""){
 //                $kh=Db::name("customer_info")
@@ -2378,6 +2378,9 @@ class Consult extends Base
 //                    ->find();
                 $value['khname']= $names['data'][$value['khNo']]??'';//isset($kh['companyName'])?$kh['companyName']:"";
             }
+
+            if($value['companyNo']!='') $value['companyName'] = $names['data'][$value['companyNo']]??'';
+
             $consult =Db::name("consult_bids")
                 ->where(["infoNo"=>$value['infoNo'],"createrid"=>$this->uid,"is_del"=>0])
                 ->find();

+ 1 - 1
app/admin/controller/Good.php

@@ -1300,7 +1300,7 @@ class Good extends Base
 
         $list = Db::name('good_ladder')
             ->alias('gl')
-            ->field('gl.id,gl.skuCode,gp.spuCode,p.platform_name,gb.good_thumb_img,gb.good_name,gb.cat_id,gb.good_type,gb.is_stock,gb.brand_id,gp.plat_code,gl.min_num moq,gl.sale_price,gb.creater purchase,gb.creater,gb.companyNo')
+            ->field('gl.id,gl.skuCode,gp.spuCode,p.platform_name,gb.good_thumb_img,gb.good_name,gb.cat_id,gb.good_type,gb.is_stock,gb.brand_id,gp.plat_code,gl.min_num moq,gl.sale_price,gb.creater purchase,gb.createrid,gb.companyNo')
             ->leftJoin('good_platform gp', 'gp.skuCode=gl.skuCode AND gp.is_del=0')
             ->leftJoin('platform p', 'p.id=gp.platform_code AND p.is_del=0')
             ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode AND gb.is_del=0')

+ 68 - 7
app/admin/controller/Platform.php

@@ -106,16 +106,32 @@ class Platform extends Base
             if ($param['is_select_pay_rate'] == 1) {
 
                 $userCommon = new \app\admin\common\User();
-                $company_names = $userCommon->handle('getCodeAndName',['code'=>array_column($param['pay_list'],'companyNo')]);
-                if(!isset($company_names['code']) || $company_names['code']!=0) throw new Exception($company_names['message']);
-
-                $insert_da = [];
+                $company_names = $userCommon->handle('getCodeAndName', ['code' => array_column($param['pay_list'], 'companyNo')]);
+                if (!isset($company_names['code']) || $company_names['code'] != 0) throw new Exception($company_names['message']);
+
+                $weight = 0;
+                $insert_da = [[
+                    'platform_id' => $platform_id,
+                    'companyNo' => 'KH',
+                    'companyName' => '客户',
+                    'rate' => 0,
+                    'is_cgd' => 0,
+                    'is_qrd' => 0,
+                    'weight' => $weight,
+                    'status' => 1,
+                    'is_del' => 0,
+                    "addtime" => $date,
+                    "updatetime" => $date
+                ]];
                 foreach ($param['pay_list'] as $pay) {
                     $insert_da[] = [
                         'platform_id' => $platform_id,
                         'companyNo' => $pay['companyNo'],
                         'companyName' => $company_names['data'][$pay['companyNo']] ?? '',
                         'rate' => $pay['rate'],
+                        'is_cgd' => 1,
+                        'is_qrd' => 1,
+                        'weight' => $weight++,
                         'status' => 1,
                         'is_del' => 0,
                         "addtime" => $date,
@@ -123,6 +139,20 @@ class Platform extends Base
                     ];
                 }
 
+                $insert_da[] = [
+                    'platform_id' => $platform_id,
+                    'companyNo' => 'GYS',
+                    'companyName' => '供应商',
+                    'rate' => 0,
+                    'is_cgd' => 0,
+                    'is_qrd' => 1,
+                    'weight' => $weight++,
+                    'status' => 1,
+                    'is_del' => 0,
+                    "addtime" => $date,
+                    "updatetime" => $date
+                ];
+
                 if ($insert_da) Db::name('platform_pay_rate')->insertAll($insert_da);
             }
 //                return error_show(0,"新建成功");
@@ -185,7 +215,7 @@ class Platform extends Base
         }
 //        $company_name = isset($this->post['company_name']) && $this->post['company_name'] !== "" ? trim($this->post['company_name']) : "";
 //        if ($param['company_name'] !== "") $where[] = ["p.createrid", 'in', get_company_item_user_by_name($param['company_name'])];
-        if($param['creater'] != '') $where[]=['p.creater','like','%'.$param['creater'].'%'];
+        if ($param['creater'] != '') $where[] = ['p.creater', 'like', '%' . $param['creater'] . '%'];
 
         $count = Db::name('platform')
             ->alias('p')
@@ -337,13 +367,29 @@ class Platform extends Base
                     ->where(['is_del' => 0, 'platform_id' => $param['id']])
                     ->update(['is_del' => 1, 'updatetime' => $date]);
 
-                $insert_da = [];
+                $weight = 0;
+                $insert_da = [[
+                    'platform_id' => $param['id'],
+                    'companyNo' => 'KH',
+                    'companyName' => '客户',
+                    'rate' => 0,
+                    'is_cgd' => 0,
+                    'is_qrd' => 0,
+                    'weight' => $weight,
+                    'status' => 1,
+                    'is_del' => 0,
+                    "addtime" => $date,
+                    "updatetime" => $date
+                ]];
                 foreach ($param['pay_list'] as $pay) {
                     $insert_da[] = [
                         'platform_id' => $param['id'],
                         'companyNo' => $pay['companyNo'],
-                        'companyName' => $pay['companyName'],
+                        'companyName' => $company_names['data'][$pay['companyNo']] ?? '',
                         'rate' => $pay['rate'],
+                        'is_cgd' => 1,
+                        'is_qrd' => 1,
+                        'weight' => $weight++,
                         'status' => 1,
                         'is_del' => 0,
                         "addtime" => $date,
@@ -351,6 +397,20 @@ class Platform extends Base
                     ];
                 }
 
+                $insert_da[] = [
+                    'platform_id' => $param['id'],
+                    'companyNo' => 'GYS',
+                    'companyName' => '供应商',
+                    'rate' => 0,
+                    'is_cgd' => 0,
+                    'is_qrd' => 1,
+                    'weight' => $weight++,
+                    'status' => 1,
+                    'is_del' => 0,
+                    "addtime" => $date,
+                    "updatetime" => $date
+                ];
+
                 if ($insert_da) Db::name('platform_pay_rate')->insertAll($insert_da);
             }
 
@@ -404,6 +464,7 @@ class Platform extends Base
             $info['pay_list'] = Db::name('platform_pay_rate')
                 ->field('id,companyNo,companyName,rate,status')
                 ->where(['platform_id' => $info['id'], 'is_del' => 0])
+                ->order(['weight' => 'desc'])
                 ->select()
                 ->toArray();
             return app_show(0, "获取成功", $info);

+ 5 - 6
app/admin/controller/Purch.php

@@ -137,13 +137,12 @@ class Purch extends Base
             if (!empty($role[DataGroupModel::$type_全部])) {
                 $arr = array_unique(array_merge($hand, $role[DataGroupModel::$type_全部]));
 
-                $sql = Db::connect('mysql_sys')
+                $supplierNos = Db::connect('mysql_sys')
                     ->name('supplier')
-                    ->field('code')
-                    ->where(['is_del'=>0,'personid'=>$arr])
-                    ->buildSql();
+                    ->where(['is_del' => 0, 'personid' => $arr])
+                    ->column('code');
 
-                $where[] = ['po.supplierNo', 'in', $sql];
+                $where[] = ['po.supplierNo', 'in', $supplierNos];
             }
         }
 
@@ -381,7 +380,7 @@ class Purch extends Base
                 $goon['companyNo'],
                 $data['wsm_code'],
                 $data['companyNo'],
-                $customer_code
+                $customer_code??''
             ]]);
 
             if(!empty($data['orderCode'])){

+ 1 - 1
app/admin/controller/Purchin.php

@@ -105,7 +105,7 @@ class Purchin extends Base
                         ->field('code')
                         ->where(['is_del'=>0,'personid'=>$arr])
                         ->buildSql();
-                    $condition[] = ["sip.personid", "in", $sys_supplier];
+                    $condition[] = ["b.supplierNo", "in", $sys_supplier];
                 }
 
                 $condition[] = ["a.apply_id", "in", $hand];

+ 10 - 10
app/admin/controller/UserCompanyBasic.php

@@ -152,16 +152,16 @@ class UserCompanyBasic extends Base
 
         if (isset($rs['code']) && $rs['code'] == 0) {
             $user_platform_id = Db::name('user_platform')
-                ->field('platform')
                 ->where(['uid' => $param['id'], 'is_del' => 0])
-                ->buildSql();
-
-            $user_platform = Db::name('platform')
-                ->field('id,platform_code,platform_name')
-                ->where('is_del', 0)
-                ->where('id IN ' . $user_platform_id)
-                ->select()
-                ->toArray();
+                ->value('platform','');
+
+            if ($user_platform_id != '') {
+                $user_platform = Db::name('platform')
+                    ->field('id,platform_code,platform_name')
+                    ->where('is_del = 0 AND id IN (' . $user_platform_id . ')')
+                    ->select()
+                    ->toArray();
+            }
         }
 
         $rs['data']['platform'] = $user_platform;
@@ -185,7 +185,7 @@ class UserCompanyBasic extends Base
             ->where(['is_del' => 0, 'status' => 1, 'id' => $param['platform_id']])
             ->column('id');
 
-        if (empty($platform_id)) return json_show(1004, $val->getError());
+        if (empty($platform_id)) return json_show(1004, '平台id不正确');
 
         $tmp = Db::name('user_platform')
             ->field('id')

+ 1 - 1
app/command/SplitSale.php

@@ -197,7 +197,7 @@ class SplitSale extends Command
 
                 Db::commit();
 
-                $output->writeln('处理完成');
+//                $output->writeln('处理完成');
 
             } catch (Exception $e) {
                 Db::rollback();

+ 82 - 6
app/command/TempHandleBusinessData.php

@@ -28,26 +28,88 @@ class TempHandleBusinessData extends Command
 
         if ($tmp) return '';//不执行
 
-        Cache::store('redis')->handler()->set($this->key,1,5*60);
+        Cache::store('redis')->handler()->set($this->key, 1, 5 * 60);
 
         try {
 
+            //临时同步供应商数据
+            $temp = Db::connect('mysql_sys')
+                ->name('supplier')
+                ->alias('a')
+                ->field('a.*,b.contactor,b.position,b.mobile')
+                ->leftJoin('supplier_contact b', 'b.code=a.code')
+                ->where('a.is_del', 0)
+                ->where('a.addtime', '>=', date('Y-m-d H:i:s', time() - 5 * 60))
+                ->select()
+                ->toArray();
+
+            if (!empty($temp)) {
+                $a = Db::connect('mysql_cxinv')
+                    ->table('cfp_supplier_info')
+                    ->whereIn('code', array_column($temp, 'code'))
+                    ->column('code', 'code');
+
+                $ins_supplier = [];
+                foreach ($temp as $val) {
+
+                    if (!isset($a[$val['code']])) {
+                        $ins_supplier[] = [
+                            'name' => $val['name'],
+                            'code' => $val['code'],
+                            'source' => $val['source'],
+                            'contector' => $val['contactor'],
+                            'post' => $val['position'],
+                            'type' => $val['type'],
+                            'nature' => $val['supplier_type'],
+                            'corporation' => $val['legaler'],
+                            'registertime' => $val['registertime'],
+                            'capital' => $val['capital'],
+                            'supplier_type' => $val['supplier_type'],
+                            'pay_method' => $val['pay_type'],
+                            'paydays' => $val['pay_day'],
+                            'mobile' => $val['mobile'],
+                            'address' => $val['addr'],
+                            'return_ticket' => $val['ticket_type'],
+                            'delivery' => $val['delivery_way'],
+                            'status' => $val['status'],
+                            'addtime' => $val['addtime'],
+                            'updatetime' => $val['updatetime'],
+                            'registercode' => $val['registercode'],
+                            'level' => $val['level'],
+                            'product_category' => $val['product_category'],
+                            'license_img' => $val['license_img'],
+                        ];
+                    }
+
+                }
+                if ($ins_supplier) Db::connect('mysql_cxinv')->table('cfp_supplier_info')->insertAll($ins_supplier);
+            }
+
             $userCommon = new User();
             $rs = $userCommon->handle('get_business_list_tmp', ['where' => [
-                ['addtime', '>=', date('Y-m-d H:i:s', time() - 5 * 60)],
+                ['a.addtime', '>=', date('Y-m-d H:i:s', time() - 5 * 60)],
             ]]);
 
+//            $output->writeln('---***---');
+//            $output->writeln(json_encode($rs,JSON_UNESCAPED_UNICODE));
+//            $output->writeln('---***---');
             if (isset($rs['code']) && $rs['code'] == 0 && !empty($rs['data'])) {
 
                 $all_code = array_column($rs['data'], 'companyNo');
 
-                //获取结算平台已存在的编码
+                //业务公司
                 $exists = Db::connect('mysql_cxinv')
                     ->table('cfp_company_info')
                     ->whereIn('companyNo', $all_code)
                     ->column('id', 'companyNo');
 
-                $insert = [];
+                //供应商
+                $gys_exists = Db::connect('mysql_cxinv')
+                    ->table('cfp_supplier_info')
+                    ->whereIn('code', array_column($rs['data'], 'supplierNo'))
+                    ->column('*', 'code');
+
+                $insert = $gys_insert = [];
                 foreach ($rs['data'] as $item) {
                     if (!isset($exists[$item['companyNo']])) {
                         $insert[] = [
@@ -64,7 +126,6 @@ class TempHandleBusinessData extends Command
                             'is_del' => $item['is_del'],
                             'addtime' => $item['addtime'],
                             'updatetime' => $item['updatetime'],
-                            'invoice_title' => $item['invoice_title'],
                             //以下字段填空字符串,需要用户在结算平台补充值
                             'input_ticket' => '',
                             'out_ticket' => '',
@@ -76,6 +137,17 @@ class TempHandleBusinessData extends Command
                             'denomination' => '',
                             'invoiceType' => '',
                         ];
+
+                        $gys_insert[] = array_merge(
+                            $gys_exists[$item['supplierNo']],
+                            [
+                                'id' => null,
+                                'code' => $item['companyNo'],
+                                'type' => '企业',
+                                'addtime' => date('Y-m-d H:i:s'),
+                                'updatetime' => date('Y-m-d H:i:s'),
+                            ]
+                        );
                     }
                 }
 
@@ -85,6 +157,11 @@ class TempHandleBusinessData extends Command
                         ->insertAll($insert);
                     $output->writeln('同步业务公司数据成功,共' . $res);
                 }
+                if ($gys_insert) {
+                    Db::connect('mysql_cxinv')
+                        ->table('cfp_supplier_info')
+                        ->insertAll($gys_insert);
+                }
 
             }
 
@@ -97,7 +174,6 @@ class TempHandleBusinessData extends Command
             $output->writeln('脚本出错,' . $exception->getMessage() . '|' . $exception->getFile() . ':' . $exception->getLine());
 
         }
-
     }
 
 }