暂时提交
This commit is contained in:
parent
4801d11b3b
commit
5167575dde
17
sql/20210326-zhangsai.sql
Normal file
17
sql/20210326-zhangsai.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
alter table exam_definition modify lesson_id bigint null comment '所属课程ID',
|
||||||
|
add map_id bigint not null comment '地图id' after id;
|
||||||
|
|
||||||
|
-- 更新exam_definition的map_id字段
|
||||||
|
UPDATE exam_definition SET map_id =( SELECT map_id FROM ls_lesson WHERE exam_definition.lesson_id = ls_lesson.id)
|
||||||
|
|
||||||
|
alter table org_exam
|
||||||
|
modify org_id bigint not null,
|
||||||
|
add creator_id bigint not null,
|
||||||
|
add create_time datetime not null;
|
||||||
|
|
||||||
|
ALTER TABLE `org_exam`
|
||||||
|
ADD COLUMN `id` bigint(20) NOT NULL AUTO_INCREMENT FIRST ,
|
||||||
|
ADD PRIMARY KEY (`id`);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,10 +3,7 @@ package club.joylink.rtss.controller;
|
|||||||
import club.joylink.rtss.constants.RoleEnum;
|
import club.joylink.rtss.constants.RoleEnum;
|
||||||
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
|
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
|
||||||
import club.joylink.rtss.controller.advice.Role;
|
import club.joylink.rtss.controller.advice.Role;
|
||||||
import club.joylink.rtss.services.org.IOrgLessonService;
|
import club.joylink.rtss.services.org.*;
|
||||||
import club.joylink.rtss.services.org.IOrgScoringRuleService;
|
|
||||||
import club.joylink.rtss.services.org.IOrgService;
|
|
||||||
import club.joylink.rtss.services.org.IOrgUserService;
|
|
||||||
import club.joylink.rtss.vo.LoginUserInfoVO;
|
import club.joylink.rtss.vo.LoginUserInfoVO;
|
||||||
import club.joylink.rtss.vo.UserVO;
|
import club.joylink.rtss.vo.UserVO;
|
||||||
import club.joylink.rtss.vo.client.LessonVO;
|
import club.joylink.rtss.vo.client.LessonVO;
|
||||||
@ -39,6 +36,9 @@ public class OrgController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IOrgScoringRuleService iOrgScoringRuleService;
|
private IOrgScoringRuleService iOrgScoringRuleService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IOrgExamService iOrgExamService;
|
||||||
|
|
||||||
@ApiOperation(value = "创建顶级组织")
|
@ApiOperation(value = "创建顶级组织")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public CompanyVO create(@RequestBody @Validated CompanyVO company, @RequestAttribute(AuthenticateInterceptor.LOGIN_USER_KEY) UserVO user) {
|
public CompanyVO create(@RequestBody @Validated CompanyVO company, @RequestAttribute(AuthenticateInterceptor.LOGIN_USER_KEY) UserVO user) {
|
||||||
@ -183,15 +183,15 @@ public class OrgController {
|
|||||||
iOrgService.createCls(createVO, loginInfo);
|
iOrgService.createCls(createVO, loginInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("分页查询班级")
|
@ApiOperation("分页查询当前登录项目所属组织下的班级")
|
||||||
@GetMapping("/paged/cls")
|
@GetMapping("/paged/cls")
|
||||||
public PageVO<DepartmentVO> pagedQuerySelfCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
|
public PageVO<DepartmentVO> pagedQuerySelfCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
|
||||||
return iOrgService.pagedQueryCls(queryVO, loginInfo);
|
return iOrgService.pagedQueryCls(queryVO, loginInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("查询班级")
|
@ApiOperation("查询当前登录项目所属组织下的班级")
|
||||||
@GetMapping("/list/cls")
|
@GetMapping("/list/cls")
|
||||||
public List<DepartmentVO> querySelfCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
|
public List<DepartmentVO> queryCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
|
||||||
return iOrgService.queryCls(queryVO, loginInfo);
|
return iOrgService.queryCls(queryVO, loginInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,4 +257,11 @@ public class OrgController {
|
|||||||
public PageVO<DepartmentVO> adminPagedQueryOrg(OrgQueryVO queryVO) {
|
public PageVO<DepartmentVO> adminPagedQueryOrg(OrgQueryVO queryVO) {
|
||||||
return iOrgService.adminPagedQueryOrg(queryVO);
|
return iOrgService.adminPagedQueryOrg(queryVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("给班级安排考试")
|
||||||
|
@PostMapping("/orgExam/{clsId}")
|
||||||
|
public void createOrgExam(@PathVariable Long clsId, @RequestBody List<Long> examIds, @RequestAttribute UserVO user) {
|
||||||
|
iOrgExamService.create(clsId, examIds, user);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ import club.joylink.rtss.vo.client.ExamDefinitionQueryVO;
|
|||||||
import club.joylink.rtss.vo.client.ExamDefinitionVO;
|
import club.joylink.rtss.vo.client.ExamDefinitionVO;
|
||||||
import club.joylink.rtss.vo.client.ExamsLessonVO;
|
import club.joylink.rtss.vo.client.ExamsLessonVO;
|
||||||
import club.joylink.rtss.vo.client.PageVO;
|
import club.joylink.rtss.vo.client.PageVO;
|
||||||
import club.joylink.rtss.vo.client.validGroup.ExamDefinitionCheck;
|
|
||||||
import club.joylink.rtss.vo.client.validGroup.ExamDefinitionRulesCheck;
|
import club.joylink.rtss.vo.client.validGroup.ExamDefinitionRulesCheck;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@ -27,30 +26,16 @@ public class ExamController {
|
|||||||
|
|
||||||
@ApiOperation(value = "创建考试")
|
@ApiOperation(value = "创建考试")
|
||||||
@PostMapping(path = "")
|
@PostMapping(path = "")
|
||||||
public void create(@RequestBody @Validated(value = {ExamDefinitionCheck.class, ExamDefinitionRulesCheck.class})
|
public void create(@RequestBody @Validated ExamDefinitionVO examDefinitionVO, @RequestAttribute @ApiIgnore UserVO user) {
|
||||||
ExamDefinitionVO examDefinitionVO, @RequestAttribute @ApiIgnore UserVO user) {
|
|
||||||
iExamService.create(examDefinitionVO, user);
|
iExamService.create(examDefinitionVO, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ApiOperation(value = "贵装备创建考试")
|
|
||||||
// @PostMapping(path = "/project/GZB")
|
|
||||||
// public void createGZBExam(@RequestBody @Validated(value = {ExamDefinitionCheck.class, ExamDefinitionRulesCheck.class})
|
|
||||||
// ExamDefinitionVO examDefinitionVO, @RequestAttribute @ApiIgnore UserVO user) {
|
|
||||||
// iExamService.createGZBExam(examDefinitionVO, user);
|
|
||||||
// }
|
|
||||||
|
|
||||||
@ApiOperation(value = "检查分数是否合理")
|
@ApiOperation(value = "检查分数是否合理")
|
||||||
@GetMapping(path = "/checkScore")
|
@GetMapping(path = "/checkScore")
|
||||||
public boolean checkScore(@Validated(value = ExamDefinitionRulesCheck.class) ExamDefinitionVO examDefinitionVO) {
|
public boolean checkScore(@Validated(value = ExamDefinitionRulesCheck.class) ExamDefinitionVO examDefinitionVO) {
|
||||||
return iExamService.checkScore(examDefinitionVO);
|
return iExamService.checkScore(examDefinitionVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ApiOperation(value = "查询课程下的章节信息")
|
|
||||||
// @GetMapping(path = "/{lessonId}/chapter")
|
|
||||||
// public CommonJsonResponse queryChapterInfo(@PathVariable(required = true) String lessonId) {
|
|
||||||
// return CommonJsonResponse.newSuccessResponse(iExamService.queryChapterInfo(lessonId));
|
|
||||||
// }
|
|
||||||
|
|
||||||
@ApiOperation(value = "查询课程所属产品下有实训的实训类型")
|
@ApiOperation(value = "查询课程所属产品下有实训的实训类型")
|
||||||
@GetMapping(path = "/{lessonId}/trainingTypes")
|
@GetMapping(path = "/{lessonId}/trainingTypes")
|
||||||
public List<String> queryTrainingTypes(@PathVariable Long lessonId) {
|
public List<String> queryTrainingTypes(@PathVariable Long lessonId) {
|
||||||
@ -81,13 +66,6 @@ public class ExamController {
|
|||||||
iExamService.deleteExam(id, user);
|
iExamService.deleteExam(id, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ApiOperation(value = "查询章节下允许创建的最多题目数量")
|
|
||||||
// @GetMapping(path = "/trainingNum/{lessonId}/{chapterId}")
|
|
||||||
// public CommonJsonResponse queryTrainingNum(@PathVariable(required = true) String lessonId, @PathVariable(required = true) String chapterId) {
|
|
||||||
// int trainingNum = iExamService.queryTrainingNum(lessonId, chapterId);
|
|
||||||
// return CommonJsonResponse.newSuccessResponse(trainingNum);
|
|
||||||
// }
|
|
||||||
|
|
||||||
@ApiOperation(value = "根据课程和实训类型查询实训数量")
|
@ApiOperation(value = "根据课程和实训类型查询实训数量")
|
||||||
@GetMapping(path = "/trainingNum/{lessonId}/{trainingType}")
|
@GetMapping(path = "/trainingNum/{lessonId}/{trainingType}")
|
||||||
public Long queryTrainingNum(@PathVariable Long lessonId, @PathVariable String trainingType, String operateType) {
|
public Long queryTrainingNum(@PathVariable Long lessonId, @PathVariable String trainingType, String operateType) {
|
||||||
|
@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import springfox.documentation.annotations.ApiIgnore;
|
import springfox.documentation.annotations.ApiIgnore;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@Api(tags = { "实训数据管理接口" })
|
@Api(tags = { "实训数据管理接口" })
|
||||||
@ -195,4 +196,10 @@ public class TrainingV1Controller {
|
|||||||
public TrainingNewVO loadTraining(@PathVariable String group, @PathVariable Long id) {
|
public TrainingNewVO loadTraining(@PathVariable String group, @PathVariable Long id) {
|
||||||
return iTrainingService.loadTraining(group, id);
|
return iTrainingService.loadTraining(group, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("根据地图id和产品类型查询实训、操作类型及数量")
|
||||||
|
@GetMapping("/trainingTypeAndQuantity")
|
||||||
|
public Map<String, Map<String, Long>> queryTrainingTypeAndQuantity(Long mapId, String prdType) {
|
||||||
|
return iTrainingService.queryTrainingTypeAndQuantity(mapId, prdType);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,17 @@ import java.io.Serializable;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* exam_definition
|
|
||||||
* @author
|
* @author
|
||||||
|
* 考试定义表
|
||||||
*/
|
*/
|
||||||
public class ExamDefinition implements Serializable {
|
public class ExamDefinition implements Serializable {
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地图id
|
||||||
|
*/
|
||||||
|
private Long mapId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所属课程ID
|
* 所属课程ID
|
||||||
*/
|
*/
|
||||||
@ -85,6 +90,14 @@ public class ExamDefinition implements Serializable {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Long getMapId() {
|
||||||
|
return mapId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMapId(Long mapId) {
|
||||||
|
this.mapId = mapId;
|
||||||
|
}
|
||||||
|
|
||||||
public Long getLessonId() {
|
public Long getLessonId() {
|
||||||
return lessonId;
|
return lessonId;
|
||||||
}
|
}
|
||||||
@ -202,6 +215,7 @@ public class ExamDefinition implements Serializable {
|
|||||||
}
|
}
|
||||||
ExamDefinition other = (ExamDefinition) that;
|
ExamDefinition other = (ExamDefinition) that;
|
||||||
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
|
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
|
||||||
|
&& (this.getMapId() == null ? other.getMapId() == null : this.getMapId().equals(other.getMapId()))
|
||||||
&& (this.getLessonId() == null ? other.getLessonId() == null : this.getLessonId().equals(other.getLessonId()))
|
&& (this.getLessonId() == null ? other.getLessonId() == null : this.getLessonId().equals(other.getLessonId()))
|
||||||
&& (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
|
&& (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
|
||||||
&& (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
|
&& (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
|
||||||
@ -222,6 +236,7 @@ public class ExamDefinition implements Serializable {
|
|||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
int result = 1;
|
int result = 1;
|
||||||
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
|
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
|
||||||
|
result = prime * result + ((getMapId() == null) ? 0 : getMapId().hashCode());
|
||||||
result = prime * result + ((getLessonId() == null) ? 0 : getLessonId().hashCode());
|
result = prime * result + ((getLessonId() == null) ? 0 : getLessonId().hashCode());
|
||||||
result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
|
result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
|
||||||
result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
|
result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
|
||||||
@ -245,6 +260,7 @@ public class ExamDefinition implements Serializable {
|
|||||||
sb.append(" [");
|
sb.append(" [");
|
||||||
sb.append("Hash = ").append(hashCode());
|
sb.append("Hash = ").append(hashCode());
|
||||||
sb.append(", id=").append(id);
|
sb.append(", id=").append(id);
|
||||||
|
sb.append(", mapId=").append(mapId);
|
||||||
sb.append(", lessonId=").append(lessonId);
|
sb.append(", lessonId=").append(lessonId);
|
||||||
sb.append(", name=").append(name);
|
sb.append(", name=").append(name);
|
||||||
sb.append(", type=").append(type);
|
sb.append(", type=").append(type);
|
||||||
|
@ -185,6 +185,66 @@ public class ExamDefinitionExample {
|
|||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdIsNull() {
|
||||||
|
addCriterion("map_id is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdIsNotNull() {
|
||||||
|
addCriterion("map_id is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdEqualTo(Long value) {
|
||||||
|
addCriterion("map_id =", value, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdNotEqualTo(Long value) {
|
||||||
|
addCriterion("map_id <>", value, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdGreaterThan(Long value) {
|
||||||
|
addCriterion("map_id >", value, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdGreaterThanOrEqualTo(Long value) {
|
||||||
|
addCriterion("map_id >=", value, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdLessThan(Long value) {
|
||||||
|
addCriterion("map_id <", value, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdLessThanOrEqualTo(Long value) {
|
||||||
|
addCriterion("map_id <=", value, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdIn(List<Long> values) {
|
||||||
|
addCriterion("map_id in", values, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdNotIn(List<Long> values) {
|
||||||
|
addCriterion("map_id not in", values, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdBetween(Long value1, Long value2) {
|
||||||
|
addCriterion("map_id between", value1, value2, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andMapIdNotBetween(Long value1, Long value2) {
|
||||||
|
addCriterion("map_id not between", value1, value2, "mapId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
public Criteria andLessonIdIsNull() {
|
public Criteria andLessonIdIsNull() {
|
||||||
addCriterion("lesson_id is null");
|
addCriterion("lesson_id is null");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
|
@ -1,18 +1,33 @@
|
|||||||
package club.joylink.rtss.entity;
|
package club.joylink.rtss.entity;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* org_exam
|
|
||||||
* @author
|
* @author
|
||||||
|
* 学生的试卷和班级关系
|
||||||
*/
|
*/
|
||||||
public class OrgExam implements Serializable {
|
public class OrgExam implements Serializable {
|
||||||
|
private Long id;
|
||||||
|
|
||||||
private Long examId;
|
private Long examId;
|
||||||
|
|
||||||
private Long orgId;
|
private Long orgId;
|
||||||
|
|
||||||
|
private Long creatorId;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
public Long getExamId() {
|
public Long getExamId() {
|
||||||
return examId;
|
return examId;
|
||||||
}
|
}
|
||||||
@ -29,6 +44,22 @@ public class OrgExam implements Serializable {
|
|||||||
this.orgId = orgId;
|
this.orgId = orgId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Long getCreatorId() {
|
||||||
|
return creatorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreatorId(Long creatorId) {
|
||||||
|
this.creatorId = creatorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getCreateTime() {
|
||||||
|
return createTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateTime(LocalDateTime createTime) {
|
||||||
|
this.createTime = createTime;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object that) {
|
public boolean equals(Object that) {
|
||||||
if (this == that) {
|
if (this == that) {
|
||||||
@ -41,16 +72,22 @@ public class OrgExam implements Serializable {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
OrgExam other = (OrgExam) that;
|
OrgExam other = (OrgExam) that;
|
||||||
return (this.getExamId() == null ? other.getExamId() == null : this.getExamId().equals(other.getExamId()))
|
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
|
||||||
&& (this.getOrgId() == null ? other.getOrgId() == null : this.getOrgId().equals(other.getOrgId()));
|
&& (this.getExamId() == null ? other.getExamId() == null : this.getExamId().equals(other.getExamId()))
|
||||||
|
&& (this.getOrgId() == null ? other.getOrgId() == null : this.getOrgId().equals(other.getOrgId()))
|
||||||
|
&& (this.getCreatorId() == null ? other.getCreatorId() == null : this.getCreatorId().equals(other.getCreatorId()))
|
||||||
|
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
int result = 1;
|
int result = 1;
|
||||||
|
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
|
||||||
result = prime * result + ((getExamId() == null) ? 0 : getExamId().hashCode());
|
result = prime * result + ((getExamId() == null) ? 0 : getExamId().hashCode());
|
||||||
result = prime * result + ((getOrgId() == null) ? 0 : getOrgId().hashCode());
|
result = prime * result + ((getOrgId() == null) ? 0 : getOrgId().hashCode());
|
||||||
|
result = prime * result + ((getCreatorId() == null) ? 0 : getCreatorId().hashCode());
|
||||||
|
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,8 +97,11 @@ public class OrgExam implements Serializable {
|
|||||||
sb.append(getClass().getSimpleName());
|
sb.append(getClass().getSimpleName());
|
||||||
sb.append(" [");
|
sb.append(" [");
|
||||||
sb.append("Hash = ").append(hashCode());
|
sb.append("Hash = ").append(hashCode());
|
||||||
|
sb.append(", id=").append(id);
|
||||||
sb.append(", examId=").append(examId);
|
sb.append(", examId=").append(examId);
|
||||||
sb.append(", orgId=").append(orgId);
|
sb.append(", orgId=").append(orgId);
|
||||||
|
sb.append(", creatorId=").append(creatorId);
|
||||||
|
sb.append(", createTime=").append(createTime);
|
||||||
sb.append(", serialVersionUID=").append(serialVersionUID);
|
sb.append(", serialVersionUID=").append(serialVersionUID);
|
||||||
sb.append("]");
|
sb.append("]");
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package club.joylink.rtss.entity;
|
package club.joylink.rtss.entity;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -124,6 +125,66 @@ public class OrgExamExample {
|
|||||||
criteria.add(new Criterion(condition, value1, value2));
|
criteria.add(new Criterion(condition, value1, value2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIsNull() {
|
||||||
|
addCriterion("id is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIsNotNull() {
|
||||||
|
addCriterion("id is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdEqualTo(Long value) {
|
||||||
|
addCriterion("id =", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotEqualTo(Long value) {
|
||||||
|
addCriterion("id <>", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdGreaterThan(Long value) {
|
||||||
|
addCriterion("id >", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdGreaterThanOrEqualTo(Long value) {
|
||||||
|
addCriterion("id >=", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdLessThan(Long value) {
|
||||||
|
addCriterion("id <", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdLessThanOrEqualTo(Long value) {
|
||||||
|
addCriterion("id <=", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIn(List<Long> values) {
|
||||||
|
addCriterion("id in", values, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotIn(List<Long> values) {
|
||||||
|
addCriterion("id not in", values, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdBetween(Long value1, Long value2) {
|
||||||
|
addCriterion("id between", value1, value2, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotBetween(Long value1, Long value2) {
|
||||||
|
addCriterion("id not between", value1, value2, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
public Criteria andExamIdIsNull() {
|
public Criteria andExamIdIsNull() {
|
||||||
addCriterion("exam_id is null");
|
addCriterion("exam_id is null");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
@ -194,55 +255,175 @@ public class OrgExamExample {
|
|||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdEqualTo(Integer value) {
|
public Criteria andOrgIdEqualTo(Long value) {
|
||||||
addCriterion("org_id =", value, "orgId");
|
addCriterion("org_id =", value, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdNotEqualTo(Integer value) {
|
public Criteria andOrgIdNotEqualTo(Long value) {
|
||||||
addCriterion("org_id <>", value, "orgId");
|
addCriterion("org_id <>", value, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdGreaterThan(Integer value) {
|
public Criteria andOrgIdGreaterThan(Long value) {
|
||||||
addCriterion("org_id >", value, "orgId");
|
addCriterion("org_id >", value, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdGreaterThanOrEqualTo(Integer value) {
|
public Criteria andOrgIdGreaterThanOrEqualTo(Long value) {
|
||||||
addCriterion("org_id >=", value, "orgId");
|
addCriterion("org_id >=", value, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdLessThan(Integer value) {
|
public Criteria andOrgIdLessThan(Long value) {
|
||||||
addCriterion("org_id <", value, "orgId");
|
addCriterion("org_id <", value, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdLessThanOrEqualTo(Integer value) {
|
public Criteria andOrgIdLessThanOrEqualTo(Long value) {
|
||||||
addCriterion("org_id <=", value, "orgId");
|
addCriterion("org_id <=", value, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdIn(List<Integer> values) {
|
public Criteria andOrgIdIn(List<Long> values) {
|
||||||
addCriterion("org_id in", values, "orgId");
|
addCriterion("org_id in", values, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdNotIn(List<Integer> values) {
|
public Criteria andOrgIdNotIn(List<Long> values) {
|
||||||
addCriterion("org_id not in", values, "orgId");
|
addCriterion("org_id not in", values, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdBetween(Integer value1, Integer value2) {
|
public Criteria andOrgIdBetween(Long value1, Long value2) {
|
||||||
addCriterion("org_id between", value1, value2, "orgId");
|
addCriterion("org_id between", value1, value2, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andOrgIdNotBetween(Integer value1, Integer value2) {
|
public Criteria andOrgIdNotBetween(Long value1, Long value2) {
|
||||||
addCriterion("org_id not between", value1, value2, "orgId");
|
addCriterion("org_id not between", value1, value2, "orgId");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdIsNull() {
|
||||||
|
addCriterion("creator_id is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdIsNotNull() {
|
||||||
|
addCriterion("creator_id is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdEqualTo(Long value) {
|
||||||
|
addCriterion("creator_id =", value, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdNotEqualTo(Long value) {
|
||||||
|
addCriterion("creator_id <>", value, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdGreaterThan(Long value) {
|
||||||
|
addCriterion("creator_id >", value, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdGreaterThanOrEqualTo(Long value) {
|
||||||
|
addCriterion("creator_id >=", value, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdLessThan(Long value) {
|
||||||
|
addCriterion("creator_id <", value, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdLessThanOrEqualTo(Long value) {
|
||||||
|
addCriterion("creator_id <=", value, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdIn(List<Long> values) {
|
||||||
|
addCriterion("creator_id in", values, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdNotIn(List<Long> values) {
|
||||||
|
addCriterion("creator_id not in", values, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdBetween(Long value1, Long value2) {
|
||||||
|
addCriterion("creator_id between", value1, value2, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreatorIdNotBetween(Long value1, Long value2) {
|
||||||
|
addCriterion("creator_id not between", value1, value2, "creatorId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeIsNull() {
|
||||||
|
addCriterion("create_time is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeIsNotNull() {
|
||||||
|
addCriterion("create_time is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeEqualTo(LocalDateTime value) {
|
||||||
|
addCriterion("create_time =", value, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeNotEqualTo(LocalDateTime value) {
|
||||||
|
addCriterion("create_time <>", value, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeGreaterThan(LocalDateTime value) {
|
||||||
|
addCriterion("create_time >", value, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeGreaterThanOrEqualTo(LocalDateTime value) {
|
||||||
|
addCriterion("create_time >=", value, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeLessThan(LocalDateTime value) {
|
||||||
|
addCriterion("create_time <", value, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeLessThanOrEqualTo(LocalDateTime value) {
|
||||||
|
addCriterion("create_time <=", value, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeIn(List<LocalDateTime> values) {
|
||||||
|
addCriterion("create_time in", values, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeNotIn(List<LocalDateTime> values) {
|
||||||
|
addCriterion("create_time not in", values, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeBetween(LocalDateTime value1, LocalDateTime value2) {
|
||||||
|
addCriterion("create_time between", value1, value2, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
|
||||||
|
addCriterion("create_time not between", value1, value2, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,9 +11,11 @@ import club.joylink.rtss.simulation.cbtc.GroupSimulationService;
|
|||||||
import club.joylink.rtss.vo.LoginUserInfoVO;
|
import club.joylink.rtss.vo.LoginUserInfoVO;
|
||||||
import club.joylink.rtss.vo.UserVO;
|
import club.joylink.rtss.vo.UserVO;
|
||||||
import club.joylink.rtss.vo.client.*;
|
import club.joylink.rtss.vo.client.*;
|
||||||
|
import club.joylink.rtss.vo.client.map.MapVO;
|
||||||
import club.joylink.rtss.vo.client.org.DepartmentVO;
|
import club.joylink.rtss.vo.client.org.DepartmentVO;
|
||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import lombok.NonNull;
|
||||||
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 org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -76,26 +78,23 @@ public class ExamService implements IExamService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void create(ExamDefinitionVO examDefinitionVO, UserVO userVO) {
|
public void create(ExamDefinitionVO examDefinitionVO, UserVO userVO) {
|
||||||
examDefinitionVO.setCreatorId(userVO.getId());
|
|
||||||
//检查分数是否合理
|
//检查分数是否合理
|
||||||
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(checkScore(examDefinitionVO));
|
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(checkScore(examDefinitionVO));
|
||||||
//检查考试名称和考试规则是否唯一
|
//检查考试名称是否唯一
|
||||||
checkName(examDefinitionVO);
|
confirmNameUnique(examDefinitionVO.getMapId(), examDefinitionVO.getPrdType(), examDefinitionVO.getName());
|
||||||
//插入考试定义表数据
|
//插入考试定义表数据
|
||||||
ExamDefinition examDefinition = examDefinitionVO.toDB();
|
ExamDefinition examDefinition = examDefinitionVO.toDB();
|
||||||
|
examDefinition.setCreatorId(userVO.getId());
|
||||||
examDefinition.setCreateTime(LocalDateTime.now());
|
examDefinition.setCreateTime(LocalDateTime.now());
|
||||||
examDefinition.setStatus(BusinessConsts.STATUS_USE);
|
examDefinition.setStatus(BusinessConsts.STATUS_USE);
|
||||||
// 判断是否是管理员并设置试用
|
if (examDefinitionVO.getTrial() != null) {
|
||||||
if (this.iSysUserService.isAdmin(userVO) && examDefinitionVO.getTrial()) {
|
examDefinition.setTrial(examDefinition.getTrial());
|
||||||
examDefinition.setTrial(true);
|
|
||||||
} else {
|
|
||||||
examDefinition.setTrial(false);
|
|
||||||
}
|
}
|
||||||
examDefinitionDAO.insert(examDefinition);
|
examDefinitionDAO.insert(examDefinition);
|
||||||
//插入试卷班级关系
|
// //插入试卷班级关系
|
||||||
if (!CollectionUtils.isEmpty(examDefinitionVO.getClasses())) {
|
// if (!CollectionUtils.isEmpty(examDefinitionVO.getClasses())) {
|
||||||
examDefinitionVO.getClasses().forEach(departmentVO -> iOrgUserService.addDepartExam(examDefinition.getId(), departmentVO.getId()));
|
// examDefinitionVO.getClasses().forEach(departmentVO -> iOrgUserService.addDepartExam(examDefinition.getId(), departmentVO.getId()));
|
||||||
}
|
// }
|
||||||
//插入试题规则表数据
|
//插入试题规则表数据
|
||||||
List<ExamDefinitionRulesVO> examDefinitionRulesVOList = examDefinitionVO.getExamDefinitionRulesVOList();
|
List<ExamDefinitionRulesVO> examDefinitionRulesVOList = examDefinitionVO.getExamDefinitionRulesVOList();
|
||||||
examDefinitionRulesVOList.forEach(examDefinitionRulesVO -> {
|
examDefinitionRulesVOList.forEach(examDefinitionRulesVO -> {
|
||||||
@ -152,47 +151,19 @@ public class ExamService implements IExamService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * GZB创建考试定义
|
* 确认名称唯一
|
||||||
// */
|
*/
|
||||||
// @Transactional
|
private void confirmNameUnique(@NonNull Long mapId, @NonNull String type, @NonNull String name) {
|
||||||
// @Override
|
// //一个课程下考试名称查重
|
||||||
// public void createGZBExam(ExamDefinitionVO examDefinitionVO, UserVO userVO) {
|
// ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
|
||||||
// examDefinitionVO.setCreatorId(userVO.getId());
|
// examDefinitionExample.createCriteria().andLessonIdEqualTo(examDefinitionVO.getLessonId()).andNameEqualTo(examDefinitionVO.getName());
|
||||||
//
|
// List<ExamDefinition> examDefinitionList = examDefinitionDAO.selectByExample(examDefinitionExample);
|
||||||
// //检查分数是否合理
|
// BusinessExceptionAssertEnum.DATA_UNIQUE_PROPERTY_REPEAT.assertCollectionEmpty(examDefinitionList);
|
||||||
// BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(checkScore(examDefinitionVO));
|
ExamDefinitionExample example = new ExamDefinitionExample();
|
||||||
// //检查考试名称和考试规则是否唯一
|
example.createCriteria().andMapIdEqualTo(mapId).andTypeEqualTo(type).andNameEqualTo(name);
|
||||||
// checkName(examDefinitionVO);
|
BusinessExceptionAssertEnum.DATA_UNIQUE_PROPERTY_REPEAT.assertTrue(examDefinitionDAO.countByExample(example) == 0,
|
||||||
// //插入考试定义表数据
|
"名称重复");
|
||||||
// ExamDefinition examDefinition = examDefinitionVO.toDB();
|
|
||||||
// examDefinition.setCreateTime(LocalDateTime.now());
|
|
||||||
// examDefinition.setStatus(BusinessConsts.STATUS_USE);
|
|
||||||
// // 判断是否是管理员并设置试用
|
|
||||||
// if(this.iSysUserService.isAdmin(userVO) && examDefinitionVO.getTrial()) {
|
|
||||||
// examDefinition.setTrial(true);
|
|
||||||
// }else {
|
|
||||||
// examDefinition.setTrial(false);
|
|
||||||
// }
|
|
||||||
// examDefinitionDAO.insert(examDefinition);
|
|
||||||
// //插入试卷班级关系
|
|
||||||
// if(!CollectionUtils.isEmpty(examDefinitionVO.getClasses())) {
|
|
||||||
// examDefinitionVO.getClasses().forEach(departmentVO -> iCompanyService.addDepartExam(examDefinition.getId(),departmentVO.getId()));
|
|
||||||
// }
|
|
||||||
// //插入试题规则表数据
|
|
||||||
// List<ExamDefinitionRulesVO> examDefinitionRulesVOList = examDefinitionVO.getExamDefinitionRulesVOList();
|
|
||||||
// examDefinitionRulesVOList.forEach(examDefinitionRulesVO -> {
|
|
||||||
// ExamDefinitionRules examDefinitionRules = examDefinitionRulesVO.toDB();
|
|
||||||
// examDefinitionRules.setExamId(examDefinition.getId());
|
|
||||||
// definitionRulesDAO.insert(examDefinitionRules);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
private void checkName(ExamDefinitionVO examDefinitionVO) {
|
|
||||||
//一个课程下考试名称查重
|
|
||||||
ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
|
|
||||||
examDefinitionExample.createCriteria().andLessonIdEqualTo(examDefinitionVO.getLessonId()).andNameEqualTo(examDefinitionVO.getName());
|
|
||||||
List<ExamDefinition> examDefinitionList = examDefinitionDAO.selectByExample(examDefinitionExample);
|
|
||||||
BusinessExceptionAssertEnum.DATA_UNIQUE_PROPERTY_REPEAT.assertCollectionEmpty(examDefinitionList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -217,38 +188,6 @@ public class ExamService implements IExamService {
|
|||||||
return defineFullScore == realFullScore;
|
return defineFullScore == realFullScore;
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
|
||||||
// * 查询课程下有实训的章节信息
|
|
||||||
// * @param lessonId
|
|
||||||
// * @return
|
|
||||||
// */
|
|
||||||
// @Override
|
|
||||||
// public List<ExamChapterInfoVO> queryChapterInfo(String lessonId) {
|
|
||||||
// //返回的结果
|
|
||||||
// List<ExamChapterInfoVO> examChapterInfoVOList = new ArrayList<>();
|
|
||||||
//
|
|
||||||
// //查询数据
|
|
||||||
// List<Long> lessonIds = new ArrayList<>();
|
|
||||||
// lessonIds.add(Long.valueOf(lessonId));
|
|
||||||
// List<LessonChapterVO> chapterVos = this.lsLessonChapterMapper.selectChapterTrainingByLessonIds(lessonIds);
|
|
||||||
//
|
|
||||||
// //检测章节是否为空
|
|
||||||
// if (chapterVos.size() == 0) {
|
|
||||||
// throw new DBException(ExceptionMapping.DATA_NOT_EXIST);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //转换为VO对象
|
|
||||||
// chapterVos.forEach(lessonChapterVO -> {
|
|
||||||
// ExamChapterInfoVO examChapterInfoVO = new ExamChapterInfoVO();
|
|
||||||
// examChapterInfoVO.setId(lessonChapterVO.getId());
|
|
||||||
// examChapterInfoVO.setName(lessonChapterVO.getName());
|
|
||||||
//
|
|
||||||
// examChapterInfoVOList.add(examChapterInfoVO);
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// return examChapterInfoVOList;
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> queryTrainingTypes(Long lessonId) {
|
public List<String> queryTrainingTypes(Long lessonId) {
|
||||||
// 获取课程,课程所属产品编码
|
// 获取课程,课程所属产品编码
|
||||||
@ -265,8 +204,6 @@ public class ExamService implements IExamService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询试题定义的详细信息
|
* 查询试题定义的详细信息
|
||||||
*
|
|
||||||
* @param examId
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ExamDefinitionVO queryExamInfo(Long examId) {
|
public ExamDefinitionVO queryExamInfo(Long examId) {
|
||||||
@ -301,37 +238,10 @@ public class ExamService implements IExamService {
|
|||||||
|
|
||||||
//查询课程信息
|
//查询课程信息
|
||||||
LessonVO lessonVO = iLessonService.getLessonInfo(lessonId);
|
LessonVO lessonVO = iLessonService.getLessonInfo(lessonId);
|
||||||
// MapVO mapVO = iMapService.findMapBaseInfoById(lessonVO.getMapId());
|
|
||||||
// BusinessConsts.Lesson.PrdInfo prdInfo = BusinessConsts.Lesson.PrdInfo.getBy(lessonVO.getPrdType());
|
|
||||||
// String defaultLessonName = String.join("-", mapVO.getName(), prdInfo.getName());
|
|
||||||
// lessonVO.setSystemFault(Objects.equals(lessonVO.getName(),defaultLessonName));
|
|
||||||
// 如果用户关联班级 查找班级关联试卷
|
|
||||||
List<Long> examIds = null;
|
|
||||||
// List<UserDepartRelVO> userDepartRelVOS = this.iOrgUserService.getDepartRefByUserId(userVO.getId());
|
|
||||||
// if (!CollectionUtils.isEmpty(userDepartRelVOS)) {
|
|
||||||
// examIds = new ArrayList<>();
|
|
||||||
// for (UserDepartRelVO udr : userDepartRelVOS) {
|
|
||||||
// examIds.addAll(iOrgUserService.getExamIdsByDepartId(udr.getDepartmentId()));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//查询课程下的试题信息
|
//查询课程下的试题信息
|
||||||
ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
|
ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
|
||||||
examDefinitionExample.createCriteria().andLessonIdEqualTo(lessonId).andStatusEqualTo(BusinessConsts.STATUS_USE);
|
examDefinitionExample.createCriteria().andLessonIdEqualTo(lessonId).andStatusEqualTo(BusinessConsts.STATUS_USE);
|
||||||
List<ExamDefinition> examDefinitionList = examDefinitionDAO.selectByExample(examDefinitionExample);
|
List<ExamDefinition> examDefinitionList = examDefinitionDAO.selectByExample(examDefinitionExample);
|
||||||
// 检测试题是否有效
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
|
||||||
Iterator<ExamDefinition> iterator = examDefinitionList.iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
ExamDefinition exam = iterator.next();
|
|
||||||
if (null != exam.getEndTime() && now.isAfter(exam.getEndTime())) {
|
|
||||||
this.forceOffline(exam);
|
|
||||||
iterator.remove();
|
|
||||||
} else if (!lessonVO.isSystemFault() && Objects.nonNull(examIds)
|
|
||||||
// && !Objects.equals(exam.getName(),defaultLessonName+"试卷")
|
|
||||||
&& !examIds.contains(exam.getId())) {
|
|
||||||
iterator.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//转换为VO
|
//转换为VO
|
||||||
ExamsLessonVO examsLessonVO = new ExamsLessonVO(lessonVO);
|
ExamsLessonVO examsLessonVO = new ExamsLessonVO(lessonVO);
|
||||||
List<ExamDefinitionVO> examDefinitionVOList = new ArrayList<>();
|
List<ExamDefinitionVO> examDefinitionVOList = new ArrayList<>();
|
||||||
@ -444,27 +354,6 @@ public class ExamService implements IExamService {
|
|||||||
examDefinitionDAO.deleteByPrimaryKey(Long.parseLong(id));
|
examDefinitionDAO.deleteByPrimaryKey(Long.parseLong(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// /**
|
|
||||||
// * 查询章节下允许创建的最多题目数量
|
|
||||||
// *
|
|
||||||
// * @param lessonId
|
|
||||||
// * @param chapterId
|
|
||||||
// * @return
|
|
||||||
// */
|
|
||||||
// @Override
|
|
||||||
// public int queryTrainingNum(String lessonId, String chapterId) {
|
|
||||||
// Long chapterIdLong = ConvertUtil.str2Long(chapterId);
|
|
||||||
// Long lessonIdLong = ConvertUtil.str2Long(lessonId);
|
|
||||||
//
|
|
||||||
// //查询课程章节实训映射表信息
|
|
||||||
// LsRelChapterTrainingExample example = new LsRelChapterTrainingExample();
|
|
||||||
// example.setDistinct(true);
|
|
||||||
// example.createCriteria().andChapterIdEqualTo(chapterIdLong).andLessonIdEqualTo(lessonIdLong);
|
|
||||||
// List<LsRelChapterTraining> lsRelChapterTrainingList = lsRelChapterTrainingMapper.selectByExample(example);
|
|
||||||
//
|
|
||||||
// return lsRelChapterTrainingList.size();
|
|
||||||
// }
|
|
||||||
@Override
|
@Override
|
||||||
public Long queryTrainingNum(Long lessonId, String trainingType, String operateType) {
|
public Long queryTrainingNum(Long lessonId, String trainingType, String operateType) {
|
||||||
// 获取课程数据
|
// 获取课程数据
|
||||||
@ -523,18 +412,8 @@ public class ExamService implements IExamService {
|
|||||||
public void update(Long id, ExamDefinitionVO examDefinitionVO) {
|
public void update(Long id, ExamDefinitionVO examDefinitionVO) {
|
||||||
ExamDefinition examDefinition = this.examDefinitionDAO.selectByPrimaryKey(id);
|
ExamDefinition examDefinition = this.examDefinitionDAO.selectByPrimaryKey(id);
|
||||||
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(examDefinition);
|
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(examDefinition);
|
||||||
if (!CollectionUtils.isEmpty(iOrgUserService.getDepartsByExamId(id))) {
|
|
||||||
iOrgUserService.deleteDepartsExam(id);
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(examDefinitionVO.getClasses())) {
|
|
||||||
examDefinitionVO.getClasses().forEach(departmentVO -> iOrgUserService.addDepartExam(id, departmentVO.getId()));
|
|
||||||
}
|
|
||||||
//考试名称查重
|
//考试名称查重
|
||||||
String name = examDefinitionVO.getName();
|
confirmNameUnique(examDefinition.getMapId(), examDefinition.getType(), examDefinitionVO.getName());
|
||||||
ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
|
|
||||||
examDefinitionExample.createCriteria().andNameEqualTo(name).andIdNotEqualTo(id);
|
|
||||||
List<ExamDefinition> examDefinitionList = examDefinitionDAO.selectByExample(examDefinitionExample);
|
|
||||||
BusinessExceptionAssertEnum.DATA_UNIQUE_PROPERTY_REPEAT.assertCollectionEmpty(examDefinitionList);
|
|
||||||
examDefinition.setName(examDefinitionVO.getName());
|
examDefinition.setName(examDefinitionVO.getName());
|
||||||
examDefinition.setTrial(examDefinitionVO.getTrial());
|
examDefinition.setTrial(examDefinitionVO.getTrial());
|
||||||
examDefinition.setStartTime(examDefinitionVO.getStartTime());
|
examDefinition.setStartTime(examDefinitionVO.getStartTime());
|
||||||
@ -565,34 +444,6 @@ public class ExamService implements IExamService {
|
|||||||
examDefinitionRulesDAO.insertSelective(rules);
|
examDefinitionRulesDAO.insertSelective(rules);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExamDefinitionExample examExample = new ExamDefinitionExample();
|
|
||||||
// examExample.createCriteria()
|
|
||||||
// .andLessonIdEqualTo(sourceLessonId);
|
|
||||||
// List<ExamDefinition> definitionList = this.examDefinitionDAO.selectByExample(examExample);
|
|
||||||
// if(!CollectionUtils.isEmpty(definitionList)) {
|
|
||||||
// definitionList.forEach(definition -> {
|
|
||||||
// // 拷贝考试定义
|
|
||||||
// Long oldId = definition.getId();
|
|
||||||
// definition.setId(null);
|
|
||||||
// definition.setLessonId(targetLessonId);
|
|
||||||
// definition.setCreatorId(user.getId());
|
|
||||||
// this.examDefinitionDAO.insert(definition);
|
|
||||||
// Long newId = definition.getId();
|
|
||||||
// // 拷贝考试规则
|
|
||||||
// ExamDefinitionRulesExample example = new ExamDefinitionRulesExample();
|
|
||||||
// example.createCriteria()
|
|
||||||
// .andExamIdEqualTo(oldId);
|
|
||||||
// List<ExamDefinitionRules> ruleList = this.definitionRulesDAO.selectByExample(example);
|
|
||||||
// if(!CollectionUtils.isEmpty(ruleList)) {
|
|
||||||
// ruleList.forEach(rules -> {
|
|
||||||
// rules.setId(null);
|
|
||||||
// rules.setExamId(newId);
|
|
||||||
// this.definitionRulesDAO.insert(rules);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -604,43 +455,28 @@ public class ExamService implements IExamService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageVO<ExamDefinitionVO> pagedQueryByLoginProject(ExamDefinitionQueryVO queryVO, LoginUserInfoVO loginInfo) {
|
public PageVO<ExamDefinitionVO> pagedQueryByLoginProject(ExamDefinitionQueryVO queryVO, LoginUserInfoVO loginInfo) {
|
||||||
List<Long> lessonIds;
|
PageVO<ExamDefinitionVO> empty = new PageVO<>(queryVO.getPageNum(), queryVO.getPageSize(), 0, new ArrayList<>());
|
||||||
if (queryVO.getLessonId() != null) {
|
List<Long> creatorIds = null;
|
||||||
lessonIds = List.of(queryVO.getLessonId());
|
Map<Long, UserVO> creatorMap = null;
|
||||||
} else {
|
if (StringUtils.hasText(queryVO.getCreatorName())) {
|
||||||
List<LessonVO> lessonVOS = iLessonService.queryNonDefaultLessons(null, loginInfo.getProject(), BusinessConsts.STATUS_USE);
|
iSysUserService.
|
||||||
lessonIds = lessonVOS.stream().map(LessonVO::getId).collect(Collectors.toList());
|
List<UserVO> creators = iSysUserService.findUserByName(queryVO.getCreatorName());
|
||||||
}
|
if (CollectionUtils.isEmpty(creators))
|
||||||
if (CollectionUtils.isEmpty(lessonIds)) {
|
return empty;
|
||||||
return new PageVO<>(queryVO.getPageNum(), queryVO.getPageSize(), 0, new ArrayList<>());
|
creatorIds = creators.stream().map(UserVO::getId).collect(Collectors.toList());
|
||||||
} else {
|
|
||||||
List<OrgLesson> orgLessons = iOrgLessonService.findEntitiesByLessonIds(lessonIds);
|
|
||||||
Map<Long, List<Long>> lessonOrgMap = orgLessons.stream()
|
|
||||||
.collect(Collectors.groupingBy(OrgLesson::getLessonId, Collectors.mapping(OrgLesson::getOrgId, Collectors.toList())));
|
|
||||||
ExamDefinitionExample example = new ExamDefinitionExample();
|
|
||||||
ExamDefinitionExample.Criteria criteria = example.createCriteria().andLessonIdIn(lessonIds);
|
|
||||||
if (StringUtils.hasText(queryVO.getName())) {
|
|
||||||
criteria.andNameLike(String.format("%%%s%%", queryVO.getName()));
|
|
||||||
}
|
|
||||||
if (StringUtils.hasText(queryVO.getCreatorName())) {
|
|
||||||
List<Long> creatorIds = iSysUserService.findUserByName(queryVO.getCreatorName()).stream().map(UserVO::getId).collect(Collectors.toList());
|
|
||||||
if (CollectionUtils.isEmpty(creatorIds)) {
|
|
||||||
return new PageVO<>(queryVO.getPageNum(), queryVO.getPageSize(), 0, new ArrayList<>());
|
|
||||||
} else {
|
|
||||||
criteria.andCreatorIdIn(creatorIds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PageHelper.startPage(queryVO.getPageNum(), queryVO.getPageSize());
|
|
||||||
Page<ExamDefinition> page = (Page<ExamDefinition>) examDefinitionDAO.selectByExample(example);
|
|
||||||
Map<Long, SysUser> creatorMap = iSysUserService.findEntity(page.stream().map(ExamDefinition::getCreatorId).collect(Collectors.toList()), null)
|
|
||||||
.stream().collect(Collectors.toMap(SysUser::getId, Function.identity()));
|
|
||||||
List<ExamDefinitionVO> list = page.getResult().stream().map(examDefinition -> {
|
|
||||||
ExamDefinitionVO vo = new ExamDefinitionVO(examDefinition, creatorMap.get(examDefinition.getCreatorId()));
|
|
||||||
vo.setClsIds(lessonOrgMap.get(vo.getLessonId()));
|
|
||||||
return vo;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
return PageVO.convert(page, list);
|
|
||||||
}
|
}
|
||||||
|
List<Long> mapIds = iMapService.findOnlineMapByProjectCode(loginInfo.getProject().name())
|
||||||
|
.stream().map(MapVO::getId).collect(Collectors.toList());
|
||||||
|
if (CollectionUtils.isEmpty(mapIds))
|
||||||
|
return empty;
|
||||||
|
ExamDefinitionExample example = new ExamDefinitionExample();
|
||||||
|
ExamDefinitionExample.Criteria criteria = example.createCriteria().andMapIdIn(mapIds);
|
||||||
|
if (!CollectionUtils.isEmpty(creatorIds))
|
||||||
|
criteria.andCreatorIdIn(creatorIds);
|
||||||
|
if (StringUtils.hasText(queryVO.getName()))
|
||||||
|
criteria.andNameLike(String.format("%%%s%%", queryVO.getName()));
|
||||||
|
List<ExamDefinition> exams = examDefinitionDAO.selectByExample(example);
|
||||||
|
exams.stream().map()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -650,7 +486,7 @@ public class ExamService implements IExamService {
|
|||||||
Org topOrg = iOrgService.getEntity(loginInfo.getProject(), BusinessConsts.Org.Status.VALID);
|
Org topOrg = iOrgService.getEntity(loginInfo.getProject(), BusinessConsts.Org.Status.VALID);
|
||||||
List<Org> clsList = iOrgService.findEntitiesByParentId(topOrg.getId(), "id", BusinessConsts.Org.Status.VALID);
|
List<Org> clsList = iOrgService.findEntitiesByParentId(topOrg.getId(), "id", BusinessConsts.Org.Status.VALID);
|
||||||
List<Long> clsIds = clsList.stream().map(Org::getId).collect(Collectors.toList());
|
List<Long> clsIds = clsList.stream().map(Org::getId).collect(Collectors.toList());
|
||||||
lessonIds = iOrgLessonService.findEntitiesByOrgIds(clsIds).stream().map(OrgLesson::getLessonId).collect(Collectors.toList());
|
lessonIds = iOrgLessonService.findEntitiesByOrgIds(clsIds).stream().map(OrgLesson::getLessonId).collect(Collectors.toList());
|
||||||
} else {
|
} else {
|
||||||
lessonIds = iOrgLessonService.findEntitiesByOrgId(clsId, null).stream().map(OrgLesson::getLessonId).collect(Collectors.toList());
|
lessonIds = iOrgLessonService.findEntitiesByOrgId(clsId, null).stream().map(OrgLesson::getLessonId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
@ -17,8 +17,6 @@ public interface IExamService {
|
|||||||
*/
|
*/
|
||||||
void create(ExamDefinitionVO examDefinitionVO, UserVO userVO);
|
void create(ExamDefinitionVO examDefinitionVO, UserVO userVO);
|
||||||
|
|
||||||
// void createGZBExam(ExamDefinitionVO examDefinitionVO, UserVO userVO);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查分数定义是否合理
|
* 检查分数定义是否合理
|
||||||
*/
|
*/
|
||||||
@ -49,11 +47,6 @@ public interface IExamService {
|
|||||||
*/
|
*/
|
||||||
void deleteExam(String id, UserVO userVO);
|
void deleteExam(String id, UserVO userVO);
|
||||||
|
|
||||||
|
|
||||||
// /**
|
|
||||||
// * 查询章节下允许创建的最多题目数量
|
|
||||||
// */
|
|
||||||
// int queryTrainingNum(String lessonId, String chapterId);
|
|
||||||
/**
|
/**
|
||||||
* 根据课程和实训类型查询实训数量
|
* 根据课程和实训类型查询实训数量
|
||||||
*/
|
*/
|
||||||
|
@ -173,9 +173,12 @@ public class MapService implements IMapService {
|
|||||||
Objects.requireNonNull(projectCode, "项目编号不能为空");
|
Objects.requireNonNull(projectCode, "项目编号不能为空");
|
||||||
MapInfoExample example = new MapInfoExample();
|
MapInfoExample example = new MapInfoExample();
|
||||||
example.setOrderByClause("order_number");
|
example.setOrderByClause("order_number");
|
||||||
example.createCriteria()
|
MapInfoExample.Criteria criteria = example.createCriteria().andStatusEqualTo(MapStatus.Online.getCode());
|
||||||
.andStatusEqualTo(MapStatus.Online.getCode())
|
if (Project.DEFAULT.name().equals(projectCode)) {
|
||||||
.andProjectCodeEqualTo(projectCode);
|
criteria.andProjectCodeIsNull();
|
||||||
|
} else {
|
||||||
|
criteria.andProjectCodeEqualTo(projectCode);
|
||||||
|
}
|
||||||
List<MapInfo> list = mapInfoDAO.selectByExample(example);
|
List<MapInfo> list = mapInfoDAO.selectByExample(example);
|
||||||
return MapVO.convert2VOList(list);
|
return MapVO.convert2VOList(list);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
package club.joylink.rtss.services.org;
|
||||||
|
|
||||||
|
import club.joylink.rtss.vo.UserVO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface IOrgExamService {
|
||||||
|
|
||||||
|
void create(Long clsId, List<Long> examIds, UserVO user);
|
||||||
|
}
|
@ -17,8 +17,6 @@ public interface IOrgUserService {
|
|||||||
*/
|
*/
|
||||||
CompanyVO userScanCodeBindCompanyManager(Long userId, Long companyId);
|
CompanyVO userScanCodeBindCompanyManager(Long userId, Long companyId);
|
||||||
|
|
||||||
boolean isCompanyUser(Long userId);
|
|
||||||
|
|
||||||
DepartmentVO createDepart(DepartmentVO departmentVO);
|
DepartmentVO createDepart(DepartmentVO departmentVO);
|
||||||
|
|
||||||
void updateDepartInfo(Long id, DepartmentVO departmentVO);
|
void updateDepartInfo(Long id, DepartmentVO departmentVO);
|
||||||
@ -33,8 +31,6 @@ public interface IOrgUserService {
|
|||||||
|
|
||||||
List<DepartmentVO> getDepartAndChild(Long companyId, Long deptId);
|
List<DepartmentVO> getDepartAndChild(Long companyId, Long deptId);
|
||||||
|
|
||||||
List<UserDepartRelVO> getDepartRefByUserId(Long userId);
|
|
||||||
|
|
||||||
void addDepartUserInfo(UserVO user, UserDepartRelVO userDepartRelVO);
|
void addDepartUserInfo(UserVO user, UserDepartRelVO userDepartRelVO);
|
||||||
|
|
||||||
void updateDepartUserInfo(UserVO user, UserDepartRelVO userDepartRelVO);
|
void updateDepartUserInfo(UserVO user, UserDepartRelVO userDepartRelVO);
|
||||||
@ -52,8 +48,6 @@ public interface IOrgUserService {
|
|||||||
|
|
||||||
List<DepartmentVO> getDepartsByExamId(Long examId);
|
List<DepartmentVO> getDepartsByExamId(Long examId);
|
||||||
|
|
||||||
void deleteDepartsExam(Long examId);
|
|
||||||
|
|
||||||
void addDepartExam(Long examId, Long departId);
|
void addDepartExam(Long examId, Long departId);
|
||||||
|
|
||||||
List<OrgLesson> getDepartLessonRefs(Long departId);
|
List<OrgLesson> getDepartLessonRefs(Long departId);
|
||||||
|
@ -0,0 +1,56 @@
|
|||||||
|
package club.joylink.rtss.services.org;
|
||||||
|
|
||||||
|
import club.joylink.rtss.constants.BusinessConsts;
|
||||||
|
import club.joylink.rtss.dao.OrgExamDAO;
|
||||||
|
import club.joylink.rtss.entity.Org;
|
||||||
|
import club.joylink.rtss.entity.OrgExam;
|
||||||
|
import club.joylink.rtss.entity.OrgExamExample;
|
||||||
|
import club.joylink.rtss.vo.UserVO;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class OrgExamService implements IOrgExamService {
|
||||||
|
@Autowired
|
||||||
|
private IOrgService iOrgService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IOrgUserService iOrgUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OrgExamDAO orgExamDAO;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void create(Long clsId, List<Long> examIds, UserVO user) {
|
||||||
|
Org topOrg = iOrgService.getTopOrgEntity(clsId, BusinessConsts.Org.Status.VALID);
|
||||||
|
iOrgUserService.confirmIsTheRoleInThisOrg(user.getId(), topOrg.getId(), BusinessConsts.OrgRole.Admin);
|
||||||
|
delete(clsId, user.getId());
|
||||||
|
LocalDateTime createTime = LocalDateTime.now();
|
||||||
|
examIds.forEach(examId -> {
|
||||||
|
OrgExam orgExam = new OrgExam();
|
||||||
|
orgExam.setOrgId(clsId);
|
||||||
|
orgExam.setExamId(examId);
|
||||||
|
orgExam.setCreatorId(user.getId());
|
||||||
|
orgExam.setCreateTime(createTime);
|
||||||
|
orgExamDAO.insert(orgExam);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<OrgExam> findEntities(long orgId, Long creatorId) {
|
||||||
|
OrgExamExample example = new OrgExamExample();
|
||||||
|
OrgExamExample.Criteria criteria = example.createCriteria().andOrgIdEqualTo(orgId);
|
||||||
|
if (creatorId != null) {
|
||||||
|
criteria.andCreatorIdEqualTo(creatorId);
|
||||||
|
}
|
||||||
|
return orgExamDAO.selectByExample(example);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void delete(long orgId, long creatorId) {
|
||||||
|
OrgExamExample example = new OrgExamExample();
|
||||||
|
example.createCriteria().andOrgIdEqualTo(orgId).andCreatorIdEqualTo(creatorId);
|
||||||
|
orgExamDAO.deleteByExample(example);
|
||||||
|
}
|
||||||
|
}
|
@ -123,7 +123,7 @@ public class OrgService implements IOrgService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Org findEntity(Project project, String status) {
|
public Org findEntity(@NonNull Project project, String status) {
|
||||||
OrgExample example = new OrgExample();
|
OrgExample example = new OrgExample();
|
||||||
OrgExample.Criteria criteria = example.createCriteria().andProjectCodeEqualTo(project.name());
|
OrgExample.Criteria criteria = example.createCriteria().andProjectCodeEqualTo(project.name());
|
||||||
if (StringUtils.hasText(status)) {
|
if (StringUtils.hasText(status)) {
|
||||||
@ -164,7 +164,7 @@ public class OrgService implements IOrgService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Org> findEntitiesByParentId(Long parentId, String orderBy, String status) {
|
public List<Org> findEntitiesByParentId(@NonNull Long parentId, String orderBy, String status) {
|
||||||
OrgExample example = new OrgExample();
|
OrgExample example = new OrgExample();
|
||||||
if (StringUtils.hasText(orderBy)) {
|
if (StringUtils.hasText(orderBy)) {
|
||||||
example.setOrderByClause(orderBy);
|
example.setOrderByClause(orderBy);
|
||||||
@ -273,7 +273,7 @@ public class OrgService implements IOrgService {
|
|||||||
/**
|
/**
|
||||||
* 创建非顶级组织
|
* 创建非顶级组织
|
||||||
*/
|
*/
|
||||||
private Org createNonTopOrg(@NonNull String name, @NonNull Long parentId, @NonNull Long rootId, Long creatorId) {
|
private Org createNonTopOrg(@NonNull String name, @NonNull Long parentId, @NonNull Long rootId, @NonNull Long creatorId) {
|
||||||
//检查顶级组织
|
//检查顶级组织
|
||||||
confirmIsTopOrg(rootId);
|
confirmIsTopOrg(rootId);
|
||||||
//检查同级同名组织
|
//检查同级同名组织
|
||||||
|
@ -80,13 +80,6 @@ public class OrgUserService implements IOrgUserService {
|
|||||||
// companyUserDAO.updateByExampleSelective(cu,e);
|
// companyUserDAO.updateByExampleSelective(cu,e);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCompanyUser(Long userId) {
|
|
||||||
OrgUserExample e = new OrgUserExample();
|
|
||||||
e.createCriteria().andUserIdEqualTo(userId);
|
|
||||||
return orgUserDAO.countByExample(e) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//************************************部门管理**********************************************
|
//************************************部门管理**********************************************
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -115,6 +108,7 @@ public class OrgUserService implements IOrgUserService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询部门信息
|
* 查询部门信息
|
||||||
|
*
|
||||||
* @param deptId
|
* @param deptId
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -128,6 +122,7 @@ public class OrgUserService implements IOrgUserService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据单位id查询部门及其子部门信息
|
* 根据单位id查询部门及其子部门信息
|
||||||
|
*
|
||||||
* @param companyId
|
* @param companyId
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -194,14 +189,6 @@ public class OrgUserService implements IOrgUserService {
|
|||||||
return ucrs.get(0);
|
return ucrs.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<UserDepartRelVO> getDepartRefByUserId(Long userId) {
|
|
||||||
OrgUserExample e = new OrgUserExample();
|
|
||||||
e.createCriteria().andUserIdEqualTo(userId).andRoleNotEqualTo(BusinessConsts.OrgRole.Admin.name());
|
|
||||||
List<OrgUser> departmentUserRefs = this.orgUserDAO.selectByExample(e);
|
|
||||||
return UserDepartRelVO.convert2VOList(departmentUserRefs);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加部门-职位-用户关系
|
* 添加部门-职位-用户关系
|
||||||
*/
|
*/
|
||||||
@ -338,7 +325,8 @@ public class OrgUserService implements IOrgUserService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入组织用户
|
* 导入组织用户
|
||||||
* @param topOrg 导入的组织所属的顶级组织
|
*
|
||||||
|
* @param topOrg 导入的组织所属的顶级组织
|
||||||
* @param orgId
|
* @param orgId
|
||||||
* @param orgUserIdSet 导入的组织当前已有的成员
|
* @param orgUserIdSet 导入的组织当前已有的成员
|
||||||
*/
|
*/
|
||||||
@ -384,13 +372,6 @@ public class OrgUserService implements IOrgUserService {
|
|||||||
return DepartmentVO.convert2VOList(classes);
|
return DepartmentVO.convert2VOList(classes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteDepartsExam(Long examId) {
|
|
||||||
OrgExamExample example = new OrgExamExample();
|
|
||||||
example.createCriteria().andExamIdEqualTo(examId);
|
|
||||||
orgExamDAO.deleteByExample(example);
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO 判是否存在
|
//TODO 判是否存在
|
||||||
@Override
|
@Override
|
||||||
public void addDepartExam(Long examId, Long departId) {
|
public void addDepartExam(Long examId, Long departId) {
|
||||||
@ -451,7 +432,7 @@ public class OrgUserService implements IOrgUserService {
|
|||||||
* 该用户在该组织中是否是这个角色
|
* 该用户在该组织中是否是这个角色
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isTheRoleInThisOrg(Long userId, Long orgId, BusinessConsts.OrgRole role) {
|
public boolean isTheRoleInThisOrg(@NonNull Long userId, @NonNull Long orgId, @NonNull BusinessConsts.OrgRole role) {
|
||||||
OrgUserExample example = new OrgUserExample();
|
OrgUserExample example = new OrgUserExample();
|
||||||
example.createCriteria()
|
example.createCriteria()
|
||||||
.andUserIdEqualTo(userId)
|
.andUserIdEqualTo(userId)
|
||||||
|
@ -190,4 +190,10 @@ public interface ITrainingV1Service {
|
|||||||
List<Training> findEntities(Long mapId, String prdType);
|
List<Training> findEntities(Long mapId, String prdType);
|
||||||
|
|
||||||
List<Training> findEntities(@NonNull Long mapId);
|
List<Training> findEntities(@NonNull Long mapId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询实训类型及其数量
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Map<String, Long>> queryTrainingTypeAndQuantity(Long mapId, String prdType);
|
||||||
}
|
}
|
||||||
|
@ -36,11 +36,12 @@ import org.springframework.util.StringUtils;
|
|||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实训 服务
|
* 实训 服务
|
||||||
* @author sheng
|
|
||||||
*
|
*
|
||||||
|
* @author sheng
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -207,7 +208,7 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
public void nextStep(Long id, String group, TrainingStepVO step) {
|
public void nextStep(Long id, String group, TrainingStepVO step) {
|
||||||
Assert.hasText(group, "group不能为空!");
|
Assert.hasText(group, "group不能为空!");
|
||||||
TrainingNewVO trainingVO = this.groupTrainingDataCache.getTrainingByGroup(group);
|
TrainingNewVO trainingVO = this.groupTrainingDataCache.getTrainingByGroup(group);
|
||||||
if(Objects.nonNull(trainingVO)) {
|
if (Objects.nonNull(trainingVO)) {
|
||||||
trainingVO.nextStep(step);
|
trainingVO.nextStep(step);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -218,7 +219,7 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
Assert.hasText(group, "group不能为空!");
|
Assert.hasText(group, "group不能为空!");
|
||||||
int time = Integer.parseInt(usedTime);
|
int time = Integer.parseInt(usedTime);
|
||||||
TrainingResultVO result = this.score(group, mode, time);
|
TrainingResultVO result = this.score(group, mode, time);
|
||||||
if(lessonId != 0) {
|
if (lessonId != 0) {
|
||||||
// 不是从演示进入,保存数据,用于统计
|
// 不是从演示进入,保存数据,用于统计
|
||||||
UserTrainingStats userTraining = new UserTrainingStats();
|
UserTrainingStats userTraining = new UserTrainingStats();
|
||||||
userTraining.setUserId(userVO.getId());
|
userTraining.setUserId(userVO.getId());
|
||||||
@ -239,11 +240,11 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
|
|
||||||
private TrainingResultVO score(String group, String mode, int usedTime) {
|
private TrainingResultVO score(String group, String mode, int usedTime) {
|
||||||
TrainingNewVO training = this.groupTrainingDataCache.getTrainingByGroup(group);
|
TrainingNewVO training = this.groupTrainingDataCache.getTrainingByGroup(group);
|
||||||
if(this.isOperateCorrect(training)) {
|
if (this.isOperateCorrect(training)) {
|
||||||
// 测验/考试模式
|
// 测验/考试模式
|
||||||
if(mode.equals(BusinessConsts.Training.Mode.Mode04) || mode.equals(BusinessConsts.Training.Mode.Mode05)) {
|
if (mode.equals(BusinessConsts.Training.Mode.Mode04) || mode.equals(BusinessConsts.Training.Mode.Mode05)) {
|
||||||
float score = 0f;
|
float score = 0f;
|
||||||
if(training.getMaxDuration() >= usedTime) {
|
if (training.getMaxDuration() >= usedTime) {
|
||||||
score = calculateScore(training, usedTime, 5L, false);
|
score = calculateScore(training, usedTime, 5L, false);
|
||||||
return new TrainingResultVO(true, score);
|
return new TrainingResultVO(true, score);
|
||||||
}
|
}
|
||||||
@ -256,18 +257,19 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 实训操作是否正确
|
* 实训操作是否正确
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean isOperateCorrect(TrainingNewVO training) {
|
private boolean isOperateCorrect(TrainingNewVO training) {
|
||||||
List<TrainingStepVO> steps = training.getSteps();
|
List<TrainingStepVO> steps = training.getSteps();
|
||||||
List<TrainingStepVO> actualSteps = training.getActualSteps();
|
List<TrainingStepVO> actualSteps = training.getActualSteps();
|
||||||
boolean correct = true;
|
boolean correct = true;
|
||||||
if(!CollectionUtils.isEmpty(steps) && !CollectionUtils.isEmpty(actualSteps)
|
if (!CollectionUtils.isEmpty(steps) && !CollectionUtils.isEmpty(actualSteps)
|
||||||
&& steps.size() == actualSteps.size()) {
|
&& steps.size() == actualSteps.size()) {
|
||||||
for(int i=0; i<steps.size(); ++i) {
|
for (int i = 0; i < steps.size(); ++i) {
|
||||||
TrainingStepVO step = steps.get(i);
|
TrainingStepVO step = steps.get(i);
|
||||||
TrainingStepVO actualStep = actualSteps.get(i);
|
TrainingStepVO actualStep = actualSteps.get(i);
|
||||||
if(!step.isCorrect(actualStep)) {
|
if (!step.isCorrect(actualStep)) {
|
||||||
correct = false;
|
correct = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -375,19 +377,20 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算分数
|
* 计算分数
|
||||||
|
*
|
||||||
* @param current
|
* @param current
|
||||||
* @param usedTime
|
* @param usedTime
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private float calculateScore(TrainingNewVO current, int usedTime, long point, boolean isFloat) {
|
private float calculateScore(TrainingNewVO current, int usedTime, long point, boolean isFloat) {
|
||||||
float score = 0f;
|
float score = 0f;
|
||||||
if(usedTime <= current.getMinDuration()) {
|
if (usedTime <= current.getMinDuration()) {
|
||||||
score = point;
|
score = point;
|
||||||
}else {
|
} else {
|
||||||
score = (current.getMaxDuration() - usedTime + 1) * point/(current.getMaxDuration() - current.getMinDuration() + 1);
|
score = (current.getMaxDuration() - usedTime + 1) * point / (current.getMaxDuration() - current.getMinDuration() + 1);
|
||||||
if(isFloat) {
|
if (isFloat) {
|
||||||
long mod = (current.getMaxDuration() - usedTime + 1) * point%(current.getMaxDuration() - current.getMinDuration() + 1);
|
long mod = (current.getMaxDuration() - usedTime + 1) * point % (current.getMaxDuration() - current.getMinDuration() + 1);
|
||||||
if(mod >= 5) {
|
if (mod >= 5) {
|
||||||
score += 0.5f;
|
score += 0.5f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -408,16 +411,16 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
public TrainingResultVO judgeAndCalculate(Long id, String group, String mode, int usedTime, long point, boolean isFloat) {
|
public TrainingResultVO judgeAndCalculate(Long id, String group, String mode, int usedTime, long point, boolean isFloat) {
|
||||||
TrainingNewVO current = this.groupTrainingDataCache.getTrainingByGroup(group);
|
TrainingNewVO current = this.groupTrainingDataCache.getTrainingByGroup(group);
|
||||||
|
|
||||||
if(isOperateCorrect(current)) {
|
if (isOperateCorrect(current)) {
|
||||||
// 测验/考试模式
|
// 测验/考试模式
|
||||||
if(mode.equals(BusinessConsts.Training.Mode.Mode04) || mode.equals(BusinessConsts.Training.Mode.Mode05)) {
|
if (mode.equals(BusinessConsts.Training.Mode.Mode04) || mode.equals(BusinessConsts.Training.Mode.Mode05)) {
|
||||||
float score = 0f;
|
float score = 0f;
|
||||||
if(current.getMaxDuration() >= usedTime) {
|
if (current.getMaxDuration() >= usedTime) {
|
||||||
score = calculateScore(current, usedTime, point, isFloat);
|
score = calculateScore(current, usedTime, point, isFloat);
|
||||||
}else{
|
} else {
|
||||||
return new TrainingResultVO(false, BusinessConsts.Exam.QuestionCause.OVERTIME);
|
return new TrainingResultVO(false, BusinessConsts.Exam.QuestionCause.OVERTIME);
|
||||||
}
|
}
|
||||||
if(score == point ){
|
if (score == point) {
|
||||||
return new TrainingResultVO(true, score, BusinessConsts.Exam.QuestionCause.PERFECT);
|
return new TrainingResultVO(true, score, BusinessConsts.Exam.QuestionCause.PERFECT);
|
||||||
}
|
}
|
||||||
return new TrainingResultVO(true, score, BusinessConsts.Exam.QuestionCause.CORRECT);
|
return new TrainingResultVO(true, score, BusinessConsts.Exam.QuestionCause.CORRECT);
|
||||||
@ -431,7 +434,7 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void batchSaveAutoGenerateTrainings(List<TrainingNewVO> trainingVOList) {
|
public void batchSaveAutoGenerateTrainings(List<TrainingNewVO> trainingVOList) {
|
||||||
if(!CollectionUtils.isEmpty(trainingVOList)) {
|
if (!CollectionUtils.isEmpty(trainingVOList)) {
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
Long userId = UserVO.system().getId();
|
Long userId = UserVO.system().getId();
|
||||||
List<TrainingWithBLOBs> list = new ArrayList<>();
|
List<TrainingWithBLOBs> list = new ArrayList<>();
|
||||||
@ -444,12 +447,12 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
training.setScenes(JsonUtils.writeValueAsString(trainingVO.getScenes()));
|
training.setScenes(JsonUtils.writeValueAsString(trainingVO.getScenes()));
|
||||||
list.add(training);
|
list.add(training);
|
||||||
//防止数据包溢出
|
//防止数据包溢出
|
||||||
if(list.size()>5){
|
if (list.size() > 5) {
|
||||||
trainingDAO.batchInsert(list);
|
trainingDAO.batchInsert(list);
|
||||||
list.clear();
|
list.clear();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if(list.size()>0){
|
if (list.size() > 0) {
|
||||||
trainingDAO.batchInsert(list);
|
trainingDAO.batchInsert(list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -485,19 +488,20 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteAutoGenerateTrainingBy(Long mapId) {
|
public void deleteAutoGenerateTrainingBy(Long mapId) {
|
||||||
TrainingExample example = new TrainingExample();
|
TrainingExample example = new TrainingExample();
|
||||||
example.createCriteria().andMapIdEqualTo(mapId);
|
example.createCriteria().andMapIdEqualTo(mapId);
|
||||||
List<Long> ids = this.trainingDAO.selectIdsByExample(example);
|
List<Long> ids = this.trainingDAO.selectIdsByExample(example);
|
||||||
this.batchDeleteTrainingAndReferenceData(ids);
|
this.batchDeleteTrainingAndReferenceData(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除实训
|
* 批量删除实训
|
||||||
|
*
|
||||||
* @param ids
|
* @param ids
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
public void batchDeleteTrainingAndReferenceData(List<Long> ids) {
|
public void batchDeleteTrainingAndReferenceData(List<Long> ids) {
|
||||||
if(!CollectionUtils.isEmpty(ids)) {
|
if (!CollectionUtils.isEmpty(ids)) {
|
||||||
// 删除实训=章节关系
|
// 删除实训=章节关系
|
||||||
this.iLessonDraftService.deleteChapterRelByTrainingIdList(ids);
|
this.iLessonDraftService.deleteChapterRelByTrainingIdList(ids);
|
||||||
this.iLessonService.deleteChapterRelByTrainingIdList(ids);
|
this.iLessonService.deleteChapterRelByTrainingIdList(ids);
|
||||||
@ -519,17 +523,17 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
Integer maxDuration = config.getMaxDuration();
|
Integer maxDuration = config.getMaxDuration();
|
||||||
String remarks = config.getRemarks();
|
String remarks = config.getRemarks();
|
||||||
TrainingWithBLOBs update = new TrainingWithBLOBs();
|
TrainingWithBLOBs update = new TrainingWithBLOBs();
|
||||||
if((Objects.nonNull(minDuration)
|
if ((Objects.nonNull(minDuration)
|
||||||
|| Objects.nonNull(maxDuration)
|
|| Objects.nonNull(maxDuration)
|
||||||
|| StringUtils.hasText(remarks))
|
|| StringUtils.hasText(remarks))
|
||||||
&& !CollectionUtils.isEmpty(config.getOperateType())) {
|
&& !CollectionUtils.isEmpty(config.getOperateType())) {
|
||||||
if(Objects.nonNull(minDuration)) {
|
if (Objects.nonNull(minDuration)) {
|
||||||
update.setMinDuration(minDuration);
|
update.setMinDuration(minDuration);
|
||||||
}
|
}
|
||||||
if(Objects.nonNull(maxDuration)) {
|
if (Objects.nonNull(maxDuration)) {
|
||||||
update.setMaxDuration(maxDuration);
|
update.setMaxDuration(maxDuration);
|
||||||
}
|
}
|
||||||
if(StringUtils.hasText(remarks)) {
|
if (StringUtils.hasText(remarks)) {
|
||||||
update.setRemarks(remarks);
|
update.setRemarks(remarks);
|
||||||
}
|
}
|
||||||
config.getOperateType().forEach(operateType -> {
|
config.getOperateType().forEach(operateType -> {
|
||||||
@ -567,7 +571,7 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
.andMapIdEqualTo(sourceMapId);
|
.andMapIdEqualTo(sourceMapId);
|
||||||
List<TrainingWithBLOBs> trainings = this.trainingDAO.selectByExampleWithBLOBs(example);
|
List<TrainingWithBLOBs> trainings = this.trainingDAO.selectByExampleWithBLOBs(example);
|
||||||
Map<Long, Long> relMap = new HashMap<>();
|
Map<Long, Long> relMap = new HashMap<>();
|
||||||
if(!CollectionUtils.isEmpty(trainings)) {
|
if (!CollectionUtils.isEmpty(trainings)) {
|
||||||
trainings.forEach(training -> {
|
trainings.forEach(training -> {
|
||||||
Long oldId = training.getId();
|
Long oldId = training.getId();
|
||||||
training.setId(null);
|
training.setId(null);
|
||||||
@ -582,6 +586,7 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除实训-关联删除
|
* 删除实训-关联删除
|
||||||
|
*
|
||||||
* @param training
|
* @param training
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
@ -603,6 +608,7 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据实训id删除用户实训记录
|
* 根据实训id删除用户实训记录
|
||||||
|
*
|
||||||
* @param trainingId
|
* @param trainingId
|
||||||
*/
|
*/
|
||||||
private void deleteUserTrainingRecordByTrainingId(Long trainingId) {
|
private void deleteUserTrainingRecordByTrainingId(Long trainingId) {
|
||||||
@ -613,6 +619,7 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据实训id列表删除用户实训记录
|
* 根据实训id列表删除用户实训记录
|
||||||
|
*
|
||||||
* @param trainingIdList
|
* @param trainingIdList
|
||||||
*/
|
*/
|
||||||
private void deleteUserTrainingRecordByTrainingIds(List<Long> trainingIdList) {
|
private void deleteUserTrainingRecordByTrainingIds(List<Long> trainingIdList) {
|
||||||
@ -624,39 +631,39 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
@Override
|
@Override
|
||||||
public PageVO<TrainingNewVO> pagedQueryTrainings(TrainingQueryVO trainingQueryVO) {
|
public PageVO<TrainingNewVO> pagedQueryTrainings(TrainingQueryVO trainingQueryVO) {
|
||||||
MapInfo mapInfo = null;
|
MapInfo mapInfo = null;
|
||||||
if (!ObjectUtils.isEmpty(trainingQueryVO.getMapId())){
|
if (!ObjectUtils.isEmpty(trainingQueryVO.getMapId())) {
|
||||||
mapInfo = mapInfoDAO.selectByPrimaryKey(trainingQueryVO.getMapId());
|
mapInfo = mapInfoDAO.selectByPrimaryKey(trainingQueryVO.getMapId());
|
||||||
}
|
}
|
||||||
PageHelper.startPage(trainingQueryVO.getPageNum(), trainingQueryVO.getPageSize());
|
PageHelper.startPage(trainingQueryVO.getPageNum(), trainingQueryVO.getPageSize());
|
||||||
TrainingExample example = new TrainingExample();
|
TrainingExample example = new TrainingExample();
|
||||||
example.setOrderByClause("id desc");
|
example.setOrderByClause("id desc");
|
||||||
TrainingExample.Criteria criteria = example.createCriteria();
|
TrainingExample.Criteria criteria = example.createCriteria();
|
||||||
if(StringUtils.hasText(trainingQueryVO.getName())) {
|
if (StringUtils.hasText(trainingQueryVO.getName())) {
|
||||||
criteria.andNameLike(String.format("%%%s%%", trainingQueryVO.getName()));
|
criteria.andNameLike(String.format("%%%s%%", trainingQueryVO.getName()));
|
||||||
}
|
}
|
||||||
if(StringUtils.hasText(trainingQueryVO.getGenerateType())) {
|
if (StringUtils.hasText(trainingQueryVO.getGenerateType())) {
|
||||||
if(BusinessConsts.Training.GenerateType.GenerateType01.equals(trainingQueryVO.getGenerateType())) {
|
if (BusinessConsts.Training.GenerateType.GenerateType01.equals(trainingQueryVO.getGenerateType())) {
|
||||||
criteria.andAuthorIdEqualTo(UserVO.system().getId());
|
criteria.andAuthorIdEqualTo(UserVO.system().getId());
|
||||||
}else if(BusinessConsts.Training.GenerateType.GenerateType02.equals(trainingQueryVO.getGenerateType())) {
|
} else if (BusinessConsts.Training.GenerateType.GenerateType02.equals(trainingQueryVO.getGenerateType())) {
|
||||||
criteria.andAuthorIdNotEqualTo(UserVO.system().getId());
|
criteria.andAuthorIdNotEqualTo(UserVO.system().getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if(StringUtils.hasText(trainingQueryVO.getSkinCode())) {
|
// if(StringUtils.hasText(trainingQueryVO.getSkinCode())) {
|
||||||
// criteria.andSkinCodeEqualTo(trainingQueryVO.getSkinCode());
|
// criteria.andSkinCodeEqualTo(trainingQueryVO.getSkinCode());
|
||||||
// }
|
// }
|
||||||
if (!ObjectUtils.isEmpty(mapInfo)){
|
if (!ObjectUtils.isEmpty(mapInfo)) {
|
||||||
criteria.andMapIdEqualTo(mapInfo.getId());
|
criteria.andMapIdEqualTo(mapInfo.getId());
|
||||||
}
|
}
|
||||||
if(StringUtils.hasText(trainingQueryVO.getPrdType())) {
|
if (StringUtils.hasText(trainingQueryVO.getPrdType())) {
|
||||||
criteria.andPrdTypeEqualTo(trainingQueryVO.getPrdType());
|
criteria.andPrdTypeEqualTo(trainingQueryVO.getPrdType());
|
||||||
}
|
}
|
||||||
if(StringUtils.hasText(trainingQueryVO.getType())) {
|
if (StringUtils.hasText(trainingQueryVO.getType())) {
|
||||||
criteria.andTypeEqualTo(trainingQueryVO.getType());
|
criteria.andTypeEqualTo(trainingQueryVO.getType());
|
||||||
}
|
}
|
||||||
if(StringUtils.hasText(trainingQueryVO.getOperateType())) {
|
if (StringUtils.hasText(trainingQueryVO.getOperateType())) {
|
||||||
criteria.andOperateTypeEqualTo(trainingQueryVO.getOperateType());
|
criteria.andOperateTypeEqualTo(trainingQueryVO.getOperateType());
|
||||||
}
|
}
|
||||||
if(StringUtils.hasText(trainingQueryVO.getStatus())) {
|
if (StringUtils.hasText(trainingQueryVO.getStatus())) {
|
||||||
criteria.andStatusEqualTo(trainingQueryVO.getStatus());
|
criteria.andStatusEqualTo(trainingQueryVO.getStatus());
|
||||||
}
|
}
|
||||||
Page<Training> trainings = (Page<Training>) this.trainingDAO.selectByExample(example);
|
Page<Training> trainings = (Page<Training>) this.trainingDAO.selectByExample(example);
|
||||||
@ -690,9 +697,12 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Training> findEntities(@NonNull Long mapId, @NonNull String prdType) {
|
public List<Training> findEntities(@NonNull Long mapId, String prdType) {
|
||||||
TrainingExample example = new TrainingExample();
|
TrainingExample example = new TrainingExample();
|
||||||
example.createCriteria().andMapIdEqualTo(mapId).andPrdTypeEqualTo(prdType);
|
TrainingExample.Criteria criteria = example.createCriteria().andMapIdEqualTo(mapId);
|
||||||
|
if (StringUtils.hasText(prdType)) {
|
||||||
|
criteria.andPrdTypeEqualTo(prdType);
|
||||||
|
}
|
||||||
return trainingDAO.selectByExample(example);
|
return trainingDAO.selectByExample(example);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -702,4 +712,13 @@ public class TrainingV1Service implements ITrainingV1Service {
|
|||||||
example.createCriteria().andMapIdEqualTo(mapId);
|
example.createCriteria().andMapIdEqualTo(mapId);
|
||||||
return trainingDAO.selectByExample(example);
|
return trainingDAO.selectByExample(example);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Map<String, Long>> queryTrainingTypeAndQuantity(Long mapId, String prdType) {
|
||||||
|
List<Training> trainings = findEntities(mapId, prdType);
|
||||||
|
return trainings.stream().collect(
|
||||||
|
Collectors.groupingBy(Training::getType,
|
||||||
|
Collectors.groupingBy(Training::getOperateType,
|
||||||
|
Collectors.counting())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import club.joylink.rtss.entity.SysUser;
|
|||||||
import club.joylink.rtss.vo.client.org.DepartmentVO;
|
import club.joylink.rtss.vo.client.org.DepartmentVO;
|
||||||
import club.joylink.rtss.vo.client.validGroup.ExamDefinitionCheck;
|
import club.joylink.rtss.vo.client.validGroup.ExamDefinitionCheck;
|
||||||
import club.joylink.rtss.vo.client.validGroup.ExamDefinitionRulesCheck;
|
import club.joylink.rtss.vo.client.validGroup.ExamDefinitionRulesCheck;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
@ -13,13 +12,13 @@ import io.swagger.annotations.ApiModel;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
import springfox.documentation.annotations.ApiIgnore;
|
import springfox.documentation.annotations.ApiIgnore;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.Min;
|
import javax.validation.constraints.Min;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.groups.Default;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -34,41 +33,39 @@ public class ExamDefinitionVO {
|
|||||||
/**
|
/**
|
||||||
* 所属课程ID
|
* 所属课程ID
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "课程ID不能为空", groups = {ExamDefinitionCheck.class})
|
|
||||||
private Long lessonId;
|
private Long lessonId;
|
||||||
|
|
||||||
private String lessonName;
|
private String lessonName;
|
||||||
|
|
||||||
|
@NotNull(message = "地图id不能为空")
|
||||||
|
private Long mapId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考试名称
|
* 考试名称
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "考试名称不能为空", groups = {ExamDefinitionCheck.class})
|
@NotBlank(message = "考试名称不能为空", groups = {Default.class, ExamDefinitionCheck.class})
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考试类型:数据字典值
|
* 考试类型:数据字典值
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "考试类型不能为空")
|
@NotBlank(message = "考试类型不能为空")
|
||||||
private String type;
|
private String prdType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考试时长:单位s
|
* 考试时长:单位s
|
||||||
*/
|
*/
|
||||||
@Min(value = 1, groups = {ExamDefinitionCheck.class})
|
@Min(value = 1, groups = {Default.class, ExamDefinitionCheck.class})
|
||||||
private Integer duration;
|
private Integer duration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考试开始时间
|
* 考试开始时间
|
||||||
*/
|
*/
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
private LocalDateTime startTime;
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考试结束时间
|
* 考试结束时间
|
||||||
*/
|
*/
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
private LocalDateTime endTime;
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -140,8 +137,9 @@ public class ExamDefinitionVO {
|
|||||||
public ExamDefinitionVO(ExamDefinition examDefinition) {
|
public ExamDefinitionVO(ExamDefinition examDefinition) {
|
||||||
this.id = examDefinition.getId();
|
this.id = examDefinition.getId();
|
||||||
this.lessonId = examDefinition.getLessonId();
|
this.lessonId = examDefinition.getLessonId();
|
||||||
|
this.mapId = examDefinition.getMapId();
|
||||||
this.name = examDefinition.getName();
|
this.name = examDefinition.getName();
|
||||||
this.type = examDefinition.getType();
|
this.prdType = examDefinition.getType();
|
||||||
this.duration = examDefinition.getDuration();
|
this.duration = examDefinition.getDuration();
|
||||||
this.startTime = examDefinition.getStartTime();
|
this.startTime = examDefinition.getStartTime();
|
||||||
this.endTime = examDefinition.getEndTime();
|
this.endTime = examDefinition.getEndTime();
|
||||||
@ -163,17 +161,15 @@ public class ExamDefinitionVO {
|
|||||||
public ExamDefinition toDB() {
|
public ExamDefinition toDB() {
|
||||||
ExamDefinition definition = new ExamDefinition();
|
ExamDefinition definition = new ExamDefinition();
|
||||||
definition.setLessonId(this.getLessonId());
|
definition.setLessonId(this.getLessonId());
|
||||||
|
definition.setMapId(this.mapId);
|
||||||
definition.setName(this.getName());
|
definition.setName(this.getName());
|
||||||
definition.setType(this.getType());
|
definition.setType(this.getPrdType());
|
||||||
definition.setDuration(this.getDuration());
|
definition.setDuration(this.getDuration());
|
||||||
definition.setStartTime(this.getStartTime());
|
definition.setStartTime(this.getStartTime());
|
||||||
definition.setEndTime(this.getEndTime());
|
definition.setEndTime(this.getEndTime());
|
||||||
definition.setFullPoint(this.getFullPoint());
|
definition.setFullPoint(this.getFullPoint());
|
||||||
definition.setPassingPoint(this.getPassingPoint());
|
definition.setPassingPoint(this.getPassingPoint());
|
||||||
definition.setCreatorId(this.getCreatorId());
|
|
||||||
definition.setCreateTime(this.getCreateTime());
|
|
||||||
definition.setRemarks(this.getRemarks());
|
definition.setRemarks(this.getRemarks());
|
||||||
definition.setStatus(this.getStatus());
|
|
||||||
return definition;
|
return definition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -131,7 +132,7 @@ public class MapVO {
|
|||||||
if (!CollectionUtils.isEmpty(list)) {
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
return list.stream().map(MapVO::new).collect(Collectors.toList());
|
return list.stream().map(MapVO::new).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,9 +74,11 @@ public class DepartmentVO {
|
|||||||
|
|
||||||
public DepartmentVO(Org entity, Integer numberOfPeople, SysUser creator) {
|
public DepartmentVO(Org entity, Integer numberOfPeople, SysUser creator) {
|
||||||
this(entity, numberOfPeople);
|
this(entity, numberOfPeople);
|
||||||
this.creatorId = creator.getId();
|
if (creator != null) {
|
||||||
this.creatorName = creator.getName();
|
this.creatorId = creator.getId();
|
||||||
this.creatorNickName = creator.getNickname();
|
this.creatorName = creator.getName();
|
||||||
|
this.creatorNickName = creator.getNickname();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<DepartmentVO> convert2VOList(List<Org> dataList) {
|
public static List<DepartmentVO> convert2VOList(List<Org> dataList) {
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
<mapper namespace="club.joylink.rtss.dao.ExamDefinitionDAO">
|
<mapper namespace="club.joylink.rtss.dao.ExamDefinitionDAO">
|
||||||
<resultMap id="BaseResultMap" type="club.joylink.rtss.entity.ExamDefinition">
|
<resultMap id="BaseResultMap" type="club.joylink.rtss.entity.ExamDefinition">
|
||||||
<id column="id" jdbcType="BIGINT" property="id" />
|
<id column="id" jdbcType="BIGINT" property="id" />
|
||||||
|
<result column="map_id" jdbcType="BIGINT" property="mapId" />
|
||||||
<result column="lesson_id" jdbcType="BIGINT" property="lessonId" />
|
<result column="lesson_id" jdbcType="BIGINT" property="lessonId" />
|
||||||
<result column="name" jdbcType="VARCHAR" property="name" />
|
<result column="name" jdbcType="VARCHAR" property="name" />
|
||||||
<result column="type" jdbcType="VARCHAR" property="type" />
|
<result column="type" jdbcType="VARCHAR" property="type" />
|
||||||
@ -15,7 +16,7 @@
|
|||||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||||
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
|
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
|
||||||
<result column="status" jdbcType="VARCHAR" property="status" />
|
<result column="status" jdbcType="VARCHAR" property="status" />
|
||||||
<result column="trial" jdbcType="BIT" property="trial" />
|
<result column="trial" jdbcType="TINYINT" property="trial" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Example_Where_Clause">
|
<sql id="Example_Where_Clause">
|
||||||
<where>
|
<where>
|
||||||
@ -76,8 +77,8 @@
|
|||||||
</where>
|
</where>
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id, lesson_id, `name`, `type`, duration, start_time, end_time, full_point, passing_point,
|
id, map_id, lesson_id, `name`, `type`, duration, start_time, end_time, full_point,
|
||||||
creator_id, create_time, remarks, `status`, trial
|
passing_point, creator_id, create_time, remarks, `status`, trial
|
||||||
</sql>
|
</sql>
|
||||||
<select id="selectByExample" parameterType="club.joylink.rtss.entity.ExamDefinitionExample" resultMap="BaseResultMap">
|
<select id="selectByExample" parameterType="club.joylink.rtss.entity.ExamDefinitionExample" resultMap="BaseResultMap">
|
||||||
select
|
select
|
||||||
@ -118,20 +119,23 @@
|
|||||||
</if>
|
</if>
|
||||||
</delete>
|
</delete>
|
||||||
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="club.joylink.rtss.entity.ExamDefinition" useGeneratedKeys="true">
|
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="club.joylink.rtss.entity.ExamDefinition" useGeneratedKeys="true">
|
||||||
insert into exam_definition (lesson_id, `name`, `type`,
|
insert into exam_definition (map_id, lesson_id, `name`,
|
||||||
duration, start_time, end_time,
|
`type`, duration, start_time,
|
||||||
full_point, passing_point, creator_id,
|
end_time, full_point, passing_point,
|
||||||
create_time, remarks, `status`,
|
creator_id, create_time, remarks,
|
||||||
trial)
|
`status`, trial)
|
||||||
values (#{lessonId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR},
|
values (#{mapId,jdbcType=BIGINT}, #{lessonId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
|
||||||
#{duration,jdbcType=INTEGER}, #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP},
|
#{type,jdbcType=VARCHAR}, #{duration,jdbcType=INTEGER}, #{startTime,jdbcType=TIMESTAMP},
|
||||||
#{fullPoint,jdbcType=INTEGER}, #{passingPoint,jdbcType=INTEGER}, #{creatorId,jdbcType=BIGINT},
|
#{endTime,jdbcType=TIMESTAMP}, #{fullPoint,jdbcType=INTEGER}, #{passingPoint,jdbcType=INTEGER},
|
||||||
#{createTime,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},
|
#{creatorId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR},
|
||||||
#{trial,jdbcType=BIT})
|
#{status,jdbcType=VARCHAR}, #{trial,jdbcType=TINYINT})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="club.joylink.rtss.entity.ExamDefinition" useGeneratedKeys="true">
|
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="club.joylink.rtss.entity.ExamDefinition" useGeneratedKeys="true">
|
||||||
insert into exam_definition
|
insert into exam_definition
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="mapId != null">
|
||||||
|
map_id,
|
||||||
|
</if>
|
||||||
<if test="lessonId != null">
|
<if test="lessonId != null">
|
||||||
lesson_id,
|
lesson_id,
|
||||||
</if>
|
</if>
|
||||||
@ -173,6 +177,9 @@
|
|||||||
</if>
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="mapId != null">
|
||||||
|
#{mapId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
<if test="lessonId != null">
|
<if test="lessonId != null">
|
||||||
#{lessonId,jdbcType=BIGINT},
|
#{lessonId,jdbcType=BIGINT},
|
||||||
</if>
|
</if>
|
||||||
@ -210,7 +217,7 @@
|
|||||||
#{status,jdbcType=VARCHAR},
|
#{status,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="trial != null">
|
<if test="trial != null">
|
||||||
#{trial,jdbcType=BIT},
|
#{trial,jdbcType=TINYINT},
|
||||||
</if>
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
@ -226,6 +233,9 @@
|
|||||||
<if test="record.id != null">
|
<if test="record.id != null">
|
||||||
id = #{record.id,jdbcType=BIGINT},
|
id = #{record.id,jdbcType=BIGINT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="record.mapId != null">
|
||||||
|
map_id = #{record.mapId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
<if test="record.lessonId != null">
|
<if test="record.lessonId != null">
|
||||||
lesson_id = #{record.lessonId,jdbcType=BIGINT},
|
lesson_id = #{record.lessonId,jdbcType=BIGINT},
|
||||||
</if>
|
</if>
|
||||||
@ -263,7 +273,7 @@
|
|||||||
`status` = #{record.status,jdbcType=VARCHAR},
|
`status` = #{record.status,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="record.trial != null">
|
<if test="record.trial != null">
|
||||||
trial = #{record.trial,jdbcType=BIT},
|
trial = #{record.trial,jdbcType=TINYINT},
|
||||||
</if>
|
</if>
|
||||||
</set>
|
</set>
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
@ -273,6 +283,7 @@
|
|||||||
<update id="updateByExample" parameterType="map">
|
<update id="updateByExample" parameterType="map">
|
||||||
update exam_definition
|
update exam_definition
|
||||||
set id = #{record.id,jdbcType=BIGINT},
|
set id = #{record.id,jdbcType=BIGINT},
|
||||||
|
map_id = #{record.mapId,jdbcType=BIGINT},
|
||||||
lesson_id = #{record.lessonId,jdbcType=BIGINT},
|
lesson_id = #{record.lessonId,jdbcType=BIGINT},
|
||||||
`name` = #{record.name,jdbcType=VARCHAR},
|
`name` = #{record.name,jdbcType=VARCHAR},
|
||||||
`type` = #{record.type,jdbcType=VARCHAR},
|
`type` = #{record.type,jdbcType=VARCHAR},
|
||||||
@ -285,7 +296,7 @@
|
|||||||
create_time = #{record.createTime,jdbcType=TIMESTAMP},
|
create_time = #{record.createTime,jdbcType=TIMESTAMP},
|
||||||
remarks = #{record.remarks,jdbcType=VARCHAR},
|
remarks = #{record.remarks,jdbcType=VARCHAR},
|
||||||
`status` = #{record.status,jdbcType=VARCHAR},
|
`status` = #{record.status,jdbcType=VARCHAR},
|
||||||
trial = #{record.trial,jdbcType=BIT}
|
trial = #{record.trial,jdbcType=TINYINT}
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
@ -293,6 +304,9 @@
|
|||||||
<update id="updateByPrimaryKeySelective" parameterType="club.joylink.rtss.entity.ExamDefinition">
|
<update id="updateByPrimaryKeySelective" parameterType="club.joylink.rtss.entity.ExamDefinition">
|
||||||
update exam_definition
|
update exam_definition
|
||||||
<set>
|
<set>
|
||||||
|
<if test="mapId != null">
|
||||||
|
map_id = #{mapId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
<if test="lessonId != null">
|
<if test="lessonId != null">
|
||||||
lesson_id = #{lessonId,jdbcType=BIGINT},
|
lesson_id = #{lessonId,jdbcType=BIGINT},
|
||||||
</if>
|
</if>
|
||||||
@ -330,14 +344,15 @@
|
|||||||
`status` = #{status,jdbcType=VARCHAR},
|
`status` = #{status,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="trial != null">
|
<if test="trial != null">
|
||||||
trial = #{trial,jdbcType=BIT},
|
trial = #{trial,jdbcType=TINYINT},
|
||||||
</if>
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where id = #{id,jdbcType=BIGINT}
|
where id = #{id,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
<update id="updateByPrimaryKey" parameterType="club.joylink.rtss.entity.ExamDefinition">
|
<update id="updateByPrimaryKey" parameterType="club.joylink.rtss.entity.ExamDefinition">
|
||||||
update exam_definition
|
update exam_definition
|
||||||
set lesson_id = #{lessonId,jdbcType=BIGINT},
|
set map_id = #{mapId,jdbcType=BIGINT},
|
||||||
|
lesson_id = #{lessonId,jdbcType=BIGINT},
|
||||||
`name` = #{name,jdbcType=VARCHAR},
|
`name` = #{name,jdbcType=VARCHAR},
|
||||||
`type` = #{type,jdbcType=VARCHAR},
|
`type` = #{type,jdbcType=VARCHAR},
|
||||||
duration = #{duration,jdbcType=INTEGER},
|
duration = #{duration,jdbcType=INTEGER},
|
||||||
@ -349,7 +364,7 @@
|
|||||||
create_time = #{createTime,jdbcType=TIMESTAMP},
|
create_time = #{createTime,jdbcType=TIMESTAMP},
|
||||||
remarks = #{remarks,jdbcType=VARCHAR},
|
remarks = #{remarks,jdbcType=VARCHAR},
|
||||||
`status` = #{status,jdbcType=VARCHAR},
|
`status` = #{status,jdbcType=VARCHAR},
|
||||||
trial = #{trial,jdbcType=BIT}
|
trial = #{trial,jdbcType=TINYINT}
|
||||||
where id = #{id,jdbcType=BIGINT}
|
where id = #{id,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
</mapper>
|
</mapper>
|
@ -2,8 +2,11 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="club.joylink.rtss.dao.OrgExamDAO">
|
<mapper namespace="club.joylink.rtss.dao.OrgExamDAO">
|
||||||
<resultMap id="BaseResultMap" type="club.joylink.rtss.entity.OrgExam">
|
<resultMap id="BaseResultMap" type="club.joylink.rtss.entity.OrgExam">
|
||||||
|
<id column="id" jdbcType="BIGINT" property="id" />
|
||||||
<result column="exam_id" jdbcType="BIGINT" property="examId" />
|
<result column="exam_id" jdbcType="BIGINT" property="examId" />
|
||||||
<result column="org_id" jdbcType="INTEGER" property="orgId" />
|
<result column="org_id" jdbcType="BIGINT" property="orgId" />
|
||||||
|
<result column="creator_id" jdbcType="BIGINT" property="creatorId" />
|
||||||
|
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Example_Where_Clause">
|
<sql id="Example_Where_Clause">
|
||||||
<where>
|
<where>
|
||||||
@ -64,7 +67,7 @@
|
|||||||
</where>
|
</where>
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
exam_id, org_id
|
id, exam_id, org_id, creator_id, create_time
|
||||||
</sql>
|
</sql>
|
||||||
<select id="selectByExample" parameterType="club.joylink.rtss.entity.OrgExamExample" resultMap="BaseResultMap">
|
<select id="selectByExample" parameterType="club.joylink.rtss.entity.OrgExamExample" resultMap="BaseResultMap">
|
||||||
select
|
select
|
||||||
@ -88,17 +91,29 @@
|
|||||||
</if>
|
</if>
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
|
||||||
|
select
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
from org_exam
|
||||||
|
where id = #{id,jdbcType=BIGINT}
|
||||||
|
</select>
|
||||||
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
||||||
|
delete from org_exam
|
||||||
|
where id = #{id,jdbcType=BIGINT}
|
||||||
|
</delete>
|
||||||
<delete id="deleteByExample" parameterType="club.joylink.rtss.entity.OrgExamExample">
|
<delete id="deleteByExample" parameterType="club.joylink.rtss.entity.OrgExamExample">
|
||||||
delete from org_exam
|
delete from org_exam
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Example_Where_Clause" />
|
<include refid="Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
</delete>
|
</delete>
|
||||||
<insert id="insert" parameterType="club.joylink.rtss.entity.OrgExam">
|
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="club.joylink.rtss.entity.OrgExam" useGeneratedKeys="true">
|
||||||
insert into org_exam (exam_id, org_id)
|
insert into org_exam (exam_id, org_id, creator_id,
|
||||||
values (#{examId,jdbcType=BIGINT}, #{orgId,jdbcType=INTEGER})
|
create_time)
|
||||||
|
values (#{examId,jdbcType=BIGINT}, #{orgId,jdbcType=BIGINT}, #{creatorId,jdbcType=BIGINT},
|
||||||
|
#{createTime,jdbcType=TIMESTAMP})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" parameterType="club.joylink.rtss.entity.OrgExam">
|
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="club.joylink.rtss.entity.OrgExam" useGeneratedKeys="true">
|
||||||
insert into org_exam
|
insert into org_exam
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="examId != null">
|
<if test="examId != null">
|
||||||
@ -107,13 +122,25 @@
|
|||||||
<if test="orgId != null">
|
<if test="orgId != null">
|
||||||
org_id,
|
org_id,
|
||||||
</if>
|
</if>
|
||||||
|
<if test="creatorId != null">
|
||||||
|
creator_id,
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null">
|
||||||
|
create_time,
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="examId != null">
|
<if test="examId != null">
|
||||||
#{examId,jdbcType=BIGINT},
|
#{examId,jdbcType=BIGINT},
|
||||||
</if>
|
</if>
|
||||||
<if test="orgId != null">
|
<if test="orgId != null">
|
||||||
#{orgId,jdbcType=INTEGER},
|
#{orgId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="creatorId != null">
|
||||||
|
#{creatorId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null">
|
||||||
|
#{createTime,jdbcType=TIMESTAMP},
|
||||||
</if>
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
@ -126,11 +153,20 @@
|
|||||||
<update id="updateByExampleSelective" parameterType="map">
|
<update id="updateByExampleSelective" parameterType="map">
|
||||||
update org_exam
|
update org_exam
|
||||||
<set>
|
<set>
|
||||||
|
<if test="record.id != null">
|
||||||
|
id = #{record.id,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
<if test="record.examId != null">
|
<if test="record.examId != null">
|
||||||
exam_id = #{record.examId,jdbcType=BIGINT},
|
exam_id = #{record.examId,jdbcType=BIGINT},
|
||||||
</if>
|
</if>
|
||||||
<if test="record.orgId != null">
|
<if test="record.orgId != null">
|
||||||
org_id = #{record.orgId,jdbcType=INTEGER},
|
org_id = #{record.orgId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="record.creatorId != null">
|
||||||
|
creator_id = #{record.creatorId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="record.createTime != null">
|
||||||
|
create_time = #{record.createTime,jdbcType=TIMESTAMP},
|
||||||
</if>
|
</if>
|
||||||
</set>
|
</set>
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
@ -139,10 +175,39 @@
|
|||||||
</update>
|
</update>
|
||||||
<update id="updateByExample" parameterType="map">
|
<update id="updateByExample" parameterType="map">
|
||||||
update org_exam
|
update org_exam
|
||||||
set exam_id = #{record.examId,jdbcType=BIGINT},
|
set id = #{record.id,jdbcType=BIGINT},
|
||||||
org_id = #{record.orgId,jdbcType=INTEGER}
|
exam_id = #{record.examId,jdbcType=BIGINT},
|
||||||
|
org_id = #{record.orgId,jdbcType=BIGINT},
|
||||||
|
creator_id = #{record.creatorId,jdbcType=BIGINT},
|
||||||
|
create_time = #{record.createTime,jdbcType=TIMESTAMP}
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
<update id="updateByPrimaryKeySelective" parameterType="club.joylink.rtss.entity.OrgExam">
|
||||||
|
update org_exam
|
||||||
|
<set>
|
||||||
|
<if test="examId != null">
|
||||||
|
exam_id = #{examId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="orgId != null">
|
||||||
|
org_id = #{orgId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="creatorId != null">
|
||||||
|
creator_id = #{creatorId,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null">
|
||||||
|
create_time = #{createTime,jdbcType=TIMESTAMP},
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
where id = #{id,jdbcType=BIGINT}
|
||||||
|
</update>
|
||||||
|
<update id="updateByPrimaryKey" parameterType="club.joylink.rtss.entity.OrgExam">
|
||||||
|
update org_exam
|
||||||
|
set exam_id = #{examId,jdbcType=BIGINT},
|
||||||
|
org_id = #{orgId,jdbcType=BIGINT},
|
||||||
|
creator_id = #{creatorId,jdbcType=BIGINT},
|
||||||
|
create_time = #{createTime,jdbcType=TIMESTAMP}
|
||||||
|
where id = #{id,jdbcType=BIGINT}
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
Loading…
Reference in New Issue
Block a user