|
@@ -4,4 +4,282 @@
|
|
|
* User: stanley-king
|
|
|
* Date: 2016/12/13
|
|
|
* Time: 下午8:31
|
|
|
- */
|
|
|
+ */
|
|
|
+
|
|
|
+require_once (BASE_ROOT_PATH . '/helper/FileUploader.php');
|
|
|
+
|
|
|
+class member_evaluateControl extends mbMemberControl
|
|
|
+{
|
|
|
+ const pic_path = '/data/upload/shop/member';
|
|
|
+ public function __construct() {
|
|
|
+ parent::__construct();
|
|
|
+ }
|
|
|
+
|
|
|
+ private function order_id(&$err,&$order_info,&$store_info,&$order_goods)
|
|
|
+ {
|
|
|
+ $order_id = intval($_GET['order_id']);
|
|
|
+ if ($order_id <= 0) {
|
|
|
+ $err = array('code' => errcode::ErrOrderNotExist,'msg' => "订单信息不存在.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $model_order = Model('order');
|
|
|
+ $model_store = Model('store');
|
|
|
+ $order_info = $model_order->getOrderInfo(array('order_id' => $order_id));
|
|
|
+
|
|
|
+ //判断订单身份
|
|
|
+ if($order_info['buyer_id'] != $_SESSION['member_id']) {
|
|
|
+ $err = array('code' => errcode::ErrOrder,'msg' => "只能评论自己的订单.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单为'已收货'状态,并且未评论
|
|
|
+ $order_info['evaluate_able'] = $model_order->getOrderOperateState('evaluation',$order_info);
|
|
|
+ if (empty($order_info) || !$order_info['evaluate_able']) {
|
|
|
+ $err = array('code' => errcode::ErrOrder,'msg' => "该订单目前不能评论.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询店铺信息
|
|
|
+ $store_info = $model_store->getStoreInfoByID($order_info['store_id']);
|
|
|
+ if(empty($store_info)) {
|
|
|
+ $err = array('code' => errcode::ErrOrder,'msg' => "店铺不存在.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取订单商品
|
|
|
+ $order_goods = $model_order->getOrderGoodsList(array('order_id'=>$order_id));
|
|
|
+ if(empty($order_goods)) {
|
|
|
+ $err = array('code' => errcode::ErrOrder,'msg' => "找不到该订单商品.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return $order_id;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function infoOp()
|
|
|
+ {
|
|
|
+ $order_id = $this->order_id($err,$order_info,$store_info,$order_goods);
|
|
|
+ if($order_id == false) {
|
|
|
+ return self::outerr($err['code'],$err['msg']);
|
|
|
+ }
|
|
|
+
|
|
|
+ for ($i = 0, $j = count($order_goods); $i < $j; $i++) {
|
|
|
+ $order_goods[$i]['goods_image_url'] = cthumb($order_goods[$i]['goods_image'], 60, $store_info['store_id']);
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = [];
|
|
|
+ foreach ($order_goods as $key => $val) {
|
|
|
+ $item['goods_id'] = intval($val['goods_id']);
|
|
|
+ $item['goods_image'] = $val['goods_image_url'];
|
|
|
+ $item['store_id'] = intval($val['store_id']);
|
|
|
+ $item['goods_spec'] = $val['goods_spec'];
|
|
|
+ $item['goods_name'] = $val['goods_name'];
|
|
|
+ $item['goods_num'] = intval($val['goods_num']);
|
|
|
+ $item['order_id'] = intval($val['order_id']);
|
|
|
+
|
|
|
+ $result[] = $item;
|
|
|
+ }
|
|
|
+
|
|
|
+ return self::outsuccess(array('order_goods' => $result));
|
|
|
+ }
|
|
|
+
|
|
|
+ private function destpath()
|
|
|
+ {
|
|
|
+ $path = BASE_ROOT_PATH . self::pic_path . '/' . $_SESSION['member_id'];
|
|
|
+ if(is_dir($path)) {
|
|
|
+ return $path;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(mkdir($path)) {
|
|
|
+ return $path;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function init_files($img,&$err)
|
|
|
+ {
|
|
|
+ $_FILES = [];
|
|
|
+ $_FILES['file'] = [];
|
|
|
+
|
|
|
+ $exif = exif_imagetype($img);
|
|
|
+ if($exif == false) {
|
|
|
+ $err = array('code' => errcode::ErrUpfile,"不是图片格式文件");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $mime_type = image_type_to_mime_type($exif);
|
|
|
+ $_FILES['file']['type'] = $mime_type;
|
|
|
+ $_FILES['file']['error'] = 0;
|
|
|
+
|
|
|
+ $info = new SplFileInfo($img);
|
|
|
+ $_FILES['file']['size'] = $info->getSize();
|
|
|
+ $_FILES['file']['name'] = $info->getFilename();
|
|
|
+ $_FILES['file']['tmp_name'] = $img;
|
|
|
+
|
|
|
+ $ext = $info->getExtension();
|
|
|
+ if(empty($ext)) {
|
|
|
+ $file_name = $_SESSION['member_id'].'_'.md5($info->getFilename());
|
|
|
+ } else {
|
|
|
+ $file_name = $_SESSION['member_id'].'_'.md5($info->getFilename()) . '.' . $ext;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $file_name;
|
|
|
+ }
|
|
|
+
|
|
|
+ private function upfile($img,&$err)
|
|
|
+ {
|
|
|
+ if($this->init_files($img,$err) == false) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $member_id = $_SESSION['member_id'];
|
|
|
+ $upload = new FileUploader();
|
|
|
+
|
|
|
+ $upload_dir = ATTACH_MALBUM.DS.$member_id.DS;
|
|
|
+ $upload->set('default_dir',$upload_dir.$upload->getSysSetPath());
|
|
|
+ $thumb_width = '240,1024';
|
|
|
+ $thumb_height = '2048,1024';
|
|
|
+
|
|
|
+ $upload->set('max_size',C('image_max_filesize'));
|
|
|
+ $upload->set('thumb_width', $thumb_width);
|
|
|
+ $upload->set('thumb_height',$thumb_height);
|
|
|
+ $upload->set('fprefix',$member_id);
|
|
|
+ $upload->set('thumb_ext', '_240,_1024');
|
|
|
+ $result = $upload->upfile('file');
|
|
|
+ if($result == true) {
|
|
|
+ return $upload->file_name;
|
|
|
+ } else {
|
|
|
+ $err = array('code' => errcode::ErrUpfile, 'msg' => $upload->error);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function comment(&$err)
|
|
|
+ {
|
|
|
+ $input_goods = trim($_POST['goods']);
|
|
|
+ if(empty($input_goods)) {
|
|
|
+ $err = array('code' => errcode::ErrParamter,'msg' => "请填写评论信息.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $input_goods = base64_decode($input_goods);
|
|
|
+ $input_goods = json_decode($input_goods,true);
|
|
|
+ if(empty($input_goods)) {
|
|
|
+ $err = array('code' => errcode::ErrParamter,'msg' => "请填写评论信息.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $save_path = $this->destpath();
|
|
|
+ if($save_path == false) {
|
|
|
+ $err = array('code' => errcode::ErrParamter,'msg' => "请填写评论信息.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = [];
|
|
|
+ foreach ($input_goods as $val)
|
|
|
+ {
|
|
|
+ $goods_id = intval($val['goods_id']);
|
|
|
+ $score = intval($val['score']);
|
|
|
+
|
|
|
+ $imges = [];
|
|
|
+ foreach ($val['images'] as $img)
|
|
|
+ {
|
|
|
+ $file_name = $this->upfile($img);
|
|
|
+ if($file_name != false) {
|
|
|
+ $imges[] = $file_name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $item['goods_id'] = $goods_id;
|
|
|
+ $item['score'] = $score;
|
|
|
+ $item['comment'] = $val['comment'];
|
|
|
+ $item['images'] = implode(',',$imges);
|
|
|
+
|
|
|
+ $result[$goods_id] = $item;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function addOp()
|
|
|
+ {
|
|
|
+ $order_id = $this->order_id($err,$order_info,$store_info,$order_goods);
|
|
|
+ if($order_id == false) {
|
|
|
+ return self::outerr($err['code'],$err['msg']);
|
|
|
+ }
|
|
|
+ $comments = $this->comment($err);
|
|
|
+ if($comments == false) {
|
|
|
+ return self::outerr($err['code'],$err['msg']);
|
|
|
+ }
|
|
|
+
|
|
|
+ $anony = $_POST['anony'] ? 1 : 0;
|
|
|
+ $model_order = Model('order');
|
|
|
+ $model_evaluate_goods = Model('evaluate_goods');
|
|
|
+
|
|
|
+ $evaluate_goods_array = array();
|
|
|
+ $goodsid_array = array();
|
|
|
+ foreach ($order_goods as $value)
|
|
|
+ {
|
|
|
+ //如果未评分,默认为5分
|
|
|
+ $evaluate_score = $comments[$value['goods_id']]['score'];
|
|
|
+ if($evaluate_score <= 0 || $evaluate_score > 5) {
|
|
|
+ $evaluate_score = 5;
|
|
|
+ }
|
|
|
+ //默认评语
|
|
|
+ $evaluate_comment = $comments[$value['goods_id']]['comment'];
|
|
|
+ if(empty($evaluate_comment)) {
|
|
|
+ $evaluate_comment = '不错哦';
|
|
|
+ }
|
|
|
+ $geval_image = $comments[$value['goods_id']]['images'];
|
|
|
+
|
|
|
+ $evaluate_goods_info = array();
|
|
|
+ $evaluate_goods_info['geval_orderid'] = $order_id;
|
|
|
+ $evaluate_goods_info['geval_orderno'] = $order_info['order_sn'];
|
|
|
+ $evaluate_goods_info['geval_ordergoodsid'] = $value['rec_id'];
|
|
|
+ $evaluate_goods_info['geval_goodsid'] = $value['goods_id'];
|
|
|
+ $evaluate_goods_info['geval_goodsname'] = $value['goods_name'];
|
|
|
+ $evaluate_goods_info['geval_goodsprice'] = $value['goods_price'];
|
|
|
+ $evaluate_goods_info['geval_goodsimage'] = $value['goods_image'];
|
|
|
+ $evaluate_goods_info['geval_scores'] = $evaluate_score;
|
|
|
+ $evaluate_goods_info['geval_content'] = $evaluate_comment;
|
|
|
+ $evaluate_goods_info['geval_isanonymous'] = $anony;
|
|
|
+ $evaluate_goods_info['geval_addtime'] = time();
|
|
|
+ $evaluate_goods_info['geval_storeid'] = $store_info['store_id'];
|
|
|
+ $evaluate_goods_info['geval_storename'] = $store_info['store_name'];
|
|
|
+ $evaluate_goods_info['geval_frommemberid'] = $_SESSION['member_id'];
|
|
|
+ $evaluate_goods_info['geval_frommembername'] = $_SESSION['member_name'];
|
|
|
+ $evaluate_goods_info['geval_image'] = $_SESSION['member_name'];
|
|
|
+ if(!empty($geval_image)) {
|
|
|
+ $evaluate_goods_info['geval_image'] = $geval_image;
|
|
|
+ }
|
|
|
+
|
|
|
+ $evaluate_goods_array[] = $evaluate_goods_info;
|
|
|
+ $goodsid_array[] = $value['goods_id'];
|
|
|
+ }
|
|
|
+
|
|
|
+ $model_evaluate_goods->addEvaluateGoodsArray($evaluate_goods_array, $goodsid_array);
|
|
|
+
|
|
|
+ //更新订单信息并记录订单日志
|
|
|
+ $state = $model_order->editOrder(array('evaluation_state'=>1), array('order_id' => $order_id));
|
|
|
+ $model_order->editOrderCommon(array('evaluation_time'=>TIMESTAMP), array('order_id' => $order_id));
|
|
|
+ if ($state){
|
|
|
+ $data = array();
|
|
|
+ $data['order_id'] = $order_id;
|
|
|
+ $data['log_role'] = 'buyer';
|
|
|
+ $data['log_msg'] = L('order_log_eval');
|
|
|
+ $model_order->addOrderLog($data);
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加会员积分
|
|
|
+ if (C('points_isuse') == 1){
|
|
|
+ $points_model = Model('points');
|
|
|
+ $points_model->savePointsLog('comments',array('pl_memberid'=>$_SESSION['member_id'],'pl_membername'=>$_SESSION['member_name']));
|
|
|
+ }
|
|
|
+ //添加会员经验值
|
|
|
+ Model('exppoints')->saveExppointsLog('comments',array('exp_memberid'=>$_SESSION['member_id'],'exp_membername'=>$_SESSION['member_name']));
|
|
|
+
|
|
|
+ return self::outsuccess(NULL);
|
|
|
+ }
|
|
|
+}
|