Files
amb_wechatapp/application/common/model/order/Evaluate.php
T

168 lines
4.1 KiB
PHP

<?php
namespace app\common\model\order;
use think\Model;
use app\common\model\order\Item as OrderItem;
/**
* 订单评价
*/
class Evaluate extends Model
{
// 表名
protected $name = 'order_evaluate';
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'integer';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = false;
protected $deleteTime = false;
/**
* 获取被评价的商品信息
* @return void
*/
public function getToItemInfo($orderNo,$itemId){
$data = OrderItem::where([
'evaluate'=>0,
'order_no'=>$orderNo,
'item_id'=>$itemId
])->find();
if(!$data){
return false;
}
$data['snapshoot'] = json_decode($data['snapshoot'],true);
$data = (new \app\api\model\order\Order())->limitItemField($data);
return $data;
}
/**
* 获取评价列表
* @param $userId
* @param $params
* @return array
*/
public function getList($userId,$params = []){
$rows = self::with(['user']);
$where = [];
if(isset($params['status']) && $params['status'] && in_array($params['status'],$this->getStatus())){
switch ($params['status']){
case 'good':
$where['rate'] = ['>=' , 3];
break;
case 'bad':
$where['rate'] = ['<' , 3];
break;
case 'img':
$where['imgs'] = ['<>',''];
break;
}
}
if($userId){
$where['user_id'] = $userId;
}
$where['item_id'] = $params['item_id'];
$where['evaluate.status'] = 1;
$list = $rows
->where($where)
->order('createtime','desc')
->limit($params['limit'])->page($params['page'])
->select();
$data = [];
if(!empty($list)){
foreach ($list as $index => $item){
try{
$item->getRelation('user')->visible(['nickname','avatar']);
$item->visible(['content','anonymity','createtime','imgs','rate','user']);
if($item['imgs']){
$imgs = explode(",",$item['imgs']);
foreach ($imgs as &$img){
$img = cdnurl($img);
}
$item['imgs'] = $imgs;
}else{
$item['imgs'] = [];
}
$item->user['avatar'] = cdnurl($item->user['avatar']);
if($item['anonymity'] == 1){
$item->user['nickname'] = '匿名评价';
$item->user['url'] = '-';
$item->user['avatar'] = letter_avatar('匿');;
}
$data[] = $item;
}catch (\Exception $e){}
}
}
return $data;
}
/**
* 获取推荐的评论列表
* @return void
*/
public function getRecommendList($itemId){
$data = [];
$data['list'] = $this->getList(0,[
'item_id'=>$itemId,
'limit'=>2,
'page'=>0
]);
$data['count'] = self::where([
'item_id'=>$itemId,
'status'=>1
])->count();
$orderItem = OrderItem::where('item_id', $itemId)->find();
if ($orderItem) {
$goodsType = $orderItem['goods_type'] ?? '';
$isVirtualPay = \app\common\library\pay\VirtualPayService::isUseVirtualPay($goodsType);
$data['is_virtual_pay'] = $isVirtualPay ? 1 : 0;
} else {
$data['is_virtual_pay'] = 0;
}
return $data;
}
public function getStatus()
{
return [
'good',
'bad',
'img'
];
}
public function user()
{
return $this->belongsTo('\app\common\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
}
}