Browse Source

阶段性提交

wufeng 2 years ago
parent
commit
554a808b0b

+ 14 - 14
app/admin/controller/Cat.php

@@ -551,19 +551,19 @@ class Cat extends Base
         if ($status === '') {
             return error_show(1002, '参数status不能为空');
         }
-        if ($status == 1) {
-            if ($stn['rate'] === '') {
-                return error_show(1003, '单品修改下限未设置');
-            }
-            if ($stn['order_rate'] === '') {
-                return error_show(1003, '预算成本利率未设置');
-            }
-            if ($stn['sale_rate'] === '') {
-                return error_show(1003, '分类成本售价利率未设置');
-            }
-            if ($stn['lower_rate'] === '') {
-                return error_show(1003, '分类最低毛利率未设置');
-            }
+//        if ($status == 1) {
+//            if ($stn['rate'] === '') {
+//                return error_show(1003, '单品修改下限未设置');
+//            }
+//            if ($stn['order_rate'] === '') {
+//                return error_show(1003, '预算成本利率未设置');
+//            }
+//            if ($stn['sale_rate'] === '') {
+//                return error_show(1003, '分类成本售价利率未设置');
+//            }
+//            if ($stn['lower_rate'] === '') {
+//                return error_show(1003, '分类最低毛利率未设置');
+//            }
 //        if($stn['money_rate']==''){
 //            return error_show(1003,'分类财务利率未设置');
 //        }
@@ -573,7 +573,7 @@ class Cat extends Base
 //        if($stn['fund_code']==''){
 //            return error_show(1003,'分类核算码未设置');
 //        }
-        }
+//        }
         if ($stn['level'] == 3) {
             if ($status == 1) {
                 $can = made($stn['id']);

+ 5 - 12
app/admin/controller/CatPlat.php

@@ -268,24 +268,17 @@ use think\App;class CatPlat extends Base{
             //库存品的话,不足采购起订量的时候,取采购最小起订量
             if ($good['is_stock'] == 0) return error_show(1010, "起订量不足{$nakelist['min_num']}");
         }
-        $catinfo = Db::name("cat_plat")->where(["cat_id"=>$good['cat_id'],"is_del"=>0,"platform_id"=>$platid])->find();
-        if ($catinfo==false || $catinfo['sale_rate']==0)  return error_show(1005,"分类未设置平台毛利率");
+//        $catinfo = Db::name("cat_plat")->where(["cat_id"=>$good['cat_id'],"is_del"=>0,"platform_id"=>$platid])->find();
+//        if ($catinfo==false || $catinfo['sale_rate']==0)  return error_show(1005,"分类未设置平台毛利率");
 
         $companyNo = isset($this->post['relaComNo']) && $this->post['relaComNo'] !== "" ? trim($this->post['relaComNo']) : "";
         if($companyNo=='') return error_show(1004,'关联公司不能为空');
 
-        $cpcp = Db::name('company_platform_cat_profit')
-            ->field('id,sale_rate')
-            ->where(['is_del' => 0, 'companyNo' => $companyNo, 'platform_id' => $platid, 'cat_id' => $good['cat_id'], 'status' => 1])
-            ->findOrEmpty();
-
-        if(empty($cpcp)) return error_show(1004,'公司平台分类毛利不能为空');
-
-        //此时的毛利率要取两个毛利的和
-        $budget = (($catinfo['sale_rate'] ?? 0) + ($cpcp['sale_rate'] ?? 0)) / 100;
+        //计算毛利率
+        $budget = get_budget($good['cat_id'], $companyNo, $platid);
 
 //        $budget = isset($catinfo['sale_rate']) ? $catinfo['sale_rate']/100:0;
-        $top_cat_id = made($catinfo['cat_id']);//获取所有分类
+        $top_cat_id = made($good['cat_id']);//获取所有分类
         $top_cat_id = isset($top_cat_id[0]['id']) ? $top_cat_id[0]['id'] : 0;//获取顶级分类id
 
         $sale_cost_fee = 0;

+ 12 - 6
app/admin/controller/CompanyCatProfit.php

@@ -49,11 +49,11 @@ class CompanyCatProfit extends Base
         $val = Validate::rule([
             'cat_id|分类id' => 'require|number|gt:0',
             'companyNo|公司编码' => 'require|length:18',
-            'rate|主管利率' => 'require|number|between:0,100',
-            'order_rate|预算成本' => 'require|number|between:0,100',
-            'money_rate|财务利率' => 'require|number|between:0,100',
-            'low_rate|最低利率' => 'require|number|between:0,100',
-            'sale_rate|成本售价' => 'require|number|between:0,100',
+            'rate|主管利率' => 'require|float|between:0,100',
+            'order_rate|预算成本' => 'require|float|between:0,100',
+            'money_rate|财务利率' => 'require|float|between:0,100',
+            'low_rate|最低利率' => 'require|float|between:0,100',
+            'sale_rate|成本售价' => 'require|float|between:0,100',
         ]);
 
         if (!$val->check($param)) return json_show(1004, $val->getError());
@@ -116,6 +116,13 @@ class CompanyCatProfit extends Base
 
         if (empty($cat)) return json_show(1005, '该分类不存在');
 
+        $tmp = Db::name('company_cat_profit')
+            ->field('id,status')
+            ->where(['is_del' => 0, 'companyNo' => $param['companyNo'], 'cat_id' => $param['cat_id']])
+            ->findOrEmpty();
+        if (empty($tmp)) return json_show(1004, '该分类尚未设置毛利,无法操作');
+        if ($tmp['status'] == $param['status']) return json_show(1004, '重复操作');
+
         //要操作的分类id集合
         switch ($cat['level']) {
             case 1:
@@ -152,7 +159,6 @@ class CompanyCatProfit extends Base
             ]);
         return $rs ? json_show(0, '操作成功') : json_show(1004, '操作失败,该记录不存在或重复操作');
 
-
     }
 
     //删除

+ 5 - 5
app/admin/controller/CompanyPlatformCatProfit.php

@@ -58,11 +58,11 @@ class CompanyPlatformCatProfit extends Base
             'companyNo|公司编码' => 'require|length:18',
             'platform_id|平台id' => 'require|number|gt:0',
             'cat_id|分类id' => 'require|number|gt:0',
-            'rate|主管利率' => 'require|number|between:0,100',
-            'order_rate|预算成本' => 'require|number|between:0,100',
-            'money_rate|财务利率' => 'require|number|between:0,100',
-            'low_rate|最低利率' => 'require|number|between:0,100',
-            'sale_rate|成本售价' => 'require|number|between:0,100',
+            'rate|主管利率' => 'require|float|between:0,100',
+            'order_rate|预算成本' => 'require|float|between:0,100',
+            'money_rate|财务利率' => 'require|float|between:0,100',
+            'low_rate|最低利率' => 'require|float|between:0,100',
+            'sale_rate|成本售价' => 'require|float|between:0,100',
         ]);
 
         if (!$val->check($param)) return json_show(1004, $val->getError());

+ 30 - 17
app/admin/controller/Consult.php

@@ -758,20 +758,33 @@ class Consult extends Base
         if($delivery_place==''){
             return error_show(1002,"参数delivery_place不能为空");
         }
-        $token = isset($this->post['token'])&& $this->post['token']!='' ? trim($this->post['token']):"";
-        if($token==''){
-            return error_show(1002,"参数token不能为空");
-        }
-        $user =GetUserInfo($token);
-        if(empty($user)||$user['code']!=0){
-            return error_show(1005,"用户数据不存在");
-        }
-        $createrid= isset($user["data"]['id']) ?  $user["data"]['id'] : "";
-        $creater= isset($user["data"]['nickname']) ?  $user["data"]['nickname'] : "";
+
+
+        $relaComNo = isset($this->post['relaComNo']) && $this->post['relaComNo'] != '' ? trim($this->post['relaComNo']) : "";
+        if ($relaComNo == '') return error_show(1004, '关联公司不能为空');
+
+        $platform_id = isset($this->post['platform_id']) && $this->post['platform_id'] != '' ? intval($this->post['platform_id']) : 0;
+        if ($platform_id == 0) return error_show(1004, '平台id不能为空');
+
+
+//        $token = isset($this->post['token'])&& $this->post['token']!='' ? trim($this->post['token']):"";
+//        if($token==''){
+//            return error_show(1002,"参数token不能为空");
+//        }
+//        $user =GetUserInfo($token);
+//        if(empty($user)||$user['code']!=0){
+//            return error_show(1005,"用户数据不存在");
+//        }
+        $createrid= $this->uid;//isset($user["data"]['id']) ?  $user["data"]['id'] : "";
+        $creater= $this->uname;//isset($user["data"]['nickname']) ?  $user["data"]['nickname'] : "";
         $bidNo=makeNo("BD");
         $spucode=makeNo("SKU");
-        $catinfo = Db::name("cat")->where(["id"=>$cat_id])->find();
-        $budget = isset($catinfo['order_rate']) ? $catinfo['order_rate']/100:0;
+//        $catinfo = Db::name("cat")->where(["id"=>$cat_id])->find();
+
+        //计算毛利率
+        $budget = get_budget($zxinfo['cat_id'],$relaComNo,$platform_id);
+
+//        $budget = isset($catinfo['order_rate']) ? $catinfo['order_rate']/100:0;
 
         //部分参数的大小校验
         $vali = Validate::rule([
@@ -796,7 +809,9 @@ class Consult extends Base
         $cat_top_list = made($cat_id);
         $cat_top_id = isset($cat_top_list[0]['id']) ? $cat_top_list[0]['id'] : 0;
         if ($is_gold_price == 1 && $cat_top_id == 6) {
-            $gold = Db::name("gold_price1")->where(["type"=>$metal_id,"is_del"=>0,"status"=>1])->order("addtime desc")
+            $gold = Db::name("gold_price1")
+                ->where(["type"=>$metal_id,"is_del"=>0,"status"=>1])
+                ->order("addtime desc")
                 ->find();
 
             //$total_fee = $open_fee/$zxinfo['num'] + $weight* $gold["price"] + $cost_fee*$weight+$pakge_fee+$mark_fee+$cert_fee+$nake_fee;
@@ -814,12 +829,10 @@ class Consult extends Base
         }else{
 
             if($nake_fee){
-                $saleprice = ($demo_fee / $zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee * $good_weight +
-                        $pakge_fee + $mark_fee + $cert_fee +$nake_fee)/ (1 - $budget);
+                $saleprice = ($demo_fee / $zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee * $good_weight + $pakge_fee + $mark_fee + $cert_fee +$nake_fee)/ (1 - $budget);
                 $total_fee = $demo_fee / $zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee *$good_weight + $pakge_fee + $mark_fee + $cert_fee + $nake_fee;
             }else{
-                $saleprice = ($demo_fee/$zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee * $good_weight + $pakge_fee + $mark_fee + $cert_fee) /
-                    (1 - $budget);
+                $saleprice = ($demo_fee/$zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee * $good_weight + $pakge_fee + $mark_fee + $cert_fee) / (1 - $budget);
                 $total_fee = $demo_fee/$zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee *$good_weight + $pakge_fee + $mark_fee + $cert_fee;
             }
 

+ 3 - 15
app/admin/controller/Goodup.php

@@ -2390,22 +2390,10 @@ class Goodup extends Base
             if ($good['is_stock'] == 0) return error_show(1010, "起订量不足{$nakelist['min_num']}");
         }
 
-        $catinfo = Db::name("cat")
-            ->field('id,sale_rate')
-            ->where(["id"=>$good['cat_id']])
-            ->find();
-
-        $cpcp = Db::name('company_platform_cat_profit')
-            ->field('id,sale_rate')
-            ->where(['is_del' => 0, 'companyNo' => $param['relaComNo'], 'platform_id' => $param['platform_id'], 'cat_id' => $good['cat_id'], 'status' => 1])
-            ->findOrEmpty();
-
-//        $budget = isset($catinfo['sale_rate']) ? $catinfo['sale_rate']/100:0;
-
-        //此时的毛利率要取两个毛利的和
-        $budget = (($catinfo['sale_rate'] ?? 0) + ($cpcp['sale_rate'] ?? 0)) / 100;
+        //计算毛利率
+        $budget = get_budget($good['cat_id'],$param['relaComNo'],$param['platform_id']);
 
-        $top_cat_id = made($catinfo['id']);//获取所有分类
+        $top_cat_id = made($good['id']);//获取所有分类
         $top_cat_id = isset($top_cat_id[0]['id']) ? $top_cat_id[0]['id'] : 0;//获取顶级分类id
 
         $sale_cost_fee = 0;

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

@@ -190,7 +190,7 @@ class Role extends Base
      */
     public function roleSave()
     {
-        $post = $this->request->only(["roleid" => "", "role_name" => "", "relaComNo" => "", "action" => "", "action_data" => "", "private_data" => "",'is_allow_see_price','private_field','level','desc'], "post");
+        $post = $this->request->only(["roleid" => "", "role_name" => "", "relaComNo" => "", "action" => "", "action_data" => "", "private_data" => "", 'is_allow_see_price', 'private_field', 'level', 'desc' => ''], "post");
         $valid = Validate::rule([
             "role_name|角色名称" => "require|max:255|min:2",
 //            "relaComNo|业务公司编号" => "max:255",

+ 16 - 14
app/admin/controller/User.php

@@ -962,7 +962,7 @@ class User extends Base
     //超管账号列表
     public function userSingleList()
     {
-        $post = $this->request->only(["token" => "", "nickname" => "", "relaComNo" => "", "islevel" => "", "username" => "", "companyNo" => "", "status" => "", "page" => 1, "size" => 10], "post");
+        $post = $this->request->only(["token" => "", "nickname" => "", "relaComNo" => "", "username" => "", "companyNo" => "", "status" => "", "page" => 1, "size" => 10], "post");
         if ($this->level == 1) {
             $companyNo = $post['companyNo'] ?? "";
         } else {
@@ -974,15 +974,15 @@ class User extends Base
         if ($post['companyNo'] != "") {
             $where[] = ["a.companyNo", "=", $companyNo];
         }
-        if ($post["islevel"] != "") {
-            $uid = Db::name("user_role")->alias("a")
-                ->leftJoin("role b", "a.roleid=b.id")->where([["b.level", "=", 1], ["a.is_del", "=", 0]])->where($where)->column
-                ("uid");
-            if ($post['islevel'] == 1) $post['uid'] = $uid;
-            else $post['nuid'] = $uid;
-
-            unset($post["islevel"]);
-        }
+//        if ($post["islevel"] != "") {
+//            $uid = Db::name("user_role")->alias("a")
+//                ->leftJoin("role b", "a.roleid=b.id")->where([["b.level", "=", 1], ["a.is_del", "=", 0]])->where($where)->column
+//                ("uid");
+//            if ($post['islevel'] == 1) $post['uid'] = $uid;
+//            else $post['nuid'] = $uid;
+//
+//            unset($post["islevel"]);
+//        }
 
         $userCommon = new \app\admin\common\User();
         $userinfo = $userCommon->GetAccountall($post);
@@ -994,14 +994,16 @@ class User extends Base
         foreach ($data as $value) {
             if (isset($value['company_relaton']) && !empty($value['company_relaton'])) {
                 foreach ($value['company_relaton'] as &$item) {
-                    $roleArr = Db::name("user_role")->alias("a")
+                    $roleArr = Db::name("user_role")
+                        ->alias("a")
                         ->leftJoin("role b", "a.roleid=b.id")
                         ->where(["uid" => $value['id'], "a.companyNo" => $item['companyCode'], "is_del" => 0])
-                        ->field("role_name,roleid,a.status,b.level")->findOrEmpty();
+                        ->field("role_name,roleid,a.status")
+                        ->findOrEmpty();
                     $item['roleid'] = $roleArr['roleid'] ?? "";
                     $item['status'] = $roleArr['status'] ?? 0;
                     $item["role_name"] = $roleArr['role_name'] ?? "";
-                    $item["role_level"] = $roleArr['level'] ?? "";
+                    $item["role_level"] = $value['level'];
                 }
 
             }
@@ -1009,7 +1011,7 @@ class User extends Base
             $value['roleid'] = $roleArr['roleid'] ?? "";
             $value['status'] = $value['status'] ?? 0;
             $value["role_name"] = $roleArr['role_name'] ?? "";
-            $value["role_level"] = $roleArr['level'] ?? "";
+            $value["role_level"] = $value['level'] ?? "";
             $list[] = $value;
         }
         return app_show(0, "获取成功", ["list" => $list, "count" => $userinfo['data']["count"]]);

+ 43 - 0
app/command/HandleDataScreen.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace app\command;
+
+use think\console\Command;
+use think\console\Input;
+use think\console\Output;
+use think\facade\Cache;
+
+class HandleDataScreen extends Command
+{
+
+    protected function configure()
+    {
+        $this->setName('handle_data_screen')
+            ->setDescription('处理数据大屏的统计数据');
+    }
+
+
+    protected function execute(Input $input, Output $output)
+    {
+
+        $key = 'wfwfwf';
+
+//        $data = [
+//            'a'=>[
+//                ['name'=>'a','age'=>3],
+//                ['name'=>'b','age'=>4],
+//            ],
+//            'bb'=>'bbbb',
+//            'ccc'=>['item'=>9999]
+//        ];
+
+
+        $rs = Cache::store('redis')->handler()->hmset($key,['name'=>'张三','age'=>23]);
+
+
+        halt($rs);
+
+
+    }
+
+}

+ 2 - 2
app/command/TempHandleBusinessData.php

@@ -28,7 +28,7 @@ class TempHandleBusinessData extends Command
 
         if ($tmp) return '';//不执行
 
-        Cache::store('redis')->handler()->setex($this->key, 5 * 60, 1);
+        Cache::store('redis')->handler()->set($this->key,1);
 
         try {
 
@@ -60,7 +60,7 @@ class TempHandleBusinessData extends Command
                             'contector' => $item['inv_legaler'],
                             'mobile' => $item['mobile'],
                             'company_img' => $item['license_img'],
-                            'status' => $item['status'],
+                            'status' => 0,//默认禁用,需要在结算平台启用
                             'is_del' => $item['is_del'],
                             'addtime' => $item['addtime'],
                             'updatetime' => $item['updatetime'],

+ 18 - 0
app/common.php

@@ -1592,4 +1592,22 @@ if (!function_exists('get_headquarters_code_and_name')) {
         $res = $userCommon->handle('getCodeAndName', ['code' => $code]);
         return $res['data'];
     }
+}
+
+//获取毛利率
+if (function_exists('get_budget') == false) {
+    function get_budget(int $cat_id = 0, string $relaComNo = '', int $platform_id = 0)
+    {
+        $sale_rate_1 = Db::name('company_cat_profit')
+            ->where(['is_del' => 0, 'cat_id' => $cat_id, 'companyNo' => $relaComNo])
+            ->value('sale_rate', 0);
+
+        $sale_rate_2 = Db::name('company_platform_cat_profit')
+            ->where(['is_del' => 0, 'companyNo' => $relaComNo, 'platform_id' => $platform_id, 'cat_id' => $cat_id, 'status' => 1])
+            ->value('sale_rate', 0);
+
+        //此时的毛利率要取两个毛利的和
+        return ($sale_rate_1 + $sale_rate_2) / 100;
+
+    }
 }

+ 2 - 1
app/youzan/controller/Index.php

@@ -38,7 +38,7 @@ class Index extends Base
     //审核并将商品推送到有赞平台
     public function checkExamstatus()
     {
-        $param = $this->request->only(['platform_youzan_id', 'exam_status', 'reject_reason', 'yz_cat_id', 'is_support_barter', 'good_ladder_id', 'final_price', 'token', 'start_sale_num', 'tags' => [], 'item_type' => 0, 'auto_listing_time' => '0', 'origin' => 0], 'post', 'trim');
+        $param = $this->request->only(['platform_youzan_id', 'exam_status', 'reject_reason', 'yz_cat_id', 'is_support_barter', 'good_ladder_id', 'final_price', 'token', 'start_sale_num', 'tags' => [], 'item_type' => 0, 'auto_listing_time' => '0', 'origin' => 0,'relaComNo'], 'post', 'trim');
 
         $val = Validate::rule([
             'platform_youzan_id|商品上线记录ID' => 'require|number|gt:0',
@@ -49,6 +49,7 @@ class Index extends Base
             'good_ladder_id|商品阶梯记录id' => 'requireIf:exam_status,1|number|gt:0',
             'final_price|最终售价' => 'requireIf:exam_status,1|float|elt:9999999',
             'start_sale_num|有赞起售数' => 'requireIf:exam_status,1|number',
+            'relaComNo|关联公司' => 'require',
             'token' => 'require',
         ]);
 

+ 9 - 6
app/youzan/logic/Goodup.php

@@ -270,6 +270,8 @@ class Goodup
                     'spuCode' => $rs->spuCode,
                     'platform_id' => $rs->platform_id,
                     'min_num' => $data['start_sale_num'],
+                    'relaComNo' => $data['relaComNo'],
+                    'platform_id' => $rs->platform_id
                 ]);
 
                 $update_data = array_merge($update_data, [
@@ -366,7 +368,7 @@ class Goodup
                 "order_id" => $rs->id,
                 "order_status" => $update_data['exam_status'],
                 "before_status" => $old_exam_status,
-                'holder_id'=>$rs->chargerid,
+                'holder_id' => $rs->chargerid,
             ]);
 
             if ($res) {
@@ -407,10 +409,11 @@ class Goodup
             //库存品的话,不足采购起订量的时候,取采购最小起订量
             if ($good['is_stock'] == 0) throw new Exception("起订量不足{$nakelist['min_num']}");
         }
-        $catinfo = Db::name("cat_plat")->where(["cat_id" => $good['cat_id'], "is_del" => 0, "platform_id" => $platid])->find();
-        if ($catinfo == false || $catinfo['sale_rate'] == 0) throw new Exception('分类未设置平台毛利率');
-        $budget = isset($catinfo['sale_rate']) ? $catinfo['sale_rate'] / 100 : 0;
-        $top_cat_id = made($catinfo['cat_id']);//获取所有分类
+
+        //计算毛利率
+        $budget = get_budget($good['cat_id'], $data['relaComNo'], $data['platform_id']);
+
+        $top_cat_id = made($good['cat_id']);//获取所有分类
         $top_cat_id = isset($top_cat_id[0]['id']) ? $top_cat_id[0]['id'] : 0;//获取顶级分类id
 
         $sale_cost_fee = 0;
@@ -474,7 +477,7 @@ class Goodup
                 ->update(['exam_status' => 0, 'updatetime' => date('Y-m-d H:i:s')]);
 
             $stn = ["order_code" => $rs->skuCode, "status" => $old_status, "action_remark" => '', "action_type" => "status"];
-            ActionLog::logAdd(['id' => $uid, 'nickname' => $nickname], $stn, "YZSX", $db::$exam_status_0, ['id'=>$platform_youzan_id]);
+            ActionLog::logAdd(['id' => $uid, 'nickname' => $nickname], $stn, "YZSX", $db::$exam_status_0, ['id' => $platform_youzan_id]);
 
             $process = ["order_code" => $rs->skuCode, "order_id" => $rs->id, "order_status" => $db::$exam_status_0, "order_type" => 'YZSX', "before_status" => $old_status, 'holder_id' => $uid];
             ProcessOrder::AddProcess(['id' => $uid, 'nickname' => $nickname], $process);