licailing 4 gadi atpakaļ
vecāks
revīzija
cce75b6ee2

+ 8 - 0
src/main/java/com/izouma/wenlvju/repo/RecordExamRoomRepo.java

@@ -15,8 +15,16 @@ public interface RecordExamRoomRepo extends JpaRepository<RecordExamRoom, Long>,
     @Transactional
     void softDelete(Long id);
 
+    @Query("update RecordExamRoom t set t.del = true where t.recordId = ?1 and t.examRoomId = ?2")
+    @Modifying
+    @Transactional
+    void softDeleteByRecord(Long recordId, Long examRoomId);
+
     List<RecordExamRoom> findAllByRecordId(Long recordId);
 
     @Query("select id from RecordExamRoom where del = false and recordId = ?1")
     List<Long> findIdByRecordId(Long recordId);
+
+    @Query("select examRoomId from RecordExamRoom where del = false and recordId = ?1")
+    List<Long> findExamRoomIdByRecordId(Long recordId);
 }

+ 1 - 1
src/main/java/com/izouma/wenlvju/service/ExamRoomService.java

@@ -148,7 +148,7 @@ public class ExamRoomService {
     按recordId查找考场
      */
     public Page<ExamRoom> byRecord(Long recordId, PageQuery pageQuery) {
-        List<Long> ids = recordExamRoomRepo.findIdByRecordId(recordId);
+        List<Long> ids = recordExamRoomRepo.findExamRoomIdByRecordId(recordId);
         if (CollUtil.isEmpty(ids)) {
             return new PageImpl<>(new ArrayList<>(), JpaUtils.toPageRequest(pageQuery), 0);
         }

+ 5 - 2
src/main/java/com/izouma/wenlvju/web/ExamRoomController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/examRoom")
@@ -74,10 +75,12 @@ public class ExamRoomController extends BaseController {
     }
 
     @PostMapping("/byRecord")
-    public Page<ExamRoom> byRecord(PageQuery pageQuery) {
-        Object recordId = pageQuery.getQuery().get("recordId");
+    public Page<ExamRoom> byRecord(@RequestBody PageQuery pageQuery) {
+        Map<String, Object> query = pageQuery.getQuery();
+        Object recordId = query.get("recordId");
         //转换
         Long id = Convert.convert(Long.class, recordId);
+        query.remove("recordId");
         return examRoomService.byRecord(id, pageQuery);
     }
 }

+ 9 - 0
src/main/java/com/izouma/wenlvju/web/RecordExamRoomController.java

@@ -2,6 +2,7 @@ package com.izouma.wenlvju.web;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.izouma.wenlvju.converter.LongArrayConverter;
 import com.izouma.wenlvju.domain.RecordExamRoom;
@@ -84,5 +85,13 @@ public class RecordExamRoomController extends BaseController {
         });
 
     }
+
+    @PostMapping("/delByRecord")
+    @ApiOperation("添加考场")
+    public void delByRecord(@RequestParam Long recordId, @RequestParam Long examRoomId) {
+        recordExamRoomRepo.softDeleteByRecord(recordId, examRoomId);
+
+    }
+
 }
 

+ 9 - 0
src/main/vue/src/views/record/RecordList.vue

@@ -127,6 +127,7 @@
             <el-table-column label="操作" align="center" fixed="right" min-width="80">
                 <template slot-scope="{ row }">
                     <el-button @click="editRow(row)" type="primary" size="mini" plain>查看</el-button>
+                    <el-button @click="openRoom(row)" type="warning" size="mini" plain>考场</el-button>
                     <!-- <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button> -->
                 </template>
             </el-table-column>
@@ -331,6 +332,14 @@ export default {
                     console.log(e);
                     this.$message.error(e.error);
                 });
+        },
+        openRoom(row) {
+            this.$router.push({
+                path: '/recordRoomList',
+                query: {
+                    id: row.id
+                }
+            });
         }
     }
 };

+ 35 - 21
src/main/vue/src/views/record/RecordRoomList.vue

@@ -3,7 +3,9 @@
         <div class="filters-container">
             <el-input placeholder="输入关键字" v-model="search" clearable class="filter-item"></el-input>
             <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item">搜索</el-button>
-            <el-button @click="openDialog" type="primary" icon="el-icon-plus" class="filter-item">添加</el-button>
+            <el-button @click="openDialog" type="primary" icon="el-icon-plus" class="filter-item" v-if="showAdd"
+                >添加</el-button
+            >
         </div>
         <el-table
             :data="tableData"
@@ -23,7 +25,7 @@
                 <template slot-scope="{ row }">
                     <el-button @click="monitor(row)" type="success" size="mini" plain>监控</el-button>
                     <!-- <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button> -->
-                    <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button>
+                    <el-button @click="deleteRow(row)" type="danger" size="mini" plain v-if="showAdd">删除</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -78,7 +80,7 @@ export default {
         return {
             multipleMode: false,
             search: '',
-            url: '/examRoom/all',
+            url: '/examRoom/byRecord',
             downloading: false,
             dialogVisible: false,
             form: {
@@ -90,29 +92,33 @@ export default {
             formRoom: {
                 id: '',
                 addRooms: []
-            }
+            },
+            showAdd: false
         };
     },
     created() {
         if (this.$route.query.id) {
             this.formRoom.id = Number(this.$route.query.id);
         }
-        this.$http
-            .post('/examRoom/all', { size: 100, query: { organizationId: this.organization.id } }, { body: 'json' })
-            .then(res => {
-                if (res.content.length > 0) {
-                    res.content.forEach(item => {
-                        this.rooms.push({
-                            label: item.name,
-                            value: item.id
+        if (this.organization != null) {
+            this.showAdd = true;
+            this.$http
+                .post('/examRoom/all', { size: 100, query: { organizationId: this.organization.id } }, { body: 'json' })
+                .then(res => {
+                    if (res.content.length > 0) {
+                        res.content.forEach(item => {
+                            this.rooms.push({
+                                label: item.name,
+                                value: item.id
+                            });
                         });
-                    });
-                }
-            })
-            .catch(e => {
-                console.log(e);
-                this.$message.error(e.error);
-            });
+                    }
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.$message.error(e.error);
+                });
+        }
     },
     computed: {
         selection() {
@@ -122,7 +128,12 @@ export default {
     },
     methods: {
         beforeGetData() {
-            return { search: this.search };
+            return {
+                search: this.search,
+                query: {
+                    recordId: this.$route.query.id
+                }
+            };
         },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;
@@ -182,7 +193,10 @@ export default {
         deleteRow(row) {
             this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
                 .then(() => {
-                    return this.$http.post(`/examRoom/del/${row.id}`);
+                    return this.$http.post(`/recordExamRoom/delByRecord`, {
+                        recordId: this.formRoom.id,
+                        examRoomId: row.id
+                    });
                 })
                 .then(() => {
                     this.$message.success('删除成功');