58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace app\jobs;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\services\order\StoreOrderCartInfoServices;
							 | 
						||
| 
								 | 
							
								use app\services\order\StoreOrderServices;
							 | 
						||
| 
								 | 
							
								use app\services\user\UserServices;
							 | 
						||
| 
								 | 
							
								use app\services\product\product\StoreProductReplyServices;
							 | 
						||
| 
								 | 
							
								use crmeb\basic\BaseJobs;
							 | 
						||
| 
								 | 
							
								use crmeb\traits\QueueTrait;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class AutoCommentJob extends BaseJobs
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    use QueueTrait;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 自动评价
							 | 
						||
| 
								 | 
							
								     * @param $id
							 | 
						||
| 
								 | 
							
								     * @param $cart_ids
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function doJob($id, $cart_ids)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        /** @var UserServices $userServices */
							 | 
						||
| 
								 | 
							
								        $userServices = app()->make(UserServices::class);
							 | 
						||
| 
								 | 
							
								        /** @var StoreOrderCartInfoServices $cartInfoServices */
							 | 
						||
| 
								 | 
							
								        $cartInfoServices = app()->make(StoreOrderCartInfoServices::class);
							 | 
						||
| 
								 | 
							
								        /** @var  $replyServices */
							 | 
						||
| 
								 | 
							
								        $replyServices = app()->make(StoreProductReplyServices::class);
							 | 
						||
| 
								 | 
							
								        /** @var StoreOrderServices $orderServices */
							 | 
						||
| 
								 | 
							
								        $orderServices = app()->make(StoreOrderServices::class);
							 | 
						||
| 
								 | 
							
								        $list = $cartInfoServices->getColumn([['cart_id', 'in', $cart_ids]], 'cart_info,uid,oid,unique,product_id');
							 | 
						||
| 
								 | 
							
								        $uids = array_column($list, 'uid');
							 | 
						||
| 
								 | 
							
								        $userInfos = $userServices->getColumn([['uid', 'in', $uids]], 'nickname,avatar', 'uid');
							 | 
						||
| 
								 | 
							
								        $reply = [];
							 | 
						||
| 
								 | 
							
								        foreach ($list as $item) {
							 | 
						||
| 
								 | 
							
								            $reply[] = [
							 | 
						||
| 
								 | 
							
								                'uid' => $item['uid'],
							 | 
						||
| 
								 | 
							
								                'oid' => $item['oid'],
							 | 
						||
| 
								 | 
							
								                'unique' => $item['unique'],
							 | 
						||
| 
								 | 
							
								                'product_id' => $item['product_id'],
							 | 
						||
| 
								 | 
							
								                'reply_type' => 'product',
							 | 
						||
| 
								 | 
							
								                'nickname' => $userInfos[$item['uid']]['nickname'],
							 | 
						||
| 
								 | 
							
								                'avatar' => $userInfos[$item['uid']]['avatar'],
							 | 
						||
| 
								 | 
							
								                'comment' => sys_config('comment_content',''),
							 | 
						||
| 
								 | 
							
								                'product_score' => 5,
							 | 
						||
| 
								 | 
							
								                'service_score' => 5,
							 | 
						||
| 
								 | 
							
								                'add_time' => time(),
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if (count($reply)) {
							 | 
						||
| 
								 | 
							
								            $replyServices->saveAll($reply);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $orderServices->checkOrderOver($replyServices, $cartInfoServices->getCartColunm(['oid' => $id], 'unique', ''), $id);
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |