| 
					
				 | 
			
			
				@@ -7,6 +7,7 @@ use app\admin\model\Enterprise; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use think\facade\Db; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\model\IntegralRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\state\IntegralState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\state\CommonConst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Description of IntegralRecordApi 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -202,7 +203,7 @@ class IntegralRecordApi { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return self::getLibraryList($params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $where[] = ["ir.checkState", "=", IntegralState::SUCCESS]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return self::getIntegralLogs($params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $where[] = ["ir.delete", "=", 0]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -259,39 +260,95 @@ class IntegralRecordApi { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $where[] = ["e.type", "=", session("user")["type"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $where[] = ["ir.checkState", "=", IntegralState::SUCCESS]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $where[] = ["ir.delete", "=", 0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($params["name"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $where[] = ["ir.name", "like", "%{$params['name']}%"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["l.name", "like", "%{$params['name']}%"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($params["card_number"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $where[] = ["ir.card_number", "like", "%{$params['card_number']}%"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["l.card_number", "like", "%{$params['card_number']}%"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($params["enterprise_id"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $where[] = ["ir.enterprise_id", "=", $params['enterprise_id']]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["l.enterprise_id", "=", $params['enterprise_id']]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($params["veto"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $having = "if(min_shareholder=1 and enterprise_veto = 1,true,false) or personal_veto = 1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $having = "if(min_shareholder=1 and enterprise_veto = 1,false,true) and personal_veto = 0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $count = IntegralRecord::alias("ir")->where($where) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ->leftJoin("sys_batch b", "b.id=ir.batch_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ->leftJoin("un_enterprise e", "e.id=ir.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=ir.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(ir.card_type,ir.card_number))") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ->field("min(shareholder) as min_shareholder,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,if(iv2.`active`=1,iv2.`active`,0) as personal_veto") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ->group("concat(ir.card_type,ir.card_number)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ->having($having) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $count = Db::table("new_integral_log")->alias("l")->where($where) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ->leftJoin("un_enterprise e", "e.id=l.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=l.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(l.card_type,l.card_number))") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //->field("min(shareholder) as min_shareholder,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,if(iv2.`active`=1,iv2.`active`,0) as personal_veto") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ->group("concat(l.card_type,l.card_number)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //->having($having) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ->count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $list = IntegralRecord::alias("ir")->where($where) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ->leftJoin("sys_batch b", "b.id=ir.batch_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ->leftJoin("un_enterprise e", "e.id=ir.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=ir.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(ir.card_type,ir.card_number))") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ->group("concat(ir.card_type,ir.card_number)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ->having($having) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ->field("min(shareholder) as min_shareholder,ir.name,ir.card_type,ir.card_number,ir.enterprise_id,sum(ir.totalPoints) as totalPoints,e.name as enterpriseName,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,iv1.description as enterprise_veto_msg,if(iv2.`active`=1,iv2.`active`,0) as personal_veto,iv2.description as personal_veto_msg")->limit($offset, $limit)->order("b.batch " . $order)->select(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $list = Db::table("new_integral_log")->alias("l")->where($where) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->leftJoin("un_enterprise e", "e.id=l.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=ir.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(ir.card_type,ir.card_number))") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->group("concat(l.card_type,l.card_number)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //->having($having) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //->field("min(shareholder) as min_shareholder,ir.name,ir.card_type,ir.card_number,ir.enterprise_id,sum(ir.totalPoints) as totalPoints,e.name as enterpriseName,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,iv1.description as enterprise_veto_msg,if(iv2.`active`=1,iv2.`active`,0) as personal_veto,iv2.description as personal_veto_msg") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->field("l.*,sum(gainPoints) as totalPoints,e.name as enterpriseName") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->limit($offset, $limit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //->order("b.batch " . $order) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foreach ($list as $key => $item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $list[$key]["basePoints"] = CommonConst::getLayerPointsByLayer($item["talentLevel"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ["total" => $count, "rows" => $list]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static function getIntegralLogs($params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $order = $params["order"] ?: "desc"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $offset = $params["offset"] ?: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $limit = $params["limit"] ?: 10; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["e.type", "=", session("user")["type"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($params["name"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["l.name", "like", "%{$params['name']}%"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($params["card_number"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["l.card_number", "like", "%{$params['card_number']}%"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($params["enterprise_id"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["l.enterprise_id", "=", $params['enterprise_id']]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $count = Db::table("new_integral_log")->alias("l")->where($where) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ->leftJoin("un_enterprise e", "e.id=l.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ->count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $list = Db::table("new_integral_log")->alias("l") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->field("l.*,e.name as enterpriseName") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->leftJoin("un_enterprise e", "e.id=l.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->where($where) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->limit($offset, $limit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->order("l.createTime desc") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foreach ($list as $key => $item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($item["mainType"] == "integral") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $where[] = ["ir.id", "=", $item["mainId"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $integralInfo = IntegralRecord::alias("ir")->leftJoin("sys_batch b", "b.id=ir.batch_id")->field("ir.*,b.batch as apply_year")->where($where)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["apply_year"] = $integralInfo["apply_year"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["shareholder"] = $integralInfo["shareholder"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $tmp_items = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                foreach ($integralInfo["detail"] as $_item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $integral_item_info = getCacheById("IntegralItem", $_item["item_id"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $tmp_items[] = sprintf("%s(%s%s)", $integral_item_info["name"], $_item["amount"], $integral_item_info["unit"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["details"] = implode(";", $tmp_items); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["first_submit_time"] = $integralInfo["first_submit_time"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["new_submit_time"] = $integralInfo["new_submit_time"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $where[] = ["id", "=", $item["mainId"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $talentInfo = Db::table("new_talent_info")->where($where)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["apply_year"] = $talentInfo["apply_year"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["details"] = $item["description"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["first_submit_time"] = $talentInfo["first_submit_time"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $list[$key]["new_submit_time"] = $talentInfo["new_submit_time"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ["total" => $count, "rows" => $list]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |