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