From 0b193b98347b5563e59492d8f57eba8f67af6d23 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 27 六月 2023 11:35:54 +0800 Subject: [PATCH] 新增题目 --- smartor/src/main/java/com/smartor/domain/Icd10Association.java | 54 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java | 144 +++ smartor/src/main/java/com/smartor/domain/SvyLibTopicAndOptionRes.java | 2 smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java | 20 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java | 38 smartor/src/main/java/com/smartor/domain/SvyTopicoption.java | 187 ++++ smartor/src/main/resources/template/uestion_template.ftl | 22 smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java | 8 smartor/pom.xml | 25 ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | 13 smartor/src/main/java/com/smartor/domain/SvyTopic.java | 102 ++ smartor/src/main/java/com/smartor/mapper/SvyTopicoptionMapper.java | 64 + smartor/src/main/resources/mapper/smartor/SvyTopicoptionMapper.xml | 233 ++++++ smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml | 24 smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java | 209 ----- smartor/src/main/java/com/smartor/service/ISvyTopicService.java | 78 ++ smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml | 161 ++++ smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java | 72 + smartor/src/main/resources/log4j.properties | 15 smartor/src/main/java/com/smartor/mapper/Icd10AssociationMapper.java | 63 + smartor/src/main/java/com/smartor/domain/Question.java | 20 ruoyi-common/pom.xml | 7 smartor/src/main/resources/mapper/smartor/Icd10AssociationMapper.xml | 69 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java | 33 smartor/src/main/resources/template/quiz.ftl | 22 smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java | 25 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java | 131 +++ ruoyi-admin/src/main/java/com/ruoyi/web/core/config/UploadConfig.java | 14 smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java | 2 ruoyi-admin/src/main/resources/template/question.ftl | 36 smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java | 313 ++++++++ smartor/src/main/java/com/smartor/domain/SvyLibTitle.java | 14 33 files changed, 1,911 insertions(+), 311 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 7f73136..3ca92b2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -4,19 +4,18 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; /** * 鍚姩绋嬪簭 - * + * * @author ruoyi */ //@SpringBootApplication(scanBasePackages="com.smartor",exclude = { DataSourceAutoConfiguration.class }) -@SpringBootApplication(scanBasePackages={"com.ruoyi","com.smartor"},exclude = { DataSourceAutoConfiguration.class }) -@MapperScan(value="com.smartor.mapper") -public class RuoYiApplication -{ - public static void main(String[] args) - { +@SpringBootApplication(scanBasePackages = {"com.ruoyi", "com.smartor"}, exclude = {DataSourceAutoConfiguration.class, MultipartAutoConfiguration.class}) +@MapperScan(value = "com.smartor.mapper") +public class RuoYiApplication { + public static void main(String[] args) { // System.setProperty("spring.devtools.restart.enabled", "false"); SpringApplication.run(RuoYiApplication.class, args); System.out.println("(鈾モ棤鈥库棤)锞夛緸 鑻ヤ緷鍚姩鎴愬姛 醿�(麓凇`醿�)锞� \n" + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java new file mode 100644 index 0000000..ff53755 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java @@ -0,0 +1,144 @@ +package com.ruoyi.web.controller.smartor; + +import com.google.zxing.BarcodeFormat; +import com.google.zxing.WriterException; +import com.google.zxing.client.j2se.MatrixToImageWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.QRCodeWriter; +import com.smartor.domain.Question; +import freemarker.template.Configuration; +import freemarker.template.Template; +import freemarker.template.TemplateException; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Api(description = "闂嵎浜岀淮鐮�") +@RestController +@RequestMapping("/qrcode") +public class QRCodeController { + + private final Configuration configuration; + + public QRCodeController(Configuration configuration) { + this.configuration = configuration; + } + + /** + * 闂嵎棰樼洰 + * + * @param reqid 闂嵎ID + * userid 鐢ㄦ埛ID + * @return + * @throws IOException + * @throws TemplateException + */ + @ResponseBody + @GetMapping(value = "/generateStaticHtml/{reqid}/{userid}", produces = MediaType.TEXT_HTML_VALUE) + public String generateStaticHtml(@PathVariable("reqid") String reqid, @PathVariable("userid") String userid) throws IOException, TemplateException { + // 鍒涘缓Freemarker閰嶇疆 + Configuration configuration = new Configuration(Configuration.VERSION_2_3_31); + configuration.setClassForTemplateLoading(SvyLibTitleController.class, "/template"); + configuration.setDefaultEncoding("UTF-8"); + + try { + // 鍔犺浇妯℃澘 + Template template = configuration.getTemplate("question.ftl"); + + // 鍑嗗棰樼洰鏁版嵁 + List<Question> questions = new ArrayList<>(); + + // 鍗曢�夐 + List<String> singleChoiceOptions = new ArrayList<>(); + singleChoiceOptions.add("Option 1"); + singleChoiceOptions.add("Option 2"); + singleChoiceOptions.add("Option 3"); + Question singleChoiceQuestion = new Question("singleChoice", "鍗曢�夐111", "鍗曢�夐棰樼洰1锛�", singleChoiceOptions); + + List<String> singleChoiceOptions2 = new ArrayList<>(); + singleChoiceOptions2.add("Option 4"); + singleChoiceOptions2.add("Option 5"); + singleChoiceOptions2.add("Option 6"); + Question singleChoiceQuestion2 = new Question("singleChoice", "鍗曢�夐222", "鍗曢�夐棰樼洰2锛�", singleChoiceOptions2); + + questions.add(singleChoiceQuestion); + questions.add(singleChoiceQuestion2); + + // 澶氶�夐 + List<String> multipleChoiceOptions = new ArrayList<>(); + multipleChoiceOptions.add("Option A"); + multipleChoiceOptions.add("Option B"); + multipleChoiceOptions.add("Option C"); + Question multipleChoiceQuestion = new Question("multipleChoice", "澶氶�夐1", "Question 2: Select multiple options", multipleChoiceOptions); + questions.add(multipleChoiceQuestion); + + // 闂瓟棰� + Question openEndedQuestion = new Question("openEnded", "闂瓟棰橀", "闂瓟棰橀鐩�1", null); + questions.add(openEndedQuestion); + + // 鍑嗗妯℃澘鏁版嵁 + Map<String, Object> data = new HashMap<>(); + data.put("questions", questions); + + // 娓叉煋妯℃澘 + StringWriter writer = new StringWriter(); + template.process(data, writer); + String renderedTemplate = writer.toString(); + return writer.toString(); + // 杩斿洖妯℃澘鍐呭缁欏鎴风 + // System.out.println(renderedTemplate); // 杩欓噷鍙槸绀轰緥锛屽疄闄呭簲鐢ㄤ腑搴斿皢鍐呭杩斿洖缁欏鎴风杩涜灞曠ず + } catch (IOException | TemplateException e) { + e.printStackTrace(); + } + return null; + } + + /** + * @param reqid 闂嵎ID + * @param userid 鐢ㄦ埛ID + */ + @ApiOperation("鑾峰彇闂嵎浜岀淮鐮�") + @GetMapping(value = "/getQRcode/{reqid}/{userid}") + public void getQRcode(@PathVariable("reqid") String reqid, @PathVariable("userid") String userid) { + String url = "http://192.168.2.10:8080/smartor/svytitle/generateStaticHtml"; + String filePath = "D:\\daima\\qrcode.png"; // 淇濆瓨浜岀淮鐮佸浘鍍忕殑鏂囦欢璺緞 + + generateQRCode(url, filePath); + + System.out.println("QR Code generated successfully!"); + } + + private void generateQRCode(String url, String filePath) { + QRCodeWriter qrCodeWriter = new QRCodeWriter(); + try { + BitMatrix bitMatrix = qrCodeWriter.encode(url, BarcodeFormat.QR_CODE, 500, 500); + + File outputFile = new File(filePath); + MatrixToImageWriter.writeToPath(bitMatrix, "PNG", outputFile.toPath()); + } catch (WriterException | IOException e) { + e.printStackTrace(); + } + } + + /** + * 闂埜缁撴灉澶勭悊 + * + * @param request + */ + @PostMapping(value = "/getFormDate") + public void getFormDate(HttpServletRequest request) { + Map<String, String[]> formData = request.getParameterMap(); + System.out.println(formData.toString()); + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java index f66b29b..062f98d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java @@ -1,29 +1,20 @@ -package com.smartor.controller; +package com.ruoyi.web.controller.smartor; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import com.smartor.domain.SvyLibTitleReq; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.smartor.domain.SvyLibTitle; +import com.smartor.domain.SvyLibTitleReq; import com.smartor.service.ISvyLibTitleService; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 闂嵎Controller @@ -75,10 +66,10 @@ /** * 鏂板闂嵎 */ + @ApiOperation("鏂板闂嵎") @PreAuthorize("@ss.hasPermi('smartor:svytitle:add')") - @Log(title = "闂嵎", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody SvyLibTitle svyLibTitle) { + @PostMapping("/addSvyLibTitle") + public AjaxResult addSvyLibTitle(@RequestBody SvyLibTitle svyLibTitle) { return toAjax(svyLibTitleService.insertSvyLibTitle(svyLibTitle)); } @@ -101,4 +92,7 @@ public AjaxResult remove(@PathVariable Long[] svyids) { return toAjax(svyLibTitleService.deleteSvyLibTitleBySvyids(svyids)); } + + } + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java index 7661d42..43d5360 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java @@ -111,37 +111,4 @@ } - /** - * 鎵归噺瀵煎叆闂鐩� - */ - @ApiOperation("鎵归噺瀵煎叆闂棶棰樼洰") - @PostMapping("/importLitTopic") - public AjaxResult importLitTopic(MultipartFile multipartFile) { - LoginUser loginUser = getLoginUser(); - SysUser user = loginUser.getUser(); - return success(svyLibTopicService.importLitTopic(user, multipartFile)); - } - - - /** - * 瀵煎叆棰樼洰妯℃澘 - * - * @param response - */ - @ApiOperation("瀵煎叆棰樼洰妯℃澘") - @PostMapping("/importLitTopicTemplate") - public void importLitTopicTemplate(HttpServletResponse response) { - ExcelUtil<SvyLibTopicRes> util = new ExcelUtil<SvyLibTopicRes>(SvyLibTopicRes.class); - util.importTemplateExcel(response, "瀵煎叆棰樼洰"); - } - - /** - * 鑾峰彇棰樼洰 - */ - @ApiOperation("鑾峰彇棰樼洰") - @PostMapping("/showTopic") - public AjaxResult showTopic(@RequestBody SvyTopicReq svyTopicReq) { - return success(svyLibTopicService.showTopic(svyTopicReq)); - } - } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java new file mode 100644 index 0000000..702336b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java @@ -0,0 +1,131 @@ +package com.ruoyi.web.controller.smartor; + +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.smartor.domain.SvyLibTopicRes; +import com.smartor.domain.SvyTopic; +import com.smartor.domain.SvyTopicReq; +import com.smartor.service.ISvyTopicService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 棰樼洰Controller + * + * @author ruoyi + * @date 2023-06-26 + */ +@Api(description = "棰樼洰") +@RestController +@RequestMapping("/system/topic") +public class SvyTopicController extends BaseController { + @Autowired + private ISvyTopicService svyTopicService; + + /** + * 鏌ヨ棰樼洰鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('system:topic:list')") + @GetMapping("/list") + public TableDataInfo list(SvyTopic svyTopic) { + startPage(); + List<SvyTopic> list = svyTopicService.selectSvyTopicList(svyTopic); + return getDataTable(list); + } + + /** + * 瀵煎嚭棰樼洰鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('system:topic:export')") + @Log(title = "棰樼洰", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SvyTopic svyTopic) { + List<SvyTopic> list = svyTopicService.selectSvyTopicList(svyTopic); + ExcelUtil<SvyTopic> util = new ExcelUtil<SvyTopic>(SvyTopic.class); + util.exportExcel(response, list, "棰樼洰鏁版嵁"); + } + + /** + * 鑾峰彇棰樼洰璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('system:topic:query')") + @GetMapping(value = "/{topicid}") + public AjaxResult getInfo(@PathVariable("topicid") Long topicid) { + return success(svyTopicService.selectSvyTopicByTopicid(topicid)); + } + + /** + * 鏂板棰樼洰 + */ + @PreAuthorize("@ss.hasPermi('system:topic:add')") + @Log(title = "棰樼洰", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SvyTopic svyTopic) { + return toAjax(svyTopicService.insertSvyTopic(svyTopic)); + } + + /** + * 淇敼棰樼洰 + */ + @PreAuthorize("@ss.hasPermi('system:topic:edit')") + @Log(title = "棰樼洰", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SvyTopic svyTopic) { + return toAjax(svyTopicService.updateSvyTopic(svyTopic)); + } + + /** + * 鍒犻櫎棰樼洰 + */ + @PreAuthorize("@ss.hasPermi('system:topic:remove')") + @Log(title = "棰樼洰", businessType = BusinessType.DELETE) + @DeleteMapping("/{topicids}") + public AjaxResult remove(@PathVariable Long[] topicids) { + return toAjax(svyTopicService.deleteSvyTopicByTopicids(topicids)); + } + + /** + * 鎵归噺瀵煎叆闂鐩� + */ + @ApiOperation("鎵归噺瀵煎叆棰樼洰") + @PostMapping("/importTopic") + public AjaxResult importTopic(@RequestPart(value = "file") MultipartFile multipartFile) { + LoginUser loginUser = getLoginUser(); + SysUser user = loginUser.getUser(); + return success(svyTopicService.importLitTopic(user, multipartFile)); + } + + /** + * 瀵煎叆棰樼洰妯℃澘 + * + * @param response + */ + @ApiOperation("瀵煎叆棰樼洰妯℃澘") + @PostMapping("/importTopicTemplate") + public void importTopicTemplate(HttpServletResponse response) { + ExcelUtil<SvyLibTopicRes> util = new ExcelUtil<SvyLibTopicRes>(SvyLibTopicRes.class); + util.importTemplateExcel(response, "瀵煎叆棰樼洰"); + } + + /** + * 鑾峰彇棰樼洰 + */ + @ApiOperation("鑾峰彇棰樼洰") + @PostMapping("/showTopic") + public AjaxResult showTopic(@RequestBody SvyTopicReq svyTopicReq) { + return success(svyTopicService.showTopic(svyTopicReq)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/UploadConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/UploadConfig.java new file mode 100644 index 0000000..dbd043d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/UploadConfig.java @@ -0,0 +1,14 @@ +package com.ruoyi.web.core.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.multipart.MultipartResolver; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; + +@Configuration +public class UploadConfig { + @Bean(name = "multipartResolver") + public MultipartResolver multipartResolver() { + return new CommonsMultipartResolver(); + } +} diff --git a/ruoyi-admin/src/main/resources/template/question.ftl b/ruoyi-admin/src/main/resources/template/question.ftl new file mode 100644 index 0000000..13a458a --- /dev/null +++ b/ruoyi-admin/src/main/resources/template/question.ftl @@ -0,0 +1,36 @@ +<html> +<head> + <title>Questionnaire</title> +</head> +<body> +<h1>Questionnaire</h1> + +<form action="/smartor/svytitle/getFormDate" method="post"> + <#list questions as question> + <h2>${question.title}</h2> + + <#if question.type == "singleChoice"> + <#list question.options as option> + <input type="radio" name="${question.name}" value="${option}" id="${option}"> + <label for="${option}">${option}</label><br> + </#list> + </#if> + + <#if question.type == "multipleChoice"> + <#list question.options as option> + <input type="checkbox" name="${question.name}" value="${option}" id="${option}"> + <label for="${option}">${option}</label><br> + </#list> + </#if> + + <#if question.type == "openEnded"> + <textarea name="${question.name}" rows="4" cols="50"></textarea> + </#if> + + <br> + </#list> + + <input type="submit" value="Submit"> +</form> +</body> +</html> \ No newline at end of file diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index d5d43dd..bb034c6 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -28,7 +28,11 @@ <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> - + <dependency> + <groupId>org.freemarker</groupId> + <artifactId>freemarker</artifactId> + <version>2.3.31</version> + </dependency> <!-- SpringWeb妯″潡 --> <dependency> <groupId>org.springframework</groupId> @@ -169,6 +173,7 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 2125853..ff1fe21 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -111,7 +111,7 @@ // 杩囨护璇锋眰 .authorizeRequests() // 瀵逛簬鐧诲綍login 娉ㄥ唽register 楠岃瘉鐮乧aptchaImage 鍏佽鍖垮悕璁块棶 - .antMatchers("/login", "/register", "/captchaImage").permitAll() + .antMatchers("/login", "/register", "/captchaImage","/qrcode/generateStaticHtml","/qrcode/getQRcode","/qrcode/getFormDate").permitAll() // 闈欐�佽祫婧愶紝鍙尶鍚嶈闂� .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() diff --git a/smartor/pom.xml b/smartor/pom.xml index 3bdf790..91f3996 100644 --- a/smartor/pom.xml +++ b/smartor/pom.xml @@ -33,6 +33,31 @@ <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.4.0</version> </dependency> + <!-- https://mvnrepository.com/artifact/com.sparkjava/spark-core --> + <dependency> + <groupId>com.sparkjava</groupId> + <artifactId>spark-core</artifactId> + <version>2.9.4</version> + </dependency> + <!-- https://mvnrepository.com/artifact/com.sparkjava/spark-template-freemarker --> + <dependency> + <groupId>com.sparkjava</groupId> + <artifactId>spark-template-freemarker</artifactId> + <version>2.7.1</version> + </dependency> + <dependency> + <groupId>com.google.zxing</groupId> + <artifactId>core</artifactId> + <version>3.5.1</version> + </dependency> + + <!-- ZXing JavaSE --> + <dependency> + <groupId>com.google.zxing</groupId> + <artifactId>javase</artifactId> + <version>3.5.1</version> + </dependency> </dependencies> + </project> \ No newline at end of file diff --git a/smartor/src/main/java/com/smartor/domain/Icd10Association.java b/smartor/src/main/java/com/smartor/domain/Icd10Association.java new file mode 100644 index 0000000..22e9ee1 --- /dev/null +++ b/smartor/src/main/java/com/smartor/domain/Icd10Association.java @@ -0,0 +1,54 @@ +package com.smartor.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +import java.util.Date; + +/** + * 鐤剧梾鍏宠仈瀵硅薄 icd10_association + * + * @author ruoyi + * @date 2023-06-26 + */ +@Data +@ApiModel(value = "Icd10Association", description = "鐤剧梾鍏宠仈瀵硅薄") +public class Icd10Association { + private static final long serialVersionUID = 1L; + + /** + * 鐤剧梾缂栫爜 + */ + @ApiModelProperty(value = "鐤剧梾缂栫爜") + @Excel(name = "鐤剧梾缂栫爜") + private String icd10code; + + /** + * 鐤剧梾鍚嶇О + */ + @ApiModelProperty(value = "鐤剧梾鍚嶇О") + @Excel(name = "鐤剧梾鍚嶇О") + private String icd10name; + + /** + * 闂嵎ID + */ + @ApiModelProperty(value = "闂嵎ID") + @Excel(name = "闂嵎ID") + private Long svyid; + + + /** + * 鏇存柊鏃堕棿 + */ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updatetime; + +} diff --git a/smartor/src/main/java/com/smartor/domain/Question.java b/smartor/src/main/java/com/smartor/domain/Question.java new file mode 100644 index 0000000..c8ac646 --- /dev/null +++ b/smartor/src/main/java/com/smartor/domain/Question.java @@ -0,0 +1,20 @@ +package com.smartor.domain; + +import lombok.Data; + +import java.util.List; + +@Data +public class Question { + private String type; + private String name; + private String title; + private List<String> options; + + public Question(String type, String name, String title, List<String> options) { + this.type = type; + this.name = name; + this.title = title; + this.options = options; + } +} diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java b/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java index c42f285..aa7f05d 100644 --- a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java +++ b/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java @@ -2,6 +2,7 @@ import java.math.BigDecimal; import java.util.Date; +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; @@ -148,6 +149,19 @@ @ApiModelProperty(value = "鐤剧梾鍚嶇О") private String icdname; + /** + * 鐤剧梾ID + */ + @ApiModelProperty(value = "鐤剧梾ID") + private List<String> icdID; + + /** + * 闂嵎棰樼洰闆嗗悎 + */ + @ApiModelProperty(value = "闂嵎棰樼洰闆嗗悎") + private List<SvyLibTopic> svyLibTopics; + + public SvyLibTitle(Long svyid, String icdname) { this.svyid = svyid; diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTopicAndOptionRes.java b/smartor/src/main/java/com/smartor/domain/SvyLibTopicAndOptionRes.java index daf1684..d5ce65f 100644 --- a/smartor/src/main/java/com/smartor/domain/SvyLibTopicAndOptionRes.java +++ b/smartor/src/main/java/com/smartor/domain/SvyLibTopicAndOptionRes.java @@ -12,7 +12,7 @@ * @date 2023-03-03 */ @Data -@ApiModel(value = "SvyLibTopicAndOptionRes", description = "闂嵎棰樼洰灞曠ず杩斿弬") +@ApiModel(value = "SvyLibTopicAndOptionRes", description = "棰樼洰灞曠ず杩斿弬") public class SvyLibTopicAndOptionRes extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/smartor/src/main/java/com/smartor/domain/SvyTopic.java b/smartor/src/main/java/com/smartor/domain/SvyTopic.java new file mode 100644 index 0000000..f2ed734 --- /dev/null +++ b/smartor/src/main/java/com/smartor/domain/SvyTopic.java @@ -0,0 +1,102 @@ +package com.smartor.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 棰樼洰瀵硅薄 svy_topic + * + * @author ruoyi + * @date 2023-06-26 + */ +@Data +public class SvyTopic extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 鑷ID + */ + private Long topicid; + + /** + * 棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖ + */ + @Excel(name = " 棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖ ") + private Long topictype; + + /** + * 棰樼洰Code + */ + @Excel(name = " 棰樼洰Code ") + private String topiccode; + + /** + * 棰樼洰 + */ + @Excel(name = " 棰樼洰 ") + private String topic; + + /** + * 棰樼洰鏍囩 + */ + @Excel(name = "棰樼洰鏍囩") + private String tag; + + /** + * 鎺掑簭 + */ + @Excel(name = " 鎺掑簭 ") + private Long sort; + + /** + * 鏄惁蹇呭~ + */ + @Excel(name = " 鏄惁蹇呭~ ") + private Long ismandatory; + + /** + * 鏄惁闅愯棌 + */ + @Excel(name = " 鏄惁闅愯棌 ") + private Long ishide; + + /** + * 鍒犻櫎鏍囪 + */ + private String delFlag; + + /** + * 鏈烘瀯ID + */ + @Excel(name = " 鏈烘瀯ID ") + private String orgid; + + /** + * 涓婁紶鏍囪 + */ + @Excel(name = " 涓婁紶鏍囪 ") + private Long isupload; + + /** + * 涓婁紶鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd") + private Date uploadTime; + + + /** + * 涓婁紶鏍囪 + */ + @ApiModelProperty(name = "绛旀") + private String answer; + + +} diff --git a/smartor/src/main/java/com/smartor/domain/SvyTopicoption.java b/smartor/src/main/java/com/smartor/domain/SvyTopicoption.java new file mode 100644 index 0000000..c25e3f7 --- /dev/null +++ b/smartor/src/main/java/com/smartor/domain/SvyTopicoption.java @@ -0,0 +1,187 @@ +package com.smartor.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 闂閫夐」瀵硅薄 SvyTopicoption + * + * @author ruoyi + * @date 2023-03-02 + */ +@Data +@ApiModel(value = "SvyLibTopicoption", description = "闂閫夐」瀵硅薄") +public class SvyTopicoption extends BaseEntity { + + /** + * 鑷ID + */ + @ApiModelProperty(name = "鑷ID") + private Long optionid; + + /** + * 棰樼洰ID + */ + @ApiModelProperty(name = "棰樼洰ID") + @Excel(name = " 棰樼洰ID ") + private Long topicid; + + /** + * 闂嵎ID + */ + @ApiModelProperty(name = "闂嵎ID") + private Long svyid; + + /** + * 棰樼洰绫诲瀷 + */ + @ApiModelProperty(name = "棰樼洰绫诲瀷") + private Long topictype; + + /** + * 閫夐」Code + */ + @ApiModelProperty(name = "閫夐」Code") + private String optioncode; + + /** + * 閫夐」鍐呭 + */ + @ApiModelProperty(name = "閫夐」鍐呭") + private String optioncontent; + + /** + * 鏄惁瀛樺湪鏄庣粏 + */ + @ApiModelProperty(name = "鏄惁瀛樺湪鏄庣粏") + private Long isexistdetail; + + /** + * 鏄庣粏鏄惁蹇呭~ + */ + @ApiModelProperty(name = "鏄庣粏鏄惁蹇呭~") + private Long detailismandatory; + + /** + * 鏄惁寮傚父椤圭洰 + */ + @ApiModelProperty(name = "鏄惁寮傚父椤圭洰") + private Long isexceptionitem; + + /** + * 鏄惁璺熻繘 + */ + @ApiModelProperty(name = "鏄惁璺熻繘") + private Long istrack; + + /** + * 鍒嗘暟 + */ + @ApiModelProperty(name = "鍒嗘暟") + private Long score; + + /** + * 鎻愮ず + */ + @ApiModelProperty(name = "鎻愮ず") + private String prompt; + + /** + * 璺宠浆 + */ + @ApiModelProperty(name = "璺宠浆") + private String jump; + + /** + * 鐖堕�夐」ID + */ + @ApiModelProperty(name = "鐖堕�夐」ID") + private Long parentoptionid; + + /** + * 鏄惁浜掓枼 + */ + @ApiModelProperty(name = "鏄惁浜掓枼") + private Long ismutex; + + /** + * 楠岃瘉瑙勫垯 + */ + @ApiModelProperty(name = "楠岃瘉瑙勫垯") + private String verifyrule; + + /** + * 鎺掑簭 + */ + @ApiModelProperty(name = "鎺掑簭") + private Long sort; + + /** + * 楠岃瘉绫诲瀷;0.涓嶉獙璇� 1.鏁存暟 2.灏忔暟 3.鎵嬫満鍙� 4.韬唤璇� 5.鏃ユ湡 + */ + @ApiModelProperty(name = "楠岃瘉绫诲瀷;0.涓嶉獙璇� 1.鏁存暟 2.灏忔暟 3.鎵嬫満鍙� 4.韬唤璇� 5.鏃ユ湡 ") + private Long verificationtype; + + /** + * 鏄惁闄愬埗鑼冨洿 + */ + @ApiModelProperty(name = "鏄惁闄愬埗鑼冨洿") + private Long isrange; + + /** + * 鏈�灏忚寖鍥� + */ + @ApiModelProperty(name = "鏈�灏忚寖鍥�") + private String minrange; + + /** + * 鏈�澶ц寖鍥� + */ + @ApiModelProperty(name = "鏈�澶ц寖鍥�") + private String maxrange; + + /** + * 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 + */ + @ApiModelProperty(name = "鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟") + private Long rangelength; + + /** + * 鏈烘瀯ID + */ + @ApiModelProperty(name = "鏈烘瀯ID") + private String orgid; + + /** + * 涓婁竴鐗堟湰ID + */ + @ApiModelProperty(name = "涓婁竴鐗堟湰ID") + private Long oldid; + + /** + * 鍒犻櫎鏍囪 + */ + @ApiModelProperty(name = "鍒犻櫎鏍囪") + private String delFlag; + + /** + * 涓婁紶鏍囪 + */ + @ApiModelProperty(name = "涓婁紶鏍囪") + private Long isupload; + + /** + * 涓婁紶鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "涓婁紶鏃堕棿") + private Date uploadTime; + +} + diff --git a/smartor/src/main/java/com/smartor/mapper/Icd10AssociationMapper.java b/smartor/src/main/java/com/smartor/mapper/Icd10AssociationMapper.java new file mode 100644 index 0000000..c67bc6d --- /dev/null +++ b/smartor/src/main/java/com/smartor/mapper/Icd10AssociationMapper.java @@ -0,0 +1,63 @@ +package com.smartor.mapper; + +import com.smartor.domain.Icd10Association; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 鐤剧梾鍏宠仈Mapper鎺ュ彛 + * + * @author ruoyi + * @date 2023-06-26 + */ +@Mapper +public interface Icd10AssociationMapper { + /** + * 鏌ヨ鐤剧梾鍏宠仈 + * + * @param icd10code 鐤剧梾鍏宠仈涓婚敭 + * @return 鐤剧梾鍏宠仈 + */ + public Icd10Association selectIcd10AssociationByIcd10code(String icd10code); + + /** + * 鏌ヨ鐤剧梾鍏宠仈鍒楄〃 + * + * @param icd10Association 鐤剧梾鍏宠仈 + * @return 鐤剧梾鍏宠仈闆嗗悎 + */ + public List<Icd10Association> selectIcd10AssociationList(Icd10Association icd10Association); + + /** + * 鏂板鐤剧梾鍏宠仈 + * + * @param icd10Association 鐤剧梾鍏宠仈 + * @return 缁撴灉 + */ + public int insertIcd10Association(Icd10Association icd10Association); + + /** + * 淇敼鐤剧梾鍏宠仈 + * + * @param icd10Association 鐤剧梾鍏宠仈 + * @return 缁撴灉 + */ + public int updateIcd10Association(Icd10Association icd10Association); + + /** + * 鍒犻櫎鐤剧梾鍏宠仈 + * + * @param icd10code 鐤剧梾鍏宠仈涓婚敭 + * @return 缁撴灉 + */ + public int deleteIcd10AssociationByIcd10code(String icd10code); + + /** + * 鎵归噺鍒犻櫎鐤剧梾鍏宠仈 + * + * @param icd10codes 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteIcd10AssociationByIcd10codes(String[] icd10codes); +} diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java index a8f60d7..af1fd94 100644 --- a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java +++ b/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java @@ -1,20 +1,22 @@ package com.smartor.mapper; import java.util.List; + import com.smartor.domain.SvyLibTitle; import com.smartor.domain.SvyLibTitleReq; +import org.apache.ibatis.annotations.Mapper; /** * 闂嵎Mapper鎺ュ彛 - * + * * @author ruoyi * @date 2023-03-02 */ -public interface SvyLibTitleMapper -{ +@Mapper +public interface SvyLibTitleMapper { /** * 鏌ヨ闂嵎 - * + * * @param svyid 闂嵎涓婚敭 * @return 闂嵎 */ @@ -22,7 +24,7 @@ /** * 鏌ヨ闂嵎鍒楄〃 - * + * * @param svyLibTitle 闂嵎 * @return 闂嵎闆嗗悎 */ @@ -30,7 +32,7 @@ /** * 鏂板闂嵎 - * + * * @param svyLibTitle 闂嵎 * @return 缁撴灉 */ @@ -38,7 +40,7 @@ /** * 淇敼闂嵎 - * + * * @param svyLibTitle 闂嵎 * @return 缁撴灉 */ @@ -46,7 +48,7 @@ /** * 鍒犻櫎闂嵎 - * + * * @param svyid 闂嵎涓婚敭 * @return 缁撴灉 */ @@ -54,7 +56,7 @@ /** * 鎵归噺鍒犻櫎闂嵎 - * + * * @param svyids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 * @return 缁撴灉 */ diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java index 37f2abc..4fb56d9 100644 --- a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java +++ b/smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java @@ -64,5 +64,5 @@ public int deleteSvyLibTopicByTopicids(Long[] topicids); - public List<SvyLibTopicAndOptionRes> showTopic(SvyTopicReq svyTopicReq); + } diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java new file mode 100644 index 0000000..717bbd6 --- /dev/null +++ b/smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java @@ -0,0 +1,72 @@ +package com.smartor.mapper; + +import com.smartor.domain.SvyLibTopic; +import com.smartor.domain.SvyLibTopicAndOptionRes; +import com.smartor.domain.SvyTopic; +import com.smartor.domain.SvyTopicReq; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 闂嵎棰樼洰Mapper鎺ュ彛 + * + * @author ruoyi + * @date 2023-03-03 + */ +@Mapper +public interface SvyTopicMapper { + /** + * 鏌ヨ闂嵎棰樼洰 + * + * @param topicid 闂嵎棰樼洰涓婚敭 + * @return 闂嵎棰樼洰 + */ + public SvyTopic selectSvyTopicByTopicid(Long topicid); + + /** + * 鏌ヨ闂嵎棰樼洰鍒楄〃 + * + * @param svyTopic 闂嵎棰樼洰 + * @return 闂嵎棰樼洰闆嗗悎 + */ + public List<SvyTopic> selectSvyTopicList(SvyTopic svyTopic); + + /** + * 鏂板棰樼洰 + * + * @param svyTopic 闂嵎棰樼洰 + * @return 缁撴灉 + */ + public int insertSvyTopic(SvyTopic svyTopic); + + /** + * 淇敼闂嵎棰樼洰 + * + * @param svyTopic 闂嵎棰樼洰 + * @return 缁撴灉 + */ + public int updateSvyTopic(SvyTopic svyTopic); + + /** + * 鍒犻櫎闂嵎棰樼洰 + * + * @param topicid 闂嵎棰樼洰涓婚敭 + * @return 缁撴灉 + */ + public int deleteSvyTopicByTopicid(Long topicid); + + /** + * 鎵归噺鍒犻櫎闂嵎棰樼洰 + * + * @param topicids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteSvyTopicByTopicids(Long[] topicids); + + public List<SvyLibTopicAndOptionRes> showTopic(SvyTopicReq svyTopicReq); + + + + +} diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTopicoptionMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTopicoptionMapper.java new file mode 100644 index 0000000..7f6f16f --- /dev/null +++ b/smartor/src/main/java/com/smartor/mapper/SvyTopicoptionMapper.java @@ -0,0 +1,64 @@ +package com.smartor.mapper; + +import com.smartor.domain.SvyTopicoption; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 闂嵎闂閫夐」Mapper鎺ュ彛 + * + * @author ruoyi + * @date 2023-03-02 + */ +@Mapper +public interface SvyTopicoptionMapper { + /** + * 鏌ヨ闂嵎闂閫夐」 + * + * @param optionid 闂嵎闂閫夐」涓婚敭 + * @return 闂嵎闂閫夐」 + */ + public SvyTopicoption selectSvyTopicoptionByOptionid(Long optionid); + + /** + * 鏌ヨ闂嵎闂閫夐」鍒楄〃 + * + * @param svyTopicoption 闂嵎闂閫夐」 + * @return 闂嵎闂閫夐」闆嗗悎 + */ + public List<SvyTopicoption> selectSvyTopicoptionList(SvyTopicoption svyTopicoption); + + /** + * 鏂板闂嵎闂閫夐」 + * + * @param svyTopicoption 闂嵎闂閫夐」 + * @return 缁撴灉 + */ + public int insertSvyTopicoption(SvyTopicoption svyTopicoption); + + /** + * 淇敼闂嵎闂閫夐」 + * + * @param svyTopicoption 闂嵎闂閫夐」 + * @return 缁撴灉 + */ + public int updateSvyTopicoption(SvyTopicoption svyTopicoption); + + /** + * 鍒犻櫎闂嵎闂閫夐」 + * + * @param optionid 闂嵎闂閫夐」涓婚敭 + * @return 缁撴灉 + */ + public int deleteSvyTopicoptionByOptionid(Long optionid); + + /** + * 鎵归噺鍒犻櫎闂嵎闂閫夐」 + * + * @param optionids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteSvyTopicoptionByOptionids(Long[] optionids); + +} diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java b/smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java index 4a93408..8cdd5ac 100644 --- a/smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java +++ b/smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java @@ -65,13 +65,5 @@ */ public int deleteSvyLibTopicByTopicid(Long topicid); - /** - * 鎵归噺瀵煎叆闂棶棰樼洰 - * - * @param multipartFile - * @return - */ - public List<SvyLibTopicRes> importLitTopic(SysUser user, MultipartFile multipartFile); - public SvyLibTopicRes showTopic(SvyTopicReq svyTopicReq); } diff --git a/smartor/src/main/java/com/smartor/service/ISvyTopicService.java b/smartor/src/main/java/com/smartor/service/ISvyTopicService.java new file mode 100644 index 0000000..8a58a32 --- /dev/null +++ b/smartor/src/main/java/com/smartor/service/ISvyTopicService.java @@ -0,0 +1,78 @@ +package com.smartor.service; + +import com.ruoyi.common.core.domain.entity.SysUser; +import com.smartor.domain.SvyLibTopicAndOptionRes; +import com.smartor.domain.SvyLibTopicRes; +import com.smartor.domain.SvyTopic; +import com.smartor.domain.SvyTopicReq; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; +import java.util.Map; + +/** + * 棰樼洰Service鎺ュ彛 + * + * @author ruoyi + * @date 2023-06-26 + */ +public interface ISvyTopicService { + /** + * 鏌ヨ棰樼洰 + * + * @param topicid 棰樼洰涓婚敭 + * @return 棰樼洰 + */ + public SvyTopic selectSvyTopicByTopicid(Long topicid); + + /** + * 鏌ヨ棰樼洰鍒楄〃 + * + * @param svyTopic 棰樼洰 + * @return 棰樼洰闆嗗悎 + */ + public List<SvyTopic> selectSvyTopicList(SvyTopic svyTopic); + + /** + * 鏂板棰樼洰 + * + * @param svyTopic 棰樼洰 + * @return 缁撴灉 + */ + public int insertSvyTopic(SvyTopic svyTopic); + + /** + * 淇敼棰樼洰 + * + * @param svyTopic 棰樼洰 + * @return 缁撴灉 + */ + public int updateSvyTopic(SvyTopic svyTopic); + + /** + * 鎵归噺鍒犻櫎棰樼洰 + * + * @param topicids 闇�瑕佸垹闄ょ殑棰樼洰涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteSvyTopicByTopicids(Long[] topicids); + + /** + * 鍒犻櫎棰樼洰淇℃伅 + * + * @param topicid 棰樼洰涓婚敭 + * @return 缁撴灉 + */ + public int deleteSvyTopicByTopicid(Long topicid); + + + /** + * 鎵归噺瀵煎叆闂棶棰樼洰 + * + * @param multipartFile + * @return + */ + public List<SvyLibTopicRes> importLitTopic(SysUser user, MultipartFile multipartFile); + + public Map<String, List<SvyLibTopicAndOptionRes>> showTopic(SvyTopicReq svyTopicReq); +} diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java index 9466aff..d871d26 100644 --- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java @@ -5,7 +5,11 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DtoConversionUtils; +import com.smartor.domain.Icd10Association; import com.smartor.domain.SvyLibTitleReq; +import com.smartor.domain.SvyLibTopic; +import com.smartor.mapper.Icd10AssociationMapper; +import com.smartor.mapper.SvyLibTopicMapper; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +17,7 @@ import com.smartor.mapper.SvyLibTitleMapper; import com.smartor.domain.SvyLibTitle; import com.smartor.service.ISvyLibTitleService; +import org.springframework.transaction.annotation.Transactional; /** * 闂嵎Service涓氬姟灞傚鐞� @@ -24,6 +29,10 @@ public class SvyLibTitleServiceImpl implements ISvyLibTitleService { @Autowired private SvyLibTitleMapper svyLibTitleMapper; + @Autowired + private Icd10AssociationMapper icd10AssociationMapper; + @Autowired + private SvyLibTopicMapper svyLibTopicMapper; /** * 鏌ヨ闂嵎 @@ -69,10 +78,24 @@ * @param svyLibTitle 闂嵎 * @return 缁撴灉 */ + @Transactional @Override public int insertSvyLibTitle(SvyLibTitle svyLibTitle) { svyLibTitle.setCreateTime(DateUtils.getNowDate()); - return svyLibTitleMapper.insertSvyLibTitle(svyLibTitle); + svyLibTitleMapper.insertSvyLibTitle(svyLibTitle); + //鍏宠仈闂嵎鐤剧梾 + for (String icdId : svyLibTitle.getIcdID()) { + Icd10Association icd10Association = new Icd10Association(); + icd10Association.setIcd10code(icdId); + icd10Association.setSvyid(svyLibTitle.getSvyid()); + icd10AssociationMapper.insertIcd10Association(icd10Association); + } + //鏂板闂棰樼洰 + for (int i = 0; i < svyLibTitle.getSvyLibTopics().size(); i++) { + SvyLibTopic svyLibTopic = svyLibTitle.getSvyLibTopics().get(i); + svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); + } + return 1; } /** diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java index f0e7adc..655070d 100644 --- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java @@ -34,8 +34,8 @@ @Autowired private SvyLibTopicMapper svyLibTopicMapper; - @Autowired - private SvyLibTopicoptionMapper svyLibTopicoptionMapper; +// @Autowired +// private SvyLibTopicoptionMapper svyLibTopicoptionMapper; /** * 鏌ヨ闂嵎棰樼洰 @@ -103,211 +103,6 @@ @Override public int deleteSvyLibTopicByTopicid(Long topicid) { return svyLibTopicMapper.deleteSvyLibTopicByTopicid(topicid); - } - - /** - * 鎵归噺瀵煎叆闂棶棰樼洰 - * - * @param multipartFile - * @return - */ - @Override - @Transactional - public List<SvyLibTopicRes> importLitTopic(SysUser user, MultipartFile multipartFile) { - List<SvyLibTopicRes> svyLibTopicErrors = new ArrayList<>(); - - try { - Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream()); - Sheet sheet = workbook.getSheetAt(0); - - //闂嵎棰樼洰瀵硅薄 - SvyLibTopic svyLibTopic = new SvyLibTopic(); - - - for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) { - SvyLibTopicRes svyLibTopicRes = new SvyLibTopicRes(); - - Row row = sheet.getRow(i); - //濡傛灉琛屼负绌猴紝杩涜涓嬩竴娆″惊鐜� - if (ObjectUtils.isEmpty(row.getCell(0)) && ObjectUtils.isEmpty(row.getCell(1)) && ObjectUtils.isEmpty(row.getCell(2))) { - continue; - } - //鍒ゆ柇鏁版嵁鏄惁鏈夐棶棰� - svyLibTopicRes.setTopic(row.getCell(0).toString()); - if (ObjectUtils.isEmpty(row.getCell(0)) || StringUtils.isEmpty(row.getCell(0).toString())) { - svyLibTopicRes.setRemark("棰樼洰涓虹┖,"); - } else { - //鍒ゆ柇涓�涓嬭棰樻槸鍚﹀凡缁忓湪琛ㄩ噷鍑虹幇 - SvyLibTopic svyLibTopic1 = new SvyLibTopic(); - svyLibTopic1.setTopic(row.getCell(0).toString()); - List<SvyLibTopic> svyLibTopics = svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic1); - if (svyLibTopics.size() > 0) { - //宸茬粡瀛樺湪浜嗭紝灏变笉瀛樹簡 - continue; - } - } - svyLibTopicRes.setTag(row.getCell(1).toString()); - if (ObjectUtils.isEmpty(row.getCell(1)) || StringUtils.isEmpty(row.getCell(1).toString())) { - svyLibTopicRes.setRemark(StringUtils.isNotEmpty(svyLibTopicRes.getRemark()) ? svyLibTopicRes.getRemark() : "" + "绫诲埆涓虹┖,"); - } - svyLibTopicRes.setTopictype(row.getCell(2).toString()); - if (ObjectUtils.isEmpty(row.getCell(2)) || StringUtils.isEmpty(row.getCell(2).toString())) { - svyLibTopicRes.setRemark(StringUtils.isNotEmpty(svyLibTopicRes.getRemark()) ? svyLibTopicRes.getRemark() : "" + "棰樼洰绫诲瀷涓虹┖,"); - } - if (ObjectUtils.isNotEmpty(row.getCell(3))) { - svyLibTopicRes.setAnswer(row.getCell(3).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(4))) { - svyLibTopicRes.setOptionA(row.getCell(4).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(5))) { - svyLibTopicRes.setOptionB(row.getCell(5).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(6))) { - svyLibTopicRes.setOptionC(row.getCell(6).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(7))) { - svyLibTopicRes.setOptionD(row.getCell(7).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(8))) { - svyLibTopicRes.setScore(row.getCell(8).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(9))) { - svyLibTopicRes.setScore(row.getCell(9).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(10))) { - svyLibTopicRes.setScore(row.getCell(10).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(11))) { - svyLibTopicRes.setScore(row.getCell(11).toString()); - } - if (ObjectUtils.isNotEmpty(row.getCell(12))) { - svyLibTopicRes.setScore(row.getCell(12).toString()); - } - if (StringUtils.isNotEmpty(svyLibTopicRes.getRemark())) { - //璇存槑璇ヨ鏁版嵁鏈夐棶棰� - svyLibTopicErrors.add(svyLibTopicRes); - continue; - } - - //鏁版嵁娌℃湁闂锛屽紑濮嬫彃琛� - svyLibTopic.setTopic(row.getCell(0).toString()); - if (row.getCell(2).toString().equals("鍗曢��")) { - svyLibTopic.setTopictype(1L); - } else if (row.getCell(2).toString().equals("澶氶��")) { - svyLibTopic.setTopictype(2L); - } else { - svyLibTopic.setTopictype(3L); - } - svyLibTopic.setTopiccode(UUID.randomUUID().toString().replace("-", "")); - //棰樼洰绫诲埆 - svyLibTopic.setTag(row.getCell(1).toString()); - svyLibTopic.setCreateBy(user.getUserName()); - svyLibTopic.setOrgid(user.getDeptId().toString()); - svyLibTopic.setUpdateBy(user.getUserName()); - svyLibTopic.setUpdateTime(new Date()); - svyLibTopic.setCreateTime(new Date()); - svyLibTopic.setDelFlag("0"); - //鏂板棰樼洰琛� - svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); - - //鏂板棰樼洰閫夐」琛� - SvyLibTopicoption svyLibTopicoption = new SvyLibTopicoption(); - svyLibTopicoption.setTopicid(svyLibTopic.getTopicid()); - svyLibTopicoption.setTopictype(svyLibTopic.getTopictype()); - svyLibTopicoption.setOptioncode(UUID.randomUUID().toString().replace("-", "")); - svyLibTopicoption.setCreateBy(user.getUserName()); - svyLibTopicoption.setCreateTime(new Date()); - svyLibTopicoption.setUpdateBy(user.getUserName()); - svyLibTopicoption.setUpdateTime(new Date()); - svyLibTopicoption.setDelFlag("0"); - if (svyLibTopicoption.getTopictype() == 3) { - //瑙g瓟棰橈紝涓嶉渶瑕佸啀璁剧疆閫夐」 - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } else { - if (ObjectUtils.isNotEmpty(row.getCell(4))) { - if (StringUtils.isNotEmpty(row.getCell(4).toString())) { - svyLibTopicoption.setOptioncode("A"); - svyLibTopicoption.setOptioncontent(row.getCell(4).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - if (ObjectUtils.isNotEmpty(row.getCell(5))) { - if (StringUtils.isNotEmpty(row.getCell(5).toString())) { - svyLibTopicoption.setOptioncode("B"); - svyLibTopicoption.setOptioncontent(row.getCell(5).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - if (ObjectUtils.isNotEmpty(row.getCell(6))) { - if (StringUtils.isNotEmpty(row.getCell(6).toString())) { - svyLibTopicoption.setOptioncode("C"); - svyLibTopicoption.setOptioncontent(row.getCell(6).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - if (ObjectUtils.isNotEmpty(row.getCell(7))) { - if (StringUtils.isNotEmpty(row.getCell(7).toString())) { - svyLibTopicoption.setOptioncode("D"); - svyLibTopicoption.setOptioncontent(row.getCell(7).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - if (ObjectUtils.isNotEmpty(row.getCell(8))) { - if (StringUtils.isNotEmpty(row.getCell(8).toString())) { - svyLibTopicoption.setOptioncode("E"); - svyLibTopicoption.setOptioncontent(row.getCell(8).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - if (ObjectUtils.isNotEmpty(row.getCell(9))) { - if (StringUtils.isNotEmpty(row.getCell(9).toString())) { - svyLibTopicoption.setOptioncode("F"); - svyLibTopicoption.setOptioncontent(row.getCell(9).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - if (ObjectUtils.isNotEmpty(row.getCell(10))) { - if (StringUtils.isNotEmpty(row.getCell(10).toString())) { - svyLibTopicoption.setOptioncode("G"); - svyLibTopicoption.setOptioncontent(row.getCell(10).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - if (ObjectUtils.isNotEmpty(row.getCell(11))) { - if (StringUtils.isNotEmpty(row.getCell(11).toString())) { - svyLibTopicoption.setOptioncode("H"); - svyLibTopicoption.setOptioncontent(row.getCell(11).toString()); - svyLibTopicoption.setOptionid(null); - svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); - } - } - } - } - if (CollectionUtils.isNotEmpty(svyLibTopicErrors)) { - return svyLibTopicErrors; - } - - } catch (Exception e) { - e.printStackTrace(); - } - - return null; - } - - @Override - public SvyLibTopicRes showTopic(SvyTopicReq svyTopicReq) { - List<SvyLibTopicAndOptionRes> svyLibTopicAndOptionRes = svyLibTopicMapper.showTopic(svyTopicReq); - Map<Long, List<SvyLibTopicAndOptionRes>> groupByAge = svyLibTopicAndOptionRes.stream().collect(Collectors.groupingBy(SvyLibTopicAndOptionRes::getTopicid)); - - return null; } diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java new file mode 100644 index 0000000..21c5cbc --- /dev/null +++ b/smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java @@ -0,0 +1,313 @@ +package com.smartor.service.impl; + +import com.google.gson.JsonObject; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import com.smartor.domain.*; +import com.smartor.mapper.SvyTopicMapper; +import com.smartor.mapper.SvyTopicoptionMapper; +import com.smartor.service.ISvyTopicService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 棰樼洰Service涓氬姟灞傚鐞� + * + * @author ruoyi + * @date 2023-06-26 + */ +@Service +public class SvyTopicServiceImpl implements ISvyTopicService { + @Autowired + private SvyTopicMapper svyTopicMapper; + @Autowired + private SvyTopicoptionMapper svyTopicoptionMapper; + + /** + * 鏌ヨ棰樼洰 + * + * @param topicid 棰樼洰涓婚敭 + * @return 棰樼洰 + */ + @Override + public SvyTopic selectSvyTopicByTopicid(Long topicid) { + return svyTopicMapper.selectSvyTopicByTopicid(topicid); + } + + /** + * 鏌ヨ棰樼洰鍒楄〃 + * + * @param svyTopic 棰樼洰 + * @return 棰樼洰 + */ + @Override + public List<SvyTopic> selectSvyTopicList(SvyTopic svyTopic) { + return svyTopicMapper.selectSvyTopicList(svyTopic); + } + + /** + * 鏂板棰樼洰 + * + * @param svyTopic 棰樼洰 + * @return 缁撴灉 + */ + @Override + public int insertSvyTopic(SvyTopic svyTopic) { + svyTopic.setCreateTime(DateUtils.getNowDate()); + return svyTopicMapper.insertSvyTopic(svyTopic); + } + + /** + * 淇敼棰樼洰 + * + * @param svyTopic 棰樼洰 + * @return 缁撴灉 + */ + @Override + public int updateSvyTopic(SvyTopic svyTopic) { + svyTopic.setUpdateTime(DateUtils.getNowDate()); + return svyTopicMapper.updateSvyTopic(svyTopic); + } + + /** + * 鎵归噺鍒犻櫎棰樼洰 + * + * @param topicids 闇�瑕佸垹闄ょ殑棰樼洰涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteSvyTopicByTopicids(Long[] topicids) { + return svyTopicMapper.deleteSvyTopicByTopicids(topicids); + } + + /** + * 鍒犻櫎棰樼洰淇℃伅 + * + * @param topicid 棰樼洰涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteSvyTopicByTopicid(Long topicid) { + return svyTopicMapper.deleteSvyTopicByTopicid(topicid); + } + + + /** + * 鎵归噺瀵煎叆闂棶棰樼洰 + * + * @param multipartFile + * @return + */ + @Override + @Transactional + public List<SvyLibTopicRes> importLitTopic(SysUser user, MultipartFile multipartFile) { + List<SvyLibTopicRes> svyLibTopicErrors = new ArrayList<>(); + + try { + Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream()); + Sheet sheet = workbook.getSheetAt(0); + + //闂嵎棰樼洰瀵硅薄 + SvyTopic svyTopic = new SvyTopic(); + + + for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) { + SvyLibTopicRes svyLibTopicRes = new SvyLibTopicRes(); + + Row row = sheet.getRow(i); + //濡傛灉琛屼负绌猴紝杩涜涓嬩竴娆″惊鐜� + if (ObjectUtils.isEmpty(row.getCell(0)) && ObjectUtils.isEmpty(row.getCell(1)) && ObjectUtils.isEmpty(row.getCell(2))) { + continue; + } + //鍒ゆ柇鏁版嵁鏄惁鏈夐棶棰� + svyLibTopicRes.setTopic(row.getCell(0).toString()); + if (ObjectUtils.isEmpty(row.getCell(0)) || StringUtils.isEmpty(row.getCell(0).toString())) { + svyLibTopicRes.setRemark("棰樼洰涓虹┖,"); + } else { + //鍒ゆ柇涓�涓嬭棰樻槸鍚﹀凡缁忓湪琛ㄩ噷鍑虹幇 + SvyTopic svyLibTopic1 = new SvyTopic(); + svyLibTopic1.setTopic(row.getCell(0).toString()); + List<SvyTopic> svyLibTopics = svyTopicMapper.selectSvyTopicList(svyLibTopic1); + if (svyLibTopics.size() > 0) { + //宸茬粡瀛樺湪浜嗭紝灏变笉瀛樹簡 + continue; + } + } + svyLibTopicRes.setTag(row.getCell(1).toString()); + if (ObjectUtils.isEmpty(row.getCell(1)) || StringUtils.isEmpty(row.getCell(1).toString())) { + svyLibTopicRes.setRemark(StringUtils.isNotEmpty(svyLibTopicRes.getRemark()) ? svyLibTopicRes.getRemark() : "" + "绫诲埆涓虹┖,"); + } + svyLibTopicRes.setTopictype(row.getCell(2).toString()); + if (ObjectUtils.isEmpty(row.getCell(2)) || StringUtils.isEmpty(row.getCell(2).toString())) { + svyLibTopicRes.setRemark(StringUtils.isNotEmpty(svyLibTopicRes.getRemark()) ? svyLibTopicRes.getRemark() : "" + "棰樼洰绫诲瀷涓虹┖,"); + } + if (ObjectUtils.isNotEmpty(row.getCell(3))) { + svyLibTopicRes.setAnswer(row.getCell(3).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(4))) { + svyLibTopicRes.setOptionA(row.getCell(4).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(5))) { + svyLibTopicRes.setOptionB(row.getCell(5).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(6))) { + svyLibTopicRes.setOptionC(row.getCell(6).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(7))) { + svyLibTopicRes.setOptionD(row.getCell(7).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(8))) { + svyLibTopicRes.setScore(row.getCell(8).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(9))) { + svyLibTopicRes.setScore(row.getCell(9).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(10))) { + svyLibTopicRes.setScore(row.getCell(10).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(11))) { + svyLibTopicRes.setScore(row.getCell(11).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(12))) { + svyLibTopicRes.setScore(row.getCell(12).toString()); + } + if (StringUtils.isNotEmpty(svyLibTopicRes.getRemark())) { + //璇存槑璇ヨ鏁版嵁鏈夐棶棰� + svyLibTopicErrors.add(svyLibTopicRes); + continue; + } + + //鏁版嵁娌℃湁闂锛屽紑濮嬫彃琛� + svyTopic.setTopic(row.getCell(0).toString()); + if (row.getCell(2).toString().equals("鍗曢��") || row.getCell(2).toString().equals("1") || row.getCell(2).toString().equals("1.0")) { + svyTopic.setTopictype(1L); + } else if (row.getCell(2).toString().equals("澶氶��") || row.getCell(2).toString().equals("2") || row.getCell(2).toString().equals("2.0")) { + svyTopic.setTopictype(2L); + } else { + svyTopic.setTopictype(3L); + } + svyTopic.setTopiccode(UUID.randomUUID().toString().replace("-", "")); + //棰樼洰绫诲埆 + svyTopic.setTag(row.getCell(1).toString()); + svyTopic.setCreateBy(user.getUserName()); + svyTopic.setOrgid(user.getDeptId().toString()); + svyTopic.setUpdateBy(user.getUserName()); + svyTopic.setUpdateTime(new Date()); + svyTopic.setCreateTime(new Date()); + svyTopic.setDelFlag("0"); + svyTopic.setAnswer(row.getCell(3).toString()); + //鏂板棰樼洰琛� + svyTopicMapper.insertSvyTopic(svyTopic); + + //鏂板棰樼洰閫夐」琛� + SvyTopicoption svyTopicoption = new SvyTopicoption(); + svyTopicoption.setTopicid(svyTopic.getTopicid()); + svyTopicoption.setTopictype(svyTopic.getTopictype()); + svyTopicoption.setOptioncode(UUID.randomUUID().toString().replace("-", "")); + svyTopicoption.setCreateBy(user.getUserName()); + svyTopicoption.setCreateTime(new Date()); + svyTopicoption.setUpdateBy(user.getUserName()); + svyTopicoption.setUpdateTime(new Date()); + svyTopicoption.setDelFlag("0"); + if (svyTopicoption.getTopictype() == 3) { + //瑙g瓟棰橈紝涓嶉渶瑕佸啀璁剧疆閫夐」 + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } else { + if (ObjectUtils.isNotEmpty(row.getCell(4))) { + if (StringUtils.isNotEmpty(row.getCell(4).toString())) { + svyTopicoption.setOptioncode("A"); + svyTopicoption.setOptioncontent(row.getCell(4).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + if (ObjectUtils.isNotEmpty(row.getCell(5))) { + if (StringUtils.isNotEmpty(row.getCell(5).toString())) { + svyTopicoption.setOptioncode("B"); + svyTopicoption.setOptioncontent(row.getCell(5).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + if (ObjectUtils.isNotEmpty(row.getCell(6))) { + if (StringUtils.isNotEmpty(row.getCell(6).toString())) { + svyTopicoption.setOptioncode("C"); + svyTopicoption.setOptioncontent(row.getCell(6).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + if (ObjectUtils.isNotEmpty(row.getCell(7))) { + if (StringUtils.isNotEmpty(row.getCell(7).toString())) { + svyTopicoption.setOptioncode("D"); + svyTopicoption.setOptioncontent(row.getCell(7).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + if (ObjectUtils.isNotEmpty(row.getCell(8))) { + if (StringUtils.isNotEmpty(row.getCell(8).toString())) { + svyTopicoption.setOptioncode("E"); + svyTopicoption.setOptioncontent(row.getCell(8).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + if (ObjectUtils.isNotEmpty(row.getCell(9))) { + if (StringUtils.isNotEmpty(row.getCell(9).toString())) { + svyTopicoption.setOptioncode("F"); + svyTopicoption.setOptioncontent(row.getCell(9).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + if (ObjectUtils.isNotEmpty(row.getCell(10))) { + if (StringUtils.isNotEmpty(row.getCell(10).toString())) { + svyTopicoption.setOptioncode("G"); + svyTopicoption.setOptioncontent(row.getCell(10).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + if (ObjectUtils.isNotEmpty(row.getCell(11))) { + if (StringUtils.isNotEmpty(row.getCell(11).toString())) { + svyTopicoption.setOptioncode("H"); + svyTopicoption.setOptioncontent(row.getCell(11).toString()); + svyTopicoption.setOptionid(null); + svyTopicoptionMapper.insertSvyTopicoption(svyTopicoption); + } + } + } + } + if (CollectionUtils.isNotEmpty(svyLibTopicErrors)) { + return svyLibTopicErrors; + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + @Override + public Map<String, List<SvyLibTopicAndOptionRes>> showTopic(SvyTopicReq svyTopicReq) { + List<SvyLibTopicAndOptionRes> svyLibTopicAndOptionRes = svyTopicMapper.showTopic(svyTopicReq); + Map<String, List<SvyLibTopicAndOptionRes>> groupByAge = svyLibTopicAndOptionRes.stream().collect(Collectors.groupingBy(SvyLibTopicAndOptionRes::getTopic)); + + return groupByAge; + } + +} diff --git a/smartor/src/main/resources/log4j.properties b/smartor/src/main/resources/log4j.properties new file mode 100644 index 0000000..a5e54e0 --- /dev/null +++ b/smartor/src/main/resources/log4j.properties @@ -0,0 +1,15 @@ +## Configure logging for testing: optionally with log file +#log4j.rootLogger=WARI, stdout +## log4j.rootLogger=WARN, stdout, logfile +# +#log4j.appender.stdout=org.apache.log1j.ConsoleAppender +#log4j.appender.stdout.layout=org.apache.logj.PatternLayout +#log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n +# +#log1j.appender.logfile=org.apache.log4j.FileAppender +#log4j.appender.logfile.File=target/spring.log +#log4j.appender.logfile.layout=org.apache.log1j.PatternLayout +#log1j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n + +log4j.logger.freemarker.cache=ERROR +log4j.logger.freemarker.beans=ERROR \ No newline at end of file diff --git a/smartor/src/main/resources/mapper/smartor/Icd10AssociationMapper.xml b/smartor/src/main/resources/mapper/smartor/Icd10AssociationMapper.xml new file mode 100644 index 0000000..f4da9d9 --- /dev/null +++ b/smartor/src/main/resources/mapper/smartor/Icd10AssociationMapper.xml @@ -0,0 +1,69 @@ +<?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.smartor.mapper.Icd10AssociationMapper"> + + <resultMap type="com.smartor.domain.Icd10Association" id="Icd10AssociationResult"> + <result property="icd10code" column="icd10code" /> + <result property="icd10name" column="icd10name" /> + <result property="svyid" column="svyid" /> + <result property="updatetime" column="updatetime" /> + </resultMap> + + <sql id="selectIcd10AssociationVo"> + select icd10code, icd10name, svyid, updatetime from icd10_association + </sql> + + <select id="selectIcd10AssociationList" parameterType="com.smartor.domain.Icd10Association" resultMap="Icd10AssociationResult"> + <include refid="selectIcd10AssociationVo"/> + <where> + <if test="icd10code != null and icd10code != ''"> and icd10code = #{icd10code}</if> + <if test="icd10name != null and icd10name != ''"> and icd10name like concat('%', #{icd10name}, '%')</if> + <if test="svyid != null "> and svyid = #{svyid}</if> + <if test="updatetime != null "> and updatetime = #{updatetime}</if> + </where> + </select> + + <select id="selectIcd10AssociationByIcd10code" parameterType="String" resultMap="Icd10AssociationResult"> + <include refid="selectIcd10AssociationVo"/> + where icd10code = #{icd10code} + </select> + + <insert id="insertIcd10Association" parameterType="com.smartor.domain.Icd10Association"> + insert into icd10_association + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="icd10code != null and icd10code != ''">icd10code,</if> + <if test="icd10name != null">icd10name,</if> + <if test="svyid != null">svyid,</if> + <if test="updatetime != null">updatetime,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="icd10code != null and icd10code != ''">#{icd10code},</if> + <if test="icd10name != null">#{icd10name},</if> + <if test="svyid != null">#{svyid},</if> + <if test="updatetime != null">#{updatetime},</if> + </trim> + </insert> + + <update id="updateIcd10Association" parameterType="Icd10Association"> + update icd10_association + <trim prefix="SET" suffixOverrides=","> + <if test="icd10name != null">icd10name = #{icd10name},</if> + <if test="svyid != null">svyid = #{svyid},</if> + <if test="updatetime != null">updatetime = #{updatetime},</if> + </trim> + where icd10code = #{icd10code} + </update> + + <delete id="deleteIcd10AssociationByIcd10code" parameterType="String"> + delete from icd10_association where icd10code = #{icd10code} + </delete> + + <delete id="deleteIcd10AssociationByIcd10codes" parameterType="String"> + delete from icd10_association where icd10code in + <foreach item="icd10code" collection="array" open="(" separator="," close=")"> + #{icd10code} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml index d02d1fc..d72d610 100644 --- a/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml @@ -29,7 +29,7 @@ select topicid, oldid, svyid, topictype, topiccode, topic, sort, ismandatory, ishide, del_flag, orgid, create_by, create_time, update_by, update_time, isupload, upload_time,tag from svy_lib_topic </sql> - <select id="selectSvyLibTopicList" parameterType="SvyLibTopic" resultMap="SvyLibTopicResult"> + <select id="selectSvyLibTopicList" parameterType="com.smartor.domain.SvyLibTopic" resultMap="SvyLibTopicResult"> <include refid="selectSvyLibTopicVo"/> <where> <if test="oldid != null "> and oldid = #{oldid}</if> @@ -45,7 +45,7 @@ where topicid = #{topicid} </select> - <insert id="insertSvyLibTopic" parameterType="SvyLibTopic" useGeneratedKeys="true" keyProperty="topicid"> + <insert id="insertSvyLibTopic" parameterType="com.smartor.domain.SvyLibTopic" useGeneratedKeys="true" keyProperty="topicid"> insert into svy_lib_topic <trim prefix="(" suffix=")" suffixOverrides=","> <if test="oldid != null">oldid,</if> @@ -87,7 +87,7 @@ </trim> </insert> - <update id="updateSvyLibTopic" parameterType="SvyLibTopic"> + <update id="updateSvyLibTopic" parameterType="com.smartor.domain.SvyLibTopic"> update svy_lib_topic <trim prefix="SET" suffixOverrides=","> <if test="oldid != null">oldid = #{oldid},</if> @@ -121,21 +121,5 @@ </foreach> </delete> - <select id="showTopic" resultType="com.smartor.domain.SvyLibTopicAndOptionRes" - parameterType="com.smartor.domain.SvyTopicReq"> - SELECT a.topicid, a.topiccode, a.topic, a.topictype, a.tag, b.optioncode, b.optioncontent - FROM svy_lib_topic a, - svy_lib_topicoption b - WHERE a.topicid = b.topicid - <if test="topic != null and topic != ''"> - and a.topic LIKE concat('%', #{topic}, '%') - </if> - <if test="topicType != null and topicType != ''"> - and a.topictype = #{topicType} - </if> - <if test="tag != null and tag != ''"> - and a.tag LIKE concat('%', #{tag}, '%') - </if> - GROUP BY a.topic, b.optioncode - </select> + </mapper> \ No newline at end of file diff --git a/smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml new file mode 100644 index 0000000..5477226 --- /dev/null +++ b/smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml @@ -0,0 +1,161 @@ +<?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.smartor.mapper.SvyTopicMapper"> + + <resultMap type="com.smartor.domain.SvyTopic" id="SvyTopicResult"> + <result property="topicid" column="topicid"/> + <result property="topictype" column="topictype"/> + <result property="topiccode" column="topiccode"/> + <result property="topic" column="topic"/> + <result property="tag" column="tag"/> + <result property="sort" column="sort"/> + <result property="ismandatory" column="ismandatory"/> + <result property="ishide" column="ishide"/> + <result property="delFlag" column="del_flag"/> + <result property="orgid" column="orgid"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <result property="isupload" column="isupload"/> + <result property="uploadTime" column="upload_time"/> + </resultMap> + + <sql id="selectSvyTopicVo"> + select topicid, + topictype, + topiccode, + topic, + tag, + sort, + ismandatory, + ishide, + del_flag, + orgid, + create_by, + create_time, + update_by, + update_time, + isupload, + upload_time + from svy_topic + </sql> + + <select id="selectSvyTopicList" parameterType="com.smartor.domain.SvyTopic" resultMap="SvyTopicResult"> + <include refid="selectSvyTopicVo"/> + <where> + <if test="topictype != null ">and topictype = #{topictype}</if> + <if test="topiccode != null and topiccode != ''">and topiccode = #{topiccode}</if> + <if test="topic != null and topic != ''">and topic = #{topic}</if> + <if test="tag != null and tag != ''">and tag = #{tag}</if> + <if test="sort != null ">and sort = #{sort}</if> + <if test="ismandatory != null ">and ismandatory = #{ismandatory}</if> + <if test="ishide != null ">and ishide = #{ishide}</if> + <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if> + <if test="isupload != null ">and isupload = #{isupload}</if> + <if test="uploadTime != null ">and upload_time = #{uploadTime}</if> + </where> + </select> + + <select id="selectSvyTopicByTopicid" parameterType="Long" resultMap="SvyTopicResult"> + <include refid="selectSvyTopicVo"/> + where topicid = #{topicid} + </select> + + <insert id="insertSvyTopic" parameterType="com.smartor.domain.SvyTopic" useGeneratedKeys="true" + keyProperty="topicid"> + insert into svy_topic + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="topictype != null">topictype,</if> + <if test="topiccode != null and topiccode != ''">topiccode,</if> + <if test="topic != null">topic,</if> + <if test="tag != null">tag,</if> + <if test="sort != null">sort,</if> + <if test="ismandatory != null">ismandatory,</if> + <if test="ishide != null">ishide,</if> + <if test="delFlag != null and delFlag != ''">del_flag,</if> + <if test="orgid != null">orgid,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null">update_by,</if> + <if test="updateTime != null">update_time,</if> + <if test="isupload != null">isupload,</if> + <if test="uploadTime != null">upload_time,</if> + <if test="answer != null">answer,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="topictype != null">#{topictype},</if> + <if test="topiccode != null and topiccode != ''">#{topiccode},</if> + <if test="topic != null">#{topic},</if> + <if test="tag != null">#{tag},</if> + <if test="sort != null">#{sort},</if> + <if test="ismandatory != null">#{ismandatory},</if> + <if test="ishide != null">#{ishide},</if> + <if test="delFlag != null and delFlag != ''">#{delFlag},</if> + <if test="orgid != null">#{orgid},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="isupload != null">#{isupload},</if> + <if test="uploadTime != null">#{uploadTime},</if> + <if test="answer != null">#{answer},</if> + </trim> + </insert> + + <update id="updateSvyTopic" parameterType="com.smartor.domain.SvyTopic"> + update svy_topic + <trim prefix="SET" suffixOverrides=","> + <if test="topictype != null">topictype = #{topictype},</if> + <if test="topiccode != null and topiccode != ''">topiccode = #{topiccode},</if> + <if test="topic != null">topic = #{topic},</if> + <if test="tag != null">tag = #{tag},</if> + <if test="sort != null">sort = #{sort},</if> + <if test="ismandatory != null">ismandatory = #{ismandatory},</if> + <if test="ishide != null">ishide = #{ishide},</if> + <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if> + <if test="orgid != null">orgid = #{orgid},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="updateBy != null">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="isupload != null">isupload = #{isupload},</if> + <if test="uploadTime != null">upload_time = #{uploadTime},</if> + </trim> + where topicid = #{topicid} + </update> + + <delete id="deleteSvyTopicByTopicid" parameterType="Long"> + delete + from svy_topic + where topicid = #{topicid} + </delete> + + <delete id="deleteSvyTopicByTopicids" parameterType="String"> + delete from svy_topic where topicid in + <foreach item="topicid" collection="array" open="(" separator="," close=")"> + #{topicid} + </foreach> + </delete> + + <select id="showTopic" resultType="com.smartor.domain.SvyLibTopicAndOptionRes" + parameterType="com.smartor.domain.SvyTopicReq"> + SELECT a.topicid, a.topiccode, a.topic, a.topictype, a.tag, b.optioncode, b.optioncontent + FROM svy_topic a, + svy_topicoption b + WHERE a.topicid = b.topicid + <if test="topic != null and topic != ''"> + and a.topic LIKE concat('%', #{topic}, '%') + </if> + <if test="topicType != null and topicType != ''"> + and a.topictype = #{topicType} + </if> + <if test="tag != null and tag != ''"> + and a.tag LIKE concat('%', #{tag}, '%') + </if> + GROUP BY a.topic, b.optioncode + </select> + +</mapper> \ No newline at end of file diff --git a/smartor/src/main/resources/mapper/smartor/SvyTopicoptionMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTopicoptionMapper.xml new file mode 100644 index 0000000..9168922 --- /dev/null +++ b/smartor/src/main/resources/mapper/smartor/SvyTopicoptionMapper.xml @@ -0,0 +1,233 @@ +<?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.smartor.mapper.SvyTopicoptionMapper"> + + <resultMap type="com.smartor.domain.SvyTopicoption" id="SvyTopicoptionResult"> + <result property="optionid" column="optionid"/> + <result property="topicid" column="topicid"/> + <result property="svyid" column="svyid"/> + <result property="topictype" column="topictype"/> + <result property="optioncode" column="optioncode"/> + <result property="optioncontent" column="optioncontent"/> + <result property="isexistdetail" column="isexistdetail"/> + <result property="detailismandatory" column="detailismandatory"/> + <result property="isexceptionitem" column="isexceptionitem"/> + <result property="istrack" column="istrack"/> + <result property="score" column="score"/> + <result property="prompt" column="prompt"/> + <result property="jump" column="jump"/> + <result property="parentoptionid" column="parentoptionid"/> + <result property="ismutex" column="ismutex"/> + <result property="verifyrule" column="verifyrule"/> + <result property="sort" column="sort"/> + <result property="verificationtype" column="verificationtype"/> + <result property="isrange" column="isrange"/> + <result property="minrange" column="minrange"/> + <result property="maxrange" column="maxrange"/> + <result property="rangelength" column="rangelength"/> + <result property="orgid" column="orgid"/> + <result property="oldid" column="oldid"/> + <result property="delFlag" column="del_flag"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <result property="isupload" column="isupload"/> + <result property="uploadTime" column="upload_time"/> + </resultMap> + + <sql id="selectSvyTopicoptionVo"> + select optionid, + topicid, + svyid, + topictype, + optioncode, + optioncontent, + isexistdetail, + detailismandatory, + isexceptionitem, + istrack, + score, + prompt, + jump, + parentoptionid, + ismutex, + verifyrule, + sort, + verificationtype, + isrange, + minrange, + maxrange, + rangelength, + orgid, + oldid, + del_flag, + create_by, + create_time, + update_by, + update_time, + isupload, + upload_time + from svy_topicoption + </sql> + + <select id="selectSvyTopicoptionList" parameterType="com.smartor.domain.SvyTopicoption" + resultMap="SvyTopicoptionResult"> + <include refid="selectSvyTopicoptionVo"/> + <where> + <if test="topicid != null ">and topicid = #{topicid}</if> + <if test="svyid != null ">and svyid = #{svyid}</if> + <if test="topictype != null ">and topictype = #{topictype}</if> + <if test="optioncode != null and optioncode != ''">and optioncode = #{optioncode}</if> + <if test="optioncontent != null and optioncontent != ''">and optioncontent = #{optioncontent}</if> + <if test="isexistdetail != null ">and isexistdetail = #{isexistdetail}</if> + <if test="detailismandatory != null ">and detailismandatory = #{detailismandatory}</if> + <if test="isexceptionitem != null ">and isexceptionitem = #{isexceptionitem}</if> + <if test="istrack != null ">and istrack = #{istrack}</if> + <if test="score != null ">and score = #{score}</if> + <if test="prompt != null and prompt != ''">and prompt = #{prompt}</if> + <if test="jump != null and jump != ''">and jump = #{jump}</if> + <if test="parentoptionid != null ">and parentoptionid = #{parentoptionid}</if> + <if test="ismutex != null ">and ismutex = #{ismutex}</if> + <if test="verifyrule != null and verifyrule != ''">and verifyrule = #{verifyrule}</if> + <if test="sort != null ">and sort = #{sort}</if> + <if test="verificationtype != null ">and verificationtype = #{verificationtype}</if> + <if test="isrange != null ">and isrange = #{isrange}</if> + <if test="minrange != null and minrange != ''">and minrange = #{minrange}</if> + <if test="maxrange != null and maxrange != ''">and maxrange = #{maxrange}</if> + <if test="rangelength != null ">and rangelength = #{rangelength}</if> + <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if> + <if test="oldid != null ">and oldid = #{oldid}</if> + <if test="isupload != null ">and isupload = #{isupload}</if> + <if test="uploadTime != null ">and upload_time = #{uploadTime}</if> + </where> + </select> + + <select id="selectSvyTopicoptionByOptionid" parameterType="Long" resultMap="SvyTopicoptionResult"> + <include refid="selectSvyTopicoptionVo"/> + where optionid = #{optionid} + </select> + + <insert id="insertSvyTopicoption" parameterType="com.smartor.domain.SvyTopicoption" useGeneratedKeys="true" + keyProperty="optionid"> + insert into svy_topicoption + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="topicid != null">topicid,</if> + <if test="svyid != null">svyid,</if> + <if test="topictype != null">topictype,</if> + <if test="optioncode != null">optioncode,</if> + <if test="optioncontent != null">optioncontent,</if> + <if test="isexistdetail != null">isexistdetail,</if> + <if test="detailismandatory != null">detailismandatory,</if> + <if test="isexceptionitem != null">isexceptionitem,</if> + <if test="istrack != null">istrack,</if> + <if test="score != null">score,</if> + <if test="prompt != null">prompt,</if> + <if test="jump != null">jump,</if> + <if test="parentoptionid != null">parentoptionid,</if> + <if test="ismutex != null">ismutex,</if> + <if test="verifyrule != null">verifyrule,</if> + <if test="sort != null">sort,</if> + <if test="verificationtype != null">verificationtype,</if> + <if test="isrange != null">isrange,</if> + <if test="minrange != null">minrange,</if> + <if test="maxrange != null">maxrange,</if> + <if test="rangelength != null">rangelength,</if> + <if test="orgid != null">orgid,</if> + <if test="oldid != null">oldid,</if> + <if test="delFlag != null and delFlag != ''">del_flag,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null">update_by,</if> + <if test="updateTime != null">update_time,</if> + <if test="isupload != null">isupload,</if> + <if test="uploadTime != null">upload_time,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="topicid != null">#{topicid},</if> + <if test="svyid != null">#{svyid},</if> + <if test="topictype != null">#{topictype},</if> + <if test="optioncode != null">#{optioncode},</if> + <if test="optioncontent != null">#{optioncontent},</if> + <if test="isexistdetail != null">#{isexistdetail},</if> + <if test="detailismandatory != null">#{detailismandatory},</if> + <if test="isexceptionitem != null">#{isexceptionitem},</if> + <if test="istrack != null">#{istrack},</if> + <if test="score != null">#{score},</if> + <if test="prompt != null">#{prompt},</if> + <if test="jump != null">#{jump},</if> + <if test="parentoptionid != null">#{parentoptionid},</if> + <if test="ismutex != null">#{ismutex},</if> + <if test="verifyrule != null">#{verifyrule},</if> + <if test="sort != null">#{sort},</if> + <if test="verificationtype != null">#{verificationtype},</if> + <if test="isrange != null">#{isrange},</if> + <if test="minrange != null">#{minrange},</if> + <if test="maxrange != null">#{maxrange},</if> + <if test="rangelength != null">#{rangelength},</if> + <if test="orgid != null">#{orgid},</if> + <if test="oldid != null">#{oldid},</if> + <if test="delFlag != null and delFlag != ''">#{delFlag},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="isupload != null">#{isupload},</if> + <if test="uploadTime != null">#{uploadTime},</if> + </trim> + </insert> + + <update id="updateSvyTopicoption" parameterType="com.smartor.domain.SvyTopicoption"> + update svy_topicoption + <trim prefix="SET" suffixOverrides=","> + <if test="topicid != null">topicid = #{topicid},</if> + <if test="svyid != null">svyid = #{svyid},</if> + <if test="topictype != null">topictype = #{topictype},</if> + <if test="optioncode != null">optioncode = #{optioncode},</if> + <if test="optioncontent != null">optioncontent = #{optioncontent},</if> + <if test="isexistdetail != null">isexistdetail = #{isexistdetail},</if> + <if test="detailismandatory != null">detailismandatory = #{detailismandatory},</if> + <if test="isexceptionitem != null">isexceptionitem = #{isexceptionitem},</if> + <if test="istrack != null">istrack = #{istrack},</if> + <if test="score != null">score = #{score},</if> + <if test="prompt != null">prompt = #{prompt},</if> + <if test="jump != null">jump = #{jump},</if> + <if test="parentoptionid != null">parentoptionid = #{parentoptionid},</if> + <if test="ismutex != null">ismutex = #{ismutex},</if> + <if test="verifyrule != null">verifyrule = #{verifyrule},</if> + <if test="sort != null">sort = #{sort},</if> + <if test="verificationtype != null">verificationtype = #{verificationtype},</if> + <if test="isrange != null">isrange = #{isrange},</if> + <if test="minrange != null">minrange = #{minrange},</if> + <if test="maxrange != null">maxrange = #{maxrange},</if> + <if test="rangelength != null">rangelength = #{rangelength},</if> + <if test="orgid != null">orgid = #{orgid},</if> + <if test="oldid != null">oldid = #{oldid},</if> + <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="updateBy != null">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="isupload != null">isupload = #{isupload},</if> + <if test="uploadTime != null">upload_time = #{uploadTime},</if> + </trim> + where optionid = #{optionid} + </update> + + <delete id="deleteSvyTopicoptionByOptionid" parameterType="Long"> + delete + from svy_topicoption + where optionid = #{optionid} + </delete> + + <delete id="deleteSvyTopicoptionByOptionids" parameterType="String"> + delete from svy_topicoption where optionid in + <foreach item="optionid" collection="array" open="(" separator="," close=")"> + #{optionid} + </foreach> + </delete> + + +</mapper> \ No newline at end of file diff --git a/smartor/src/main/resources/template/quiz.ftl b/smartor/src/main/resources/template/quiz.ftl new file mode 100644 index 0000000..7fbba32 --- /dev/null +++ b/smartor/src/main/resources/template/quiz.ftl @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> + <title>棰樼洰杞崲鍜屼簩缁寸爜鐢熸垚</title> +</head> +<body> +<h1>棰樼洰</h1> +<form id="quiz-form"> + <h2>鍗曢�夐</h2> + <#list singleChoiceOptions as option> + <input type="radio" name="question1" value="${option}"> ${option}<br> + </#list> + + <h2>澶氶�夐</h2> + <#list multipleChoiceOptions as option> + <input type="checkbox" name="question2" value="${option}"> ${option}<br> + </#list> + + <input type="submit" value="鎻愪氦"> +</form> +</body> +</html> \ No newline at end of file diff --git a/smartor/src/main/resources/template/uestion_template.ftl b/smartor/src/main/resources/template/uestion_template.ftl new file mode 100644 index 0000000..3218b41 --- /dev/null +++ b/smartor/src/main/resources/template/uestion_template.ftl @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8"> + <title>Form</title> +</head> +<body> +<h1>${question}</h1> +<form action="/submit" method="POST"> + <ul> + <#list options as option> + <li> + <label> + <input type="checkbox" name="answer" value="${option}" /> ${option} + </label> + </li> + </#list> + </ul> + <input type="submit" value="Submit" /> +</form> +</body> +</html> \ No newline at end of file -- Gitblit v1.9.3