Browse Source

1.添加测评module

王鹏鹏 2 years ago
parent
commit
cf936758ae

+ 8 - 8
baselib/schemas/com.yingyangfly.baselib.db.AppDataBase/1.json

@@ -2,7 +2,7 @@
   "formatVersion": 1,
   "database": {
     "version": 1,
-    "identityHash": "91169e52f7775bb05c4306aeaf2e616d",
+    "identityHash": "a85fb26b7e6b4b4a90b1f43e30a868cf",
     "entities": [
       {
         "tableName": "Questions",
@@ -306,12 +306,12 @@
       },
       {
         "tableName": "QuestionOption",
-        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` REAL NOT NULL, `correctOption` TEXT, `optionKey` TEXT, `optionVal` TEXT, `questionId` REAL NOT NULL, PRIMARY KEY(`id`))",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `correctOption` TEXT, `optionKey` TEXT, `optionVal` TEXT, `questionId` INTEGER NOT NULL, PRIMARY KEY(`id`))",
         "fields": [
           {
             "fieldPath": "id",
             "columnName": "id",
-            "affinity": "REAL",
+            "affinity": "INTEGER",
             "notNull": true
           },
           {
@@ -335,7 +335,7 @@
           {
             "fieldPath": "questionId",
             "columnName": "questionId",
-            "affinity": "REAL",
+            "affinity": "INTEGER",
             "notNull": true
           }
         ],
@@ -350,12 +350,12 @@
       },
       {
         "tableName": "QuestionRecords",
-        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` REAL NOT NULL, `correctOptionId` TEXT, `correctOptionName` TEXT, `examinationId` TEXT, `examinationTitle` TEXT, `manualHelp` TEXT, `orgCode` TEXT, `orgName` TEXT, `score` TEXT, `status` TEXT, `title` TEXT, `usedTime` TEXT, `selectedItemId` REAL NOT NULL, PRIMARY KEY(`id`))",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `correctOptionId` TEXT, `correctOptionName` TEXT, `examinationId` TEXT, `examinationTitle` TEXT, `manualHelp` TEXT, `orgCode` TEXT, `orgName` TEXT, `score` TEXT, `status` TEXT, `title` TEXT, `usedTime` TEXT, `selectedItemId` INTEGER NOT NULL, PRIMARY KEY(`id`))",
         "fields": [
           {
             "fieldPath": "id",
             "columnName": "id",
-            "affinity": "REAL",
+            "affinity": "INTEGER",
             "notNull": true
           },
           {
@@ -427,7 +427,7 @@
           {
             "fieldPath": "selectedItemId",
             "columnName": "selectedItemId",
-            "affinity": "REAL",
+            "affinity": "INTEGER",
             "notNull": true
           }
         ],
@@ -444,7 +444,7 @@
     "views": [],
     "setupQueries": [
       "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
-      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '91169e52f7775bb05c4306aeaf2e616d')"
+      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'a85fb26b7e6b4b4a90b1f43e30a868cf')"
     ]
   }
 }

+ 12 - 12
baselib/src/main/java/com/yingyangfly/baselib/db/QuestionOptionBean.java

@@ -15,12 +15,12 @@ import androidx.room.PrimaryKey;
 public class QuestionOptionBean {
 
     @PrimaryKey
-    private double id;
+    private long id;
 
     private String correctOption;
     private String optionKey;
     private String optionVal;
-    private double questionId;
+    private long questionId;
 
     @Ignore
     private String updateBy;
@@ -31,14 +31,22 @@ public class QuestionOptionBean {
     @Ignore
     private String createTime;
 
-    public double getId() {
+    public long getId() {
         return id;
     }
 
-    public void setId(double id) {
+    public void setId(long id) {
         this.id = id;
     }
 
+    public void setQuestionId(long questionId) {
+        this.questionId = questionId;
+    }
+
+    public long getQuestionId() {
+        return questionId;
+    }
+
     public String getCorrectOption() {
         if (TextUtils.isEmpty(correctOption)) {
             return "";
@@ -94,14 +102,6 @@ public class QuestionOptionBean {
         this.optionVal = optionVal;
     }
 
-    public double getQuestionId() {
-        return questionId;
-    }
-
-    public void setQuestionId(double questionId) {
-        this.questionId = questionId;
-    }
-
     public String getUpdateBy() {
         if (TextUtils.isEmpty(updateBy)) {
             return "";

+ 1 - 1
baselib/src/main/java/com/yingyangfly/baselib/db/QuestionOptionDao.kt

@@ -15,7 +15,7 @@ interface QuestionOptionDao : BaseDao<QuestionOptionBean> {
     fun getAllQuestionOptionBeanBean(): MutableList<QuestionOptionBean>
 
     @Query("select * from QuestionOption where questionId = :questionId")
-    fun getQuestionOptionBeanByQuestionId(questionId: Double): List<QuestionOptionBean>
+    fun getQuestionOptionBeanByQuestionId(questionId: Long): List<QuestionOptionBean>
 
     @Query("delete from QuestionOption")
     fun deleteAll()

+ 8 - 8
baselib/src/main/java/com/yingyangfly/baselib/db/QuestionRecordsBean.java

@@ -18,7 +18,7 @@ import java.util.List;
 public class QuestionRecordsBean {
 
     @PrimaryKey
-    private double id;
+    private long id;
 
     private String correctOptionId;
     private String correctOptionName;
@@ -32,7 +32,7 @@ public class QuestionRecordsBean {
     private String title;
     private String usedTime;
 
-    private double selectedItemId;
+    private long selectedItemId;
 
     @Ignore
     private String createBy;
@@ -49,12 +49,12 @@ public class QuestionRecordsBean {
     @Ignore
     private String limit;
 
-    public void setId(double id) {
-        this.id = id;
+    public long getId() {
+        return id;
     }
 
-    public double getId() {
-        return id;
+    public void setId(long id) {
+        this.id = id;
     }
 
     public String getCorrectOptionId() {
@@ -255,11 +255,11 @@ public class QuestionRecordsBean {
         this.usedTime = usedTime;
     }
 
-    public double getSelectedItemId() {
+    public long getSelectedItemId() {
         return selectedItemId;
     }
 
-    public void setSelectedItemId(double selectedItemId) {
+    public void setSelectedItemId(long selectedItemId) {
         this.selectedItemId = selectedItemId;
     }
 }

+ 2 - 2
evaluation/src/main/java/com/yingyangfly/evaluation/adapter/QuestionListAdapter.kt

@@ -14,11 +14,11 @@ import com.yingyangfly.evaluation.databinding.ItemQuestionListBinding
 class QuestionListAdapter(override val layoutId: Int = R.layout.item_question_list) :
     BaseDataBindingAdapter<QuestionOptionBean, ItemQuestionListBinding>() {
 
-    private var selectedItemId: Double = 0.0
+    private var selectedItemId: Long = 0L
 
     var onClickListener: ((bean: QuestionOptionBean) -> Unit)? = null
 
-    fun setContent(selectedItemId: Double) {
+    fun setContent(selectedItemId: Long) {
         this.selectedItemId = selectedItemId
     }
 

+ 12 - 0
evaluation/src/main/java/com/yingyangfly/evaluation/entity/SaveAnswerRecordBean.kt

@@ -0,0 +1,12 @@
+package com.yingyangfly.evaluation.entity
+
+class SaveAnswerRecordBean(
+    val correctOptionId: Long,
+    val examinationId: Long,
+    val examinationTitle: String,
+    val id: Long,
+    val questionOptionName: String,
+    val score: String,
+    val title: String,
+    val usedTime: String
+)

+ 5 - 0
evaluation/src/main/java/com/yingyangfly/evaluation/net/EvaluationApiService.kt

@@ -66,4 +66,9 @@ interface EvaluationApiService {
     @POST("questionRecord/questionList")
     suspend fun getQuestionList(@Body requestBody: RequestBody): BaseResp<QuestionRecordsListBean>
 
+    /**
+     * 保存问卷接口
+     */
+    @POST("questionRecord/saveAnswerRecord")
+    suspend fun saveAnswerRecord(@Body requestBody: RequestBody): BaseResp<Any>
 }

+ 12 - 3
evaluation/src/main/java/com/yingyangfly/evaluation/questionlist/QuestionListActivity.kt

@@ -10,7 +10,6 @@ import com.yingyangfly.baselib.dialog.TipsDialog
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.show
-import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.RxTimer
@@ -42,7 +41,10 @@ class QuestionListActivity : BaseMVVMActivity<ActivityQuestionListBinding, Quest
             rvSelectedItem.adapter = questionListAdapter
         }
         questionListAdapter.onClickListener = {
-
+            if (questionRecordsBean != null && questionRecordsDao != null) {
+                questionRecordsBean?.selectedItemId = it.id
+                questionRecordsDao?.update(questionRecordsBean!!)
+            }
         }
     }
 
@@ -106,7 +108,7 @@ class QuestionListActivity : BaseMVVMActivity<ActivityQuestionListBinding, Quest
                             questionIndex++
                             setOptionList()
                         } else {
-                            "提交数据".toast()
+                            saveData()
                         }
                     }
                 }
@@ -154,4 +156,11 @@ class QuestionListActivity : BaseMVVMActivity<ActivityQuestionListBinding, Quest
             questionListAdapter.setData(questionOptionBeans)
         }
     }
+
+    /**
+     * 提交数据
+     */
+    private fun saveData() {
+
+    }
 }

+ 4 - 40
evaluation/src/main/java/com/yingyangfly/evaluation/questionlist/QuestionListViewModel.kt

@@ -1,13 +1,9 @@
 package com.yingyangfly.evaluation.questionlist
 
-import com.yingyangfly.baselib.bean.QuestionRecordsListBean
 import com.yingyangfly.baselib.mvvm.BaseViewModel
 import com.yingyangfly.baselib.net.XUtils
 import com.yingyangfly.baselib.utils.GsonUtil
-import com.yingyangfly.evaluation.entity.EvaluationTypeBean
-import com.yingyangfly.evaluation.entity.ExaminationListBean
 import com.yingyangfly.evaluation.entity.GetExaminationListBean
-import com.yingyangfly.evaluation.entity.GetQuestionListBean
 import com.yingyangfly.evaluation.net.EVALUATION_API
 
 /**
@@ -16,54 +12,22 @@ import com.yingyangfly.evaluation.net.EVALUATION_API
  */
 class QuestionListViewModel : BaseViewModel() {
 
-    /**
-     * 获取推送消息类型
-     */
-    fun getSelectByDictType(
-        fail: ((msg: String) -> Unit)? = null,
-        success: ((success: List<EvaluationTypeBean>?) -> Unit)? = null,
-    ) = launchFlow(true) {
-        EVALUATION_API.getSelectByDictType("exam_type")
-    }.runUI(
-        success, fail
-    )
-
     /**
      * 获取试题库列表
      */
-    fun getExaminationList(
-        showLoading: Boolean,
+    fun saveAnswerRecord(
         pageIndex: Int,
         type: String,
         fail: ((msg: String) -> Unit)? = null,
-        success: ((success: ExaminationListBean?) -> Unit)? = null,
-    ) = launchFlow(showLoading) {
+        success: ((success: Any?) -> Unit)? = null,
+    ) = launchFlow(true) {
         val requestBean = GetExaminationListBean().apply {
             limit = "10"
             page = pageIndex
             examType = type
         }
         val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
-        EVALUATION_API.getExaminationList(body)
-    }.runUI(
-        success, fail
-    )
-
-    /**
-     * 获取试题库列表
-     */
-    fun getQuestionList(
-        id: String,
-        fail: ((msg: String) -> Unit)? = null,
-        success: ((success: QuestionRecordsListBean?) -> Unit)? = null,
-    ) = launchFlow(true) {
-        val requestBean = GetQuestionListBean().apply {
-            limit = "99999"
-            page = 1
-            examinationId = id
-        }
-        val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
-        EVALUATION_API.getQuestionList(body)
+        EVALUATION_API.saveAnswerRecord(body)
     }.runUI(
         success, fail
     )