添加班级课程批量新增功能
parent
c0c7085f0c
commit
e3a1821e32
|
|
@ -10,6 +10,7 @@ import com.jjb.saas.framework.auth.utils.AuthContext;
|
|||
import com.zcloud.edu.api.study.ClassCurriculumServiceI;
|
||||
import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumPageQry;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd;
|
||||
import io.swagger.annotations.Api;
|
||||
|
|
@ -41,6 +42,12 @@ public class ClassCurriculumController {
|
|||
return classCurriculumService.add(cmdList);
|
||||
}
|
||||
|
||||
@ApiOperation("批量新增")
|
||||
@PostMapping("/saveBatch")
|
||||
public Response batchAdd(@Validated @RequestBody ClassCurriculumBatchAddCmd cmd) {
|
||||
return classCurriculumService.batchAdd(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("分页")
|
||||
@PostMapping("/list")
|
||||
public PageResponse<ClassCurriculumCO> page(@RequestBody ClassCurriculumPageQry qry) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,12 @@ import com.zcloud.edu.domain.gateway.study.ClassCurriculumGateway;
|
|||
import com.zcloud.edu.domain.model.study.ClassCurriculumChapterE;
|
||||
import com.zcloud.edu.domain.model.study.ClassCurriculumE;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumChapterAddCmd;
|
||||
import com.zcloud.edu.persistence.dataobject.CurriculumChapterDO;
|
||||
import com.zcloud.edu.persistence.dataobject.CurriculumDO;
|
||||
import com.zcloud.edu.persistence.repository.resource.CurriculumChapterRepository;
|
||||
import com.zcloud.edu.persistence.repository.resource.CurriculumRepository;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -29,6 +34,8 @@ import java.util.List;
|
|||
public class ClassCurriculumAddExe {
|
||||
private final ClassCurriculumGateway classCurriculumGateway;
|
||||
private final ClassCurriculumChapterGateway classCurriculumChapterGateway;
|
||||
private final CurriculumRepository curriculumRepository;
|
||||
private final CurriculumChapterRepository curriculumChapterRepository;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean execute(List<ClassCurriculumAddCmd> cmdList) {
|
||||
|
|
@ -75,5 +82,21 @@ public class ClassCurriculumAddExe {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void executeBatchAdd(ClassCurriculumBatchAddCmd cmd) {
|
||||
List<CurriculumDO> curList = curriculumRepository.listByCurriculumIds(cmd.getCurriculumIds());
|
||||
List<CurriculumChapterDO> chapterList = curriculumChapterRepository.listByCurriculumIds(cmd.getCurriculumIds());
|
||||
List<ClassCurriculumE> curEList = BeanUtil.copyToList(curList, ClassCurriculumE.class);
|
||||
List<ClassCurriculumChapterE> chapterEList = BeanUtil.copyToList(chapterList, ClassCurriculumChapterE.class);
|
||||
ClassCurriculumE classCurriculumE = new ClassCurriculumE();
|
||||
classCurriculumE.initBatchAdd(curEList, chapterEList, cmd.getClassId());
|
||||
try {
|
||||
classCurriculumGateway.batchAdd(curEList);
|
||||
classCurriculumChapterGateway.batchAdd(chapterEList);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.zcloud.edu.command.study.ClassCurriculumRemoveExe;
|
|||
import com.zcloud.edu.command.study.ClassCurriculumUpdateExe;
|
||||
import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumPageQry;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -63,5 +64,11 @@ public class ClassCurriculumServiceImpl implements ClassCurriculumServiceI {
|
|||
public SingleResponse<ClassCurriculumCO> getInfoById(Long id) {
|
||||
return classCurriculumQueryExe.executeGetInfoById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Response batchAdd(ClassCurriculumBatchAddCmd cmd) {
|
||||
classCurriculumAddExe.executeBatchAdd(cmd);
|
||||
return Response.buildSuccess();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.alibaba.cola.dto.Response;
|
|||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumPageQry;
|
||||
import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd;
|
||||
|
||||
|
|
@ -28,5 +29,7 @@ public interface ClassCurriculumServiceI {
|
|||
void removeBatch(Long[] ids);
|
||||
|
||||
SingleResponse<ClassCurriculumCO> getInfoById(Long id);
|
||||
|
||||
Response batchAdd(ClassCurriculumBatchAddCmd cmd);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public class ClassCurriculumChapterCO extends ClientObject {
|
|||
private Long id;
|
||||
//业务主键id
|
||||
@ApiModelProperty(value = "业务主键id")
|
||||
private String curriculumChapterId;
|
||||
private String classCurriculumChapterId;
|
||||
//班级id
|
||||
@ApiModelProperty(value = "班级id")
|
||||
private String classId;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
package com.zcloud.edu.dto.study;
|
||||
|
||||
import com.alibaba.cola.dto.Command;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* web-client
|
||||
*
|
||||
* @Author zhangyue
|
||||
* @Date 2026-01-16 09:54:32
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ClassCurriculumBatchAddCmd extends Command {
|
||||
|
||||
@ApiModelProperty(value = "课程id", name = "curriculumId", required = true)
|
||||
@NotEmpty(message = "课程id不能为空")
|
||||
private List<String> curriculumIds;
|
||||
|
||||
@ApiModelProperty(value = "班级id", name = "classId", required = true)
|
||||
@NotEmpty(message = "班级id不能为空")
|
||||
private String classId;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ public class ClassCurriculumChapterE extends BaseE {
|
|||
//主键
|
||||
private Long id;
|
||||
//业务主键id
|
||||
private String curriculumChapterId;
|
||||
private String classCurriculumChapterId;
|
||||
//班级id
|
||||
private String classId;
|
||||
//企业ID
|
||||
|
|
@ -34,6 +34,11 @@ public class ClassCurriculumChapterE extends BaseE {
|
|||
private String parentId;
|
||||
//子集
|
||||
private List<ClassCurriculumChapterE> curriculumChapterAddCmdList;
|
||||
|
||||
|
||||
//课程id(批量新增使用)
|
||||
private String curriculumId;
|
||||
|
||||
//删除标识true false
|
||||
private String deleteEnum;
|
||||
//备注
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ import lombok.Data;
|
|||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* web-domain
|
||||
|
|
@ -63,16 +65,16 @@ public class ClassCurriculumE extends BaseE {
|
|||
for (ClassCurriculumE cur : curList){
|
||||
cur.setClassCurriculumId(Tools.get32UUID());
|
||||
for (ClassCurriculumChapterE chapter : cur.getCurriculumChapterAddCmdList()){
|
||||
chapter.setCurriculumChapterId(Tools.get32UUID());
|
||||
chapter.setClassCurriculumChapterId(Tools.get32UUID());
|
||||
chapter.setClassId(cur.getClassId());
|
||||
chapter.setClassCurriculumId(cur.getClassCurriculumId());
|
||||
chapter.setParentId("0");
|
||||
if (chapter.getCurriculumChapterAddCmdList() != null && chapter.getCurriculumChapterAddCmdList().size() > 0){
|
||||
for (ClassCurriculumChapterE childChapter : chapter.getCurriculumChapterAddCmdList()){
|
||||
childChapter.setCurriculumChapterId(Tools.get32UUID());
|
||||
childChapter.setClassCurriculumChapterId(Tools.get32UUID());
|
||||
childChapter.setClassId(cur.getClassId());
|
||||
childChapter.setClassCurriculumId(cur.getClassCurriculumId());
|
||||
childChapter.setParentId(chapter.getCurriculumChapterId());
|
||||
childChapter.setParentId(chapter.getClassCurriculumChapterId());
|
||||
}
|
||||
classCurriculumChapterEList.addAll(chapter.getCurriculumChapterAddCmdList());
|
||||
}
|
||||
|
|
@ -81,5 +83,20 @@ public class ClassCurriculumE extends BaseE {
|
|||
}
|
||||
return classCurriculumChapterEList;
|
||||
}
|
||||
|
||||
public void initBatchAdd(List<ClassCurriculumE> curList, List<ClassCurriculumChapterE> chapterList, String classId){
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
for (ClassCurriculumE cur : curList){
|
||||
cur.setClassCurriculumId(Tools.get32UUID());
|
||||
cur.setClassId(classId);
|
||||
map.put(cur.getCurriculumId(), cur.getClassCurriculumId());
|
||||
}
|
||||
chapterList.stream().forEach(chapter -> {
|
||||
chapter.setClassCurriculumId(map.get(chapter.getCurriculumId()));
|
||||
chapter.setClassId(classId);
|
||||
chapter.setClassCurriculumChapterId(Tools.get32UUID());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import java.math.BigDecimal;
|
|||
public class ClassCurriculumChapterDO extends BaseDO {
|
||||
//业务主键id
|
||||
@ApiModelProperty(value = "业务主键id")
|
||||
private String curriculumChapterId;
|
||||
private String classCurriculumChapterId;
|
||||
//班级id
|
||||
@ApiModelProperty(value = "班级id")
|
||||
private String classId;
|
||||
|
|
|
|||
|
|
@ -57,5 +57,14 @@ public class CurriculumChapterRepositoryImpl extends BaseRepositoryImpl<Curricul
|
|||
queryWrapper.eq("curriculum_id", curriculumId);
|
||||
curriculumChapterMapper.delete(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CurriculumChapterDO> listByCurriculumIds(List<String> curriculumIds) {
|
||||
QueryWrapper<CurriculumChapterDO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("curriculum_id", curriculumIds);
|
||||
queryWrapper.eq("delete_enum", "FALSE");
|
||||
|
||||
return curriculumChapterMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,5 +56,14 @@ public class CurriculumRepositoryImpl extends BaseRepositoryImpl<CurriculumMappe
|
|||
public CurriculumDO getInfoById(Long id) {
|
||||
return curriculumMapper.getInfoById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CurriculumDO> listByCurriculumIds(List<String> curriculumIds) {
|
||||
|
||||
QueryWrapper<CurriculumDO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("curriculum_id", curriculumIds);
|
||||
queryWrapper.eq("delete_enum", "FALSE");
|
||||
return curriculumMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,5 +21,7 @@ public interface CurriculumChapterRepository extends BaseRepository<CurriculumCh
|
|||
List<CurriculumChapterDO> getListByCurriculumId(String curriculumId);
|
||||
|
||||
void deleteByCurriculumId(String curriculumId);
|
||||
|
||||
List<CurriculumChapterDO> listByCurriculumIds(List<String> curriculumIds);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,5 +22,7 @@ public interface CurriculumRepository extends BaseRepository<CurriculumDO> {
|
|||
boolean updateState(@NotNull(message = "id不能为空") List<Long> id, @NotNull(message = "课程状态不能为空") Integer sellFlag);
|
||||
|
||||
CurriculumDO getInfoById(Long id);
|
||||
|
||||
List<CurriculumDO> listByCurriculumIds(List<String> curriculumIds);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue