From 542253bc0fa6b7f899f06aa1d1d10b4db2935836 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 03 六月 2024 14:10:03 +0800 Subject: [PATCH] 异常捕获优化,班级代码生成 --- src/main/java/com/ycl/jxkg/domain/query/ClassesQuery.java | 23 ++ src/main/java/com/ycl/jxkg/mapper/ClassesMapper.java | 33 +++ src/main/java/com/ycl/jxkg/service/ClassesService.java | 65 +++++ src/main/resources/mapper/ClassesMapper.xml | 52 ++++ src/main/java/com/ycl/jxkg/controller/admin/SubjectController.java | 16 src/main/java/com/ycl/jxkg/domain/form/ClassesForm.java | 59 +++++ src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java | 81 +++++++ src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java | 119 ++++++++++ src/main/java/com/ycl/jxkg/domain/entity/Classes.java | 42 +++ src/main/java/com/ycl/jxkg/base/Result.java | 10 src/main/java/com/ycl/jxkg/config/spring/exception/ExceptionHandle.java | 65 ++++- src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java | 50 ++++ 12 files changed, 595 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/base/Result.java b/src/main/java/com/ycl/jxkg/base/Result.java index b3642f3..192c798 100644 --- a/src/main/java/com/ycl/jxkg/base/Result.java +++ b/src/main/java/com/ycl/jxkg/base/Result.java @@ -129,4 +129,14 @@ super.put(key, value); return this; } + + public Result data(Object data) { + super.put("data", data); + return this; + } + + public Result total(Long total) { + super.put("total", total); + return this; + } } diff --git a/src/main/java/com/ycl/jxkg/config/spring/exception/ExceptionHandle.java b/src/main/java/com/ycl/jxkg/config/spring/exception/ExceptionHandle.java index 57792ee..cc0c2c8 100644 --- a/src/main/java/com/ycl/jxkg/config/spring/exception/ExceptionHandle.java +++ b/src/main/java/com/ycl/jxkg/config/spring/exception/ExceptionHandle.java @@ -1,17 +1,23 @@ package com.ycl.jxkg.config.spring.exception; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.base.SystemCode; import com.ycl.jxkg.utils.ErrorUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; import org.springframework.validation.BindException; import org.springframework.validation.FieldError; +import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; +import javax.servlet.http.HttpServletRequest; +import java.util.List; import java.util.stream.Collectors; /** @@ -22,7 +28,10 @@ */ @ControllerAdvice public class ExceptionHandle { + private final static Logger logger = LoggerFactory.getLogger(ExceptionHandle.class); + /** 鍏徃椤圭洰鐨勫寘缁撴瀯锛岀敤浜庣缉鐭敊璇棩蹇楃殑闀垮害 */ + private final static String COMPANY_PACKAGE = "com.ycl.jxkg."; /** * Handler rest response. @@ -32,25 +41,28 @@ */ @ExceptionHandler(Exception.class) @ResponseBody - public Result handler(Exception e) { - logger.error(e.getMessage(), e); + public Result handler(Exception e, HttpServletRequest request) { + String errMsg = String.format("绯荤粺寮傚父-%s", e.getMessage()); + this.printExceptionLocation(e, request, errMsg); return new Result<>(SystemCode.InnerError.getCode(), SystemCode.InnerError.getMessage()); } /** - * Handler rest response. + * JSON浼犲弬鏁版嵁鏍¢獙寮傚父 * - * @param e the e - * @return the rest response + * @param e + * @param request + * @return + * @throws JsonProcessingException */ @ExceptionHandler(MethodArgumentNotValidException.class) - @ResponseBody - public Result handler(MethodArgumentNotValidException e) { - String errorMsg = e.getBindingResult().getAllErrors().stream().map(file -> { - FieldError fieldError = (FieldError) file; - return ErrorUtil.parameterErrorFormat(fieldError.getField(), fieldError.getDefaultMessage()); - }).collect(Collectors.joining()); - return new Result<>(SystemCode.ParameterValidError.getCode(), errorMsg); + public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException e, + HttpServletRequest request) throws JsonProcessingException { + List<String> err = e.getBindingResult().getAllErrors().stream().map(error -> error.getDefaultMessage()).collect(Collectors.toList()); + String s = new ObjectMapper().writeValueAsString(err); + String errMsg = String.format("鍙傛暟鏍¢獙澶辫触-%s", s); + this.printExceptionLocation(e, request, errMsg); + return Result.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), s); } /** @@ -69,5 +81,34 @@ return new Result<>(SystemCode.ParameterValidError.getCode(), errorMsg); } + /** + * 璇锋眰鏂瑰紡涓嶆敮鎸佸紓甯� + * + * @param e + * @param request + * @return + */ + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + public Result handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, + HttpServletRequest request) { + String errMSg = String.format("涓嶆敮鎸�%s璇锋眰", e.getMethod()); + this.printExceptionLocation(e, request, errMSg); + return Result.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage()); + } + /** + * 鎵撳嵃寮傚父鍑虹幇浣嶇疆 + * @param e + */ + private void printExceptionLocation(Throwable e, HttpServletRequest request, String errMsg) { + StackTraceElement stackTraceElement = e.getStackTrace()[0]; + String className = stackTraceElement.getClassName().contains(COMPANY_PACKAGE) ? + stackTraceElement.getClassName().split(COMPANY_PACKAGE)[1] : stackTraceElement.getClassName(); + logger.error("鎺ュ彛锛氥�恵}銆�, 寮傚父绫伙細銆恵}銆戯紝鏂规硶锛氥�恵}銆戯紝鎵�鍦ㄨ锛氥�恵}銆�, 閿欒淇℃伅锛氥�恵}銆�", + request.getRequestURI(), + className, + stackTraceElement.getMethodName(), + stackTraceElement.getLineNumber(), + errMsg); + } } diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java new file mode 100644 index 0000000..e039f5c --- /dev/null +++ b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java @@ -0,0 +1,81 @@ +package com.ycl.jxkg.controller.admin; + +import com.ycl.jxkg.group.Update; +import com.ycl.jxkg.group.Add; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import lombok.RequiredArgsConstructor; +import java.util.List; +import javax.validation.constraints.NotEmpty; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.ycl.jxkg.service.ClassesService; +import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.domain.form.ClassesForm; +import com.ycl.jxkg.domain.query.ClassesQuery; +import org.springframework.web.bind.annotation.*; + +/** + * 鐝骇 鍓嶇鎺у埗鍣� + * + * @author xp + * @since 2024-06-03 + */ +@Validated +@RequiredArgsConstructor +@Api(value = "鐝骇", tags = "鐝骇绠$悊") +@RestController +@RequestMapping("/classes") +public class ClassesController { + + private final ClassesService classesService; + + @PostMapping + @ApiOperation(value = "娣诲姞", notes = "娣诲姞") + @PreAuthorize("hasAuthority('classes:add')") + public Result add(@RequestBody @Validated(Add.class) ClassesForm form) { + return classesService.add(form); + } + + @PutMapping + @ApiOperation(value = "淇敼", notes = "淇敼") + @PreAuthorize("hasAuthority('classes:edit')") + public Result update(@RequestBody @Validated(Update.class) ClassesForm form) { + return classesService.update(form); + } + + @DeleteMapping("/{id}") + @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎") + @PreAuthorize("hasAuthority('classes:del')") + public Result removeById(@PathVariable("id") String id) { + return classesService.removeById(id); + } + + @DeleteMapping("/batch") + @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎") + @PreAuthorize("hasAuthority('classes:del:batch')") + public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) { + return classesService.remove(ids); + } + + @GetMapping("/page") + @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉") + @PreAuthorize("hasAuthority('classes:page')") + public Result page(ClassesQuery query) { + return classesService.page(query); + } + + @GetMapping("/{id}") + @ApiOperation(value = "璇︽儏", notes = "璇︽儏") + @PreAuthorize("hasAuthority('classes:detail')") + public Result detail(@PathVariable("id") Integer id) { + return classesService.detail(id); + } + + @GetMapping("/list") + @PreAuthorize("hasAuthority('classes:list')") + @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃") + public Result list() { + return classesService.all(); + } +} diff --git a/src/main/java/com/ycl/jxkg/controller/admin/EducationController.java b/src/main/java/com/ycl/jxkg/controller/admin/SubjectController.java similarity index 79% rename from src/main/java/com/ycl/jxkg/controller/admin/EducationController.java rename to src/main/java/com/ycl/jxkg/controller/admin/SubjectController.java index b4beeab..345f1fe 100644 --- a/src/main/java/com/ycl/jxkg/controller/admin/EducationController.java +++ b/src/main/java/com/ycl/jxkg/controller/admin/SubjectController.java @@ -18,19 +18,19 @@ import java.util.List; @RequiredArgsConstructor -@RestController("AdminEducationController") -@RequestMapping(value = "/api/admin/education") -public class EducationController extends BaseApiController { +@RestController("AdminSubjectController") +@RequestMapping(value = "/api/admin/subject") +public class SubjectController extends BaseApiController { private final SubjectService subjectService; - @RequestMapping(value = "/subject/list", method = RequestMethod.POST) + @RequestMapping(value = "/list", method = RequestMethod.POST) public Result<List<Subject>> list() { List<Subject> subjects = subjectService.allSubject(); return Result.ok(subjects); } - @RequestMapping(value = "/subject/page", method = RequestMethod.POST) + @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 -> { @@ -41,7 +41,7 @@ return Result.ok(page); } - @RequestMapping(value = "/subject/edit", method = RequestMethod.POST) + @RequestMapping(value = "/edit", method = RequestMethod.POST) public Result edit(@RequestBody @Valid SubjectEditRequestVO model) { Subject subject = new Subject(); BeanUtils.copyProperties(model, subject); @@ -53,7 +53,7 @@ return Result.ok(); } - @RequestMapping(value = "/subject/select/{id}", method = RequestMethod.POST) + @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) public Result<SubjectEditRequestVO> select(@PathVariable Integer id) { Subject subject = subjectService.getById(id); SubjectEditRequestVO vo = new SubjectEditRequestVO(); @@ -61,7 +61,7 @@ return Result.ok(vo); } - @RequestMapping(value = "/subject/delete/{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); diff --git a/src/main/java/com/ycl/jxkg/domain/entity/Classes.java b/src/main/java/com/ycl/jxkg/domain/entity/Classes.java new file mode 100644 index 0000000..45c39a2 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/entity/Classes.java @@ -0,0 +1,42 @@ +package com.ycl.jxkg.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; + +import com.ycl.jxkg.domain.base.AbsEntity; +import lombok.Data; + +/** + * 鐝骇 + * + * @author xp + * @since 2024-06-03 + */ +@Data +@TableName("t_classes") +public class Classes extends AbsEntity { + + private static final long serialVersionUID = 1L; + + @TableField("class_name") + /** 鐝骇鍚嶇О */ + private String className; + + @TableField("create_user") + /** 鍒涘缓浜� */ + private Integer createUser; + + @TableField("classes_number") + /** 鐝骇浜烘暟 */ + private Integer classesNumber; + + @TableField("status") + /** 鐝骇鐘舵�� */ + private String status; + + @TableField("verify_status") + /** 楠岃瘉鐘舵�� */ + private String verifyStatus; + + +} diff --git a/src/main/java/com/ycl/jxkg/domain/form/ClassesForm.java b/src/main/java/com/ycl/jxkg/domain/form/ClassesForm.java new file mode 100644 index 0000000..497b556 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/form/ClassesForm.java @@ -0,0 +1,59 @@ +package com.ycl.jxkg.domain.form; + +import com.ycl.jxkg.domain.base.AbsForm; +import com.ycl.jxkg.group.Update; +import com.ycl.jxkg.group.Add; +import com.ycl.jxkg.domain.entity.Classes; +import org.springframework.beans.BeanUtils; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import org.springframework.lang.NonNull; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 鐝骇琛ㄥ崟 + * + * @author xp + * @since 2024-06-03 + */ +@Data +@ApiModel(value = "Classes琛ㄥ崟", description = "鐝骇琛ㄥ崟") +public class ClassesForm extends AbsForm { + + @NotBlank(message = "鐝骇鍚嶇О涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("鐝骇鍚嶇О") + private String className; + + @NotNull(message = "鍒涘缓浜轰笉鑳戒负绌�", groups = {Add.class, Update.class}) + @ApiModelProperty("鍒涘缓浜�") + private Integer createUser; + + @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("鍒涘缓鏃堕棿") + private Date createTime; + + @NotNull(message = "鐝骇浜烘暟涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("鐝骇浜烘暟") + private Integer classesNumber; + + @NotBlank(message = "鐝骇鐘舵�佷笉鑳戒负绌�", groups = {Add.class, Update.class}) + @ApiModelProperty("鐝骇鐘舵��") + private String status; + + @NotBlank(message = "楠岃瘉鐘舵�佷笉鑳戒负绌�", groups = {Add.class, Update.class}) + @ApiModelProperty("楠岃瘉鐘舵��") + private String verifyStatus; + + public static Classes getEntityByForm(@NonNull ClassesForm form, Classes entity) { + if(entity == null) { + entity = new Classes(); + } + BeanUtils.copyProperties(form, entity); + return entity; + } + +} diff --git a/src/main/java/com/ycl/jxkg/domain/query/ClassesQuery.java b/src/main/java/com/ycl/jxkg/domain/query/ClassesQuery.java new file mode 100644 index 0000000..1aec3cf --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/query/ClassesQuery.java @@ -0,0 +1,23 @@ +package com.ycl.jxkg.domain.query; + +import java.util.List; + +import com.ycl.jxkg.domain.base.AbsQuery; +import org.springframework.lang.NonNull; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 鐝骇鏌ヨ + * + * @author xp + * @since 2024-06-03 + */ +@Data +@ApiModel(value = "Classes鏌ヨ", description = "鐝骇鏌ヨ") +public class ClassesQuery extends AbsQuery { +} + diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java new file mode 100644 index 0000000..8d51133 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java @@ -0,0 +1,50 @@ +package com.ycl.jxkg.domain.vo; + +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 org.springframework.lang.NonNull; +import org.springframework.beans.BeanUtils; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 鐝骇灞曠ず + * + * @author xp + * @since 2024-06-03 + */ +@Data +public class ClassesVO extends AbsVo { + + /** 鐝骇鍚嶇О */ + private String className; + + /** 鍒涘缓浜� */ + private Integer createUser; + + /** 鍒涘缓鏃堕棿 */ + private Date createTime; + + /** 鐝骇浜烘暟 */ + private Integer classesNumber; + + /** 鐝骇鐘舵�� */ + private String status; + + /** 楠岃瘉鐘舵�� */ + private String verifyStatus; + + public static ClassesVO getVoByEntity(@NonNull Classes entity, ClassesVO vo) { + if(vo == null) { + vo = new ClassesVO(); + } + BeanUtils.copyProperties(entity, vo); + return vo; + } + +} diff --git a/src/main/java/com/ycl/jxkg/mapper/ClassesMapper.java b/src/main/java/com/ycl/jxkg/mapper/ClassesMapper.java new file mode 100644 index 0000000..7b5f3f9 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/mapper/ClassesMapper.java @@ -0,0 +1,33 @@ +package com.ycl.jxkg.mapper; + +import com.ycl.jxkg.domain.entity.Classes; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.jxkg.domain.query.ClassesQuery; +import com.ycl.jxkg.domain.vo.ClassesVO; +import java.util.List; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 鐝骇 Mapper 鎺ュ彛 + * + * @author xp + * @since 2024-06-03 + */ +@Mapper +public interface ClassesMapper extends BaseMapper<Classes> { + + /** + * id鏌ユ壘鐝骇 + * @param id + * @return + */ + ClassesVO getById(Integer id); + + /** + * 鍒嗛〉 + */ + IPage getPage(IPage page, @Param("query") ClassesQuery query); + +} diff --git a/src/main/java/com/ycl/jxkg/service/ClassesService.java b/src/main/java/com/ycl/jxkg/service/ClassesService.java new file mode 100644 index 0000000..1873b69 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/service/ClassesService.java @@ -0,0 +1,65 @@ +package com.ycl.jxkg.service; + +import com.ycl.jxkg.domain.entity.Classes; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.domain.form.ClassesForm; +import com.ycl.jxkg.domain.query.ClassesQuery; +import java.util.List; + +/** + * 鐝骇 鏈嶅姟绫� + * + * @author xp + * @since 2024-06-03 + */ +public interface ClassesService extends IService<Classes> { + + /** + * 娣诲姞 + * @param form + * @return + */ + Result add(ClassesForm form); + + /** + * 淇敼 + * @param form + * @return + */ + Result update(ClassesForm form); + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + Result remove(List<String> ids); + + /** + * id鍒犻櫎 + * @param id + * @return + */ + Result removeById(String id); + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + Result page(ClassesQuery query); + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + Result detail(Integer id); + + /** + * 鍒楄〃 + * @return + */ + Result all(); +} diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java new file mode 100644 index 0000000..14082e3 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java @@ -0,0 +1,119 @@ +package com.ycl.jxkg.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ycl.jxkg.domain.entity.Classes; +import com.ycl.jxkg.mapper.ClassesMapper; +import com.ycl.jxkg.service.ClassesService; +import com.ycl.jxkg.base.Result; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.jxkg.domain.form.ClassesForm; +import com.ycl.jxkg.domain.vo.ClassesVO; +import com.ycl.jxkg.domain.query.ClassesQuery; +import com.ycl.jxkg.utils.PageUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import lombok.RequiredArgsConstructor; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 鐝骇 鏈嶅姟瀹炵幇绫� + * + * @author xp + * @since 2024-06-03 + */ +@Service +@RequiredArgsConstructor +public class ClassesServiceImpl extends ServiceImpl<ClassesMapper, Classes> implements ClassesService { + + private final ClassesMapper classesMapper; + + /** + * 娣诲姞 + * @param form + * @return + */ + @Override + public Result add(ClassesForm form) { + Classes entity = ClassesForm.getEntityByForm(form, null); + baseMapper.insert(entity); + return Result.ok("娣诲姞鎴愬姛"); + } + + /** + * 淇敼 + * @param form + * @return + */ + @Override + public Result update(ClassesForm form) { + Classes entity = baseMapper.selectById(form.getId()); + + // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 + Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); + BeanUtils.copyProperties(form, entity); + baseMapper.updateById(entity); + return Result.ok("淇敼鎴愬姛"); + } + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + @Override + public Result remove(List<String> ids) { + baseMapper.deleteBatchIds(ids); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * id鍒犻櫎 + * @param id + * @return + */ + @Override + public Result removeById(String id) { + baseMapper.deleteById(id); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + @Override + public Result page(ClassesQuery query) { + IPage<ClassesVO> page = PageUtil.getPage(query, ClassesVO.class); + baseMapper.getPage(page, query); + return Result.ok().data(page.getRecords()).total(page.getTotal()); + } + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + @Override + public Result detail(Integer id) { + ClassesVO vo = baseMapper.getById(id); + Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + return Result.ok().data(vo); + } + + /** + * 鍒楄〃 + * @return + */ + @Override + public Result all() { + List<Classes> entities = baseMapper.selectList(null); + List<ClassesVO> vos = entities.stream() + .map(entity -> ClassesVO.getVoByEntity(entity, null)) + .collect(Collectors.toList()); + return Result.ok().data(vos); + } +} diff --git a/src/main/resources/mapper/ClassesMapper.xml b/src/main/resources/mapper/ClassesMapper.xml new file mode 100644 index 0000000..9ab8cd1 --- /dev/null +++ b/src/main/resources/mapper/ClassesMapper.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.jxkg.mapper.ClassesMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.vo.ClassesVO"> + <result column="class_name" property="className" /> + <result column="create_user" property="createUser" /> + <result column="create_time" property="createTime" /> + <result column="classes_number" property="classesNumber" /> + <result column="status" property="status" /> + <result column="verify_status" property="verifyStatus" /> + </resultMap> + + + + + + + + <select id="getById" resultMap="BaseResultMap"> + SELECT + TC.class_name, + TC.create_user, + TC.create_time, + TC.classes_number, + TC.status, + TC.verify_status, + TC.id + FROM + t_classes TC + WHERE + TC.id = #{id} AND TC.deleted = 0 + </select> + + + <select id="getPage" resultMap="BaseResultMap"> + SELECT + TC.class_name, + TC.create_user, + TC.create_time, + TC.classes_number, + TC.status, + TC.verify_status, + TC.id + FROM + t_classes TC + WHERE + TC.deleted = 0 + </select> + +</mapper> -- Gitblit v1.8.0