Merge remote-tracking branch 'origin/master'
# Conflicts:
# src/main/java/com/ycl/jxkg/enums/VisibilityEnum.java
# src/main/resources/application.yml
52个文件已修改
1个文件已添加
9 文件已重命名
| | |
| | | <java.version>1.8</java.version> |
| | | <mysql.version>8.0.17</mysql.version> |
| | | <spring.boot.version>2.1.6.RELEASE</spring.boot.version> |
| | | <mybatisplus.version>3.5.1</mybatisplus.version> |
| | | <mybatisplus.version>3.5.4</mybatisplus.version> |
| | | <lombok.version>1.18.24</lombok.version> |
| | | <knife.version>3.0.3</knife.version> |
| | | </properties> |
| | |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-undertow</artifactId> |
| | | <version>${spring.boot.version}</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>org.mybatis.spring.boot</groupId> |
| | | <artifactId>mybatis-spring-boot-starter</artifactId> |
| | | <version>2.1.0</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | |
| | | } |
| | | |
| | | /** |
| | | * Ok rest response. |
| | | * |
| | | * @return the rest response |
| | | */ |
| | | public static Result ok(String msg) { |
| | | SystemCode systemCode = SystemCode.OK; |
| | | Result restResponse = new Result(); |
| | | restResponse.put("code", systemCode.getCode()); |
| | | restResponse.put("message", msg); |
| | | return restResponse; |
| | | } |
| | | |
| | | /** |
| | | * Gets code. |
| | | * |
| | | * @return the code |
| | |
| | | |
| | | |
| | | import com.ycl.jxkg.context.WebContext; |
| | | import com.ycl.jxkg.domain.enums.RoleEnum; |
| | | import com.ycl.jxkg.domain.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.UserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | package com.ycl.jxkg.config.spring.security; |
| | | |
| | | import com.ycl.jxkg.domain.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.service.UserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.core.GrantedAuthority; |
| | |
| | | |
| | | import com.ycl.jxkg.config.property.CookieConfig; |
| | | import com.ycl.jxkg.config.property.SystemConfig; |
| | | import com.ycl.jxkg.domain.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | |
| | | @RequiredArgsConstructor |
| | | @Api(value = "班级", tags = "班级管理") |
| | | @RestController |
| | | @RequestMapping("/api/classes") |
| | | @RequestMapping("/api/admin/classes") |
| | | public class ClassesController { |
| | | |
| | | private final ClassesService classesService; |
| | |
| | | @RequiredArgsConstructor |
| | | @Api(value = "班级通知", tags = "班级通知管理") |
| | | @RestController |
| | | @RequestMapping("/api/classes-notify") |
| | | @RequestMapping("/api/admin/classes-notify") |
| | | public class ClassesNotifyController { |
| | | |
| | | private final ClassesNotifyService classesNotifyService; |
| | | |
| | | @PostMapping |
| | | @ApiOperation(value = "添加", notes = "添加") |
| | | @PreAuthorize("hasAuthority('classesNotify:add')") |
| | | public Result add(@RequestBody @Validated(Add.class) ClassesNotifyForm form) { |
| | | return classesNotifyService.add(form); |
| | | } |
| | |
| | | package com.ycl.jxkg.controller.admin; |
| | | |
| | | import com.ycl.jxkg.domain.form.EditClassesUserForm; |
| | | import com.ycl.jxkg.group.Update; |
| | | import com.ycl.jxkg.group.Add; |
| | | import org.springframework.validation.annotation.Validated; |
| | |
| | | @RequiredArgsConstructor |
| | | @Api(value = "班级学员", tags = "班级学员") |
| | | @RestController |
| | | @RequestMapping("/api/classes-user") |
| | | @RequestMapping("/api/admin/classesUser") |
| | | public class ClassesUserController { |
| | | |
| | | private final ClassesUserService classesUserService; |
| | |
| | | @PostMapping |
| | | @ApiOperation(value = "添加", notes = "添加") |
| | | @PreAuthorize("hasAuthority('classesUser:add')") |
| | | public Result add(@RequestBody @Validated(Add.class) ClassesUserForm form) { |
| | | public Result add(@RequestBody @Validated(Add.class) EditClassesUserForm form) { |
| | | return classesUserService.add(form); |
| | | } |
| | | |
| | | @PostMapping("/edit") |
| | | @ApiOperation(value = "修改", notes = "修改") |
| | | @PreAuthorize("hasAuthority('classesUser:edit')") |
| | | public Result update(@RequestBody @Validated(Update.class) ClassesUserForm form) { |
| | | return classesUserService.update(form); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation(value = "修改", notes = "修改") |
| | | @PreAuthorize("hasAuthority('classesUser:edit')") |
| | | public Result update(@RequestBody @Validated(Update.class) ClassesUserForm form) { |
| | | return classesUserService.update(form); |
| | | public Result edit(@RequestBody @Validated(Update.class) EditClassesUserForm form) { |
| | | return classesUserService.edit(form); |
| | | } |
| | | |
| | | @DeleteMapping("/{id}") |
| | |
| | | package com.ycl.jxkg.controller.admin; |
| | | |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.base.BaseApiController; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.domain.entity.ExamPaperAnswer; |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.service.*; |
| | | import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; |
| | | import com.ycl.jxkg.service.ExamPaperAnswerService; |
| | | import com.ycl.jxkg.service.SubjectService; |
| | | import com.ycl.jxkg.service.UserService; |
| | | import com.ycl.jxkg.utils.DateTimeUtil; |
| | | import com.ycl.jxkg.utils.ExamUtil; |
| | | import com.ycl.jxkg.utils.PageInfoHelper; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; |
| | | import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; |
| | | import com.github.pagehelper.PageInfo; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | private final SubjectService subjectService; |
| | | private final UserService userService; |
| | | |
| | | @PostMapping("/pageExamPaper") |
| | | public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageExamPaper(@RequestBody ExamPaperAnswerPageRequestVO model) { |
| | | return Result.ok(examPaperAnswerService.pageExamPaper(model)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/page", method = RequestMethod.POST) |
| | | public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageJudgeList(@RequestBody ExamPaperAnswerPageRequestVO model) { |
| | |
| | | import com.ycl.jxkg.base.BaseApiController; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.base.SystemCode; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.domain.question.QuestionObject; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionEditRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO; |
| | | import com.ycl.jxkg.service.QuestionService; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.utils.ErrorUtil; |
| | | import com.ycl.jxkg.utils.HtmlUtil; |
| | | import com.ycl.jxkg.utils.JsonUtil; |
| | |
| | | package com.ycl.jxkg.controller.admin; |
| | | |
| | | |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.base.BaseApiController; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.service.SubjectService; |
| | | import com.ycl.jxkg.utils.PageInfoHelper; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectEditRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectResponseVO; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.service.SubjectService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | |
| | | @RequestMapping(value = "/page", method = RequestMethod.POST) |
| | | public Result<PageInfo<SubjectResponseVO>> pageList(@RequestBody SubjectPageRequestVO model) { |
| | | PageInfo<Subject> pageInfo = subjectService.page(model); |
| | | PageInfo<SubjectResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> { |
| | | SubjectResponseVO vo = new SubjectResponseVO(); |
| | | BeanUtils.copyProperties(e, vo); |
| | | return vo; |
| | | }); |
| | | return Result.ok(page); |
| | | return Result.ok(subjectService.page(model)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/edit", method = RequestMethod.POST) |
| | | public Result edit(@RequestBody @Valid SubjectEditRequestVO model) { |
| | | public Result<String> edit(@RequestBody @Valid SubjectEditRequestVO model) { |
| | | Subject subject = new Subject(); |
| | | BeanUtils.copyProperties(model, subject); |
| | | if (model.getId() == null) { |
| | | subjectService.save(subject); |
| | | subjectService.save(subject.setCreateUser(getCurrentUser().getId())); |
| | | } else { |
| | | subjectService.updateById(subject); |
| | | } |
| | | return Result.ok(); |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) |
| | |
| | | } |
| | | |
| | | @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST) |
| | | public Result delete(@PathVariable Integer id) { |
| | | Subject subject = subjectService.getById(id); |
| | | subjectService.updateById(subject); |
| | | return Result.ok(); |
| | | public Result<Boolean> delete(@PathVariable Integer id) { |
| | | return Result.ok(subjectService.removeById(id)); |
| | | } |
| | | |
| | | @GetMapping(value = "/getItemOrder") |
| | | public Result<Integer> getItemOrder() { |
| | | return Result.ok(subjectService.getItemOrder()); |
| | | } |
| | | |
| | | @PostMapping(value = "/status") |
| | | public Result<String> status(@RequestBody Subject subject) { |
| | | subjectService.updateStatus(subject); |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.ycl.jxkg.base.BaseApiController; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.domain.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.entity.UserEventLog; |
| | | import com.ycl.jxkg.domain.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.domain.vo.StudentVO; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.UserEventLogService; |
| | |
| | | import com.ycl.jxkg.domain.entity.TaskExamCustomerAnswer; |
| | | import com.ycl.jxkg.domain.entity.TextContent; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.domain.task.TaskItemAnswerObject; |
| | | import com.ycl.jxkg.domain.task.TaskItemObject; |
| | | import com.ycl.jxkg.service.*; |
| | |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.entity.UserEventLog; |
| | | import com.ycl.jxkg.domain.enums.ExamPaperAnswerStatusEnum; |
| | | import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum; |
| | | import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent; |
| | | import com.ycl.jxkg.event.UserEvent; |
| | | import com.ycl.jxkg.service.ExamPaperAnswerService; |
| | |
| | | package com.ycl.jxkg.controller.student; |
| | | |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.ycl.jxkg.base.BaseApiController; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.domain.entity.Message; |
| | | import com.ycl.jxkg.domain.entity.MessageUser; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.entity.UserEventLog; |
| | | import com.ycl.jxkg.domain.enums.RoleEnum; |
| | | import com.ycl.jxkg.domain.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.event.UserEvent; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.MessageService; |
| | |
| | | import com.ycl.jxkg.config.property.SystemConfig; |
| | | import com.ycl.jxkg.controller.wx.BaseWXApiController; |
| | | import com.ycl.jxkg.domain.entity.UserToken; |
| | | import com.ycl.jxkg.domain.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.UserService; |
| | | import com.ycl.jxkg.service.UserTokenService; |
| | |
| | | import com.ycl.jxkg.domain.entity.TaskExamCustomerAnswer; |
| | | import com.ycl.jxkg.domain.entity.TextContent; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.domain.task.TaskItemAnswerObject; |
| | | import com.ycl.jxkg.domain.task.TaskItemObject; |
| | | import com.ycl.jxkg.service.ExamPaperService; |
| | |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.entity.UserEventLog; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent; |
| | | import com.ycl.jxkg.event.UserEvent; |
| | | import com.ycl.jxkg.service.ExamPaperAnswerService; |
| | |
| | | import com.ycl.jxkg.domain.entity.MessageUser; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.entity.UserEventLog; |
| | | import com.ycl.jxkg.domain.enums.RoleEnum; |
| | | import com.ycl.jxkg.domain.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.event.UserEvent; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.MessageService; |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | |
| | | import com.ycl.jxkg.domain.base.AbsEntity; |
| | | import com.ycl.jxkg.domain.enums.general.ClassesStatusEnum; |
| | | import com.ycl.jxkg.enums.general.ClassesStatusEnum; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | |
| | | package com.ycl.jxkg.domain.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldFill; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | |
| | | import com.ycl.jxkg.domain.base.AbsEntity; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 班级通知 |
| | |
| | | /** 通知内容 */ |
| | | private String notifyContent; |
| | | |
| | | @TableField(value = "create_time", fill = FieldFill.INSERT) |
| | | private Date createTime; |
| | | |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.ycl.jxkg.domain.base.AbsEntity; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.domain.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.utils.ExamUtil; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.ycl.jxkg.domain.base.AbsEntity; |
| | | import com.ycl.jxkg.enums.general.StatusEnum; |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @TableName("t_subject") |
| | | @Accessors(chain = true) |
| | | public class Subject extends AbsEntity { |
| | | |
| | | /** |
| | |
| | | private Date createTime; |
| | | |
| | | @TableField(value = "status") |
| | | private Integer status; |
| | | private StatusEnum status; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty("班级") |
| | | private Integer classesId; |
| | | |
| | | @NotNull(message = "发出通知者不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("发出通知者") |
| | | private Integer teacherId; |
| | | |
| | |
| | | @ApiModelProperty("通知内容") |
| | | private String notifyContent; |
| | | |
| | | @NotNull(message = "不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("") |
| | | private Date createTime; |
| | | |
| | | public static ClassesNotify getEntityByForm(@NonNull ClassesNotifyForm form, ClassesNotify entity) { |
| | | if(entity == null) { |
| | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 班级与用户关联表表单 |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "ClassesUser表单", description = "班级与用户关联表表单") |
| | | public class ClassesUserForm extends AbsForm { |
| | | public class ClassesUserForm { |
| | | |
| | | @NotNull(message = "不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("") |
| | | private Integer classesId; |
| | | @NotNull(message = "班级不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("班级") |
| | | private Integer id; |
| | | |
| | | @NotNull(message = "不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("") |
| | | private Integer userId; |
| | | |
| | | @NotNull(message = "加入时间不能为空", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("加入时间") |
| | | private Date createTime; |
| | | @ApiModelProperty("学员列表") |
| | | private List<Integer> studentList; |
| | | |
| | | public static ClassesUser getEntityByForm(@NonNull ClassesUserForm form, ClassesUser entity) { |
| | | if(entity == null) { |
| New file |
| | |
| | | package com.ycl.jxkg.domain.form; |
| | | |
| | | import com.ycl.jxkg.domain.entity.ClassesUser; |
| | | import com.ycl.jxkg.group.Add; |
| | | import com.ycl.jxkg.group.Update; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.lang.NonNull; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 班级与用户关联表表单 |
| | | * |
| | | * @author xp |
| | | * @since 2024-06-04 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "ClassesUser表单", description = "班级与用户关联表表单") |
| | | public class EditClassesUserForm { |
| | | |
| | | @NotNull(message = "请选择要修改的数据", groups = {Update.class}) |
| | | private Integer id; |
| | | |
| | | @NotNull(message = "请选择学员的班级", groups = {Add.class, Update.class}) |
| | | private Integer classesId; |
| | | |
| | | @NotBlank(message = "请填写学员电话", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("电话") |
| | | private String phone; |
| | | |
| | | @NotNull(message = "请选择学员性别", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("性别") |
| | | private Integer sex; |
| | | |
| | | @NotNull(message = "请填写学员年龄", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("年龄") |
| | | private Integer age; |
| | | |
| | | @NotBlank(message = "请填写学员姓名", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("真实姓名") |
| | | private String realName; |
| | | |
| | | @NotBlank(message = "请填写学员登录账号", groups = {Add.class, Update.class}) |
| | | @ApiModelProperty("登录账号") |
| | | private String account; |
| | | |
| | | @ApiModelProperty("登录密码") |
| | | private String password; |
| | | |
| | | public static ClassesUser getEntityByForm(@NonNull EditClassesUserForm form, ClassesUser entity) { |
| | | if(entity == null) { |
| | | entity = new ClassesUser(); |
| | | } |
| | | BeanUtils.copyProperties(form, entity); |
| | | return entity; |
| | | } |
| | | |
| | | } |
| | |
| | | @Data |
| | | @ApiModel(value = "Classes查询", description = "班级查询") |
| | | public class ClassesQuery extends AbsQuery { |
| | | |
| | | /** 班级名称 */ |
| | | private String className; |
| | | |
| | | /** 班级状态 */ |
| | | private String status; |
| | | |
| | | } |
| | | |
| | |
| | | @Data |
| | | public class ClassesUserVO extends AbsVo { |
| | | |
| | | /** */ |
| | | /** 班级ID */ |
| | | private Integer classesId; |
| | | |
| | | /** */ |
| | | /** 用户ID */ |
| | | private Integer userId; |
| | | |
| | | /** 真实姓名 */ |
| | | private String realName; |
| | | |
| | | /** 年龄 */ |
| | | private Integer sex; |
| | | |
| | | /** 电话 */ |
| | | private String phone; |
| | | |
| | | /** 加入时间 */ |
| | | private Date createTime; |
| | | |
| | |
| | | import com.ycl.jxkg.domain.base.AbsVo; |
| | | import com.ycl.jxkg.domain.entity.Classes; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | import com.ycl.jxkg.domain.enums.general.ClassesStatusEnum; |
| | | import com.ycl.jxkg.enums.general.ClassesStatusEnum; |
| | | import org.springframework.lang.NonNull; |
| | | import org.springframework.beans.BeanUtils; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | |
| | | @Data |
| | | public class SubjectPageRequestVO extends BasePage { |
| | | |
| | | private Integer name; |
| | | private String name; |
| | | |
| | | private Integer status; |
| | | |
| | |
| | | package com.ycl.jxkg.domain.vo.admin.education; |
| | | |
| | | import com.ycl.jxkg.domain.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.enums.general.StatusEnum; |
| | | import lombok.Data; |
| | | |
| | | |
| | |
| | | import com.ycl.jxkg.base.BasePage; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class ExamPaperAnswerPageRequestVO extends BasePage { |
| | | |
| | | private Integer subjectId; |
| | | private List<Integer> subjectId; |
| | | |
| | | private Integer examPaperId; |
| | | |
| | | private String name; |
| | | |
| | | } |
| | |
| | | package com.ycl.jxkg.domain.vo.admin.question; |
| | | |
| | | import com.ycl.jxkg.domain.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.enums.general.StatusEnum; |
| | | import lombok.Data; |
| | | |
| | | |
| | |
| | | |
| | | private String userName; |
| | | |
| | | /** |
| | | * 试卷应考人数 |
| | | */ |
| | | private Integer personTotalNum; |
| | | |
| | | /** |
| | | * 试卷参考人数 |
| | | */ |
| | | private Integer personAnswerNum; |
| | | |
| | | } |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/DeductTypeEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums; |
| | | package com.ycl.jxkg.enums; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | } |
| | | |
| | | |
| | | private static final Map<Integer, DeductTypeEnum> keyMap = new HashMap<>(); |
| | | private static Map<Integer, DeductTypeEnum> keyMap = new HashMap<>(); |
| | | |
| | | static { |
| | | for (DeductTypeEnum item : DeductTypeEnum.values()) { |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/ExamPaperAnswerStatusEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums; |
| | | package com.ycl.jxkg.enums; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | |
| | | |
| | | |
| | | private static final Map<Integer, ExamPaperAnswerStatusEnum> keyMap = new HashMap<>(); |
| | | private static Map<Integer, ExamPaperAnswerStatusEnum> keyMap = new HashMap<>(); |
| | | |
| | | static { |
| | | for (ExamPaperAnswerStatusEnum item : ExamPaperAnswerStatusEnum.values()) { |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/ExamPaperTypeEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums; |
| | | package com.ycl.jxkg.enums; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | } |
| | | |
| | | |
| | | private static final Map<Integer, ExamPaperTypeEnum> keyMap = new HashMap<>(); |
| | | private static Map<Integer, ExamPaperTypeEnum> keyMap = new HashMap<>(); |
| | | |
| | | static { |
| | | for (ExamPaperTypeEnum item : ExamPaperTypeEnum.values()) { |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/QuestionTypeEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums; |
| | | package com.ycl.jxkg.enums; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | } |
| | | |
| | | |
| | | private static final Map<Integer, QuestionTypeEnum> keyMap = new HashMap<>(); |
| | | private static Map<Integer, QuestionTypeEnum> keyMap = new HashMap<>(); |
| | | |
| | | static { |
| | | for (QuestionTypeEnum item : QuestionTypeEnum.values()) { |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/RoleEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums; |
| | | package com.ycl.jxkg.enums; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | this.name = name; |
| | | } |
| | | |
| | | private static final Map<Integer, RoleEnum> keyMap = new HashMap<>(); |
| | | private static Map<Integer, RoleEnum> keyMap = new HashMap<>(); |
| | | |
| | | static { |
| | | for (RoleEnum item : RoleEnum.values()) { |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/UserStatusEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums; |
| | | package com.ycl.jxkg.enums; |
| | | |
| | | |
| | | import java.util.HashMap; |
| | |
| | | this.name = name; |
| | | } |
| | | |
| | | private static final Map<Integer, UserStatusEnum> keyMap = new HashMap<>(); |
| | | private static Map<Integer, UserStatusEnum> keyMap = new HashMap<>(); |
| | | |
| | | static { |
| | | for (UserStatusEnum item : UserStatusEnum.values()) { |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/general/ClassesStatusEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums.general; |
| | | package com.ycl.jxkg.enums.general; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.EnumValue; |
| | | import com.fasterxml.jackson.annotation.JsonValue; |
| File was renamed from src/main/java/com/ycl/jxkg/domain/enums/general/StatusEnum.java |
| | |
| | | package com.ycl.jxkg.domain.enums.general; |
| | | package com.ycl.jxkg.enums.general; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.EnumValue; |
| | | import com.fasterxml.jackson.annotation.JsonValue; |
| | |
| | | import com.ycl.jxkg.domain.entity.ExamPaperAnswer; |
| | | import com.ycl.jxkg.domain.entity.ExamPaperQuestionCustomerAnswer; |
| | | import com.ycl.jxkg.domain.entity.TextContent; |
| | | import com.ycl.jxkg.domain.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent; |
| | | import com.ycl.jxkg.service.ExamPaperAnswerService; |
| | | import com.ycl.jxkg.service.ExamPaperQuestionCustomerAnswerService; |
| | |
| | | import com.ycl.jxkg.domain.entity.ExamPaperAnswer; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | |
| | | ExamPaperAnswer getByPidUid(@Param("pid") Integer paperId, @Param("uid") Integer uid); |
| | | |
| | | List<ExamPaperAnswer> adminPage(ExamPaperAnswerPageRequestVO requestVM); |
| | | |
| | | List<ExamPaperAnswerPageResponseVO> pageExamPaper(ExamPaperAnswerPageRequestVO model); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectResponseVO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Select; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | |
| | | List<Subject> allSubject(); |
| | | |
| | | List<Subject> page(SubjectPageRequestVO requestVM); |
| | | List<SubjectResponseVO> page(SubjectPageRequestVO requestVM); |
| | | |
| | | @Select("select ifnull(count(*) + 1, 1) from t_subject where deleted = 0") |
| | | Integer getItemOrder(); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.domain.form.ClassesUserForm; |
| | | import com.ycl.jxkg.domain.form.EditClassesUserForm; |
| | | import com.ycl.jxkg.domain.query.ClassesUserQuery; |
| | | import java.util.List; |
| | | |
| | |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result add(ClassesUserForm form); |
| | | Result add(EditClassesUserForm form); |
| | | |
| | | /** |
| | | * 修改 |
| | |
| | | * @return |
| | | */ |
| | | Result all(); |
| | | |
| | | /** |
| | | * 编辑学员信息 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | Result edit(EditClassesUserForm form); |
| | | } |
| | |
| | | package com.ycl.jxkg.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ycl.jxkg.domain.entity.ExamPaperAnswer; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.ExamPaperAnswerInfo; |
| | | import com.ycl.jxkg.domain.entity.ExamPaperAnswer; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; |
| | | import com.github.pagehelper.PageInfo; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | List<Integer> selectMothCount(); |
| | | |
| | | PageInfo<ExamPaperAnswer> adminPage(ExamPaperAnswerPageRequestVO requestVM); |
| | | |
| | | /** |
| | | * 答卷列表 |
| | | * @param model 查询条件 |
| | | * @return 数据 |
| | | */ |
| | | PageInfo<ExamPaperAnswerPageResponseVO> pageExamPaper(ExamPaperAnswerPageRequestVO model); |
| | | } |
| | |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectResponseVO; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | |
| | | List<Subject> allSubject(); |
| | | |
| | | PageInfo<Subject> page(SubjectPageRequestVO requestVM); |
| | | PageInfo<SubjectResponseVO> page(SubjectPageRequestVO requestVM); |
| | | |
| | | /** |
| | | * 获取最新顺序 |
| | | * |
| | | * @return 顺序 |
| | | */ |
| | | Integer getItemOrder(); |
| | | |
| | | /** |
| | | * 更新状态 |
| | | * |
| | | * @param subject 参数 |
| | | * @return 结果 |
| | | */ |
| | | Boolean updateStatus(Subject subject); |
| | | } |
| | |
| | | package com.ycl.jxkg.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ycl.jxkg.context.WebContext; |
| | | import com.ycl.jxkg.domain.entity.ClassesNotify; |
| | | import com.ycl.jxkg.mapper.ClassesNotifyMapper; |
| | | import com.ycl.jxkg.service.ClassesNotifyService; |
| | |
| | | public class ClassesNotifyServiceImpl extends ServiceImpl<ClassesNotifyMapper, ClassesNotify> implements ClassesNotifyService { |
| | | |
| | | private final ClassesNotifyMapper classesNotifyMapper; |
| | | private final WebContext webContext; |
| | | |
| | | /** |
| | | * 添加 |
| | |
| | | @Override |
| | | public Result add(ClassesNotifyForm form) { |
| | | ClassesNotify entity = ClassesNotifyForm.getEntityByForm(form, null); |
| | | entity.setTeacherId(webContext.getCurrentUser().getId()); |
| | | baseMapper.insert(entity); |
| | | return Result.ok("添加成功"); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.ycl.jxkg.domain.entity.Classes; |
| | | import com.ycl.jxkg.domain.enums.general.ClassesStatusEnum; |
| | | import com.ycl.jxkg.enums.general.ClassesStatusEnum; |
| | | import com.ycl.jxkg.mapper.ClassesMapper; |
| | | import com.ycl.jxkg.service.ClassesService; |
| | | import com.ycl.jxkg.base.Result; |
| | |
| | | package com.ycl.jxkg.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.ycl.jxkg.domain.entity.ClassesUser; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.domain.form.EditClassesUserForm; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.mapper.ClassesUserMapper; |
| | | import com.ycl.jxkg.mapper.UserMapper; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.ClassesUserService; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import com.ycl.jxkg.utils.PageUtil; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.Assert; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | public class ClassesUserServiceImpl extends ServiceImpl<ClassesUserMapper, ClassesUser> implements ClassesUserService { |
| | | |
| | | private final ClassesUserMapper classesUserMapper; |
| | | private final AuthenticationService authenticationService; |
| | | private final UserMapper userMapper; |
| | | |
| | | private final static String DEFAULT_PASSWORD = "202406"; |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Result add(ClassesUserForm form) { |
| | | ClassesUser entity = ClassesUserForm.getEntityByForm(form, null); |
| | | baseMapper.insert(entity); |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result add(EditClassesUserForm form) { |
| | | Long count = new LambdaQueryChainWrapper<>(userMapper) |
| | | .eq(User::getUserName, form.getAccount()) |
| | | .count(); |
| | | if (count > 0) { |
| | | throw new RuntimeException("该登录账号已被使用"); |
| | | } |
| | | User user = new User(); |
| | | user.setUserName(form.getPhone()); |
| | | String password = StringUtils.hasText(form.getPassword()) ? form.getPassword() : DEFAULT_PASSWORD; |
| | | user.setPassword(authenticationService.pwdEncode(password)); |
| | | user.setStatus(UserStatusEnum.Enable.getCode()); |
| | | user.setRole(RoleEnum.STUDENT.getCode()); |
| | | user.setAge(form.getAge()); |
| | | user.setPhone(form.getPhone()); |
| | | user.setRealName(form.getRealName()); |
| | | user.setSex(form.getSex()); |
| | | userMapper.insert(user); |
| | | |
| | | ClassesUser classesUser = new ClassesUser(); |
| | | classesUser.setClassesId(form.getClassesId()); |
| | | classesUser.setUserId(user.getId()); |
| | | baseMapper.insert(classesUser); |
| | | return Result.ok("添加成功"); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result edit(EditClassesUserForm form) { |
| | | ClassesUser classesUser = baseMapper.selectById(form.getId()); |
| | | if (Objects.isNull(classesUser)) { |
| | | throw new RuntimeException("学员数据不存在"); |
| | | } |
| | | Long count = new LambdaQueryChainWrapper<>(userMapper) |
| | | .eq(User::getUserName, form.getAccount()) |
| | | .ne(User::getId, classesUser.getUserId()) |
| | | .count(); |
| | | if (count > 0) { |
| | | throw new RuntimeException("该登录账号已被使用"); |
| | | } |
| | | User user = userMapper.selectById(classesUser.getUserId()); |
| | | if (Objects.isNull(user)) { |
| | | throw new RuntimeException("该学生账号不存在或被删除"); |
| | | } |
| | | BeanUtils.copyProperties(form, classesUser); |
| | | baseMapper.updateById(classesUser); |
| | | |
| | | BeanUtils.copyProperties(classesUser, user); |
| | | userMapper.updateById(user); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | * |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result update(ClassesUserForm form) { |
| | | ClassesUser entity = baseMapper.selectById(form.getId()); |
| | | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | baseMapper.updateById(entity); |
| | | // 先删除之前的 |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .eq(ClassesUser::getClassesId, form.getId()) |
| | | .remove(); |
| | | // 再新增 |
| | | List<ClassesUser> classesUserList = form.getStudentList().stream().map(item -> { |
| | | ClassesUser classesUser = new ClassesUser(); |
| | | classesUser.setClassesId(form.getId()); |
| | | classesUser.setUserId(item); |
| | | return classesUser; |
| | | }).collect(Collectors.toList()); |
| | | this.saveBatch(classesUserList); |
| | | return Result.ok("修改成功"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据id查找 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 列表 |
| | | * |
| | | * @return |
| | | */ |
| | | @Override |
| | |
| | | package com.ycl.jxkg.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.jxkg.domain.*; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.ExamPaperAnswerInfo; |
| | | import com.ycl.jxkg.domain.entity.*; |
| | | import com.ycl.jxkg.domain.enums.ExamPaperAnswerStatusEnum; |
| | | import com.ycl.jxkg.domain.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.domain.exam.ExamPaperTitleItemObject; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.other.ExamPaperAnswerUpdate; |
| | | import com.ycl.jxkg.domain.task.TaskItemAnswerObject; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO; |
| | | import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; |
| | | import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum; |
| | | import com.ycl.jxkg.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.mapper.ExamPaperAnswerMapper; |
| | | import com.ycl.jxkg.mapper.ExamPaperMapper; |
| | | import com.ycl.jxkg.mapper.QuestionMapper; |
| | |
| | | import com.ycl.jxkg.utils.DateTimeUtil; |
| | | import com.ycl.jxkg.utils.ExamUtil; |
| | | import com.ycl.jxkg.utils.JsonUtil; |
| | | import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO; |
| | | import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; |
| | | import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() -> |
| | | examPaperAnswerMapper.adminPage(requestVM)); |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<ExamPaperAnswerPageResponseVO> pageExamPaper(ExamPaperAnswerPageRequestVO model) { |
| | | return PageHelper.startPage(model.getPageIndex(), model.getPageSize()).doSelectPageInfo(() -> |
| | | examPaperAnswerMapper.pageExamPaper(model)); |
| | | } |
| | | } |
| | |
| | | import com.ycl.jxkg.domain.other.ExamPaperAnswerUpdate; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.entity.TextContent; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.mapper.ExamPaperQuestionCustomerAnswerMapper; |
| | | import com.ycl.jxkg.service.ExamPaperQuestionCustomerAnswerService; |
| | | import com.ycl.jxkg.service.TextContentService; |
| | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.jxkg.domain.entity.TextContent; |
| | | import com.ycl.jxkg.domain.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.enums.ExamPaperTypeEnum; |
| | | import com.ycl.jxkg.domain.exam.ExamPaperQuestionItemObject; |
| | | import com.ycl.jxkg.domain.exam.ExamPaperTitleItemObject; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | |
| | | import com.ycl.jxkg.service.enums.ActionEnum; |
| | | import com.ycl.jxkg.utils.DateTimeUtil; |
| | | import com.ycl.jxkg.utils.JsonUtil; |
| | | import com.ycl.jxkg.utils.ExamUtil; |
| | | import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperTitleItemVO; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionEditRequestVO; |
| | | import com.ycl.jxkg.domain.vo.student.dashboard.PaperFilter; |
| | | import com.ycl.jxkg.domain.vo.student.dashboard.PaperInfo; |
| | | import com.ycl.jxkg.domain.vo.student.exam.ExamPaperPageVO; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.entity.ExamPaper; |
| | | import com.ycl.jxkg.domain.entity.Question; |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.entity.Question; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.domain.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.question.QuestionItemObject; |
| | | import com.ycl.jxkg.domain.question.QuestionObject; |
| | |
| | | package com.ycl.jxkg.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.mapper.SubjectMapper; |
| | | import com.ycl.jxkg.service.SubjectService; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.entity.Subject; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.education.SubjectResponseVO; |
| | | import com.ycl.jxkg.mapper.SubjectMapper; |
| | | import com.ycl.jxkg.service.SubjectService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class SubjectServiceImpl extends ServiceImpl<SubjectMapper,Subject> implements SubjectService { |
| | | public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> implements SubjectService { |
| | | |
| | | private final SubjectMapper subjectMapper; |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<Subject> page(SubjectPageRequestVO requestVM) { |
| | | public PageInfo<SubjectResponseVO> page(SubjectPageRequestVO requestVM) { |
| | | return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "item_order").doSelectPageInfo(() -> |
| | | subjectMapper.page(requestVM) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | | public Integer getItemOrder() { |
| | | return subjectMapper.getItemOrder(); |
| | | } |
| | | |
| | | @Override |
| | | public Boolean updateStatus(Subject subject) { |
| | | return new LambdaUpdateChainWrapper<>(subjectMapper) |
| | | .set(Subject::getStatus, subject.getStatus()) |
| | | .eq(Subject::getId, subject.getId()) |
| | | .update(); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.jxkg.domain.entity.UserEventLog; |
| | | import com.ycl.jxkg.domain.enums.RoleEnum; |
| | | import com.ycl.jxkg.domain.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.enums.RoleEnum; |
| | | import com.ycl.jxkg.enums.UserStatusEnum; |
| | | import com.ycl.jxkg.domain.form.RegisterForm; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.vo.StudentVO; |
| | |
| | | import com.ycl.jxkg.domain.entity.User; |
| | | import com.ycl.jxkg.event.OnRegistrationCompleteEvent; |
| | | import com.ycl.jxkg.mapper.UserMapper; |
| | | import com.ycl.jxkg.service.AuthenticationService; |
| | | import com.ycl.jxkg.service.UserService; |
| | | import com.ycl.jxkg.domain.vo.admin.user.UserPageRequestVO; |
| | | import com.github.pagehelper.PageHelper; |
| | |
| | | LEFT JOIN t_user TU ON TU.id = TC.create_user AND TU.deleted = 0 |
| | | WHERE |
| | | TC.deleted = 0 |
| | | <if test="query.className != null and query.className != ''"> |
| | | AND TC.class_name like concat('%', #{query.className}, '%') |
| | | </if> |
| | | <if test="query.status != null and query.status != ''"> |
| | | AND TC.status = #{query.status} |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.vo.ClassesUserVO"> |
| | | <result column="classes_id" property="classesId" /> |
| | | <result column="user_id" property="userId" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="classes_id" property="classesId"/> |
| | | <result column="user_id" property="userId"/> |
| | | <result column="real_name" property="realName"/> |
| | | <result column="sex" property="sex"/> |
| | | <result column="phone" property="phone"/> |
| | | <result column="create_time" property="createTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <select id="getById" resultMap="BaseResultMap"> |
| | | SELECT |
| | | TCU.classes_id, |
| | | TCU.user_id, |
| | | TCU.create_time, |
| | | TCU.id |
| | | FROM |
| | | t_classes_user TCU |
| | | WHERE |
| | | TCU.id = #{id} AND TCU.deleted = 0 |
| | | SELECT TCU.classes_id, |
| | | TCU.user_id, |
| | | TCU.create_time, |
| | | TCU.id |
| | | FROM t_classes_user TCU |
| | | WHERE TCU.id = #{id} |
| | | AND TCU.deleted = 0 |
| | | </select> |
| | | |
| | | |
| | | <select id="getPage" resultMap="BaseResultMap"> |
| | | SELECT |
| | | TCU.classes_id, |
| | | TCU.user_id, |
| | | TCU.create_time, |
| | | TCU.id |
| | | FROM |
| | | t_classes_user TCU |
| | | WHERE |
| | | TCU.deleted = 0 |
| | | SELECT TCU.classes_id, |
| | | TCU.user_id, |
| | | TCU.create_time, |
| | | TCU.id, |
| | | TU.real_name, |
| | | TU.sex, |
| | | TU.phone |
| | | FROM t_classes_user TCU |
| | | LEFT JOIN t_user TU ON TU.id = TCU.user_id |
| | | WHERE TCU.deleted = 0 |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | </select> |
| | | |
| | | |
| | | <select id="adminPage" resultMap="BaseResultMap" |
| | | parameterType="com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO"> |
| | | <select id="adminPage" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO"> |
| | | SELECT |
| | | <include refid="Base_Column_List"/> |
| | | FROM t_exam_paper_answer |
| | | <where> |
| | | <if test="subjectId != null"> |
| | | and subject_id = #{subjectId} |
| | | <if test="subjectId != null and subjectId.size() > 0"> |
| | | AND subject_id IN |
| | | <foreach collection="subjectId" item="item" open="(" separator="," close=")">#{item}</foreach> |
| | | </if> |
| | | <if test="examPaperId != null"> |
| | | AND exam_paper_id = #{examPaperId} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="pageExamPaper" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO"> |
| | | SELECT |
| | | a.id, |
| | | a.name AS paperName, |
| | | a.score AS systemScore, |
| | | a.question_count, |
| | | a.subject_id, |
| | | a.paper_type, |
| | | b.name AS subjectName, |
| | | c.real_name AS userName, |
| | | IFNULL(COUNT(d.id), 0) AS personAnswerNum, |
| | | IFNULL(COUNT(f.id), 0) AS personTotalNum |
| | | FROM t_exam_paper a |
| | | LEFT JOIN t_subject b ON a.subject_id = b.id |
| | | LEFT JOIN t_user c ON a.create_user = c.id |
| | | LEFT JOIN t_exam_paper_answer d ON a.id = d.exam_paper_id |
| | | LEFT JOIN t_exam_paper_classes e ON a.id = e.exam_paper_id |
| | | LEFT JOIN t_classes_user f ON e.classes_id = f.classes_id |
| | | <where> |
| | | a.deleted = 0 |
| | | <if test="subjectId != null and subjectId.size() > 0"> |
| | | AND a.subject_id IN |
| | | <foreach collection="subjectId" item="item" open="(" separator="," close=")">#{item}</foreach> |
| | | </if> |
| | | <if test="name != null and name != ''"> |
| | | AND INSTR(a.name, #{name}) |
| | | </if> |
| | | </where> |
| | | GROUP BY a.id |
| | | ORDER BY a.id DESC |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <select id="getSubjectByLevel" resultMap="BaseResultMap"> |
| | | select |
| | | <include refid="Base_Column_List"/> |
| | | from t_subject where level= #{level} |
| | | from t_subject |
| | | where deleted = 0 and status = 1 |
| | | order by item_order |
| | | </select> |
| | | |
| | |
| | | select |
| | | <include refid="Base_Column_List"/> |
| | | from t_subject |
| | | where deleted = 0 and status = 1 |
| | | order by item_order |
| | | </select> |
| | | |
| | | <select id="page" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO"> |
| | | <select id="page" resultType="com.ycl.jxkg.domain.vo.admin.education.SubjectResponseVO" parameterType="com.ycl.jxkg.domain.vo.admin.education.SubjectPageRequestVO"> |
| | | SELECT |
| | | <include refid="Base_Column_List"/> |
| | | FROM t_subject |