Commit e4c7ca1d authored by liming's avatar liming

课程编排

parent 1084d64a
package com.antai.sport.http.server.management.api.business.course.controller;
import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.management.api.business.course.dto.CourseItemSaveDTO;
import com.antai.sport.http.server.management.api.business.course.dto.CoursePageDTO;
import com.antai.sport.http.server.management.api.business.course.service.CourseService;
import com.antai.sport.http.server.management.api.business.course.vo.CourseDetailVO;
import com.antai.sport.http.server.management.api.business.course.vo.CourseItemVO;
import com.antai.sport.http.server.management.api.business.course.vo.CoursePageVO;
import com.antai.sport.http.server.repository.course.entity.Course;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import static com.antai.sport.http.server.common.util.ResultUtil.success;
......@@ -48,4 +51,15 @@ public class CourseController {
return success();
}
@GetMapping("item/{courseId}")
public ResponseEntity<Result<List<CourseItemVO>>> getCourseItem(@PathVariable Long courseId) {
return success(courseService.getCourseItem(courseId));
}
@PostMapping("item")
public ResponseEntity<Result> saveCourseItem(@RequestBody CourseItemSaveDTO dto) {
courseService.saveCourseItem(dto);
return success();
}
}
package com.antai.sport.http.server.management.api.business.course.converter;
import com.antai.sport.http.server.management.api.business.course.vo.CourseItemVO;
import com.antai.sport.http.server.repository.course.entity.CourseItem;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring")
public interface CourseConverter {
List<CourseItemVO> toCourseItemVO(List<CourseItem> source);
List<CourseItem> toCourseItem(List<CourseItemVO> source);
}
package com.antai.sport.http.server.management.api.business.course.dto;
import com.antai.sport.http.server.repository.course.entity.CourseItem;
import lombok.Data;
import java.util.List;
@Data
public class CourseItemSaveDTO {
private Long courseId;
private List<CourseItem> itemList;
private List<Long> deleteList;
}
......@@ -3,16 +3,23 @@ package com.antai.sport.http.server.management.api.business.course.service;
import com.antai.sport.http.server.common.service.CommonCodeService;
import com.antai.sport.http.server.common.vo.SysCodeDetailVO;
import com.antai.sport.http.server.constants.CourseType;
import com.antai.sport.http.server.management.api.business.course.converter.CourseConverter;
import com.antai.sport.http.server.management.api.business.course.dto.CourseItemSaveDTO;
import com.antai.sport.http.server.management.api.business.course.dto.CoursePageDTO;
import com.antai.sport.http.server.management.api.business.course.mapper.CourseBusinessMapper;
import com.antai.sport.http.server.management.api.business.course.vo.CourseDetailVO;
import com.antai.sport.http.server.management.api.business.course.vo.CourseItemVO;
import com.antai.sport.http.server.management.api.business.course.vo.CoursePageVO;
import com.antai.sport.http.server.repository.course.entity.Course;
import com.antai.sport.http.server.repository.course.entity.CourseItem;
import com.antai.sport.http.server.repository.course.mapper.CourseItemMapper;
import com.antai.sport.http.server.repository.course.mapper.CourseMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
......@@ -24,10 +31,15 @@ public class CourseService {
private CommonCodeService commonCodeService;
@Resource
private CourseMapper courseMapper;
@Resource
private CourseItemMapper courseItemMapper;
@Resource
private CourseBusinessMapper courseBusinessMapper;
@Resource
private CourseConverter courseConverter;
public CoursePageVO getCoursePage(CoursePageDTO dto) {
CoursePageVO result = new CoursePageVO();
result.setPageNo(dto.getPageNo());
......@@ -70,14 +82,41 @@ public class CourseService {
return result;
}
public void saveCourse(Course course){
if(course.getId() == null || course.getId() == 0){
public void saveCourse(Course course) {
if (course.getId() == null || course.getId() == 0) {
course.setStatus(10);
courseMapper.insert(course);
}else{
} else {
courseMapper.updateById(course);
}
}
public List<CourseItemVO> getCourseItem(Long courseId) {
QueryWrapper<CourseItem> itemQuery = new QueryWrapper<>();
itemQuery.lambda().eq(CourseItem::getCourseId, courseId).orderByAsc(CourseItem::getShowOrder)
.orderByAsc(CourseItem::getId);
return courseConverter.toCourseItemVO(courseItemMapper.selectList(itemQuery));
}
@Transactional
public void saveCourseItem(CourseItemSaveDTO dto) {
if (dto.getItemList() != null) {
for (CourseItem item : dto.getItemList()) {
if (item.getId() < 0) {
item.setId(null);
item.setCourseId(dto.getCourseId());
courseItemMapper.insert(item);
} else {
courseItemMapper.updateById(item);
}
}
}
if (dto.getDeleteList() != null) {
for (Long id : dto.getDeleteList()) {
courseItemMapper.deleteById(id);
}
}
}
}
package com.antai.sport.http.server.management.api.business.course.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CourseItemVO {
private Long id;
private String name;
private BigDecimal targetValue;
private BigDecimal allowableDeviation;
private Integer duration;
private Integer showOrder;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment