浏览代码

培训活动冗余三个评分数据

lizhen_gitee 4 月之前
父节点
当前提交
0ade59de94

+ 3 - 0
application/admin/lang/zh-cn/trainactive.php

@@ -42,6 +42,9 @@ return [
     'Userauth_status 0' => '否',
     'Userauth_status 1' => '是',
     'Deletetime'        => '删除时间',
+    'Score_sum'         => '总评分',
+    'Score_count'       => '已评分人数',
+    'Score_times'       => '应该评分人数',
     'Cate.name'         => '培训分类',
     'Level.name'        => '培训级别',
     'Type.name'         => '培训类型'

+ 26 - 2
application/api/controller/Trainactive.php

@@ -230,6 +230,7 @@ class Trainactive extends Api
             $this->error('培训已经结束一小时了');
         }
 
+        Db::startTrans();
         //入库
         $data = [
             'train_id' => $id,
@@ -237,9 +238,32 @@ class Trainactive extends Api
             'evaluate_time' => time(),
             'score' => $score,
         ];
-        Db::name('user_train_evaluate')->insertGetId($data);
+        $log_id = Db::name('user_train_evaluate')->insertGetId($data);
+        if(!$log_id){
+            Db::rollback();
+            $this->error('评分失败');
+        }
+
+        //冗余:打分人数,应该打分人数,总分数
+        //总分
+        $update['score_sum'] = Db::name('user_train_evaluate')->where('train_id',$id)->sum('score');
+
+        //已评分人数
+        $update['score_count'] = Db::name('user_train_evaluate')->where('train_id',$id)->count();
+
+        //应该评分人数
+        if($info['userauth_status'] == 0){  //是否允许非实名人员:0=否,1=是
+            $update['score_times'] = count(explode(',',$info['user_ids']));
+        }else{
+            $update['score_times'] = Db::name('user_train')->where('train_id',$id)->count();
+        }
+
+        $rs = Db::name('train_active')->where('id',$id)->update($update);
+        if($rs === false){
+            Db::rollback();
+            $this->error('评分失败');
+        }
 
-        //可能需要冗余,打分人数,应该打分人数,总分数
         $this->success('评分成功');
     }
 

+ 5 - 0
public/assets/js/backend/trainactive.js

@@ -44,6 +44,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'jstree'], function (
                         {checkbox: true},
                         {field: 'id', title: __('Id')},
                         {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"0":__('Status 0')}, formatter: Table.api.formatter.status},
+
+                        {field: 'score_sum', title: __('Score_sum'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                        {field: 'score_count', title: __('Score_count'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                        {field: 'score_times', title: __('Score_times'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+
                         {field: 'logo_image', title: __('Logo_image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
                         {field: 'title', title: __('Title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                         {field: 'number', title: __('Number'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},