Bladeren bron

add answer list

stanley-king 7 jaren geleden
bovenliggende
commit
fcdfafa31c
5 gewijzigde bestanden met toevoegingen van 22 en 8 verwijderingen
  1. 4 2
      helper/ugc/answer.php
  2. 5 1
      helper/ugc/special.php
  3. 10 3
      helper/ugc_helper.php
  4. 2 2
      mobile/control/control.php
  5. 1 0
      mobile/control/special.php

+ 4 - 2
helper/ugc/answer.php

@@ -249,7 +249,7 @@ class special_answer
         return $this->submit_answers;
     }
 
-    public function answer($sub_answers)
+    public function answer($sub_answers,&$answer_id)
     {
         $sub_answers = $this->format_answer($sub_answers);
         $correct_num = $this->match_answer($sub_answers,$this->correct_answers);
@@ -258,8 +258,10 @@ class special_answer
         $member_id = session_helper::memberid();
         if($member_id > 0)
         {
-            Model()->table('special_answer')->insert(['special_id' => $spid,'member_id' => $member_id,'answer' => serialize($sub_answers),
+            $answer_id = Model()->table('special_answer')->insert(['special_id' => $spid,'member_id' => $member_id,'answer' => serialize($sub_answers),
                 'total_num' => count($this->correct_answers),'correct_num' => $correct_num,'answer_time' => time()]);
+        } else {
+            $answer_id = -1;
         }
 
         return $correct_num;

+ 5 - 1
helper/ugc/special.php

@@ -16,6 +16,7 @@ class submit_rule
     private $bonus;
     private $type_sn;
     private $per_amount;
+    private $bonus_rate;
 
     public function __construct($content)
     {
@@ -32,6 +33,9 @@ class submit_rule
     public function per_amount() {
         return $this->per_amount;
     }
+    public function bonus_rate() {
+        return $this->bonus_rate;
+    }
     public function make_bonus($num)
     {
         if($this->support_bonus() == false) return false;
@@ -41,6 +45,7 @@ class submit_rule
         {
             $trans = new trans_wapper(null,'submit_rule make_bonus');
             $type = bonus\type::create_by_sn($this->type_sn());
+            $this->bonus_rate = $type->bonus_rate();
 
             $bonus_value = intval(floatval($this->per_amount()) * $num * 100 + 0.5);
 
@@ -53,7 +58,6 @@ class submit_rule
             $bonus_value = $bonus_value > $left ? $left : $bonus_value;
             $bonus_value = $bonus_value / 100;
 
-
             $params['session_id']  = session_helper::session_id();
             $params['grab_time']   = time();
             $params['bonus_rate'] = $type->bonus_rate();

+ 10 - 3
helper/ugc_helper.php

@@ -131,7 +131,7 @@ class ugc_helper
             if($special->has_question() && $answers != false)
             {
                 $answor = new special_answer($special);
-                $correct_num = $answor->answer($answers);
+                $correct_num = $answor->answer($answers,$answor_id);
                 $num += $correct_num;
                 $answer_diff = $answor->diff();
                 $bonus_type = 1;
@@ -143,13 +143,20 @@ class ugc_helper
         }
 
         $rule = $special->submit_rule();
-        if($rule != false && $num > 0) {
+        if($rule != false && $num > 0)
+        {
             $type_sn = $rule->make_bonus($num);
             $amount = intval($rule->per_amount() * $num * 100 + 0.5) / 100;
-        } else {
+            $bonus_rate = $rule->bonus_rate();
+            if(isset($answor_id)) {
+                Model()->table('special_answer')->update(['amount' => $amount,'bonus_rate' => $bonus_rate],['spanswer_id' => $answor_id]);
+            }
+        }
+        else {
             $type_sn = "";
             $amount = 0.0;
         }
+
         return ['vote_result' => $vote_result,'answer_diff' => $answer_diff,'type_sn' => $type_sn,'num' => $num,'amount' => $amount,'bonus_type' => $bonus_type];
     }
 

+ 2 - 2
mobile/control/control.php

@@ -289,9 +289,9 @@ class mbMemberControl extends mobileControl
 
 function bonus_version()
 {
-    return "v=20170815";
+    return "v=2017081701";
 }
 function shop_version()
 {
-    return "v=20170815";
+    return "v=2017081701";
 }

+ 1 - 0
mobile/control/special.php

@@ -346,6 +346,7 @@ class tpl_ugc
                 $this->show_question($item);
                 $this->mQuestionIndex++;
             }
+            
             elseif($show_type == 'goods') {
                 $this->show_goods($item);
             }