Files
Smart-Farm/app/farm/model/Evaluate.php
2025-12-22 14:32:54 +08:00

338 lines
6.1 KiB
PHP

<?php
namespace app\farm\model;
use app\banquet\model\Place;
use app\BaseModel;
use think\facade\Db;
class Evaluate extends BaseModel
{
//定义表名
protected $name = 'lbfarm_evaluate_list';
protected $append = [
'order_info'
];
/**
* @author chenniang
* @DataTime: 2022-02-10 17:36
* @功能说明:
*/
public function getOrderInfoAttr($value,$data){
if(isset($data['type'])&&isset($data['order_id'])&&isset($data['farmer_id'])){
$model = $this->getTypeModel($data['type'],2);
$info = $model->dataInfo(['id'=>$data['order_id']]);
$farmer_model = new \app\farm\model\Farmer();
$info['farmer_info'] = $farmer_model->dataInfo(['id'=>$data['farmer_id']],'title');
return $info;
}
}
/**
* @author chenniang
* @DataTime: 2022-02-09 17:14
* @功能说明:转换图片格式
*/
public function getImgsAttr($value,$data){
if(!empty($value)){
return explode(',',$value);
}else{
return [];
}
}
/**
* @author chenniang
* @DataTime: 2022-02-10 17:37
* @功能说明:根据type获取模型
*/
public function getTypeModel($type,$is_order=1){
switch ($type){
case 1:
$model = new ClaimOrder();
break;
case 2:
$model = new LandOrder();
break;
case 3:
$model = $is_order ==1?new ShopOrderGoods():new ShopOrder();
break;
default:
$model = new ClaimOrder();
break;
}
return $model;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:04
* @功能说明:添加
*/
public function dataAdd($data){
$data['create_time'] = time();
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:05
* @功能说明:编辑
*/
public function dataUpdate($dis,$data){
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:06
* @功能说明:列表
*/
public function dataList($dis,$page=10){
$data = $this->where($dis)->order('id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:43
* @功能说明:
*/
public function dataInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2021-03-19 16:08
* @功能说明:开启默认
*/
public function updateOne($id){
$user_id = $this->where(['id'=>$id])->value('user_id');
$res = $this->where(['user_id'=>$user_id])->where('id','<>',$id)->update(['status'=>0]);
return $res;
}
/**
* @author chenniang
* @DataTime: 2022-02-10 13:33
* @功能说明:评价管理
*/
public function adminList($dis,$page=10){
$data = $this->alias('a')
->join('lbfarm_farmer b','a.farmer_id = b.id','left')
->join('lbfarm_user_list c','a.user_id = c.id','left')
->where($dis)
->field('a.*,b.title,c.nickName,c.avatarUrl')
->group('a.id')
->order('a.id desc')
->paginate($page)
->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2022-02-11 10:04
* @功能说明:根据type获取key
*/
public function getObjKey($type){
switch ($type){
case 1:
$key = 'claim_id';
break;
case 2:
$key = 'land_id';
break;
case 3:
$key = 'goods_id';
break;
default:
$key = 'claim_id';
break;
}
return $key;
}
/**
* @author chenniang
* @DataTime: 2022-02-11 09:53
* @功能说明:评价列表
*/
public function goodsEvaluateList($goods_id,$type,$is_goods=0){
$order_model = $this->getTypeModel($type);
$key = $this->getObjKey($type);
$dis = [
// 'pay_type' => 7,
$key => $goods_id
];
if($type==3){
$order_id = $order_model->where($dis)->column('order_id');
}else{
$order_id = $order_model->where($dis)->column('id');
}
$where[] = ['status','>',-1];
$where[] = ['order_id','in',$order_id];
$where[] = ['type','=',$type];
$dis_where = $where;
if($is_goods==1){
$where[] = ['star','>=',3];
}
if($is_goods==2){
$where[] = ['star','<',3];
}
$data = $this->dataList($where);
if(!empty($data['data'])){
$user_model = new User();
foreach ($data['data'] as &$v){
$v['user_info'] = $user_model->where(['id'=>$v['user_id']])->field('nickName,avatarUrl')->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
}
}
$data['good_count'] = $this->where($dis_where)->where('star','>=',3)->count();
$data['bad_count'] = $this->where($dis_where)->where('star','<',3)->count();
$data['all_count'] = $this->where($dis_where)->count();
return $data;
}
/**
* @param $place_id
* @功能说明:修改场地的评分
* @author chenniang
* @DataTime: 2022-01-11 15:49
*/
public function updateFarmerStar($farmer_id){
$dis[] = ['farmer_id','=',$farmer_id];
$dis[] = ['status','>',-1];
$find = $this->where($dis)->find();
$star = $this->where($dis)->avg('star');
$star = !empty($find)?$star:5;
$farmr_model = new Farmer();
$res = $farmr_model->dataUpdate(['id'=>$farmer_id],['star'=>$star]);
return $res;
}
}