瀏覽代碼

add goods

stanley-king 7 年之前
父節點
當前提交
ae5d9b98f0
共有 6 個文件被更改,包括 157 次插入46 次删除
  1. 57 20
      helper/ugc/answer.php
  2. 23 7
      helper/ugc_helper.php
  3. 14 14
      helper/user_session/storage.php
  4. 2 2
      mobile/control/control.php
  5. 20 0
      mobile/control/member_ugc.php
  6. 41 3
      mobile/control/special.php

+ 57 - 20
helper/ugc/answer.php

@@ -13,29 +13,75 @@ use trans_wapper;
 use Exception;
 use session_helper;
 
-class special_support
+class special_support extends storage
 {
-    public function limit_type()
+    private $special_id;
+    private $comment_id;
+
+    public function __construct($special_id,$comment_id)
     {
+        $this->special_id = intval($special_id);
+        $this->comment_id = intval($comment_id);
+    }
+    public function is_special() {
+        return ($this->special_id > 0 && $this->comment_id <= 0);
+    }
 
+    public function limit_type()
+    {
+        return storage::NORMAL_SUPPORT;
     }
     public function storage_tag()
     {
-
+        if($this->is_special()) {
+            return "special_support";
+        } else {
+            return "special_comment_{$this->special_id}";
+        }
     }
-    public function support_count()
+    public function supported()
     {
-
+        if($this->is_special()) {
+            return parent::base_supported($this->special_id);
+        } else {
+            return parent::base_supported($this->comment_id);
+        }
     }
-
-    public function onSuppored()
+    public function support()
     {
-
+        if($this->is_special())
+        {
+            $ret = parent::base_support($this->special_id);
+            if($ret) {
+                $this->add_special_likes();
+            }
+        }
+        else
+        {
+            $ret = parent::base_support($this->comment_id);
+            if($ret) {
+                $this->add_comment_likes();
+            }
+        }
+        return $ret;
     }
-    public function onUnSupported()
+    private function add_special_likes()
+    {
+        $mb_special = Model('mb_special');
+        $mb_special->table('mb_special')->where(['special_id' => $this->special_id])->update([ 'likes' => ['exp', 'likes + 1'] ]);
+    }
+    private function add_comment_likes()
     {
 
     }
+    public function unsupport()
+    {
+        if($this->is_special()) {
+            return parent::base_unsupport($this->special_id);
+        } else {
+            return parent::base_unsupport($this->comment_id);
+        }
+    }
 }
 
 class special_submitor extends storage
@@ -52,19 +98,10 @@ class special_submitor extends storage
     }
 
     public function submited() {
-        return $this->supported($this->special_id);
+        return $this->base_supported($this->special_id);
     }
     public function submit() {
-        parent::support($this->special_id);
-    }
-    public function support_count()
-    {
-    }
-    public function onSuppored()
-    {
-    }
-    public function onUnSupported()
-    {
+        parent::base_support($this->special_id);
     }
 }
 

+ 23 - 7
helper/ugc_helper.php

@@ -22,6 +22,7 @@ use ugc\special_vote;
 use ugc\special;
 use ugc\special_answer;
 use ugc\special_submitor;
+use ugc\special_support;
 
 class ugc_helper
 {
@@ -85,13 +86,13 @@ class ugc_helper
 
     public static function submit($special_id,$options,&$err)
     {
-//        $submitor = new special_submitor($special_id);
-//        if($submitor->submited()) {
-//            $err = ['code' => errcode::ErrSpecial,"您已经提交过"];
-//            return false;
-//        } else {
-//            $submitor->submit();
-//        }
+        $submitor = new special_submitor($special_id);
+        if($submitor->submited()) {
+            $err = ['code' => errcode::ErrSpecial,"您已经提交过"];
+            return false;
+        } else {
+            $submitor->submit();
+        }
 
         $mod_special = Model('mb_special');
         $special_info = $mod_special->getMbSpecialByID($special_id,'*',true);
@@ -143,6 +144,21 @@ class ugc_helper
         return ['vote_result' => $vote_result,'answer_diff' => $answer_diff,'type_sn' => $type_sn];
     }
 
+    public static function support_special($special_id,$comment_id)
+    {
+        $supporter = new special_support($special_id,$comment_id);
+
+        if($supporter->supported()) {
+            $supporter->unsupport();
+            $supported = false;
+        } else {
+            $supporter->support();
+            $supported = true;
+        }
+
+        return $supported;
+    }
+
     public static function init_server()
     {
         $initer = new ugciniter();

+ 14 - 14
helper/user_session/storage.php

@@ -33,15 +33,14 @@ abstract class storage
             return false;
         }
 
-        if($this->supported($uniqueid)) {
+        if($this->base_supported($uniqueid)) {
             $supported = false;
-            $supports = $this->unsupport($uniqueid);
+            $this->base_unsupport($uniqueid);
         } else {
             $supported = true;
-            $supports = $this->support($uniqueid);
+            $this->base_support($uniqueid);
         }
-
-        return ['likes' => $supports,'supported' => $supported,'inoherb_id' => $uniqueid];
+        return $supported;
     }
 
     private function session_data()
@@ -63,7 +62,7 @@ abstract class storage
         }
     }
 
-    protected function supported($uniqueid)
+    protected function base_supported($uniqueid)
     {
         $this->session_data();
         if(algorithm::binary_search($this->mCurStorage,$uniqueid)) {
@@ -73,29 +72,30 @@ abstract class storage
         }
     }
 
-    protected function support($uniqueid)
+    protected function base_support($uniqueid)
     {
-         $this->session_data();
+        $this->session_data();
         if(algorithm::binary_search($this->mCurStorage,$uniqueid) == false) {
             $pos = algorithm::lower_bonud($this->mCurStorage,$uniqueid);
             algorithm::array_insert($this->mCurStorage,$pos,$uniqueid);
+            return true;
+        } else {
+            return false;
         }
     }
 
-    protected function unsupport($uniqueid)
+    protected function base_unsupport($uniqueid)
     {
         $this->session_data();
         if(algorithm::binary_search($this->mCurStorage,$uniqueid) == true) {
             $pos = algorithm::lower_bonud($this->mCurStorage,$uniqueid);
             algorithm::array_erase($this->mCurStorage,$pos);
-            $this->onUnSupported();
+            return true;
+        } else {
+            return false;
         }
-        return $this->support_count();
     }
 
     abstract protected function limit_type();
     abstract protected function storage_tag();
-    abstract protected function support_count();
-    abstract protected function onSuppored();
-    abstract protected function onUnSupported();
 }

+ 2 - 2
mobile/control/control.php

@@ -284,9 +284,9 @@ class mbMemberControl extends mobileControl
 
 function bonus_version()
 {
-    return "v=20170728";
+    return "v=2017073001";
 }
 function shop_version()
 {
-    return "v=20170728";
+    return "v=2017073001";
 }

+ 20 - 0
mobile/control/member_ugc.php

@@ -238,4 +238,24 @@ class member_ugcControl extends specialControl
             return self::outsuccess(['special_id' => $special_id]);
         }
     }
+
+    public function supportOp()
+    {
+        $special_id = intval($_GET['special_id']);
+        if($special_id < 0) {
+            return self::outerr(errcode::ErrParamter,"该专题不存在");
+        }
+        $comment_id = intval($_GET['comment_id']);
+        $supported = ugc_helper::support_special($special_id,$comment_id);
+        return self::outsuccess(['special_id' => $special_id,'comment_id' => $comment_id,'supported' => $supported]);
+    }
+
+    public function commentOp()
+    {
+
+    }
+    public function appreciateOp()
+    {
+
+    }
 }

+ 41 - 3
mobile/control/special.php

@@ -83,7 +83,6 @@ class specialControl extends mobileHomeControl
                 $url = "";
             }
             $answer_diff = $result['answer_diff'];
-
             return self::outsuccess(['special_id' => $special_id,'vote_result' => $vote_result,'answer_diff' => $answer_diff,'bonus_url' => $url]);
         }
     }
@@ -236,7 +235,7 @@ class tpl_ugc
                 $this->mQuestionIndex++;
             }
             elseif($show_type == 'goods') {
-
+                $this->show_goods($item);
             }
             else {
 
@@ -244,6 +243,46 @@ class tpl_ugc
         }
     }
 
+    private function goods_summary($goods_id)
+    {
+        foreach ($this->summary as $summary)
+        {
+            if($summary['goods_id'] == $goods_id) {
+                return $summary;
+            }
+        }
+        return false;
+    }
+
+    private function show_goods($item)
+    {
+        $goods_id = intval($item['data']);
+        $summary = $this->goods_summary($goods_id);
+        if($summary == false) return;
+        $recoment = $item['reserved'];
+
+        $str = "<div class=\"recommend_goods\">
+                    <div class=\"goods_item\">
+                        <a href=\"\">
+                            <div class=\"goods\">
+                                <div class=\"goods_img\"><img src=\"{$summary['goods_image_url']}\" alt=\"熊猫美妆\"></div>
+                                <div class=\"goods_desc\">
+                                    <p class=\"goods_title\">{$summary['goods_mobile_name']}</p>
+                                    <p class=\"goods_pro\">{$summary['goods_jingle']}</p>
+                                    <p class=\"goods_price\">¥{$summary['goods_price']}</p>
+                                </div>
+                            </div>";
+        if(!empty($recoment))
+        {
+            $str                    .= "<div class=\"recommend\">
+                                <span class=\"label\">推荐理由:{$recoment}</span><span></span>
+                            </div>";
+        }
+        $str .=       "</a>
+                    </div>
+                </div>";
+        echo $str;
+    }
     private function show_question($item)
     {
         if(empty($item['data'])) return false;
@@ -347,7 +386,6 @@ class tpl_ugc
                     <div class=\"vote_options\">";
         foreach ($options as $val)
         {
-
             $key = $val['id'];
             $option = $val['text'];
             $soption = "<div class=\"vote_option\">