完成评分细则的部分接口,把前端样式调了一下
This commit is contained in:
parent
ef8707272c
commit
4e7fa68ddf
|
|
@ -70,4 +70,6 @@ export default {
|
||||||
addClassAssistant: (data) => request.post('/assistantClass/addClassAssistant', data),
|
addClassAssistant: (data) => request.post('/assistantClass/addClassAssistant', data),
|
||||||
getAssistantNotBelongClass: (data) =>
|
getAssistantNotBelongClass: (data) =>
|
||||||
request.post('/adminusers/getAssistantNotBelongClass', data),
|
request.post('/adminusers/getAssistantNotBelongClass', data),
|
||||||
|
AddScoringRubric: (data) => request.post('/problem/addScoringRubric', data),
|
||||||
|
findScoringRubricNoStandardId:(data)=>request.post('/problem/findScoringRubricNoStandardId',data)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ const router = useRouter()
|
||||||
const rules=ref(null)
|
const rules=ref(null)
|
||||||
const courseInfoRef = ref(null)
|
const courseInfoRef = ref(null)
|
||||||
const loading = ref(true)
|
const loading = ref(true)
|
||||||
const courseList = ref([{ name: 'C++课程'}])
|
const courseList = ref([])
|
||||||
const paginationReactive = reactive({
|
const paginationReactive = reactive({
|
||||||
page: 1,
|
page: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
|
@ -155,12 +155,11 @@ const onBanjiCourse= async (courseId)=>{
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
const onProblem= async (classId)=>{
|
const onProblem= async (courseId)=>{
|
||||||
// const { id } = classId
|
const { id } = courseId
|
||||||
const id=1
|
|
||||||
try {
|
try {
|
||||||
await router.push({ name:
|
await router.push({ name:
|
||||||
'AdminProblemList', query: { classId: id
|
'AdminProblemList', query: { courseId: id
|
||||||
} })
|
} })
|
||||||
}catch (err){
|
}catch (err){
|
||||||
$message.error('无法查看')
|
$message.error('无法查看')
|
||||||
|
|
@ -170,8 +169,11 @@ const onProblem= async (classId)=>{
|
||||||
const onAdd = ()=>{
|
const onAdd = ()=>{
|
||||||
router.push({name: 'AdminCourseAdd'})
|
router.push({name: 'AdminCourseAdd'})
|
||||||
}
|
}
|
||||||
const onAddProblem= ()=>{
|
const onAddProblem= async (courseId)=>{
|
||||||
router.push({name: 'AdminProblemAdd'})
|
const { id } = courseId
|
||||||
|
await router.push({ name:
|
||||||
|
'AdminProblemAdd', query: { courseId: id
|
||||||
|
} })
|
||||||
}
|
}
|
||||||
const onProblemStore= ()=>{
|
const onProblemStore= ()=>{
|
||||||
router.push({name: 'AdminProblemStore'})
|
router.push({name: 'AdminProblemStore'})
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,25 @@
|
||||||
<template>
|
<template>
|
||||||
<n-scrollbar x-scrollable style="max-height: 100vh">
|
<n-scrollbar x-scrollable style="max-height: 100vh">
|
||||||
<CommonPage show-footer>
|
<CommonPage show-footer>
|
||||||
<div style="margin-top: 0px">
|
<!-- <div style="margin-top: 0px">-->
|
||||||
<n-form ref="ProblemInfoRef"
|
<!-- <n-form ref="ProblemInfoRef"-->
|
||||||
:model="ProblemInfoValue"
|
<!-- :model="ProblemInfoValue"-->
|
||||||
:rules="rules"
|
<!-- :rules="rules"-->
|
||||||
label-placement="left"
|
<!-- label-placement="left"-->
|
||||||
size="small"
|
<!-- size="small"-->
|
||||||
:label-width="60" >
|
<!-- :label-width="60" >-->
|
||||||
</n-form>
|
<!-- </n-form>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<n-data-table
|
<n-data-table
|
||||||
remote
|
remote
|
||||||
:single-line="false"
|
:single-line="false"
|
||||||
ref="table"
|
ref="table"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:data="ProblemList"
|
:data="ScoringRubricList"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:pagination="paginationReactive"
|
|
||||||
:row-key="rowKey"
|
:row-key="rowKey"
|
||||||
:scroll-x="900"
|
style="margin-left: -30px;margin-right:
|
||||||
style="width: 1180px;--n-td-padding:0px 5px;"
|
30px"
|
||||||
@update:page="onChangePage"
|
|
||||||
@update:page-size="onUpdatePageSize"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</CommonPage>
|
</CommonPage>
|
||||||
|
|
@ -42,49 +39,9 @@ const userStore = useUserStore()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const ProblemInfoRef = ref(null)
|
const ProblemInfoRef = ref(null)
|
||||||
const loading = ref(true)
|
const loading = ref(true)
|
||||||
const ProblemList =
|
const ScoringRubricList =
|
||||||
ref([{demension:"1",weight:"20",rubics:"细则1"}])
|
ref([])
|
||||||
const options1=ref([])
|
|
||||||
const role=userStore.getRole()
|
const role=userStore.getRole()
|
||||||
const teacherId=ref()
|
|
||||||
const paginationReactive = reactive({
|
|
||||||
page: 1,
|
|
||||||
pageSize: 50,
|
|
||||||
showSizePicker: true,
|
|
||||||
pageSizes: [50, 100,150],
|
|
||||||
prefix ({ itemCount }) {
|
|
||||||
return `总共 ${itemCount} 条`
|
|
||||||
}
|
|
||||||
})
|
|
||||||
const ProblemInfoValue = ref({
|
|
||||||
pageNum:paginationReactive.page,
|
|
||||||
pageSize:paginationReactive.pageSize,
|
|
||||||
id:0,
|
|
||||||
teacherId:'',
|
|
||||||
});
|
|
||||||
const queryByPage1=async (value)=>{
|
|
||||||
if (userStore.getRole().some((r) => r === 'admin')) {
|
|
||||||
const res = await api.findAllAdminusersBySchoolId({
|
|
||||||
schoolId: value,
|
|
||||||
})
|
|
||||||
const transformedData = res.data.map((item) => ({
|
|
||||||
label: item.name,
|
|
||||||
value: item.id,
|
|
||||||
}))
|
|
||||||
transformedData.unshift({
|
|
||||||
label: '全部',
|
|
||||||
value: 0,
|
|
||||||
})
|
|
||||||
ProblemInfoValue.value.teacherId = 0
|
|
||||||
options1.value = transformedData
|
|
||||||
}
|
|
||||||
}
|
|
||||||
watch(()=>ProblemInfoValue.value.id,
|
|
||||||
(newVal)=>{
|
|
||||||
ProblemInfoValue.value.teacherId=''
|
|
||||||
options1.value=[]
|
|
||||||
queryByPage1(newVal)
|
|
||||||
})
|
|
||||||
let columns = [
|
let columns = [
|
||||||
{
|
{
|
||||||
key: 'range',
|
key: 'range',
|
||||||
|
|
@ -102,32 +59,13 @@ let columns = [
|
||||||
const queryByPage = async (currentPage)=>{
|
const queryByPage = async (currentPage)=>{
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
try {
|
try {
|
||||||
ProblemInfoValue.value.pageSize=paginationReactive.pageSize
|
const res = await
|
||||||
const res = await api.findAllProblemPage(
|
api.findScoringRubricNoStandardId(
|
||||||
{
|
{
|
||||||
...ProblemInfoValue.value
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
console.log(res.data)
|
console.log(res.data)
|
||||||
if (userStore.getRole().some((r) => r === 'admin')){
|
ScoringRubricList.value=res.data
|
||||||
const res1=await api.findAllShoolsInAdminusers()
|
|
||||||
const list1=res1.data
|
|
||||||
const transformedDatas=list1.map(item => ({
|
|
||||||
label: item.name,
|
|
||||||
value: item.id,
|
|
||||||
}));
|
|
||||||
transformedDatas.unshift({
|
|
||||||
label: '全部',
|
|
||||||
value: 0,
|
|
||||||
});
|
|
||||||
options.value=transformedDatas;
|
|
||||||
}
|
|
||||||
const {pageNum, pageSize, total, list} = res.data
|
|
||||||
paginationReactive.page = pageNum
|
|
||||||
paginationReactive.pageSize = pageSize
|
|
||||||
paginationReactive.itemCount = total
|
|
||||||
ProblemList.value=list.map((item,i)=>{return item;})
|
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
|
|
@ -171,8 +109,8 @@ watch(
|
||||||
()=>router.currentRoute.value.fullPath,
|
()=>router.currentRoute.value.fullPath,
|
||||||
()=>{
|
()=>{
|
||||||
if
|
if
|
||||||
(router.currentRoute.value.fullPath==='/admin/problem/problem-list') {
|
(router.currentRoute.value.fullPath==='/admin/problem/problem-scoring-standard') {
|
||||||
queryByPage(paginationReactive.page)
|
queryByPage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -254,17 +254,17 @@ const queryByPage = async (currentPage)=>{
|
||||||
);
|
);
|
||||||
console.log(res.data)
|
console.log(res.data)
|
||||||
if (userStore.getRole().some((r) => r === 'admin')){
|
if (userStore.getRole().some((r) => r === 'admin')){
|
||||||
const res1=await api.findAllShoolsInAdminusers()
|
// const res1=await api.findAllShoolsInAdminusers()
|
||||||
const list1=res1.data
|
// const list1=res1.data
|
||||||
const transformedDatas=list1.map(item => ({
|
// const transformedDatas=list1.map(item => ({
|
||||||
label: item.name,
|
// label: item.name,
|
||||||
value: item.id,
|
// value: item.id,
|
||||||
}));
|
// }));
|
||||||
transformedDatas.unshift({
|
// transformedDatas.unshift({
|
||||||
label: '全部',
|
// label: '全部',
|
||||||
value: 0,
|
// value: 0,
|
||||||
});
|
// });
|
||||||
options.value=transformedDatas;
|
// options.value=transformedDatas;
|
||||||
}
|
}
|
||||||
const {pageNum, pageSize, total, list} = res.data
|
const {pageNum, pageSize, total, list} = res.data
|
||||||
paginationReactive.page = pageNum
|
paginationReactive.page = pageNum
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,15 @@
|
||||||
:model="problemInfoValue"
|
:model="problemInfoValue"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-placement="left"style="margin-top: 15px;margin-left: 5%">
|
label-placement="left"style="margin-top: 15px;margin-left: 5%">
|
||||||
<div class="flex" style='align-items: flex-start' >
|
<div class="flex" style='align-items:
|
||||||
|
flex-start;margin-top: 30px;margin-right: 20px' >
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<div
|
<div
|
||||||
class="flex justify-between w-2/3">
|
class="flex justify-between w-2/3">
|
||||||
<n-form-item label="范围"
|
<n-form-item label="范围"
|
||||||
>
|
>
|
||||||
<n-input
|
<n-input
|
||||||
v-model:value="problemInfoValue.range"
|
v-model:value="problemInfoValue.lowerLimit"
|
||||||
placeholder="输入分值"
|
placeholder="输入分值"
|
||||||
style='width: 800px'/>
|
style='width: 800px'/>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
|
|
@ -20,26 +21,28 @@
|
||||||
style="margin-left: 30px"
|
style="margin-left: 30px"
|
||||||
>
|
>
|
||||||
<n-input
|
<n-input
|
||||||
v-model:value="problemInfoValue.range"
|
v-model:value="problemInfoValue.upperLimit"
|
||||||
placeholder="输入分值"
|
placeholder="输入分值"
|
||||||
style='width: 800px'/>
|
style='width: 800px'/>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<n-form-item style='margin-right:30px '>
|
||||||
<n-button type="primary"
|
<n-button type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
style="margin-bottom:
|
@click="submit">确认
|
||||||
10px" @click="submit">确认
|
</n-button></n-form-item>
|
||||||
</n-button>
|
<n-form-item style='margin-right: 30px'>
|
||||||
<n-button type="primary"
|
<n-button type="primary"
|
||||||
size="small" @click="cancel" style="margin-left: 30px">取消</n-button>
|
size="small" @click="cancel">取消</n-button></n-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-50 mt-10 flex-col">
|
<div class="mb-50 mt-10 flex-col">
|
||||||
<div class="mb-10 mt-4 flex items-center">
|
<div class="mb-10 mt-4 flex items-center">
|
||||||
<h3 class="text-18">描述</h3>
|
<h3 class="text-18">描述</h3>
|
||||||
<span class="text-gray">(使用宋体字体,可以保证英文和数字等宽)</span>
|
<span class="text-gray">(使用宋体字体,可以保证英文和数字等宽)</span>
|
||||||
</div>
|
</div>
|
||||||
<n-form-item path="description">
|
<n-form-item path="description"
|
||||||
|
style='margin-right:40px'>
|
||||||
<RichTextEditor
|
<RichTextEditor
|
||||||
v-model:value="problemInfoValue.description"
|
v-model:value="problemInfoValue.description"
|
||||||
:editor-style="{ height: descEditorHeight }"
|
:editor-style="{ height: descEditorHeight }"
|
||||||
|
|
@ -61,16 +64,21 @@ import api from "@/api/admin";
|
||||||
import { useTagsStore } from '@/store'
|
import { useTagsStore } from '@/store'
|
||||||
import RichTextEditor
|
import RichTextEditor
|
||||||
from '@/components/common/RichTextEditor.vue'
|
from '@/components/common/RichTextEditor.vue'
|
||||||
|
import { once } from '@/utils'
|
||||||
const tagsStore = useTagsStore()
|
const tagsStore = useTagsStore()
|
||||||
const path=ref('')
|
const path=ref('')
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const rules=ref(null)
|
const rules=ref(null)
|
||||||
const descEditorHeight = ref('160px')
|
const descEditorHeight = ref()
|
||||||
const problemInfoValue = ref({
|
const problemInfoValue = ref({
|
||||||
name: ''
|
lowerLimit:'',
|
||||||
|
upperLimit:'',
|
||||||
|
description:''
|
||||||
});
|
});
|
||||||
const problemInfoRef = ref(null)
|
const problemInfoRef = ref(null)
|
||||||
|
const handleDescEditorFocus = once(() => {
|
||||||
|
descEditorHeight.value = '160px'
|
||||||
|
})
|
||||||
const cancel = ()=>{
|
const cancel = ()=>{
|
||||||
tagsStore.removeTag(path.value)
|
tagsStore.removeTag(path.value)
|
||||||
router.push({path: 'problem-scoring-standard'})
|
router.push({path: 'problem-scoring-standard'})
|
||||||
|
|
@ -79,20 +87,20 @@ const onAdd = ()=>{
|
||||||
router.push({name: 'AdminProblemScoringRubric'})
|
router.push({name: 'AdminProblemScoringRubric'})
|
||||||
}
|
}
|
||||||
const submit =async ()=>{
|
const submit =async ()=>{
|
||||||
if(problemInfoValue.value.name!==''){
|
if(problemInfoValue.value.lowerLimit!==''&&problemInfoValue.value.upperLimit!==''&&problemInfoValue.value.description!==''){
|
||||||
try {
|
try {
|
||||||
await api.Addproblem({
|
await api.AddScoringRubric({
|
||||||
...problemInfoValue.value
|
...problemInfoValue.value
|
||||||
})
|
})
|
||||||
$message.success("添加课程成功")
|
$message.success("添加评分细则成功")
|
||||||
tagsStore.removeTag(path.value)
|
tagsStore.removeTag(path.value)
|
||||||
await router.push({name: 'AdminProblemList'})
|
await router.push({name: 'AdminProblemScoringStandard'})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
tagsStore.removeTag(path.value)
|
tagsStore.removeTag(path.value)
|
||||||
await router.push({name: 'AdminProblemList'})
|
await router.push({name: 'AdminProblemScoringStandard'})
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
$message.error("作业名称不能为空")
|
$message.error("评分细则不能为空")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@
|
||||||
:model="problemInfoValue"
|
:model="problemInfoValue"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-placement="left"style="margin-top: 15px;margin-left: 5%">
|
label-placement="left"style="margin-top: 15px;margin-left: 5%">
|
||||||
<div class="flex" style='align-items: flex-start' >
|
<div class="flex" style='align-items:
|
||||||
|
flex-start;margin-top: 40px;margin-right: 30px' >
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<div
|
<div
|
||||||
class="flex justify-between w-2/3">
|
class="flex justify-between w-2/3">
|
||||||
|
|
@ -27,13 +28,14 @@
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<n-form-item style='margin-right:30px '>
|
||||||
<n-button type="primary"
|
<n-button type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
style="margin-bottom:
|
@click="submit">确认
|
||||||
10px" @click="submit">确认
|
</n-button></n-form-item>
|
||||||
</n-button>
|
<n-form-item style='margin-right: 30px'>
|
||||||
<n-button type="primary"
|
<n-button type="primary"
|
||||||
size="small" @click="cancel" style="margin-left: 30px">取消</n-button>
|
size="small" @click="cancel">取消</n-button></n-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-50 mt-10 flex-col">
|
<div class="mb-50 mt-10 flex-col">
|
||||||
<div class="mb-10 mt-4 flex items-center">
|
<div class="mb-10 mt-4 flex items-center">
|
||||||
|
|
@ -50,7 +52,7 @@
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {useRouter} from "vue-router";
|
import {useRouter} from "vue-router";
|
||||||
import {ref} from "vue";
|
import { onMounted, ref } from 'vue'
|
||||||
import api from "@/api/admin";
|
import api from "@/api/admin";
|
||||||
import { useTagsStore } from '@/store'
|
import { useTagsStore } from '@/store'
|
||||||
import RubricList from
|
import RubricList from
|
||||||
|
|
@ -62,7 +64,9 @@ const path=ref('')
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const rules=ref(null)
|
const rules=ref(null)
|
||||||
const problemInfoValue = ref({
|
const problemInfoValue = ref({
|
||||||
name: ''
|
demension:"",
|
||||||
|
weight:"",
|
||||||
|
problemId:''
|
||||||
});
|
});
|
||||||
const problemInfoRef = ref(null)
|
const problemInfoRef = ref(null)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,31 +4,24 @@ package com.example.aes.problem.controller;
|
||||||
import com.example.aes.global.model.DecodeToken;
|
import com.example.aes.global.model.DecodeToken;
|
||||||
import com.example.aes.global.model.RespBean;
|
import com.example.aes.global.model.RespBean;
|
||||||
import com.example.aes.problem.model.PMProblem;
|
import com.example.aes.problem.model.PMProblem;
|
||||||
|
import com.example.aes.problem.model.PMScoringRubric;
|
||||||
|
import com.example.aes.problem.model.UScoringRubric;
|
||||||
import com.example.aes.problem.service.ProblemServiceI;
|
import com.example.aes.problem.service.ProblemServiceI;
|
||||||
import com.example.aes.user.dao.AccountDao;
|
import com.example.aes.user.model.*;
|
||||||
import com.example.aes.user.model.Adminusers;
|
|
||||||
import com.example.aes.user.model.Classstudents;
|
|
||||||
import com.example.aes.user.model.DataGrid;
|
|
||||||
import com.example.aes.user.model.Users;
|
|
||||||
import com.example.aes.user.service.ClassesServiceI;
|
import com.example.aes.user.service.ClassesServiceI;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/problem")
|
@RequestMapping("/problem")
|
||||||
|
@Transactional
|
||||||
public class ProblemController {
|
public class ProblemController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -36,7 +29,23 @@ public class ProblemController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProblemServiceI problemServiceI;
|
private ProblemServiceI problemServiceI;
|
||||||
|
@PostMapping("/addScoringRubric")
|
||||||
|
public RespBean addScoringRubric(@RequestBody PMScoringRubric scoringRubric) {
|
||||||
|
problemServiceI.addScoringRubric(scoringRubric);
|
||||||
|
return RespBean.ok("添加评分细则成功");
|
||||||
|
}
|
||||||
|
@PostMapping("/findScoringRubricNoStandardId")
|
||||||
|
public RespBean findScoringRubricNoStandardId() {
|
||||||
|
List<UScoringRubric> uScoringRubricList=
|
||||||
|
problemServiceI.findScoringRubricNoStandardId();
|
||||||
|
if (uScoringRubricList != null) {
|
||||||
|
return RespBean.ok("获取评分细则列表成功!",
|
||||||
|
uScoringRubricList);
|
||||||
|
} else {
|
||||||
|
return RespBean.error("获取评分细则列表失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
//获取作业列表
|
//获取作业列表
|
||||||
@GetMapping("/getExamList")
|
@GetMapping("/getExamList")
|
||||||
public RespBean getExamList(Integer pageNum,Integer pageSize, HttpServletRequest request) {
|
public RespBean getExamList(Integer pageNum,Integer pageSize, HttpServletRequest request) {
|
||||||
|
|
@ -68,5 +77,4 @@ public class ProblemController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////逻辑在未完成
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.example.aes.problem.dao;
|
||||||
|
|
||||||
|
|
||||||
import com.example.aes.problem.model.PMProblem;
|
import com.example.aes.problem.model.PMProblem;
|
||||||
|
import com.example.aes.problem.model.PMScoringRubric;
|
||||||
import com.example.aes.problem.model.Problem;
|
import com.example.aes.problem.model.Problem;
|
||||||
import com.example.aes.user.dao.BaseDaoI;
|
import com.example.aes.user.dao.BaseDaoI;
|
||||||
import com.example.aes.user.model.Classstudents;
|
import com.example.aes.user.model.Classstudents;
|
||||||
|
|
@ -16,5 +17,4 @@ public interface ProblemDaoI extends BaseDaoI<Problem> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.example.aes.problem.dao;
|
||||||
|
|
||||||
|
import com.example.aes.problem.model.PMScoringRubric;
|
||||||
|
import com.example.aes.problem.model.ScoringRubric;
|
||||||
|
import com.example.aes.user.dao.BaseDaoI;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ScoringRubricDaoI extends BaseDaoI<ScoringRubric> {
|
||||||
|
public void addScoringRubric(PMScoringRubric pmScoringRubric);
|
||||||
|
public List<ScoringRubric> getScoringRubricNoStandardId();
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package com.example.aes.problem.dao.impl;
|
||||||
|
|
||||||
import com.example.aes.problem.dao.ProblemDaoI;
|
import com.example.aes.problem.dao.ProblemDaoI;
|
||||||
import com.example.aes.problem.model.PMProblem;
|
import com.example.aes.problem.model.PMProblem;
|
||||||
|
import com.example.aes.problem.model.PMScoringRubric;
|
||||||
import com.example.aes.problem.model.Problem;
|
import com.example.aes.problem.model.Problem;
|
||||||
import com.example.aes.user.dao.BaseDaoI;
|
import com.example.aes.user.dao.BaseDaoI;
|
||||||
import com.example.aes.user.dao.impl.BaseDaoImpl;
|
import com.example.aes.user.dao.impl.BaseDaoImpl;
|
||||||
|
|
@ -39,4 +40,7 @@ public class ProblemDaoImpl extends BaseDaoImpl<Problem> implements ProblemDaoI{
|
||||||
|
|
||||||
return problems;
|
return problems;
|
||||||
}
|
}
|
||||||
|
public void addScoringRubric(PMScoringRubric pmScoringRubric){
|
||||||
|
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.example.aes.problem.dao.impl;
|
||||||
|
|
||||||
|
import com.example.aes.problem.dao.ScoringRubricDaoI;
|
||||||
|
import com.example.aes.problem.model.PMScoringRubric;
|
||||||
|
import com.example.aes.problem.model.ScoringRubric;
|
||||||
|
import com.example.aes.user.dao.CourseDaoI;
|
||||||
|
import com.example.aes.user.dao.impl.BaseDaoImpl;
|
||||||
|
import com.example.aes.user.model.Course;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository("ScoringRubricDao")
|
||||||
|
public class ScoringRubricDaoImpl extends BaseDaoImpl<ScoringRubric> implements ScoringRubricDaoI {
|
||||||
|
@Override
|
||||||
|
public void addScoringRubric(PMScoringRubric pmScoringRubric){
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
ScoringRubric scoringRubric=
|
||||||
|
new ScoringRubric();
|
||||||
|
scoringRubric.setLowerLimit(pmScoringRubric.getLowerLimit());
|
||||||
|
scoringRubric.setUpperLimit(pmScoringRubric.getUpperLimit());
|
||||||
|
scoringRubric.setDescription(pmScoringRubric.getDescription());
|
||||||
|
this.save(scoringRubric);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public List<ScoringRubric> getScoringRubricNoStandardId(){
|
||||||
|
String hql ="from ScoringRubric where " +
|
||||||
|
"standardId is null";
|
||||||
|
List<ScoringRubric> scoringRubricList =
|
||||||
|
this.find(hql);
|
||||||
|
return scoringRubricList;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.example.aes.problem.model;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PMScoringRubric {
|
||||||
|
private Float lowerLimit;
|
||||||
|
private Float upperLimit;
|
||||||
|
private String description;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
package com.example.aes.problem.model;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "scoringrubric",catalog = "aes")
|
||||||
|
public class ScoringRubric implements java.io.Serializable{
|
||||||
|
private static final long serialVersionUID = -4577366061004245861L;
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "id", unique = true, nullable = false)
|
||||||
|
private Integer id;
|
||||||
|
@Column(name = "standardId")
|
||||||
|
private Integer standardId;
|
||||||
|
@Column(name = "lowerLimit")
|
||||||
|
private Float lowerLimit;
|
||||||
|
@Column(name = "upperlimit")
|
||||||
|
private Float upperLimit;
|
||||||
|
@Column(name = "description", length = 200)
|
||||||
|
private String description;
|
||||||
|
public ScoringRubric(){}
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getStandardId() {
|
||||||
|
return standardId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStandardId(Integer standardId) {
|
||||||
|
this.standardId = standardId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Float getLowerLimit() {
|
||||||
|
return lowerLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLowerLimit(Float lowerLimit) {
|
||||||
|
this.lowerLimit = lowerLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Float getUpperLimit() {
|
||||||
|
return upperLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpperLimit(Float upperLimit) {
|
||||||
|
this.upperLimit = upperLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.example.aes.problem.model;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UScoringRubric {
|
||||||
|
private String range;
|
||||||
|
private String description;
|
||||||
|
}
|
||||||
|
|
@ -1,17 +1,31 @@
|
||||||
package com.example.aes.problem.service.Impl;
|
package com.example.aes.problem.service.Impl;
|
||||||
|
|
||||||
import com.example.aes.problem.dao.ProblemDaoI;
|
import com.example.aes.problem.dao.ProblemDaoI;
|
||||||
|
import com.example.aes.problem.dao.ScoringRubricDaoI;
|
||||||
import com.example.aes.problem.model.PMProblem;
|
import com.example.aes.problem.model.PMProblem;
|
||||||
|
import com.example.aes.problem.model.PMScoringRubric;
|
||||||
|
import com.example.aes.problem.model.ScoringRubric;
|
||||||
|
import com.example.aes.problem.model.UScoringRubric;
|
||||||
import com.example.aes.problem.service.ProblemServiceI;
|
import com.example.aes.problem.service.ProblemServiceI;
|
||||||
import com.example.aes.user.dao.ClassesDaoI;
|
import com.example.aes.user.model.Course;
|
||||||
|
import com.example.aes.user.model.DataGrid;
|
||||||
|
import com.example.aes.user.model.PMCourse;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@Service
|
@Service
|
||||||
public class ProblemServiceImpl implements ProblemServiceI {
|
public class ProblemServiceImpl implements ProblemServiceI {
|
||||||
|
|
||||||
private ProblemDaoI problemDao;
|
private ProblemDaoI problemDao;
|
||||||
|
private ScoringRubricDaoI scoringRubricDao;
|
||||||
|
@Autowired
|
||||||
|
public void setScoringRubricDao(ScoringRubricDaoI scoringRubricDao) {
|
||||||
|
this.scoringRubricDao = scoringRubricDao;
|
||||||
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public void setProblemDao(ProblemDaoI problemDao) {
|
public void setProblemDao(ProblemDaoI problemDao) {
|
||||||
this.problemDao = problemDao;
|
this.problemDao = problemDao;
|
||||||
|
|
@ -20,4 +34,47 @@ public class ProblemServiceImpl implements ProblemServiceI {
|
||||||
public List<PMProblem> getProblemsByClassIds(List<Integer> classIds){
|
public List<PMProblem> getProblemsByClassIds(List<Integer> classIds){
|
||||||
return problemDao.findProblemsByClassIds(classIds);
|
return problemDao.findProblemsByClassIds(classIds);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void addScoringRubric(PMScoringRubric pmscoringRubric){
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
scoringRubricDao.addScoringRubric(pmscoringRubric);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public List<UScoringRubric> findScoringRubricNoStandardId(){
|
||||||
|
List<ScoringRubric> scoringRubricList;
|
||||||
|
scoringRubricList=
|
||||||
|
scoringRubricDao.getScoringRubricNoStandardId();
|
||||||
|
if (scoringRubricList == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
List<UScoringRubric> uScoringRubricList=new ArrayList<>();
|
||||||
|
changeModel2(scoringRubricList,
|
||||||
|
uScoringRubricList);
|
||||||
|
return uScoringRubricList;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
private void changeModel1(List<ScoringRubric> l,
|
||||||
|
List<PMScoringRubric> nl) {
|
||||||
|
if (l != null && l.size() > 0) {
|
||||||
|
for (ScoringRubric t : l) {
|
||||||
|
PMScoringRubric u = new PMScoringRubric();
|
||||||
|
BeanUtils.copyProperties(t, u);
|
||||||
|
nl.add(u);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void changeModel2(List<ScoringRubric> l,
|
||||||
|
List<UScoringRubric> nl) {
|
||||||
|
if (l != null && l.size() > 0) {
|
||||||
|
for (ScoringRubric t : l) {
|
||||||
|
UScoringRubric u =
|
||||||
|
new UScoringRubric();
|
||||||
|
u.setRange(t.getLowerLimit()+
|
||||||
|
"~"+t.getUpperLimit());
|
||||||
|
u.setDescription(t.getDescription().replaceAll("<\\/?.*?>", "").trim());
|
||||||
|
nl.add(u);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,15 @@ package com.example.aes.problem.service;
|
||||||
|
|
||||||
|
|
||||||
import com.example.aes.problem.model.PMProblem;
|
import com.example.aes.problem.model.PMProblem;
|
||||||
|
import com.example.aes.problem.model.PMScoringRubric;
|
||||||
|
import com.example.aes.problem.model.UScoringRubric;
|
||||||
import com.example.aes.user.model.*;
|
import com.example.aes.user.model.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface ProblemServiceI {
|
public interface ProblemServiceI {
|
||||||
public List<PMProblem> getProblemsByClassIds(List<Integer> classIds);
|
public List<PMProblem> getProblemsByClassIds(List<Integer> classIds);
|
||||||
|
public void addScoringRubric(PMScoringRubric pmscoringRubric);
|
||||||
|
public List<UScoringRubric> findScoringRubricNoStandardId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ server.port=8082
|
||||||
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||||
jdbc_url=jdbc:mysql://localhost:3306/aes?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=True
|
jdbc_url=jdbc:mysql://localhost:3306/aes?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=True
|
||||||
jdbc_username=root
|
jdbc_username=root
|
||||||
jdbc_password=13661744518xh
|
jdbc_password=123456
|
||||||
#spring.datasource.url=jdbc:mysql://localhost:3306/aes?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=True
|
#spring.datasource.url=jdbc:mysql://localhost:3306/aes?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=True
|
||||||
#spring.datasource.username=root
|
#spring.datasource.username=root
|
||||||
#spring.datasource.password=123456
|
#spring.datasource.password=123456
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@
|
||||||
<list>
|
<list>
|
||||||
<value>com.example.aes.user.model</value>
|
<value>com.example.aes.user.model</value>
|
||||||
<value>com.example.aes.global.model</value>
|
<value>com.example.aes.global.model</value>
|
||||||
|
<value>com.example.aes.problem.model</value>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue