You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
4.2 KiB

<?php
namespace app\mall\controller\api;
use app\mall\model\MallEvaluate;
use think\facade\Db;
class Evaluate extends Base
{
/**
* 获取商品评价
* @date 2021-03-01
*/
public function getEvaluateList()
{
$param = input('post.');
$param['per_page_number'] = input('post.per_page_number', 10);
$evaluate_model = new MallEvaluate();
$where = [
['uid', '=', UID],
['product_id', '=', $param['product_id']],
['evaluate_id', '=', 0],
['status', '=', 2] //审核通过的
];
if (!empty($param['index'])) {
if ($param['index'] == 1) {
$where[] = ['has_img', '=', 2];
} else if ($param['index'] == 2) {
$where[] = ['star_rank', '=', 3];
} else if ($param['index'] == 3) {
$where[] = ['star_rank', '=', 2];
} else if ($param['index'] == 4) {
$where[] = ['star_rank', '=', 1];
} else if ($param['index'] == 5) {
$where[] = ['is_add', '=', 1];
}
}
$field = 'id,user_id,product_sku_name,content,has_video,video_path,has_img,img_path,create_time,is_add,is_replay,replay';
$list = $evaluate_model->getEvaluateList($where, $param['page'], $field, 'id desc', $param['per_page_number']);
return sendSuccessMessage([
'list' => $list
]);
}
/**
* 获取商品评价种类数量
* @date 2021-03-01
*/
public function getEvaluateNumber()
{
$param = input('post.');
$evaluate_model = new MallEvaluate();
$where = [
['product_id', '=', $param['product_id']],
['evaluate_id', '=', 0],
];
$number['all'] = $evaluate_model->where($where)->count();
$number['image'] = $evaluate_model->where($where)->where([
['has_img', '=', 2]
])->count(); //TODO 有视频是否算有图
$number['good'] = $evaluate_model->where($where)->where([
['star_rank', '=', 3]
])->count();
$number['middle'] = $evaluate_model->where($where)->where([
['star_rank', '=', 2]
])->count();
$number['bad'] = $evaluate_model->where($where)->where([
['star_rank', '=', 1]
])->count();
$number['add'] = $evaluate_model->where($where)->where([
['is_add', '=', 1]
])->count();
return sendSuccessMessage([
'number' => $number
]);
}
/**
* 获取我的评价列表
* @date 2021-03-01
*/
public function getMyEvaluateList()
{
$param = input('post.');
$evaluate_model = new MallEvaluate();
$where = [
['uid', '=', UID],
['user_id', '=', USER_ID],
['evaluate_id', '=', 0]
];
$list = $evaluate_model->getEvaluateList($where, $param['page'], '*');
return sendSuccessMessage([
'list' => $list
]);
}
/**
* 订单评价
* @date 2021-03-01
*/
public function orderEvaluate()
{
$param = input('post.');
$param['order_product'] = json_decode($param['order_product'], true);
$order_logic = new \app\mall\logic\Order();
Db::startTrans();
$res = $order_logic->orderEvaluate($param['order_id'], $param['order_product'], USER_ID);
if ($res['code'] != 0) {
Db::rollback();
return json($res);
}
Db::commit();
return sendSuccessMessage([], '评论成功');
}
/**
* 订单追加评价
* @date 2021-03-01
*/
public function orderEvaluateAdd()
{
$param = input('post.');
$param['order_product'] = json_decode($param['order_product'], true);
$order_logic = new \app\mall\logic\Order();
Db::startTrans();
$res = $order_logic->orderEvaluateAdd($param['order_id'], $param['order_product'], USER_ID);
if ($res['code'] != 0) {
Db::rollback();
return json($res);
}
Db::commit();
return sendSuccessMessage([], '评论成功');
}
}