From 6414c4044ee3b9e518f16a731c8dd59506b5bd72 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Mon, 8 Feb 2021 22:03:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bjyy-core/pom.xml | 7 +- .../wmeimob/bjyy/common/BaseController.java | 6 +- .../bjyy/util/UploadFileUtil_Servlet3.java | 142 ++++++++++++++++++ .../src/main/resources/dev/jdbc.properties | 5 +- .../src/main/resources/dev/redis.properties | 4 +- .../src/main/resources/dev/wechat.properties | 6 +- .../src/main/resources/prod/redis.properties | 4 +- .../src/main/resources/prod/wechat.properties | 7 +- .../src/main/resources/test/jdbc.properties | 5 +- .../src/main/resources/test/redis.properties | 2 +- .../src/main/resources/test/wechat.properties | 8 +- bjyy-dal/pom.xml | 4 - .../java/com/wmeimob/bjyy/dao/TrainDao.java | 3 +- .../com/wmeimob/bjyy/mapping/TrainDao.xml | 7 +- .../java/com/wmeimob/bjyy/vo/TrainVo.java | 11 +- .../bjyy/controller/MentalController.java | 39 ++++- .../bjyy/controller/PracticeController.java | 25 ++- .../wmeimob/bjyy/controller/WxController.java | 32 ++++ .../wmeimob/bjyy/service/MentalService.java | 6 + .../wmeimob/bjyy/service/TrainService.java | 3 +- .../bjyy/service/impl/MentalServiceImpl.java | 7 +- .../bjyy/service/impl/TrainServiceImpl.java | 6 +- .../WEB-INF/pages/mental/mental_result.jsp | 2 +- .../webapp/WEB-INF/pages/mental/practice.jsp | 84 ++++++++--- .../src/main/webapp/static/css/style.css | 3 +- .../src/main/webapp/static/exam1/test28.html | 2 +- .../src/main/webapp/static/exam1/test29.html | 2 +- .../src/main/webapp/static/exam1/test30.html | 4 +- .../src/main/webapp/static/exam2/test28.html | 2 +- .../src/main/webapp/static/exam2/test29.html | 2 +- .../src/main/webapp/static/exam2/test30.html | 2 +- .../src/main/webapp/static/exam3/test30.html | 6 +- .../src/main/webapp/static/exam4/test30.html | 2 +- .../src/main/webapp/static/js/h5share.js | 8 + .../webapp/static/js/share/css/share.min.css | 1 + .../webapp/static/js/share/fonts/iconfont.eot | Bin 0 -> 9580 bytes .../webapp/static/js/share/fonts/iconfont.svg | 88 +++++++++++ .../webapp/static/js/share/fonts/iconfont.ttf | Bin 0 -> 9296 bytes .../static/js/share/fonts/iconfont.woff | Bin 0 -> 6364 bytes .../static/js/share/js/jquery.share.min.js | 1 + .../static/js/share/js/social-share.min.js | 1 + pom.xml | 10 ++ 42 files changed, 481 insertions(+), 78 deletions(-) create mode 100644 bjyy-core/src/main/java/com/wmeimob/bjyy/util/UploadFileUtil_Servlet3.java create mode 100644 bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/WxController.java create mode 100644 bjyy-weixin/src/main/webapp/static/js/share/css/share.min.css create mode 100644 bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.eot create mode 100644 bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.svg create mode 100644 bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.ttf create mode 100644 bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.woff create mode 100644 bjyy-weixin/src/main/webapp/static/js/share/js/jquery.share.min.js create mode 100644 bjyy-weixin/src/main/webapp/static/js/share/js/social-share.min.js diff --git a/bjyy-core/pom.xml b/bjyy-core/pom.xml index 05c9ec0..4ea5787 100644 --- a/bjyy-core/pom.xml +++ b/bjyy-core/pom.xml @@ -175,15 +175,18 @@ test - + prod prod + + true + diff --git a/bjyy-core/src/main/java/com/wmeimob/bjyy/common/BaseController.java b/bjyy-core/src/main/java/com/wmeimob/bjyy/common/BaseController.java index 600248d..9a98fd2 100644 --- a/bjyy-core/src/main/java/com/wmeimob/bjyy/common/BaseController.java +++ b/bjyy-core/src/main/java/com/wmeimob/bjyy/common/BaseController.java @@ -1,5 +1,6 @@ package com.wmeimob.bjyy.common; +import lombok.extern.log4j.Log4j; import org.springframework.web.bind.annotation.ExceptionHandler; import com.wmeimob.bjyy.weixin.WeChatUtil; @@ -11,6 +12,7 @@ import com.wmeimob.wechat.core.WeChatBuilder; /** * 父类Controller */ +@Log4j public class BaseController { public static final WeChat WECHAT = WeChatBuilder.newBuilder(WeChatUtil.APP_ID, WeChatUtil.APP_SECRET) @@ -22,7 +24,9 @@ public class BaseController { * @return */ @ExceptionHandler(value = Exception.class) - public String exceptionHandler() { + public String exceptionHandler(Exception e) { + e.printStackTrace(); + log.error(e); return "error/error"; } } diff --git a/bjyy-core/src/main/java/com/wmeimob/bjyy/util/UploadFileUtil_Servlet3.java b/bjyy-core/src/main/java/com/wmeimob/bjyy/util/UploadFileUtil_Servlet3.java new file mode 100644 index 0000000..f6f7375 --- /dev/null +++ b/bjyy-core/src/main/java/com/wmeimob/bjyy/util/UploadFileUtil_Servlet3.java @@ -0,0 +1,142 @@ +package com.wmeimob.bjyy.util; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Part; +import java.io.*; +import java.net.URLEncoder; +import java.util.Date; + +@Slf4j +public class UploadFileUtil_Servlet3 { + /** + * Servlet3.0文件上传 (生成uuid.txt文件) + * @param part Servlet3.0 API ---> Part + * @param allowedExts 允许的后缀名 + * @param dir 目录 + * @return 文件名 + * @throws IOException + */ + public static String uploadFile(Part part, String allowedExts, String dir) + throws IOException{ + String extraPath = DateUtil.format(new Date(), "yyyyMMdd"); + + //1.判断是否为空 + if (part == null) { + return null; + } + + //2.生成文件名 [uuid.ext] + String original = getFileNameByPart(part); + String ext = FileUtil.extName(original); + if (StrUtil.isEmpty(ext) || !allowedExts.contains(ext)){ + throw new RuntimeException("不支持的格式类型: " + ext); + } + String path = extraPath + File.separator + IdUtil.simpleUUID() + "." + ext; + //3.创建必要的目录 + File tmpFile = new File(dir); + if (!tmpFile.exists()) { + tmpFile.mkdirs(); + } + + //4.写入磁盘 + String fullPath = dir + File.separator + path; + //part.write(path); //需要配置临时路径 + //saveFileFromInputStream(part.getInputStream(),dir,name); + FileUtil.writeFromStream(part.getInputStream(),fullPath); + + return path; + } + + public static byte[] uploadFile(Part part) + throws IOException { + //1.判断是否为空 + if (part == null) { + return null; + } + + //2.读取文件 + InputStream is = part.getInputStream(); + byte[] bytes = new byte[is.available()]; + is.read(bytes); + + return bytes; + } + + /** + * 根据请求头解析出文件名 + * 请求头的格式:火狐和google浏览器下:form-data; name="file"; filename="snmp4j--api.zip" + * IE浏览器下:form-data; name="file"; filename="E:\snmp4j--api.zip" + * @param part 包含请求头 + * @return 文件名 + */ + public static String getFileNameByPart(Part part) { + String header = part.getHeader("content-disposition"); + /** + * String[] tempArr1 = header.split(";");代码执行完之后,在不同的浏览器下,tempArr1数组里面的内容稍有区别 + * 火狐或者google浏览器下:tempArr1={form-data,name="file",filename="snmp4j--api.zip"} + * IE浏览器下:tempArr1={form-data,name="file",filename="E:\snmp4j--api.zip"} + */ + String[] tempArr1 = header.split(";"); + /** + *火狐或者google浏览器下:tempArr2={filename,"snmp4j--api.zip"} + *IE浏览器下:tempArr2={filename,"E:\snmp4j--api.zip"} + */ + String[] tempArr2 = tempArr1[2].split("="); + //获取文件名,兼容各种浏览器的写法 + String fileName = tempArr2[1].substring(tempArr2[1].lastIndexOf("\\")+1).replaceAll("\"", ""); + return fileName; + } + + public static void download(HttpServletResponse response, String path, String fileName) throws Exception{ + File file = new File(path); + // 如果文件存在,则进行下载 + if (!file.exists()) { + log.info("该路径不存在:{}",path); + return; + } + // 配置文件下载 + response.setHeader("content-type", "application/octet-stream"); + response.setContentType("application/octet-stream"); + // 下载文件能正常显示中文 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, CharsetUtil.UTF_8)); + // 实现文件下载 + byte[] buffer = new byte[1024]; + FileInputStream fis = null; + BufferedInputStream bis = null; + try { + fis = new FileInputStream(file); + bis = new BufferedInputStream(fis); + OutputStream os = response.getOutputStream(); + int i = bis.read(buffer); + while (i != -1) { + os.write(buffer, 0, i); + i = bis.read(buffer); + } + + } finally { + if (bis != null) { + try { + bis.close(); + } catch (IOException e) { + log.error("关闭流异常", e); + } + } + if (fis != null) { + try { + fis.close(); + } catch (IOException e) { + log.error("关闭流异常", e); + } + } + } + + + } +} diff --git a/bjyy-core/src/main/resources/dev/jdbc.properties b/bjyy-core/src/main/resources/dev/jdbc.properties index d2cbf2b..21fbb15 100644 --- a/bjyy-core/src/main/resources/dev/jdbc.properties +++ b/bjyy-core/src/main/resources/dev/jdbc.properties @@ -1,5 +1,4 @@ jdbc.driver=com.mysql.jdbc.Driver -jdbc.url=jdbc:mysql://127.0.0.1:3306/yanyuan?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true +jdbc.url=jdbc:mysql://test.tall.wiki:3306/yanyuan?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true jdbc.username=root -#jdbc.password=po3OynBO[M3579p6L7)o -jdbc.password= \ No newline at end of file +jdbc.password=po3OynBO[M3579p6L7)o \ No newline at end of file diff --git a/bjyy-core/src/main/resources/dev/redis.properties b/bjyy-core/src/main/resources/dev/redis.properties index 45ac5a5..ff8b4bb 100644 --- a/bjyy-core/src/main/resources/dev/redis.properties +++ b/bjyy-core/src/main/resources/dev/redis.properties @@ -1,5 +1,5 @@ redis.host=127.0.0.1 redis.port=6379 #redis.password=keepAwayFromGithub&CodeSave -redis.password=areowqr!@43ef -redis.index=6 \ No newline at end of file +redis.password= +redis.index=1 \ No newline at end of file diff --git a/bjyy-core/src/main/resources/dev/wechat.properties b/bjyy-core/src/main/resources/dev/wechat.properties index 8e9a923..39804b0 100644 --- a/bjyy-core/src/main/resources/dev/wechat.properties +++ b/bjyy-core/src/main/resources/dev/wechat.properties @@ -6,4 +6,8 @@ #wechat.CallbackDomain=https://lyb-yanyuan.f.wmeimob.com wechat.AppID=wx7af1bf1e14facf82 wechat.AppSecret=a6613fae11b497639c0224b820aaf6d9 -wechat.CallbackDomain=https://www.tall.wiki \ No newline at end of file +wechat.CallbackDomain=https://www.tall.wiki +filePath=D:/git/bjyy/bjyy-weixin/target/bjyy-weixin/ +domain=http://localhost:8080/bjyy_weixin/ +logoPath=D:/git/bjyy/bjyy-weixin/src/main/webapp/static/images/logo.jpg +projectPath=D:/git/bjyy/bjyy-weixin/target/bjyy-weixin/ \ No newline at end of file diff --git a/bjyy-core/src/main/resources/prod/redis.properties b/bjyy-core/src/main/resources/prod/redis.properties index 56234de..bdafd55 100644 --- a/bjyy-core/src/main/resources/prod/redis.properties +++ b/bjyy-core/src/main/resources/prod/redis.properties @@ -1,5 +1,5 @@ redis.host=127.0.0.1 redis.port=6379 #redis.password=keepAwayFromGithub&CodeSave -redis.password= -redis.index=4 \ No newline at end of file +redis.password=areowqr!@43ef +redis.index=1 \ No newline at end of file diff --git a/bjyy-core/src/main/resources/prod/wechat.properties b/bjyy-core/src/main/resources/prod/wechat.properties index 8e9a923..af91890 100644 --- a/bjyy-core/src/main/resources/prod/wechat.properties +++ b/bjyy-core/src/main/resources/prod/wechat.properties @@ -6,4 +6,9 @@ #wechat.CallbackDomain=https://lyb-yanyuan.f.wmeimob.com wechat.AppID=wx7af1bf1e14facf82 wechat.AppSecret=a6613fae11b497639c0224b820aaf6d9 -wechat.CallbackDomain=https://www.tall.wiki \ No newline at end of file +wechat.CallbackDomain=https://www.tall.wiki + +filePath=/home/staticrec/ +domain=https://www.tall.wiki/ +logoPath=/home/tomcat/apache-tomcat-8.5.61/webapps/bjyy-weixin/static/images/logo.jpg +projectPath=/home/tomcat/apache-tomcat-8.5.61/webapps/bjyy-weixin/ \ No newline at end of file diff --git a/bjyy-core/src/main/resources/test/jdbc.properties b/bjyy-core/src/main/resources/test/jdbc.properties index 7aa4fb1..bf7116f 100644 --- a/bjyy-core/src/main/resources/test/jdbc.properties +++ b/bjyy-core/src/main/resources/test/jdbc.properties @@ -1,5 +1,4 @@ jdbc.driver=com.mysql.jdbc.Driver -jdbc.url=jdbc:mysql://test.tall.wiki:3306/yanyuan?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true +jdbc.url=jdbc:mysql://127.0.0.1:3306/yanyuan?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true jdbc.username=root -jdbc.password=po3OynBO[M3579p6L7)o -#jdbc.password= \ No newline at end of file +jdbc.password= \ No newline at end of file diff --git a/bjyy-core/src/main/resources/test/redis.properties b/bjyy-core/src/main/resources/test/redis.properties index 49a3a3d..91f7863 100644 --- a/bjyy-core/src/main/resources/test/redis.properties +++ b/bjyy-core/src/main/resources/test/redis.properties @@ -2,4 +2,4 @@ redis.host=127.0.0.1 redis.port=6379 redis.password= #redis.password= -redis.index=5 \ No newline at end of file +redis.index=1 \ No newline at end of file diff --git a/bjyy-core/src/main/resources/test/wechat.properties b/bjyy-core/src/main/resources/test/wechat.properties index a0f0f6e..f776c3b 100644 --- a/bjyy-core/src/main/resources/test/wechat.properties +++ b/bjyy-core/src/main/resources/test/wechat.properties @@ -7,7 +7,7 @@ wechat.CallbackDomain=https://www.tall.wiki #wechat.AppID=wxbcda0257af55982a #wechat.AppSecret=818724f3ef23895c1b46b4bae75a1a50 #wechat.CallbackDomain=https://lyb-yanyuan.f.wmeimob.com -filePath=D:/git/bjyy/bjyy-weixin/target/bjyy-weixin/ -domain=http://localhost:8080/bjyy_weixin/ -logoPath=D:/git/bjyy/bjyy-weixin/src/main/webapp/static/images/logo.jpg -projectPath=D:/git/bjyy/bjyy-weixin/target/bjyy-weixin/ +filePath=/home/staticrec/ +domain=https://www.tall.wiki/ +logoPath=/home/tomcat/apache-tomcat-8.5.61/webapps/bjyy-weixin/static/images/logo.jpg +projectPath=/home/tomcat/apache-tomcat-8.5.61/webapps/bjyy-weixin/ diff --git a/bjyy-dal/pom.xml b/bjyy-dal/pom.xml index 6a362f4..719e540 100644 --- a/bjyy-dal/pom.xml +++ b/bjyy-dal/pom.xml @@ -18,10 +18,6 @@ - - ${project.groupId} - bjyy-core - org.springframework spring-jdbc diff --git a/bjyy-dal/src/main/java/com/wmeimob/bjyy/dao/TrainDao.java b/bjyy-dal/src/main/java/com/wmeimob/bjyy/dao/TrainDao.java index 091c5bf..3a1bbd6 100644 --- a/bjyy-dal/src/main/java/com/wmeimob/bjyy/dao/TrainDao.java +++ b/bjyy-dal/src/main/java/com/wmeimob/bjyy/dao/TrainDao.java @@ -18,7 +18,8 @@ public interface TrainDao { /** * 根据用户ID查看最新的训练内容 * @param userId 用户ID + * @param testId 测评ID * @return 训练内容 */ - List queryLastPractice(@Param("userId") String userId); + List queryLastPractice(@Param("userId") String userId, @Param("testId") String testId); } diff --git a/bjyy-dal/src/main/java/com/wmeimob/bjyy/mapping/TrainDao.xml b/bjyy-dal/src/main/java/com/wmeimob/bjyy/mapping/TrainDao.xml index 2127277..c45c79a 100644 --- a/bjyy-dal/src/main/java/com/wmeimob/bjyy/mapping/TrainDao.xml +++ b/bjyy-dal/src/main/java/com/wmeimob/bjyy/mapping/TrainDao.xml @@ -60,7 +60,12 @@ select c.*, i.url from (select t.startTime, a.name, a.description, c.id, c.content from - (select id, test_at as startTime from u_mental_test where user_id = #{userId} and status = 1 order by test_at desc limit 1) t, + (select id, test_at as startTime from u_mental_test where + + id = #{testId} + user_id = #{userId} + + and status = 1 order by test_at desc limit 1) t, t_train_record r, t_train_content c, t_train_aid a diff --git a/bjyy-dal/src/main/java/com/wmeimob/bjyy/vo/TrainVo.java b/bjyy-dal/src/main/java/com/wmeimob/bjyy/vo/TrainVo.java index 1420a1d..81d3355 100644 --- a/bjyy-dal/src/main/java/com/wmeimob/bjyy/vo/TrainVo.java +++ b/bjyy-dal/src/main/java/com/wmeimob/bjyy/vo/TrainVo.java @@ -1,14 +1,14 @@ package com.wmeimob.bjyy.vo; import com.fasterxml.jackson.annotation.JsonFormat; -import com.wmeimob.bjyy.util.DateUtil; import lombok.Data; +import java.util.Calendar; import java.util.Date; import java.util.List; /** - * @description: + * @description: 康复训练 * @author: whj * @time: 2021/2/5 15:51 */ @@ -30,8 +30,11 @@ public class TrainVo { private List images; public Date getEndTime() { - if (endTime == null) { - endTime = DateUtil.getDate(14, new Date()); + if (endTime == null && startTime != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.DAY_OF_YEAR, 13); + endTime = calendar.getTime(); } return endTime; } diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java index fcf6ca5..1e2c915 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Random; import java.util.UUID; +import cn.hutool.core.util.StrUtil; import com.wmeimob.bjyy.service.TrainService; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -77,7 +78,6 @@ public class MentalController { return mv; } if(StringUtils.isEmpty(user.getMobile())){ - //跳转到基础信息填写第一页 mv.setViewName("/user/first_basic"); //查询所有的省 mv.addObject("provinces", addressService.listAllProvince()); @@ -140,7 +140,36 @@ public class MentalController { * @return */ @RequestMapping(value = "practice") - public ModelAndView practice() { + public ModelAndView practice(String testId) { + + ModelAndView mv = new ModelAndView("/mental/practice"); + if (StrUtil.isNotEmpty(testId)) { + mv.addObject("testId", testId); + return mv; + } + String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); + User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); + if(StringUtils.isEmpty(user.getRegisterNo())){ + //跳转到注册码注册页面 + mv.setViewName("/core/register"); + return mv; + } + if(StringUtils.isEmpty(user.getMobile())){ + //跳转到基础信息填写第一页 + mv.setViewName("/user/first_basic"); + //查询所有的省 + mv.addObject("provinces", addressService.listAllProvince()); + mv.addObject("user", user); + return mv; + } + //查询最新脑力测评结果 + MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); + mv.addObject("testId", queryMentalRecord.getId()); + return mv; + + } +// @RequestMapping(value = "practice") + public ModelAndView practice_old() { ModelAndView mv = new ModelAndView("/mental/practice"); String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); @@ -313,7 +342,7 @@ public class MentalController { */ @RequestMapping(value = "/submitMental") @ResponseBody - public ResultVO submitMental(String chooseIds,int type) { + public ResultVO submitMental(String chooseIds) { ResultVO result=new ResultVO(); String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); @@ -352,7 +381,7 @@ public class MentalController { mentalTest.setId(UUID.randomUUID().toString()); mentalTest.setUserId(user.getId()); - mentalTest.setFromType((byte) type); +// mentalTest.setFromType((byte) type); mentalTest.setMemoryNum(memoryScore); mentalTest.setExpressNum(expressScore); mentalTest.setViewNum(viewScore); @@ -370,7 +399,7 @@ public class MentalController { // 生成训练试题 String pdfUrl = trainService.generateTrainPlan(mentalTest.getId(), (byte)grade); - + log.info(user.getId() + "生成训练计划:" + pdfUrl); if(addCareRecord>0){ result.setCode(0); result.setData(pdfUrl); diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/PracticeController.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/PracticeController.java index 351e5a6..cd3d39d 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/PracticeController.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/PracticeController.java @@ -1,16 +1,23 @@ package com.wmeimob.bjyy.controller; +import com.wmeimob.bjyy.common.BaseController; +import com.wmeimob.bjyy.model.MentalTest; import com.wmeimob.bjyy.model.User; +import com.wmeimob.bjyy.service.MentalService; import com.wmeimob.bjyy.service.TrainService; +import com.wmeimob.bjyy.util.DateUtil; import com.wmeimob.bjyy.util.RedisUtil; import com.wmeimob.bjyy.util.SessionUtil; +import com.wmeimob.bjyy.util.UploadFileUtil_Servlet3; import com.wmeimob.bjyy.vo.ResultVO; import com.wmeimob.bjyy.vo.TrainVo; import lombok.extern.log4j.Log4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -19,26 +26,36 @@ import java.util.List; * @time: 2021/2/6 16:05 */ @Log4j -@ResponseBody +@RestController @RequestMapping("/wx/practice") -public class PracticeController { +public class PracticeController extends BaseController { @Resource private TrainService trainService; + @Resource + private MentalService mentalService; /** * 根据用户ID查看最新的训练内容 * @return 康复训练 */ @RequestMapping("/last") - public ResultVO queryLastPractice(){ + public ResultVO queryLastPractice(String testId){ ResultVO result=new ResultVO(); String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); log.info("查询训练计划:" + user.getId()); - List list = trainService.queryLastPractice(user.getId()); + List list = trainService.queryLastPractice(user.getId(), testId); result.setCode(0); result.setData(list); return result; } + + @RequestMapping("download") + public void download(HttpServletResponse response, String testId) throws Exception { + log.info("下载:{}" + testId); + MentalTest test = mentalService.getMentalTestById(testId); + UploadFileUtil_Servlet3.download(response, test.getPdfUrl(), + "脑益宝—老年脑健康认知训练方案" + DateUtil.format(test.getTestAt(), DateUtil.yyyyMMddDot) + ".pdf"); + } } diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/WxController.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/WxController.java new file mode 100644 index 0000000..4b426ce --- /dev/null +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/WxController.java @@ -0,0 +1,32 @@ +package com.wmeimob.bjyy.controller; + +import com.wmeimob.bjyy.common.BaseController; +import com.wmeimob.bjyy.vo.ResultVO; +import com.wmeimob.wechat.core.JsSdkComponent; +import com.wmeimob.wechat.model.basic.WxJsSdkConfig; +import lombok.extern.log4j.Log4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: + * @author: whj + * @time: 2021/2/8 18:31 + */ +@Log4j +@RestController +@RequestMapping("/wx") +public class WxController extends BaseController { + @RequestMapping("config") + public ResultVO config(String url){ + log.info("获取微信配置:" + url); + JsSdkComponent jsSdkComponent = WECHAT.jssdk(); + WxJsSdkConfig config = jsSdkComponent.config(url); + log.info("微信配置:" + config); + ResultVO vo = new ResultVO(); + vo.setCode(0); + vo.setData(config); + return vo; + } + +} diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/MentalService.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/MentalService.java index 1fd182f..961b931 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/MentalService.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/MentalService.java @@ -82,4 +82,10 @@ public interface MentalService { */ HealthRecordVO queryHealthRecordDetail(String userId, String id); + /** + * 根据ID获取测试信息 + * @param testId + * @return + */ + MentalTest getMentalTestById(String testId); } diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/TrainService.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/TrainService.java index 477bbcc..3dcdf32 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/TrainService.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/TrainService.java @@ -23,7 +23,8 @@ public interface TrainService { /** * 根据用户ID查看最新的训练内容 * @param userId 用户ID + * @param testId 测试ID * @return 训练内容 */ - List queryLastPractice(String userId); + List queryLastPractice(String userId, String testId); } diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/MentalServiceImpl.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/MentalServiceImpl.java index 9c3feb3..c2e3517 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/MentalServiceImpl.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/MentalServiceImpl.java @@ -27,6 +27,7 @@ import com.wmeimob.bjyy.vo.PracticeVO; import com.wmeimob.bjyy.vo.ScoreVO; @Service +@Transactional(rollbackFor = Exception.class) public class MentalServiceImpl implements MentalService{ private Logger log = Logger.getLogger(this.getClass()); @@ -75,7 +76,6 @@ public class MentalServiceImpl implements MentalService{ } @Override - @Transactional public int addMentalRecord(MentalTest mentalTest) { int flag=0; try { @@ -132,4 +132,9 @@ public class MentalServiceImpl implements MentalService{ return healthRecordMapper.selectHealthRecordDetail(userId,id); } + @Override + public MentalTest getMentalTestById(String testId) { + return mentalTestMapper.selectByPrimaryKey(testId); + } + } diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/TrainServiceImpl.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/TrainServiceImpl.java index 23effcb..aca984b 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/TrainServiceImpl.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/TrainServiceImpl.java @@ -100,7 +100,7 @@ public class TrainServiceImpl implements TrainService { }); Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.WEEK_OF_YEAR, 2); + calendar.add(Calendar.DAY_OF_YEAR, 13); //介绍 List intros = new ArrayList<>(); PdfUtil.Row row = new PdfUtil.Row(); @@ -132,8 +132,8 @@ public class TrainServiceImpl implements TrainService { } @Override - public List queryLastPractice(String userId) { - return trainDao.queryLastPractice(userId); + public List queryLastPractice(String userId, String testId) { + return trainDao.queryLastPractice(userId, testId); } diff --git a/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/mental_result.jsp b/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/mental_result.jsp index 2c6117c..8144b86 100644 --- a/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/mental_result.jsp +++ b/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/mental_result.jsp @@ -119,7 +119,7 @@ //训练跟踪 $(".nextstep").click(function(){ - window.location.href="${contextPath}/wx/mental/practice"; + window.location.href="${contextPath}/wx/mental/practice?testId=${mentalTest.id}"; }); diff --git a/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice.jsp b/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice.jsp index f31b65c..65f3395 100644 --- a/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice.jsp +++ b/bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice.jsp @@ -13,9 +13,11 @@ 北京燕园 + + @@ -24,7 +26,7 @@ -git + @@ -33,20 +35,16 @@ git 脑益宝—老年脑健康认知训练方案 - - - 根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。 + + + 根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。 + 导出 + - - - - - - - - - - - + + + + @@ -58,14 +56,53 @@ git <%--//--%> - - +<%----%> +
根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。
+ 根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。 + 导出 +