user = $_SESSION['onethink_admin']['user_auth']['username']; } /** * 重算特殊补点主方法 */ public function updateSpecialStatement($id = 0,$withdraw_type = 0) { if (!$id || !$withdraw_type) { return false; } $dbres = self::$DBModel->field("id,verify_status,verify_log,withdraw_type,company_type,company_id,statement_info")->where(['id'=>$id])->find(); if ($dbres['withdraw_type']!=3) { return false; } $statement_info = json_decode($dbres['statement_info'],true); list($statement_info,$platform_amount,$statement_amount,$first_party_info,$second_party_info) = $this->caculateFunction($statement_info,$dbres['company_type'],$dbres['company_id'],$statement_info[0]['nickname']?$statement_info[0]['nickname']:''); $verify = ["create_user"=>$this->user,"create_time"=>date("Y-m-d H:i:s")]; self::$DBModel ->where(['id'=>$id]) ->save([ 'statement_info'=>json_encode($statement_info), 'first_party_info'=>json_encode($first_party_info), 'second_party_info'=>json_encode($second_party_info), 'pay_amount'=>$platform_amount, 'platform_amount'=>$platform_amount, 'statement_money'=>$statement_amount, 'verify_log'=>json_encode($verify), 'verify_status'=>0, ]); return true; } /** * 重新计算数据 * @param array $statement_info * @param int $company_type * @param int $company_id * @param string $nickname * @return array|bool */ private function caculateFunction($statement_info = [],$company_type=0,$company_id = 0,$nickname = '') { if (!$statement_info||!$company_id) { return false; } //工厂模式调用特殊补点重算详细方法 $baseClass = BaseFactory::getInstance(); $caculateClass = $baseClass->factoryClass("SpecialCompoentCaculate"); //订单详细信息重算 list($statement_info,$platform_amount,$statement_amount) = $caculateClass->caculateStatementInfo($statement_info,$company_type,$company_id); //公司信息重新录入 list($first_party_info,$second_party_info) = $caculateClass->updateCompanyInfo($company_id,$nickname); return [$statement_info,$platform_amount,$statement_amount,$first_party_info,$second_party_info]; } }