parent
							
								
									8de9482790
								
							
						
					
					
						commit
						b122d6b1c6
					
				
				 12 changed files with 245 additions and 21 deletions
			
			
		@ -0,0 +1,20 @@ | 
				
			|||||||
 | 
					package cn.soul2.jyjc.admin.dto; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import lombok.Data; | 
				
			||||||
 | 
					import lombok.experimental.Accessors; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * @author Soul2 | 
				
			||||||
 | 
					 * @date 2024-03-24 16:46 | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Data | 
				
			||||||
 | 
					@Accessors(chain = true) | 
				
			||||||
 | 
					public class GetSubjectDTO { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * Qn id | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    private String qnId; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,23 @@ | 
				
			|||||||
 | 
					package cn.soul2.jyjc.admin.service; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.dto.GetSubjectDTO; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.vo.SubjectVO; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * @author Soul2 | 
				
			||||||
 | 
					 * @date 2024-03-24 21:38 | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface ISubjectService { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * 移动端读取问卷 | 
				
			||||||
 | 
					     * | 
				
			||||||
 | 
					     * @param dto 问卷id | 
				
			||||||
 | 
					     * @return {@link List}<{@link SubjectVO}> | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    List<SubjectVO> getSubject(GetSubjectDTO dto); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,68 @@ | 
				
			|||||||
 | 
					package cn.soul2.jyjc.admin.service.impl; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.dto.GetSubjectDTO; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.entity.RefQuestionnaireSubjectDO; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.entity.SubjectDO; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.entity.SubjectItemsDO; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.repository.IRefQuestionnaireSubjectRepository; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.repository.ISubjectItemsRepository; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.repository.ISubjectRepository; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.service.ISubjectService; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.vo.SubjectItemVO; | 
				
			||||||
 | 
					import cn.soul2.jyjc.admin.vo.SubjectVO; | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils; | 
				
			||||||
 | 
					import org.springframework.beans.BeanUtils; | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			||||||
 | 
					import org.springframework.stereotype.Service; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList; | 
				
			||||||
 | 
					import java.util.List; | 
				
			||||||
 | 
					import java.util.Set; | 
				
			||||||
 | 
					import java.util.stream.Collectors; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * @author Soul2 | 
				
			||||||
 | 
					 * @date 2024-03-24 21:38 | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Service | 
				
			||||||
 | 
					public class SubjectServiceImpl implements ISubjectService { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired | 
				
			||||||
 | 
					    private IRefQuestionnaireSubjectRepository refQuestionnaireSubjectRepository; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired | 
				
			||||||
 | 
					    private ISubjectItemsRepository itemsRepository; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired | 
				
			||||||
 | 
					    private ISubjectRepository subjectRepository; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override | 
				
			||||||
 | 
					    public List<SubjectVO> getSubject(GetSubjectDTO dto) { | 
				
			||||||
 | 
					        if (StringUtils.isBlank(dto.getQnId())) { | 
				
			||||||
 | 
					            return new ArrayList<>(); | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					        LambdaQueryWrapper<RefQuestionnaireSubjectDO> query = Wrappers.lambdaQuery(); | 
				
			||||||
 | 
					        query.eq(RefQuestionnaireSubjectDO::getQnId, dto.getQnId()); | 
				
			||||||
 | 
					        List<RefQuestionnaireSubjectDO> refs = refQuestionnaireSubjectRepository.list(query); | 
				
			||||||
 | 
					        Set<String> idSet = refs.stream().map(RefQuestionnaireSubjectDO::getSubjectId).collect(Collectors.toSet()); | 
				
			||||||
 | 
					        List<SubjectItemsDO> itemsDos = itemsRepository.listBySubjectIds(idSet); | 
				
			||||||
 | 
					        List<SubjectDO> list = subjectRepository.listByIds(idSet); | 
				
			||||||
 | 
					        return list.stream().map(e -> { | 
				
			||||||
 | 
					            SubjectVO vo = new SubjectVO(); | 
				
			||||||
 | 
					            BeanUtils.copyProperties(e, vo); | 
				
			||||||
 | 
					            List<SubjectItemVO> items = itemsDos.stream() | 
				
			||||||
 | 
					                    .filter(item -> item.getSubjectId().equals(e.getId())) | 
				
			||||||
 | 
					                    .map(item -> { | 
				
			||||||
 | 
					                        SubjectItemVO itemVO = new SubjectItemVO(); | 
				
			||||||
 | 
					                        BeanUtils.copyProperties(item, itemVO); | 
				
			||||||
 | 
					                        return itemVO.setItemId(item.getId()); | 
				
			||||||
 | 
					                    }) | 
				
			||||||
 | 
					                    .collect(Collectors.toList()); | 
				
			||||||
 | 
					            vo.setItems(items); | 
				
			||||||
 | 
					            return vo; | 
				
			||||||
 | 
					        }).collect(Collectors.toList()); | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					} | 
				
			||||||
@ -1,15 +1,32 @@ | 
				
			|||||||
package cn.soul2.jyjc.admin.utils; | 
					package cn.soul2.jyjc.admin.utils; | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.time.LocalDate; | 
					import org.springframework.beans.factory.annotation.Value; | 
				
			||||||
import java.util.UUID; | 
					import org.springframework.context.ApplicationContext; | 
				
			||||||
 | 
					import org.springframework.context.annotation.AnnotationConfigApplicationContext; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List; | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Test { | 
					public class Test { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Value("${cors.allow-origins}") | 
				
			||||||
 | 
					    private List<String> allowOrigin; | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void main(String[] args) { | 
					    public static void main(String[] args) { | 
				
			||||||
        String ddl = "INSERT INTO cn_soul2.data_table_demo " + | 
					        ApplicationContext context = new AnnotationConfigApplicationContext(Test.class); | 
				
			||||||
                "(id, name, attr1, attr2, update_time, create_time, removed) " + | 
					        Test test = context.getBean(Test.class); | 
				
			||||||
                "VALUES('%s', '测试%d', '%d', '内容%d', '%s', '%s', 0);"; | 
					        for (String s : test.getAllowOrigin()) { | 
				
			||||||
        for (int i = 0; i < 30; i++) { | 
					            System.out.println(s); | 
				
			||||||
            System.out.printf((ddl) + "%n", UUID.randomUUID().toString().replaceAll("-", ""), i, i, i, LocalDate.now(), LocalDate.now()); | 
					 | 
				
			||||||
        } | 
					        } | 
				
			||||||
    } | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<String> getAllowOrigin() { | 
				
			||||||
 | 
					        return allowOrigin; | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //        String ddl = "INSERT INTO cn_soul2.data_table_demo " +
 | 
				
			||||||
 | 
					//                "(id, name, attr1, attr2, update_time, create_time, removed) " +
 | 
				
			||||||
 | 
					//                "VALUES('%s', '测试%d', '%d', '内容%d', '%s', '%s', 0);";
 | 
				
			||||||
 | 
					//        for (int i = 0; i < 30; i++) {
 | 
				
			||||||
 | 
					//            System.out.printf((ddl) + "%n", UUID.randomUUID().toString().replaceAll("-", ""), i, i, i, LocalDate.now(), LocalDate.now());
 | 
				
			||||||
 | 
					//        }
 | 
				
			||||||
} | 
					} | 
				
			||||||
 | 
				
			|||||||
					Loading…
					
					
				
		Reference in new issue