Commit 97d4cdcd authored by zhz's avatar zhz

autoevaluate

parent 479665a0
......@@ -40,7 +40,8 @@ class GoodsController extends \Our\Controller_AbstractIndex {
}
public function testAction(){
//$info = $this->goodsService->recommend();
\Business\Goods\GoodsCommonServiceModel::getInstance()->saleGoods();
//\Business\Goods\GoodsCommonServiceModel::getInstance()->saleGoods();
\Business\Goods\EvaluationServiceModel::getInstance()->autoEvaluate();
}
public function getAttrsAction(){
......
......@@ -53,7 +53,7 @@ class OrderConst {
const waitBuyerConfirmRecieve='等待用户确认收货';
const defaultComment = '好评!';
const beyondTimeDefaultComment = '此用户没有填写评价';//超期评价
}
?>
\ No newline at end of file
......@@ -54,6 +54,7 @@ class EvaluationServiceModel extends \Business\AbstractModel {
$memberName = $member['memberName'];
$memberAvatar = $member['memberAvatar'];
foreach ($data['goods'] as $k=>$v){
if($orderGoods[$v['goodsId']]['goods_commonid'] > 0) {//=0是组合
$evaluation = array();
$evaluation['geval_orderid'] = $order['order_id'];
$evaluation['geval_orderno'] = $order['order_sn'];
......@@ -90,6 +91,7 @@ class EvaluationServiceModel extends \Business\AbstractModel {
$data['goods'][$k]['goodsCommonId'] = $evaluation['geval_goods_commonid'];
$evaluations[] = $evaluation;
}
}
$result = \DAO\EvaluateGoodsModel::getInstance()->insertAll($evaluations);
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError);
......@@ -100,6 +102,7 @@ class EvaluationServiceModel extends \Business\AbstractModel {
$insert = array();
foreach ($data['goods'] as $v){
if($v['goodsCommonId']) {
//更新商品评分
$statisticsDb6Redis = \Redis\Db6\StatisticsRedisModel::getInstance();
//goods_common
......@@ -113,6 +116,7 @@ class EvaluationServiceModel extends \Business\AbstractModel {
//删除商品评论列表缓存
\Our\RedisHelper::delCachedFunction(\Redis\Db4\EvaluateGoodsRedisModel::getInstance(),array(&$evaluateInstance, 'getList'),array(),array($v['goodsCommonId']));
}
}
//批量插入或更新评论总分等
\DAO\GoodsScoreStatisticsModel::getInstance()->insertAllOrUpdate($insert);
if($order['diliveryman_id']){
......@@ -243,8 +247,102 @@ class EvaluationServiceModel extends \Business\AbstractModel {
return array($param, $order, $orderGoods);
}
public function autoEvaluate() {
$list = \DAO\Order\OrderModel::getInstance()->getList(array('finnshed_time'=>array('elt',time()-(\Our\ApiConst::sevenDaySecond)),'evaluation_state'=>\Our\ApiConst::waitEvaluation),'order_id',0,1000,'');
var_dump($list);
$pageBegin = \Our\PageConst::taskPageBegin;
$orderDao = \DAO\Order\OrderModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance();
$evaluateInstance = \DAO\EvaluateGoodsModel::getInstance();
do{
$list = $orderDao->getList(array('finnshed_time'=>array('elt',time()-(\Our\ApiConst::sevenDaySecond)),'evaluation_state'=>\Our\ApiConst::waitEvaluation,'order_state'=>\Our\ApiConst::orderStateComplete,'delete_state'=>0,'lock_state'=>0),'order_id,buyer_id,buyer_name,store_name,store_id,order_sn,order_id,diliveryman_id',$pageBegin,\Our\PageConst::taskPageSize,'');
foreach ($list['list'] as $order) {
$orderGoods = $orderGoodsDao->getOrderGoodsList(array('order_id'=>$order['order_id']),'rec_id,goods_id,goods_commonid,goods_name,goods_image,goods_pay_price,goods_num,goods_spec');
foreach ($orderGoods as $k=>$v){
if($v['goods_commonid'] > 0) {
$evaluation = array();
$evaluation['geval_orderid'] = $order['order_id'];
$evaluation['geval_orderno'] = $order['order_sn'];
$evaluation['geval_ordergoodsid'] = $v['rec_id'];
$evaluation['geval_goodsid'] = $v['goods_id'];
$evaluation['geval_goodsname'] = $v['goods_name'];
$evaluation['geval_goodsprice'] = $v['goods_pay_price'];
$evaluation['geval_goodsimage'] = $v['goods_image'];
$evaluation['geval_scores'] = 5;
$evaluation['geval_content'] = \Our\OrderConst::beyondTimeDefaultComment;
$evaluation['geval_isanonymous'] = 1;
$evaluation['geval_addtime'] = time();
$evaluation['geval_storeid'] = $order['store_id'];
$evaluation['geval_storename'] = $order['store_name'];
$evaluation['geval_frommemberid'] = $order['buyer_id'];
$evaluation['geval_frommembername'] = $order['buyer_name'];;
$images = null;
$evaluation['geval_image'] = serialize($images);
$evaluation['geval_goods_commonid'] = $v['goods_commonid'];
$evaluation['goods_spec'] = $v['goods_spec'];
$evaluations[] = $evaluation;
}
}
$result = \DAO\EvaluateGoodsModel::getInstance()->insertAll($evaluations);
if(!$result){
return false;
}
foreach ($orderGoods as $v) {
if($v['goods_commonid'] > 0) {
//更新商品评分
$statisticsDb6Redis = \Redis\Db6\StatisticsRedisModel::getInstance();
//goods_common
$grade = \DAO\GoodsScoreStatisticsModel::getInstance()->getGrade($v['goods_commonid']);
$grade['evaluation_score'] = $grade['evaluation_score']+5;
$grade['evaluation_number'] = $grade['evaluation_number'] + 1;
$grade['evaluation_img_number'] = $grade['evaluation_img_number'];
$statisticsDb6Redis->tableHSet('goodsCommon',$v['goods_commonid'],serialize($grade));
$grade['goods_commonid'] = $v['goods_commonid'];
$insert[] = $grade;
//删除商品评论列表缓存
\Our\RedisHelper::delCachedFunction(\Redis\Db4\EvaluateGoodsRedisModel::getInstance(),array(&$evaluateInstance, 'getList'),array(),array($v['goods_commonid']));
}
}
//批量插入或更新评论总分等
\DAO\GoodsScoreStatisticsModel::getInstance()->insertAllOrUpdate($insert);
if($order['diliveryman_id']){
$delivery['deval_orderid'] = $order['order_id'];//配送评价表的内容
$delivery['deval_orderno'] = $order['order_sn'];
$delivery['deval_storeid'] = $order['store_id'];
$delivery['diliveryman_id'] = $order['diliveryman_id'];
$delivery['deval_time'] = time();
$delivery['deval_score'] = 5;
$devalId = \DAO\EvaluateDeliverymanModel::getInstance()->insert($delivery);
}
$evaluateStore = array();
$evaluateStore['seval_orderid'] = $order['order_id'];
$evaluateStore['seval_orderno'] = $order['order_sn'];
$evaluateStore['seval_addtime'] = time();
$evaluateStore['seval_storeid'] = $order['store_id'];
$evaluateStore['seval_storename'] = $order['store_name'];
$evaluateStore['seval_memberid'] = $order['buyer_id'];
$evaluateStore['seval_membername'] = $order['buyer_name'];
$evaluateStore['seval_desccredit'] = 5;
$evaluateStore['seval_servicecredit'] = 5;
$evaluateStore['seval_deliverycredit'] = 5;
$resultStore = \DAO\EvaluateStoreModel::getInstance()->insert($evaluateStore);
if($resultStore){
//更新店铺评分
$grade = \DAO\StoreScoreStatisticsModel::getInstance()->getGrade($order['store_id']);
$grade['evaluation_score'] = $grade['evaluation_score']+5+5+5;
$grade['evaluation_number'] = $grade['evaluation_number'] + 1;
$statisticsDb6Redis = \Redis\Db6\StatisticsRedisModel::getInstance();
$statisticsDb6Redis->tableHSet('store',$order['store_id'],serialize($grade));
//更新店铺评论总分
\DAO\StoreScoreStatisticsModel::getInstance()->insertOrUpdate(array('store_id'=>$order['store_id'],'evaluation_score'=>$grade['evaluation_score'],'evaluation_number'=>$grade['evaluation_number']));
}
\DAO\Goods\StoreTopSaleGoodsModel::getInstance()->pushChangeSaleStore($order['store_id']);
//修改订单状态
$orderDao->update(array('order_id'=>$order['order_id']),array('evaluation_state'=>2));
//删除缓存
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(),array(&$orderDao, 'find'),array(),array($order['order_id']));
$orderDao->deleteOrderCache($order['buyer_id'], $order['order_id'],$order['store_id']);
}
}while(!empty($list['list']));
}
private static $_instance = null;
/**
......
......@@ -2,7 +2,7 @@
/**
* 自动评价
* 执行时间:一小时执行一次
* 执行时间:十分钟执行一次
*/
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
......@@ -39,10 +39,7 @@ class cliOrderEvaluate extends basecli
}
}
protected function autoEvaluate(){
$orderService=\Business\Order\OrderServiceModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$orderService->changeOrderStatus();
$messageService=\Business\Message\MessageServiceModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$messageService->addMessageCenterToDb();
\Business\Goods\EvaluationServiceModel::getInstance()->autoEvaluate();
}
protected function _runCli()
{
......@@ -62,9 +59,9 @@ class cliOrderEvaluate extends basecli
if( file_exists( $this->lockFileName ) )
{
$stat = stat($this->lockFileName);
if( (TIMESTAMP - $stat['mtime']) > 5400 )
if( (TIMESTAMP - $stat['mtime']) > 1800 )
{
echo "文件被锁超过5400秒,被强制删除";
echo "文件被锁超过1800秒,被强制删除";
@unlink($this->lockFileName);
}
else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment