public function run($args) { Yii::app()->getComponent('log'); Yii::log(date('Y-m-d H:i:s') . " [AutoEvaluation] start", 'info', 'command'); //所要执行的任务,如数据符合某条件更新,删除,修改 $Timeeva = time() - 24 * 60 * 60 * 10; //定义时间 收货15天后自动评价 //服务店评价 $model = PapOrder::model()->findAll("Status=9 and (EvaStatus = 0 or EvaStatus = 16)"); //查询符合要求的已收货订单 foreach ($model as $value) { if ($value['ReceiptTime'] < $Timeeva) { //已经收货订单执行下面代码 $modelg = PapOrderGoods::model()->findAll("OrderID=:ID", array(":ID" => $value['ID'])); //获得订单的商品 $gbool = 1; foreach ($modelg as $valueg) { //获得机构ID $goodsinfo = PapGoods::model()->find("ID=:ID", array(":ID" => $valueg['GoodsID'])); $gevaluation = new PapEvaluationGoods(); $gevaluation->OrganID = $goodsinfo->OrganID; $gevaluation->OrderID = $value['ID']; $gevaluation->GoodsID = $goodsinfo->ID; $gevaluation->BuyerID = $value['BuyerID']; $gevaluation->CreateTime = time(); $gevaluation->Status = 1; $model = $gevaluation->save(); //插入对单个商品的评价 if ($model) { $m = PapGoods::model()->findByPk($goodsinfo->ID); if ($m['CommentNo']) { PapGoods::model()->updateByPk($goodsinfo->ID, array('CommentNo' => $m['CommentNo'] + 1)); } else { PapGoods::model()->updateByPk($goodsinfo->ID, array('CommentNo' => 1)); } } else { $gbool = 0; } } $oevaluation = new PapEvaluationDealer(); $oevaluation->OrganID = $value['BuyerID']; $oevaluation->SellerID = $value['SellerID']; $ID = $oevaluation->OrderID = $value['ID']; $oevaluation->SellerBusiness = 5; $oevaluation->SellerService = 5; $oevaluation->SellerExact = 5; $oevaluation->SellerSpeed = 5; $oevaluation->ItemDescription = 5; $oevaluation->SellerPrice = 5; $oevaluation->SellerScore = 5; $oevaluation->CreateTime = time(); $obool = $oevaluation->save(); //插入对商家的评价 if ($obool && $gbool) { //评价插入成功后,修改订单的状态 if ($value['EvaStatus'] == 0) { $EvaStatus = 15; //如果该订单服务店先评价,把状态改为15 } elseif ($value['EvaStatus'] == 16) { $EvaStatus = 20; //如果该订单之前经销商评价过一次,则服务店此时评价状态改为20 } PapOrder::model()->updateByPK($ID, array('EvaStatus' => $EvaStatus)); } } } //经销商评价 $modeld = PapOrder::model()->findAll("Status=9 and (EvaStatus = 0 or EvaStatus = 15)"); //查询符合要求的已收货订单 foreach ($modeld as $value) { if ($value['ReceiptTime'] < $Timeeva) { $model = new PapEvaluationService(); $model->BuyerID = $value['BuyerID']; $ID = $model->OrderID = $value['ID']; $model->OrganID = $value['SellerID']; $model->BuyerFamily = 5; $model->BuyerAccept = 5; $model->BuyerBusiness = 5; $model->BuyerSpeed = 5; $model->BuyerCommunication = 5; $model->BuyerScore = 5; $model->CreateTime = time(); $bool = $model->insert(); if ($bool) { if ($value['EvaStatus'] == 0) { $EvaStatus = 16; //如果该订单经销商先评价,把状态改为16 } else { if ($value['EvaStatus'] == 15) { $EvaStatus = 20; //如果该订单之前服务店评价过一次,则经销商此时评价状态改为20 } } PapOrder::model()->updateByPK($ID, array('EvaStatus' => $EvaStatus)); } } } Yii::log(date('Y-m-d H:i:s') . " [AutoEvaluation] end \n", 'info', 'command'); echo date('Y-m-d H:i:s') . " [AutoEvaluation] end \n"; }
public function actionSaveevaluation() { $OrderID = $_POST['evalOrderID']; //避免重复评论 如果该订单 修理厂评价过15 或者 双方都评价过20 $omodel = PapOrder::model()->findByPk($OrderID, '(EvaStatus=15 or EvaStatus=20) and (Status=9 or Status = 16)'); if ($omodel) { echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; echo "<script>alert('该订单已评论!');window.location.href='" . Yii::app()->createUrl('pap/orderreview/index', array('orderstype' => 4, 'evastatus' => 1)) . "'</script>"; exit; } $this->pageTitle = Yii::app()->name . '-' . "保存评价"; $BuyerID = Yii::app()->user->getOrganID(); //处理前台穿过来的数据 $BuyerToEvalRemark = explode(',', $_POST['BuyerToEvalRemark']); $Status = explode(',', $_POST['Status']); $GoodsID = explode(',', $_POST['GoodsID']); //var_dump(ltrim($_POST['GoodsID'],"0,"));die; $OrganID = $_POST['OrganID']; $OrderStatus = $_POST['OrderStatus']; $EvaStatus = $_POST['EvaStatus'] ? $_POST['EvaStatus'] : null; $evaID = Yii::app()->request->getParam('evaID'); //删除已添加的评价 PapEvaluationGoods::model()->deleteAll('OrderID=:OrderID', array(':OrderID' => $OrderID)); $length = count($Status); $gbool = 1; for ($i = 1; $i < $length; $i++) { $gevaluation = new PapEvaluationGoods(); $gevaluation->OrganID = $OrganID; $gevaluation->GoodsID = $GoodsID[$i]; $gevaluation->BuyerID = $BuyerID; if ($BuyerToEvalRemark[$i] != '质量如何?来说说吧...') { $gevaluation->BuyerToEvalRemark = htmlspecialchars($BuyerToEvalRemark[$i]); } $gevaluation->CreateTime = time(); $gevaluation->OrderID = $OrderID; $gevaluation->Status = $Status[$i]; $model = $gevaluation->save(); $evasID[$i] = Yii::app()->papdb->getLastinsertID(); $goodsImages = Yii::app()->request->getParam("goodsImages" . ($i - 1)); if (isset($goodsImages) && !empty($goodsImages)) { $this->saveorganphoto($goodsImages, $GoodsID[$i], $evasID[$i]); } if ($model) { $m = PapGoods::model()->findByPk($GoodsID[$i]); if ($m['CommentNo']) { PapGoods::model()->updateByPk($GoodsID[$i], array('CommentNo' => $m['CommentNo'] + 1)); } else { PapGoods::model()->updateByPk($GoodsID[$i], array('CommentNo' => 1)); } } else { $gbool = 0; foreach ($gevaluation->errors as $errorsv) { if (!$error) { $error = $errorsv[0]; } } } } //获取修理厂评价经销商的商品积分 $pap_eva_goods = "select OrganID,Status,OrderID from pap_evaluation_goods where OrganID ={$OrganID} and OrderID=" . $OrderID; $bool2 = Yii::app()->papdb->createCommand($pap_eva_goods)->queryAll(); $sum = 0; foreach ($bool2 as $v) { if ($v['Status'] == 3) { $sum += -1; } if ($v['Status'] == 2) { $sum += 0; } if ($v['Status'] == 1) { $sum += 1; } } //获取经销商的信用等级 $organGrade = "select Grade from jpd_organ where ID=" . $bool2[0]['OrganID']; $bool3 = Yii::app()->jpdb->createCommand($organGrade)->queryRow(); //更新经销商的信用等级 $sum2 = $sum + $bool3['Grade']; $Gradesum = "update jpd_organ set Grade ={$sum2} where ID=" . $bool2[0]['OrganID']; $bool4 = Yii::app()->jpdb->createCommand($Gradesum)->execute(); $addsql = "insert into pap_evaluation_organ (Identity,OrganID,Recier,JudgeID,OrderID,Score,CreateTime) values "; $keytop = 1; foreach ($evaID as $ekeys => $evalue) { if ($keytop != 1) { $addsql .= ","; } $addsql .= "("; $addsql .= 2; $addsql .= ","; $addsql .= $BuyerID; $addsql .= ","; $addsql .= $OrganID; $addsql .= ","; $addsql .= $ekeys; $addsql .= ","; $addsql .= $OrderID; $addsql .= ","; $addsql .= $evalue; $addsql .= ","; $addsql .= time(); $addsql .= ")"; $keytop = 2; // EvaluateService::addjudgerecord($ekeys, $evalue, $OrganID, 2, $OrderID); } $obool = Yii::app()->papdb->createCommand($addsql)->execute(); if ($gbool && $obool) { if ($OrderStatus == 9 && $EvaStatus == null) { $EvaStatus = 15; //如果该订单服务店先评价,把状态改为15 } elseif ($OrderStatus == 9 && $EvaStatus == 16) { $EvaStatus = 20; //如果该订单之前经销商评价过一次,则服务店此时评价状态改为20 } $bool2 = PapOrder::model()->updateByPK($OrderID, array('EvaStatus' => $EvaStatus)); $rs = array('success' => 1, 'errorMsg' => '评价成功'); } else { $rs = array('success' => 0, 'errorMsg' => '评价失败', 'error' => $error); } $this->render("evaresult", array('result' => $rs)); }