文件
mashangyoujiu/Application/SmallProgramApi/Controller/OrderEvaluateController.class.php

280 行
9.0 KiB
PHP
可执行文件

<?php
namespace SmallProgramApi\Controller;
use Think\Controller;
use Common\Model\ImageGalleryModel;
use Common\Model\RetailBillOnlineModel;
use Common\Model\RetailSellModel;
use Common\Model\RetailOrderEvaluateModel;
//[1.7.28]
/**
* OrderEvaluateController 零售小程序商品评价
* @author shao nianyi
* @create_time 2020年4月8日
*/
class OrderEvaluateController extends BaseController
{
/**
* 获取订单商品
*/
public function getBillOrderGoods()
{
$bill_id = I('post.bill_id');
if (!$bill_id) {
$res['status'] = 0;
$res['msg'] = '必要参数缺失!';
$this->ajaxReturn($res);
}
$map = [
'bill_id' => $bill_id
];
$field = [
'id as sell_id',
'goods_id',
'goods_name',
'goods_img_id',
'sku_json_info',
'add_time'
];
$SellModel = new RetailSellModel();
$order_info = $SellModel->getSelect($map, $field);
if ($order_info) {
foreach ($order_info as &$value) {
$value['add_time'] = date('Y-m-d', $value['add_time']);
$value['goods_img'] = $this->getGoodsImage($value['goods_img_id']);
// 处理规格名称
if ($value['sku_json_info']) {
$value['sku_name'] = json_decode($value['sku_json_info'], true)['name'];
$value['sku_id'] = json_decode($value['sku_json_info'], true)['id'];
} else {
$value['sku_name'] = '';
$value['sku_id'] = '';
}
unset($value['sku_json_info']);
unset($value['goods_img_id']);
}
$res['status'] = 1;
$res['msg'] = '数据获取成功';
$res['data'] = $order_info;
} else {
$res['status'] = 1;
$res['msg'] = '暂无数据,请稍后重试!';
$res['data'] = [];
}
$this->ajaxReturn($res);
}
/**
* 用户发布评论
*/
public function userReleaseEvaluate()
{
$uid = self::$uid;
$store_id = self::$store_id;
$bill_id = I('post.bill_id');
$evaluate_json = I('post.evaluate_json');
if (!$evaluate_json) {
$res['status'] = 0;
$res['msg'] = '必要参数缺失!';
$this->ajaxReturn($res);
}
$evaluate_data = json_decode($evaluate_json, true);
$RetailBillOnline = new RetailBillOnlineModel();
$RetailOrderEvaluate = new RetailOrderEvaluateModel();
// 查询订单是否评价
if ($RetailBillOnline->getFind(['bill_id' => $bill_id, 'eval_status' => 1])) {
$res['status'] = 0;
$res['msg'] = '订单已评价!';
$this->ajaxReturn($res);
}
$evaluate_info = '';
foreach ($evaluate_data as &$value) {
if (!$value['sell_id'] || !$value['goods_id']) {
$res['status'] = 0;
$res['msg'] = '必要参数缺失2!';
$this->ajaxReturn($res);
}
if (mb_strlen($value['content'], 'utf-8') > 100) {
$res['status'] = 0;
$res['msg'] = '评论内容过长!';
$this->ajaxReturn($res);
}
$field = [
'bill_id' => (int)$bill_id,
'sell_id' => (int)$value['sell_id'],
'goods_id' => (int)$value['goods_id'],
'sku_id' => (int)$value['sku_id'],
'sku_name' => $value['sku_name'],
'goods_name' => $value['goods_name'],
'uid' => $uid,
'store_id' => $store_id,
'content' => urlencode($value['content']),
'stars' => $value['stars'],
'img_id' => $value['img_id'],
'create_time' => date('Y-m-d H:i:s', time())
];
$evaluate_info = $RetailOrderEvaluate->addOrder($field);
}
$RetailBillOnline->updateOrder(['bill_id' => $bill_id], ['eval_status' => 1]);
if ($evaluate_info) {
$res['status'] = 1;
$res['msg'] = '评价成功';
} else {
$res['status'] = 0;
$res['msg'] = '操作失败,请稍后评价!';
}
$this->ajaxReturn($res);
}
/**
* 获取商品第一个评论及条数
*/
public function getGoodsEvaluate()
{
$goods_id = I('post.goods_id');
if (empty($goods_id)) {
$res['status'] = 0;
$res['msg'] = '必要参数缺失!';
$this->ajaxReturn($res);
}
$EvaluateModel = new RetailOrderEvaluateModel();
$evaluate_info = $EvaluateModel->getGoodsEvaluate($goods_id);
$ImageGalleryModel = new ImageGalleryModel();
if ($evaluate_info['list']) {
$evaluate_info['list']['evaluate_img'] = $ImageGalleryModel->getImageArray($evaluate_info['list']['img_id']);
if (!$evaluate_info['list']['evaluate_img']) {
$evaluate_info['list']['evaluate_img'] = [];
}
if (!$evaluate_info['list']['content']) {
$evaluate_info['list']['content'] = '此用户没有填写评价';
}else{
$evaluate_info['list']['content'] = urldecode($evaluate_info['list']['content']);
}
$evaluate_info['list'] = array(0 => $evaluate_info['list']);
$res['status'] = 1;
$res['msg'] = '信息获取成功';
$res['data'] = $evaluate_info;
} else {
$res['status'] = 0;
$res['msg'] = '该商品暂无评价';
}
$this->ajaxReturn($res);
}
/**
* 获取评论列表
*/
public function getGoodsEvaluateList()
{
$goods_id = I('post.goods_id');
$page = I('post.page') ? I('post.page') : 1;
$pageSize = I('post.pageSize') ? I('post.pageSize') : 3;
if (empty($goods_id)) {
$res['status'] = 0;
$res['msg'] = '必要参数缺失!';
$this->ajaxReturn($res);
}
$EvaluateModel = new RetailOrderEvaluateModel();
$evaluate_list = $EvaluateModel->getGoodsEvaluateList($goods_id, $page, $pageSize);
$ImageGalleryModel = new ImageGalleryModel();
if ($evaluate_list) {
foreach ($evaluate_list as &$value) {
$value['evaluate_img'] = $ImageGalleryModel->getImageArray($value['img_id']);
if (!$value['evaluate_img']) {
$value['evaluate_img'] = [];
}
if (!$value['content']) {
$value['content'] = '此用户没有填写评价';
}else{
$value['content'] = urldecode($value['content']);
}
}
$res['status'] = 1;
$res['msg'] = '信息获取成功';
$res['data'] = $evaluate_list;
} else {
$res['status'] = 1;
$res['msg'] = '该商品暂无评价';
$res['data'] = array();
}
$this->ajaxReturn($res);
}
/**
* 获取评论详情
*/
public function getGoodsEvaluateDetails()
{
$evaluate_id = I('post.evaluate_id');
if (empty($evaluate_id)) {
$res['status'] = 0;
$res['msg'] = '必要参数缺失!';
$this->ajaxReturn($res);
}
$EvaluateModel = new RetailOrderEvaluateModel();
$evaluate_info = $EvaluateModel->getGoodsEvaluateDetails($evaluate_id);
if ($evaluate_info) {
$ImageGalleryModel = new ImageGalleryModel();
$evaluate_info['evaluate_img'] = $ImageGalleryModel->getImageArray($evaluate_info['img_id']);
$res['status'] = 1;
$res['msg'] = '数据获取成功!';
$res['data'] = $evaluate_info;
} else {
$res['status'] = 0;
$res['msg'] = '数据异常,请稍后评价!';
}
$this->ajaxReturn($res);
}
/**
* 评论图片上传
*/
public function evaluateImage()
{
$item_arr = array(
'add_time' => time(),
'from_type_id' => 50,
'localUrl' => 'Store/Evaluate',
'user_type' => 6,
'limit_size' => 5*1024*1024,
'merchant_id' => self::$merchant_id,
);
$uploads = uploadFiles($item_arr); //上传图片
if (!empty($uploads['evaluate_img'])) {
$res['status'] = 1;
$res['evaluate_img_id'] = $uploads['evaluate_img']['id']; // 评论图片
$res['evaluate_path'] = $uploads['evaluate_img']['path']; //商品展示图片
} else {
$res['status'] = 0;
if($uploads['msg']){
$res['msg'] = $uploads['msg'];
} else {
$res['msg'] = '图片上传失败';
}
}
$this->ajaxReturn($res);
}
}