Explorar el Código

add 晒单功能

stanley-king hace 8 años
padre
commit
2d58e5f2e5

+ 0 - 2
crontab/crawl/brand_operator.php

@@ -82,8 +82,6 @@ class brand_operator
         return false;
     }
 
-
-
     public function update_brand()
     {
         $results = $this->tm_goods->field('body,title,num_iid')->limit(false)->select();

+ 2 - 1
crontab/crawl/upload_file.php

@@ -280,7 +280,8 @@ class upload_file
      * @param string $field 上传表单名
      * @return bool
      */
-    public function create_thumb($pic_path){
+    public function create_thumb($pic_path)
+    {
         if (!file_exists($pic_path)) return ;
 
         //是否需要生成缩略图

+ 1 - 1
data/model/order.model.php

@@ -496,7 +496,7 @@ class orderModel extends Model
         	       ($order_info['payment_code'] == 'offline' && $order_info['order_state'] == ORDER_STATE_PAY);
         	    $state = floatval($order_info['shipping_fee']) > 0 && $state;
         	   break;
-	    //调整商品价格
+	        //调整商品价格
         	case 'spay_price':
         	    $state = ($order_info['order_state'] == ORDER_STATE_NEW) ||
         	       ($order_info['payment_code'] == 'offline' && $order_info['order_state'] == ORDER_STATE_PAY);

+ 1 - 1
helper/file_upload.php

@@ -80,7 +80,7 @@ class FileUpload
             return false;
         } else {
             $file_path = $dest_file;
-	    @unlink($src_path);
+	        @unlink($src_path);
             return true;
         }
     }

+ 1 - 1
helper/session.php

@@ -204,7 +204,7 @@ class session
     private function expire_min()
     {
         if(is_debug()) {
-            return 5;
+            return 43200;
         } else {
             return 43200;
         }

+ 279 - 1
mobile/control/member_evaluate.php

@@ -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);
+    }
+}

+ 1 - 2
shop/control/member_evaluate.php

@@ -324,8 +324,7 @@ class member_evaluateControl extends BaseMemberControl{
         Tpl::showpage('evaluation.index');
     }
 
-    public function add_imageOp() {
-        $geval_id = intval($_GET['geval_id']);
+    public function add_imageOp() {$geval_id = intval($_GET['geval_id']);
 
         $model_evaluate_goods = Model('evaluate_goods');
         $model_store = Model('store');

+ 37 - 0
test/account_helperTest.php

@@ -97,8 +97,45 @@ class account_helperTest extends PHPUnit_Framework_TestCase
         $goods_amount = intval($info['goods_amount']);
     }
 
+    public function testEvalu()
+    {
+        $data = [];
+
+        $item['goods_id'] = 10;
+        $item['score'] = 3;
+        $item['comment'] = 'hello world';
+
+        $item['images'][] = '/Users/stanley-king/work/PHPProject/shopnc/data/upload/uploadtmp/20161215080916-593ef137-923f-14c0-1307-118be24c9c0e.jpg';
+
+        $data['goods'] = $item;
+        $x = json_encode($data);
+        $x = base64_encode($x);
+
+        $y = json_decode($x,true);
+    }
+
 
+    public function testUpfile()
+    {
+
+        $file = '/Users/stanley-king/work/PHPProject/shopnc/data/upload/uploadtmp/20161215081131-53be4be9-fe01-50e7-28c0-ded900c9a0f6.jpg';
+        $ext = exif_imagetype($file);
+        $exif = image_type_to_mime_type($ext);
+        $tagnmae = exif_tagname($ext);
+
+        $info = new SplFileInfo($file);
+        $type = $info->getType();
+        $type = $info->getExtension();
+        $size = $info->getSize();
+        $tmp_name = $info->getFilename();
+    }
 
+    public function testTmpfile()
+    {
+        $file = '/private/var/tmp/php49DATg';
+        $info = file($file);
+
+    }
 
     public static function tearDownAfterClass()
     {

+ 1 - 0
test/user_helperTest.php

@@ -62,6 +62,7 @@ class user_helperTest extends PHPUnit_Framework_TestCase
     }
 
 
+
     public function testActivity()
     {
         //require_once ('/Users/stanley-king/work/PHPProject/shopnc/mobile/control/activity.php');

+ 3 - 1
upfile_ex.php

@@ -40,7 +40,9 @@ if ($_POST)
 	
 	if ($_FILES["file"]["error"] > 0) {
 		upfile_joutput_error();	
-	} else {
+	}
+	else
+	{
 		$fn = $_FILES["file"]["name"];
   		$ext_name = '.' . strtolower(pathinfo($fn)['extension']);
   		$dest_file = $base_path . '/' . date("YmdHis") . '-' . create_uuid() . $ext_name;