From 7d600e920e944c53147a3109e87d3435e89be981 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Mon, 22 Feb 2021 11:08:15 +0800 Subject: [PATCH] =?UTF-8?q?20210222=E5=9F=BA=E6=9C=AC=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bjyy/interceptor/WxInterceptor.java | 11 + .../bjyy/controller/CoreController.java | 12 + .../bjyy/controller/DownloadController.java | 28 + .../bjyy/controller/MentalController.java | 1067 +++++------ .../bjyy/service/impl/MentalServiceImpl.java | 216 +-- .../bjyy/service/impl/UserServiceImpl.java | 4 + .../WEB-INF/pages/measure/care_index.jsp | 2 +- .../WEB-INF/pages/measure/follow_up_add.jsp | 44 +- .../webapp/WEB-INF/pages/mental/practice.jsp | 2 +- .../webapp/WEB-INF/pages/user/first_basic.jsp | 41 +- .../WEB-INF/pages/user/first_basic_edit.jsp | 64 +- .../WEB-INF/pages/user/second_basic.jsp | 62 +- .../WEB-INF/pages/user/second_basic_edit.jsp | 59 +- .../src/main/webapp/static/css/rui_date.css | 61 + .../src/main/webapp/static/exam1/test26.html | 4 +- .../src/main/webapp/static/exam1/test28.html | 2 +- .../src/main/webapp/static/exam1/test29.html | 4 +- .../src/main/webapp/static/exam1/test30.html | 27 +- .../src/main/webapp/static/exam2/test28.html | 2 +- .../src/main/webapp/static/exam2/test29.html | 6 +- .../src/main/webapp/static/exam2/test30.html | 6 +- .../src/main/webapp/static/exam3/test29.html | 4 +- .../src/main/webapp/static/exam3/test30.html | 4 +- .../src/main/webapp/static/exam4/test29.html | 153 +- .../src/main/webapp/static/exam4/test30.html | 4 +- .../src/main/webapp/static/exam4/test7.html | 2 +- .../src/main/webapp/static/js/chooseDate.js | 233 +++ .../src/main/webapp/static/js/rui_date.js | 1561 +++++++++++++++++ 28 files changed, 2894 insertions(+), 791 deletions(-) create mode 100644 bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/DownloadController.java create mode 100644 bjyy-weixin/src/main/webapp/static/css/rui_date.css create mode 100644 bjyy-weixin/src/main/webapp/static/js/chooseDate.js create mode 100644 bjyy-weixin/src/main/webapp/static/js/rui_date.js diff --git a/bjyy-core/src/main/java/com/wmeimob/bjyy/interceptor/WxInterceptor.java b/bjyy-core/src/main/java/com/wmeimob/bjyy/interceptor/WxInterceptor.java index 6a566e5..bb11558 100644 --- a/bjyy-core/src/main/java/com/wmeimob/bjyy/interceptor/WxInterceptor.java +++ b/bjyy-core/src/main/java/com/wmeimob/bjyy/interceptor/WxInterceptor.java @@ -2,10 +2,16 @@ package com.wmeimob.bjyy.interceptor; import java.net.URLEncoder; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.wmeimob.bjyy.model.User; +import com.wmeimob.bjyy.util.RedisUtil; +import com.wmeimob.wechat.model.user.WxUserInfoBase; +import com.wmeimob.wmcore.network.HttpUtil; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; @@ -31,6 +37,11 @@ public class WxInterceptor implements HandlerInterceptor { // SessionUtil.setSession(SessionUtil.SESSION_WX_OPENID, "ot99rxBy43yhkPsa3TaQ3L8vtQvM"); String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); log.debug("#############WxInterceptor preHandle###############openId:" + openId); + +// //查找redis内是否有该openId +// User usr = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); +// log.info("查找redis内的用户信息:" + usr); + if (Strings.isNullOrEmpty(openId)) { StringBuilder sb = new StringBuilder(); sb.append(WeChatUtil.CALLBACK).append(contextPath).append("/home/start?backUrl=").append(uri); diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/CoreController.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/CoreController.java index d174acc..81f2c6e 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/CoreController.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/CoreController.java @@ -53,6 +53,7 @@ public class CoreController { String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); log.info("获取openId:"+openId); User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); + log.info("获取key:" + RedisUtil.PREFIX_USER_INFO + openId); log.info("读取redis内的信息:"+user); if(user == null || StringUtils.isEmpty(user.getRegisterNo())){ mv.setViewName("/core/register");//跳转到注册码注册页面 @@ -84,6 +85,7 @@ public class CoreController { @RequestMapping(value = "register") @ResponseBody public ResultVO register(String no) { + log.info("提交注册码:" + no); ResultVO result = new ResultVO(); if(StringUtils.isEmpty(no)){ result.setCode(-1); @@ -91,6 +93,7 @@ public class CoreController { return result; } Register register=coreService.queryRegisterNo(no); + log.info("查找注册码是否存在:" + register); if(register==null || !register.getStatus()){ result.setCode(-1); result.setMessage("该注册码已失效"); @@ -99,17 +102,25 @@ public class CoreController { User user=new User(); user.setRegisterNo(no); + log.info("给user赋值:" + user); List queryUserByCondition=userService.queryUserByCondition(user); + log.info("查找使用该注册码的用户:" + queryUserByCondition); if(null!=queryUserByCondition && queryUserByCondition.size()>0){ result.setCode(-1); result.setMessage("该注册码已被绑定"); return result; } String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); + log.info("查找openId:" + openId); User usr = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); + log.info("查找redis内的用户信息:" + usr); + if(usr == null){ + usr = new User(); + } usr.setRegisterNo(no); usr.setUpdateAt(new Date()); int editUserInformation = userService.editUserInformation(usr); + log.info("修改用户信息:" + editUserInformation); if(editUserInformation>0){ //更新redis里的user信息 RedisUtil.setValue(RedisUtil.PREFIX_USER_INFO + openId, usr); @@ -118,6 +129,7 @@ public class CoreController { register.setUpdatedAt(new Date()); coreService.updateRegister(register); result.setCode(0); + log.info("更新注册码表的信息:" + editUserInformation); }else{ result.setCode(-1); result.setMessage("注册失败,请重试"); diff --git a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/DownloadController.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/DownloadController.java new file mode 100644 index 0000000..36c64b6 --- /dev/null +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/DownloadController.java @@ -0,0 +1,28 @@ +package com.wmeimob.bjyy.controller; + +import com.wmeimob.bjyy.model.MentalTest; +import com.wmeimob.bjyy.service.MentalService; +import com.wmeimob.bjyy.util.DateUtil; +import com.wmeimob.bjyy.util.UploadFileUtil_Servlet3; +import lombok.extern.log4j.Log4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; + +@Log4j +@RestController +@RequestMapping("/practice") +public class DownloadController { + @Resource + private MentalService mentalService; + + @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/MentalController.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java index 1e2c915..ee8d0e7 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 @@ -1,5 +1,6 @@ package com.wmeimob.bjyy.controller; +import java.io.IOException; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -11,6 +12,8 @@ import java.util.Random; import java.util.UUID; import cn.hutool.core.util.StrUtil; +import com.itextpdf.text.DocumentException; +import com.wmeimob.bjyy.common.BaseController; import com.wmeimob.bjyy.service.TrainService; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -43,526 +46,564 @@ import javax.annotation.Resource; /** * 脑力测评controller - * @author WMM04 * + * @author WMM04 */ @Controller @RequestMapping("/wx/mental") -public class MentalController { - - private Logger log = Logger.getLogger(this.getClass()); - - @Autowired - private MentalService mentalService; - - @Autowired - private CoreService coreService; - - @Autowired - private AddressService addressService; - @Resource - private TrainService trainService; - - /** - * 系统首页 - * @return - */ - @RequestMapping(value = "index") - public ModelAndView index() { - ModelAndView mv = new ModelAndView("/mental/index"); - 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()); - if(null != queryMentalRecord){ - mv.addObject("mentalTest", queryMentalRecord); - } - return mv; - } - - - /** - * 进行脑力测评 - * @return - */ - @RequestMapping(value = "toFirstQust") - @ResponseBody - public ResultVO toFirstQust() { - ResultVO result = new ResultVO(); - String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); - User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); - //查找最新记录,判断是否已满2个月 - MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); - if(null != queryMentalRecord){ +public class MentalController extends BaseController { + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private MentalService mentalService; + + @Autowired + private CoreService coreService; + + @Autowired + private AddressService addressService; + @Resource + private TrainService trainService; + + /** + * 系统首页 + * + * @return + */ + @RequestMapping(value = "index") + public ModelAndView index() { + ModelAndView mv = new ModelAndView("/mental/index"); + 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()); + log.info("查询最新的一条答题记录:" + queryMentalRecord); + Date monthSpace = DateUtil.getDate(-14, new Date()); + if (null != queryMentalRecord && queryMentalRecord.getCreateAt().getTime() > monthSpace.getTime()) { +// if (null != queryMentalRecord) { +// mv.addObject("mentalTest", queryMentalRecord); + return careResult(); + } + return mv; + } + + + /** + * 进行脑力测评 + * + * @return + */ + @RequestMapping(value = "toFirstQust") + @ResponseBody + public ResultVO toFirstQust() { + ResultVO result = new ResultVO(); + String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); + User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); + //查找最新记录,判断是否已满2个星期 + MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); + if (null != queryMentalRecord) { // Date monthSpace = DateUtil.getMonthSpace(-2);//当前时间的两个月前的时间 - Date monthSpace = DateUtil.getDate(-14,new Date()); - if(queryMentalRecord.getCreateAt().getTime() arl=new ArrayList(); - arl.add(1); - arl.add(2); - arl.add(3); - result.setCode(0); - //选择测评试卷(选择最新的两条记录) - List queryMentalRecordTop=mentalService.queryMentalRecordTop(user.getId()); - for (MentalTest mentalTest : queryMentalRecordTop) { - arl.remove(mentalTest.getFromType()-1); - } - result.setData(arl.get(new Random().nextInt(arl.size()))); - }else{ - result.setCode(-1); - } - }else{ - result.setCode(0); - //选择测评试卷 - int nextInt = new Random().nextInt(3); - result.setData(nextInt+1); - } - - return result; - } - - - - /** - * 训练跟踪 - * @return - */ - @RequestMapping(value = "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); - 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; - } - - try { - //查询最新脑力测评结果 - MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); - //查出最新的训练跟踪 - Practice practice=mentalService.queryPracticeNewest(user.getId(),queryMentalRecord.getId()); - Calendar c = Calendar.getInstance(); - c.setTime(queryMentalRecord.getCreateAt()); - c.add(Calendar.DATE,1); - mv.addObject("firstDay", c.getTime()); - //完整的训练周期 - Date monthDate = DateUtil.getMonthDate(2,queryMentalRecord.getCreateAt()); - if(null==practice){ - //第一周周期时间 - c.add(Calendar.DATE,6); - mv.addObject("sevDay", c.getTime()); - }else{ - - if(practice.getEndAt().getTime() >= monthDate.getTime()){ - mv.addObject("endDay", monthDate); - mv.addObject("practice", practice); - mv.addObject("mentalTest", queryMentalRecord); - mv.setViewName("/mental/practice_last"); - return mv; - } - Practice prac=new Practice(); - prac.setPracticePeriod(practice.getPracticePeriod()+1); - c.setTime(practice.getEndAt()); - c.add(Calendar.DATE,1); - prac.setStartAt(c.getTime()); - c.add(Calendar.DATE,6); - - if(c.getTime().getTime()>=monthDate.getTime()){ - prac.setEndAt(monthDate); - }else{ - prac.setEndAt(c.getTime()); - } - practice=prac; - } - mv.addObject("endDay", monthDate); - mv.addObject("practice", practice); - mv.addObject("mentalTest", queryMentalRecord); - } catch (Exception e) { - e.printStackTrace(); - log.debug("###########MentalController practice###########e="+e.getMessage()); - } - return mv; - } - - - /** - * 健康档案 - * @return - */ - @RequestMapping(value = "healthRecord") - public ModelAndView healthRecord() { - ModelAndView mv = new ModelAndView("/mental/health_record"); - 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; - } - //查询健康档案记录 - HealthRecordVO healthRecordVO=mentalService.queryHealthRecordNewest(user.getId()); - mv.addObject("healthRecordVO", healthRecordVO); - return mv; - } - - - /** - * 健康档案记录列表 - * @return - */ - @RequestMapping(value = "healthRecordList") - public ModelAndView healthRecordList() { - ModelAndView mv = new ModelAndView("/mental/health_record_list"); - 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; - } - //查询健康档案记录列表 - List healthRecordList=mentalService.queryHealthRecordList(user.getId()); - mv.addObject("healthRecordList", healthRecordList); - return mv; - } - - - /** - * 健康档案详情 - * @return - */ - @RequestMapping(value = "healthRecordDetail") - public ModelAndView healthRecordDetail(String id) { - ModelAndView mv = new ModelAndView("/mental/health_record"); - 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; - } - //查询健康档案记录 - HealthRecordVO healthRecordVO=mentalService.queryHealthRecordDetail(user.getId(),id); - mv.addObject("healthRecordVO", healthRecordVO); - return mv; - } - - - /** - * 检查是否已做脑力测评 - * @return - */ - @RequestMapping(value = "check") - @ResponseBody - public ResultVO check() { - ResultVO result = new ResultVO(); - String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); - User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); - //查询是否有脑力测评记录 - List queryAllMentalRecord=mentalService.queryMentalRecordTop(user.getId()); - if(null != queryAllMentalRecord && queryAllMentalRecord.size()>0){ - result.setCode(0); - }else{ - result.setCode(-1); - } - return result; - } - - - /** - * 提交脑力测评结果 - * @return - */ - @RequestMapping(value = "/submitMental") - @ResponseBody - 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); - try { - //去除无用逗号 - ArrayList str=new ArrayList(); - String[] split = chooseIds.split(","); - for (int i = 0; i < split.length; i++) { - if(StringUtils.isNotEmpty(split[i])){ - str.add(Integer.valueOf(split[i])); - } - } - ScoreVO scoreVo=mentalService.queryScoreSum(str); - MentalTest mentalTest=new MentalTest(); - BigDecimal memoryScore=new BigDecimal(scoreVo.getSumMemoryScore()).divide(new BigDecimal(SumScore.memoryScore),2, BigDecimal.ROUND_UP); - BigDecimal attentionScore=new BigDecimal(scoreVo.getSumAttentionScore()).divide(new BigDecimal(SumScore.attentionScore),2, BigDecimal.ROUND_UP); - BigDecimal countScore=new BigDecimal(scoreVo.getSumCountScore()).divide(new BigDecimal(SumScore.countScore),2, BigDecimal.ROUND_UP); - BigDecimal directionScore=new BigDecimal(scoreVo.getSumDirectionScore()).divide(new BigDecimal(SumScore.directionScore),2, BigDecimal.ROUND_UP); - BigDecimal expressScore=new BigDecimal(scoreVo.getSumExpressScore()).divide(new BigDecimal(SumScore.expressScore),2, BigDecimal.ROUND_UP); - BigDecimal logicScore=new BigDecimal(scoreVo.getSumLogicScore()).divide(new BigDecimal(SumScore.logicScore),2, BigDecimal.ROUND_UP); - BigDecimal viewScore=new BigDecimal(scoreVo.getSumViewScore()).divide(new BigDecimal(SumScore.viewScore),2, BigDecimal.ROUND_UP); - int aScore=scoreVo.getSumMemoryScore()+scoreVo.getSumAttentionScore()+scoreVo.getSumCountScore() - +scoreVo.getSumDirectionScore()+scoreVo.getSumExpressScore()+scoreVo.getSumLogicScore()+scoreVo.getSumViewScore(); - //平均分 - BigDecimal avaScore=new BigDecimal(aScore).divide(new BigDecimal(SumScore.sumScore),2, BigDecimal.ROUND_UP); - - int grade=0; - //查询对应的星级 - List queryGrade=coreService.queryGrade(); - for (Grade gra : queryGrade) { - if(gra.getMinvalue().doubleValue()<=avaScore.doubleValue() && avaScore.doubleValue()<=gra.getMaxvalue().doubleValue()){ - grade=gra.getGrade(); - } - } + Date monthSpace = DateUtil.getDate(-14, new Date()); + if (queryMentalRecord.getCreateAt().getTime() < monthSpace.getTime()) { +// ArrayList arl=new ArrayList(); +// arl.add(1); +// arl.add(2); +// arl.add(3); + result.setCode(0); + //选择测评试卷(选择最新的两条记录) +// List queryMentalRecordTop=mentalService.queryMentalRecordTop(user.getId()); +// for (MentalTest mentalTest : queryMentalRecordTop) { +// arl.remove(mentalTest.getFromType()-1); +// } + result.setData(new Random().nextInt(5)); + log.info("已满14天。再次做题。题目类型是" + result.getData()); + } else { + result.setCode(-1); + log.info("未满14天。题目类型是" + result.getData()); + } + } else { + result.setCode(0); + //选择测评试卷 + int nextInt = new Random().nextInt(3); + result.setData(nextInt + 1); + } + log.info("开始测评返回" + result); + return result; + } - mentalTest.setId(UUID.randomUUID().toString()); - mentalTest.setUserId(user.getId()); -// mentalTest.setFromType((byte) type); - mentalTest.setMemoryNum(memoryScore); - mentalTest.setExpressNum(expressScore); - mentalTest.setViewNum(viewScore); - mentalTest.setAttentionNum(attentionScore); - mentalTest.setDirectionNum(directionScore); - mentalTest.setCountNum(countScore); - mentalTest.setLogicNum(logicScore); - mentalTest.setAverageNum(avaScore); - mentalTest.setGradeResult(grade); - mentalTest.setTestAt(new Date()); - mentalTest.setCreateAt(new Date()); - mentalTest.setUpdateAt(new Date()); - mentalTest.setStatus(true); - int addCareRecord = mentalService.addMentalRecord(mentalTest); - - // 生成训练试题 - String pdfUrl = trainService.generateTrainPlan(mentalTest.getId(), (byte)grade); - log.info(user.getId() + "生成训练计划:" + pdfUrl); - if(addCareRecord>0){ - result.setCode(0); - result.setData(pdfUrl); - }else{ - result.setCode(-1); - result.setMessage("操作失败,请重试"); - } - } catch (Exception e) { - result.setCode(-1); - result.setMessage("操作失败,请重试"); - log.debug("###########MeasureController submitFollowUp#########e="+e.getMessage()); - } - return result; - } - - /** - * 脑力测评结果 - * @return - */ - @RequestMapping(value = "mentalResult") - public ModelAndView careResult() { - ModelAndView mv = new ModelAndView("/mental/mental_result"); - 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 mentalTest=mentalService.queryMentalRecordNewest(user.getId()); - mv.addObject("mentalTest", mentalTest); - return mv; - } - - - /** - * 提交每周的训练跟踪 - * @return - */ - @RequestMapping(value = "nextweek") - @ResponseBody - public ResultVO nextweek(@ModelAttribute PracticeVO practiceVO, BindingResult bindingResult) { - ResultVO result = new ResultVO(); - String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); - User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); - try { - //查询最新脑力测评结果 - MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); - practiceVO.setId(UUID.randomUUID().toString()); - practiceVO.setUserId(user.getId()); - practiceVO.setMentalId(queryMentalRecord.getId()); - //查出最新的训练跟踪 - Practice practice=mentalService.queryPracticeNewest(user.getId(),queryMentalRecord.getId()); - - Calendar c = Calendar.getInstance(); - - - if(null==practice){ - practiceVO.setPracticePeriod(1); - c.setTime(queryMentalRecord.getCreateAt()); - }else{ - practiceVO.setPracticePeriod(practice.getPracticePeriod()+1); - c.setTime(practice.getEndAt()); - } - - c.add(Calendar.DATE,1); - practiceVO.setStartAt(c.getTime()); - c.add(Calendar.DATE,6); - practiceVO.setEndAt(c.getTime()); - practiceVO.setCreateAt(new Date()); - practiceVO.setUpdateAt(new Date()); - practiceVO.setStatus(true); - - Date monthDate = DateUtil.getMonthDate(2,queryMentalRecord.getCreateAt()); - if(practiceVO.getEndAt().getTime() >= monthDate.getTime()){ - practiceVO.setEndAt(monthDate); - } - - //往数据库添加一条训练跟踪记录 - int addPracticeRecord=mentalService.addPracticeRecord(practiceVO); - if(addPracticeRecord>0){ - - if(practiceVO.getEndAt().getTime() >= monthDate.getTime()){ - result.setCode(2); - result.setMessage("已是最后一周了,训练周期已结束"); - return result; - } - - result.setCode(0); - practiceVO.setPracticePeriod(practiceVO.getPracticePeriod()+1); - c.setTime(practiceVO.getEndAt()); - c.add(Calendar.DATE,1); - practiceVO.setStartTime(new SimpleDateFormat("yyyy/MM/dd").format(c.getTime())); - c.add(Calendar.DATE,6); - - Date date = DateUtil.getDate(-7,monthDate); - if(c.getTime().getTime()>=date.getTime()){ - practiceVO.setEndTime(new SimpleDateFormat("yyyy/MM/dd").format(monthDate)); - }else{ - practiceVO.setEndTime(new SimpleDateFormat("yyyy/MM/dd").format(c.getTime())); + /** + * 训练跟踪 + * + * @return + */ + @RequestMapping(value = "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); + 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; + } + + try { + //查询最新脑力测评结果 + MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); + //查出最新的训练跟踪 + Practice practice = mentalService.queryPracticeNewest(user.getId(), queryMentalRecord.getId()); + Calendar c = Calendar.getInstance(); + c.setTime(queryMentalRecord.getCreateAt()); + c.add(Calendar.DATE, 1); + mv.addObject("firstDay", c.getTime()); + //完整的训练周期 + Date monthDate = DateUtil.getMonthDate(2, queryMentalRecord.getCreateAt()); + if (null == practice) { + //第一周周期时间 + c.add(Calendar.DATE, 6); + mv.addObject("sevDay", c.getTime()); + } else { + + if (practice.getEndAt().getTime() >= monthDate.getTime()) { + mv.addObject("endDay", monthDate); + mv.addObject("practice", practice); + mv.addObject("mentalTest", queryMentalRecord); + mv.setViewName("/mental/practice_last"); + return mv; + } + Practice prac = new Practice(); + prac.setPracticePeriod(practice.getPracticePeriod() + 1); + c.setTime(practice.getEndAt()); + c.add(Calendar.DATE, 1); + prac.setStartAt(c.getTime()); + c.add(Calendar.DATE, 6); + + if (c.getTime().getTime() >= monthDate.getTime()) { + prac.setEndAt(monthDate); + } else { + prac.setEndAt(c.getTime()); + } + practice = prac; + } + mv.addObject("endDay", monthDate); + mv.addObject("practice", practice); + mv.addObject("mentalTest", queryMentalRecord); + } catch (Exception e) { + e.printStackTrace(); + log.debug("###########MentalController practice###########e=" + e.getMessage()); + } + return mv; + } + + + /** + * 健康档案 + * + * @return + */ + @RequestMapping(value = "healthRecord") + public ModelAndView healthRecord() { + ModelAndView mv = new ModelAndView("/mental/health_record"); + 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; + } + //查询健康档案记录 + HealthRecordVO healthRecordVO = mentalService.queryHealthRecordNewest(user.getId()); + mv.addObject("healthRecordVO", healthRecordVO); + return mv; + } + + + /** + * 健康档案记录列表 + * + * @return + */ + @RequestMapping(value = "healthRecordList") + public ModelAndView healthRecordList() { + ModelAndView mv = new ModelAndView("/mental/health_record_list"); + 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; + } + //查询健康档案记录列表 + List healthRecordList = mentalService.queryHealthRecordList(user.getId()); + mv.addObject("healthRecordList", healthRecordList); + return mv; + } + + + /** + * 健康档案详情 + * + * @return + */ + @RequestMapping(value = "healthRecordDetail") + public ModelAndView healthRecordDetail(String id) { + ModelAndView mv = new ModelAndView("/mental/health_record"); + 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; + } + //查询健康档案记录 + HealthRecordVO healthRecordVO = mentalService.queryHealthRecordDetail(user.getId(), id); + mv.addObject("healthRecordVO", healthRecordVO); + return mv; + } + + + /** + * 检查是否已做脑力测评 + * + * @return + */ + @RequestMapping(value = "check") + @ResponseBody + public ResultVO check() { + ResultVO result = new ResultVO(); + String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); + User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); + //查询是否有脑力测评记录 + List queryAllMentalRecord = mentalService.queryMentalRecordTop(user.getId()); + if (null != queryAllMentalRecord && queryAllMentalRecord.size() > 0) { + result.setCode(0); + } else { + result.setCode(-1); + } + return result; + } + + + /** + * 提交脑力测评结果 + * + * @return + */ + @RequestMapping(value = "/submitMental") + @ResponseBody + 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); + try { + String testId; + int grade = 0; + int addCareRecord = 0; + //查询是否有十四天以内的答题记录。如果有则直接返回上次答题的测评结果 + MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); + log.info("查询最新的一条答题记录:" + queryMentalRecord); + Date monthSpace = DateUtil.getDate(-14, new Date()); + if (null != queryMentalRecord && queryMentalRecord.getCreateAt().getTime() > monthSpace.getTime()) { + log.info("有答题记录且在14天之内"); + testId = queryMentalRecord.getId(); + addCareRecord = 1; + //查询对应的星级 + List queryGrade = coreService.queryGrade(); + for (Grade gra : queryGrade) { + if (gra.getMinvalue().doubleValue() <= queryMentalRecord.getAverageNum().doubleValue() && queryMentalRecord.getAverageNum().doubleValue() <= gra.getMaxvalue().doubleValue()) { + grade = gra.getGrade(); } - result.setData(practiceVO); - }else{ - result.setCode(-1); - result.setMessage("操作失败,请稍后重试"); } - } catch (Exception e) { - result.setCode(-1); - result.setMessage("系统异常"); - log.debug("###########MentalController practice###########e="+e.getMessage()); - } - return result; - } - - - - /** - * 训练跟踪 - * @return - */ - @RequestMapping(value = "nextweekLast") - public ModelAndView nextweekLast() { - ModelAndView mv = new ModelAndView("/mental/practice_last"); - 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; - } - - try { - //查询最新脑力测评结果 - MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); - //查出最新的训练跟踪 - Practice practice=mentalService.queryPracticeNewest(user.getId(),queryMentalRecord.getId()); - Calendar c = Calendar.getInstance(); - c.setTime(queryMentalRecord.getCreateAt()); - c.add(Calendar.DATE,1); - mv.addObject("firstDay", c.getTime()); - //完整的训练周期 - Date monthDate = DateUtil.getMonthDate(2,queryMentalRecord.getCreateAt()); - mv.addObject("endDay", monthDate); - mv.addObject("practice", practice); - mv.addObject("mentalTest", queryMentalRecord); - } catch (Exception e) { - e.printStackTrace(); - log.debug("###########MentalController practice###########e="+e.getMessage()); - } - return mv; - } - - + } else { + //去除无用逗号 + ArrayList str = new ArrayList(); + String[] split = chooseIds.split(","); + for (int i = 0; i < split.length; i++) { + if (StringUtils.isNotEmpty(split[i])) { + str.add(Integer.valueOf(split[i])); + } + } + log.info("去除无用逗号后:" + str); + ScoreVO scoreVo = mentalService.queryScoreSum(str); + log.info("查询本次答题每个类型的得分:" + scoreVo); + MentalTest mentalTest = new MentalTest(); + BigDecimal memoryScore = new BigDecimal(scoreVo.getSumMemoryScore()).divide(new BigDecimal(SumScore.memoryScore), 2, BigDecimal.ROUND_UP); + BigDecimal attentionScore = new BigDecimal(scoreVo.getSumAttentionScore()).divide(new BigDecimal(SumScore.attentionScore), 2, BigDecimal.ROUND_UP); + BigDecimal countScore = new BigDecimal(scoreVo.getSumCountScore()).divide(new BigDecimal(SumScore.countScore), 2, BigDecimal.ROUND_UP); + BigDecimal directionScore = new BigDecimal(scoreVo.getSumDirectionScore()).divide(new BigDecimal(SumScore.directionScore), 2, BigDecimal.ROUND_UP); + BigDecimal expressScore = new BigDecimal(scoreVo.getSumExpressScore()).divide(new BigDecimal(SumScore.expressScore), 2, BigDecimal.ROUND_UP); + BigDecimal logicScore = new BigDecimal(scoreVo.getSumLogicScore()).divide(new BigDecimal(SumScore.logicScore), 2, BigDecimal.ROUND_UP); + BigDecimal viewScore = new BigDecimal(scoreVo.getSumViewScore()).divide(new BigDecimal(SumScore.viewScore), 2, BigDecimal.ROUND_UP); + log.info("计算每个类型得分对于总分的占比"); + int aScore = scoreVo.getSumMemoryScore() + scoreVo.getSumAttentionScore() + scoreVo.getSumCountScore() + + scoreVo.getSumDirectionScore() + scoreVo.getSumExpressScore() + scoreVo.getSumLogicScore() + scoreVo.getSumViewScore(); + log.info("本次答题的总分" + aScore); + //总分占比 + BigDecimal avaScore = new BigDecimal(aScore).divide(new BigDecimal(SumScore.sumScore), 2, BigDecimal.ROUND_UP); + log.info("总分占比:" + avaScore); + //查询对应的星级 + List queryGrade = coreService.queryGrade(); + for (Grade gra : queryGrade) { + if (gra.getMinvalue().doubleValue() <= avaScore.doubleValue() && avaScore.doubleValue() <= gra.getMaxvalue().doubleValue()) { + grade = gra.getGrade(); + } + } + log.info("查询对应的星级:" + grade); + mentalTest.setId(UUID.randomUUID().toString()); + mentalTest.setUserId(user.getId()); +// mentalTest.setFromType((byte) type); + mentalTest.setMemoryNum(memoryScore); + mentalTest.setExpressNum(expressScore); + mentalTest.setViewNum(viewScore); + mentalTest.setAttentionNum(attentionScore); + mentalTest.setDirectionNum(directionScore); + mentalTest.setCountNum(countScore); + mentalTest.setLogicNum(logicScore); + mentalTest.setAverageNum(avaScore); + mentalTest.setGradeResult(grade); + mentalTest.setTestAt(new Date()); + mentalTest.setCreateAt(new Date()); + mentalTest.setUpdateAt(new Date()); + mentalTest.setStatus(true); + testId = mentalTest.getId(); + addCareRecord = mentalService.addMentalRecord(mentalTest); + } + // 生成训练试题 + String pdfUrl = trainService.generateTrainPlan(testId, (byte) grade); + log.info(user.getId() + "生成训练计划:" + pdfUrl); + if (addCareRecord > 0) { + result.setCode(0); + result.setData(pdfUrl); + } else { + result.setCode(-1); + result.setMessage("操作失败,请重试"); + } + } catch (Exception e) { + result.setCode(-1); + result.setMessage("操作失败,请重试"); + log.debug("###########MeasureController submitFollowUp#########e=" + e); + } + return result; + } + + /** + * 脑力测评结果 + * + * @return + */ + @RequestMapping(value = "mentalResult") + public ModelAndView careResult() { + ModelAndView mv = new ModelAndView("/mental/mental_result"); + 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 mentalTest = mentalService.queryMentalRecordNewest(user.getId()); + mv.addObject("mentalTest", mentalTest); + return mv; + } + + + /** + * 提交每周的训练跟踪 + * + * @return + */ + @RequestMapping(value = "nextweek") + @ResponseBody + public ResultVO nextweek(@ModelAttribute PracticeVO practiceVO, BindingResult bindingResult) { + ResultVO result = new ResultVO(); + String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID); + User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId); + try { + //查询最新脑力测评结果 + MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); + practiceVO.setId(UUID.randomUUID().toString()); + practiceVO.setUserId(user.getId()); + practiceVO.setMentalId(queryMentalRecord.getId()); + //查出最新的训练跟踪 + Practice practice = mentalService.queryPracticeNewest(user.getId(), queryMentalRecord.getId()); + + Calendar c = Calendar.getInstance(); + + + if (null == practice) { + practiceVO.setPracticePeriod(1); + c.setTime(queryMentalRecord.getCreateAt()); + } else { + practiceVO.setPracticePeriod(practice.getPracticePeriod() + 1); + c.setTime(practice.getEndAt()); + } + + c.add(Calendar.DATE, 1); + practiceVO.setStartAt(c.getTime()); + c.add(Calendar.DATE, 6); + practiceVO.setEndAt(c.getTime()); + practiceVO.setCreateAt(new Date()); + practiceVO.setUpdateAt(new Date()); + practiceVO.setStatus(true); + + Date monthDate = DateUtil.getMonthDate(2, queryMentalRecord.getCreateAt()); + if (practiceVO.getEndAt().getTime() >= monthDate.getTime()) { + practiceVO.setEndAt(monthDate); + } + + //往数据库添加一条训练跟踪记录 + int addPracticeRecord = mentalService.addPracticeRecord(practiceVO); + if (addPracticeRecord > 0) { + + if (practiceVO.getEndAt().getTime() >= monthDate.getTime()) { + result.setCode(2); + result.setMessage("已是最后一周了,训练周期已结束"); + return result; + } + + result.setCode(0); + practiceVO.setPracticePeriod(practiceVO.getPracticePeriod() + 1); + c.setTime(practiceVO.getEndAt()); + c.add(Calendar.DATE, 1); + practiceVO.setStartTime(new SimpleDateFormat("yyyy/MM/dd").format(c.getTime())); + c.add(Calendar.DATE, 6); + + Date date = DateUtil.getDate(-7, monthDate); + if (c.getTime().getTime() >= date.getTime()) { + practiceVO.setEndTime(new SimpleDateFormat("yyyy/MM/dd").format(monthDate)); + } else { + practiceVO.setEndTime(new SimpleDateFormat("yyyy/MM/dd").format(c.getTime())); + } + result.setData(practiceVO); + } else { + result.setCode(-1); + result.setMessage("操作失败,请稍后重试"); + } + } catch (Exception e) { + result.setCode(-1); + result.setMessage("系统异常"); + log.debug("###########MentalController practice###########e=" + e.getMessage()); + } + return result; + } + + + /** + * 训练跟踪 + * + * @return + */ + @RequestMapping(value = "nextweekLast") + public ModelAndView nextweekLast() { + ModelAndView mv = new ModelAndView("/mental/practice_last"); + 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; + } + + try { + //查询最新脑力测评结果 + MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId()); + //查出最新的训练跟踪 + Practice practice = mentalService.queryPracticeNewest(user.getId(), queryMentalRecord.getId()); + Calendar c = Calendar.getInstance(); + c.setTime(queryMentalRecord.getCreateAt()); + c.add(Calendar.DATE, 1); + mv.addObject("firstDay", c.getTime()); + //完整的训练周期 + Date monthDate = DateUtil.getMonthDate(2, queryMentalRecord.getCreateAt()); + mv.addObject("endDay", monthDate); + mv.addObject("practice", practice); + mv.addObject("mentalTest", queryMentalRecord); + } catch (Exception e) { + e.printStackTrace(); + log.debug("###########MentalController practice###########e=" + e.getMessage()); + } + return mv; + } + + } 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 c2e3517..846b60b 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 @@ -28,113 +28,113 @@ import com.wmeimob.bjyy.vo.ScoreVO; @Service @Transactional(rollbackFor = Exception.class) -public class MentalServiceImpl implements MentalService{ - - private Logger log = Logger.getLogger(this.getClass()); - - @Autowired - private MentalTestMapper mentalTestMapper; - - @Autowired - private HealthRecordMapper healthRecordMapper; - - @Autowired - private ScoreMapper scoreMapper; - - @Autowired - private PracticeMapper practiceMapper; - - @Autowired - private FollowUpMapper followUpMapper; - - @Autowired - private CareMapper careMapper; - - @Override - public MentalTest queryRecentMental(String userId) { - return mentalTestMapper.selectRecentMental(userId); - } - - @Override - public int editHealthRecord(HealthRecord healthRecord) { - return healthRecordMapper.updateHealthRecord(healthRecord); - } - - @Override - public MentalTest queryMentalRecordNewest(String userId) { - return mentalTestMapper.selectMentalRecordNewest(userId); - } - - @Override - public List queryMentalRecordTop(String userId) { - return mentalTestMapper.selectMentalRecordTop(userId); - } - - @Override - public ScoreVO queryScoreSum(ArrayList str) { - return scoreMapper.selectScoreSum(str); - } - - @Override - public int addMentalRecord(MentalTest mentalTest) { - int flag=0; - try { - flag+=mentalTestMapper.insertSelective(mentalTest); - //添加健康档案 - HealthRecord healthRecord=new HealthRecord(); - healthRecord.setId(UUID.randomUUID().toString()); - healthRecord.setMentalId(mentalTest.getId()); - healthRecord.setUserId(mentalTest.getUserId()); - //查询是否有最新随访记录 - FollowUp followUp=followUpMapper.selectFollowUpByUserId(mentalTest.getUserId()); - if(null!=followUp){ - healthRecord.setFollowId(followUp.getId()); - } - //查询是否有最新的ZBI照顾者记录 - Care care=careMapper.selectZBICareNewest(mentalTest.getUserId()); - if(null!=care){ - healthRecord.setCareId(care.getId()); - } - healthRecord.setRecordAt(new Date()); - healthRecord.setCreateAt(new Date()); - healthRecord.setUpdateAt(new Date()); - healthRecord.setStatus(true); - flag+=healthRecordMapper.insertSelective(healthRecord); - } catch (Exception e) { - flag=0; - log.debug("############MentalServiceImpl addMentalRecord#########e="+e.getMessage()); - } - return flag; - } - - @Override - public Practice queryPracticeNewest(String userId, String mentalId) { - return practiceMapper.selectPracticeNewest(userId,mentalId); - } - - @Override - public int addPracticeRecord(PracticeVO practiceVO) { - return practiceMapper.insertSelective(practiceVO); - } - - @Override - public HealthRecordVO queryHealthRecordNewest(String userId) { - return healthRecordMapper.selectHealthRecordNewest(userId); - } - - @Override - public List queryHealthRecordList(String userId) { - return healthRecordMapper.selectHealthRecordList(userId); - } - - @Override - public HealthRecordVO queryHealthRecordDetail(String userId, String id) { - return healthRecordMapper.selectHealthRecordDetail(userId,id); - } - - @Override - public MentalTest getMentalTestById(String testId) { - return mentalTestMapper.selectByPrimaryKey(testId); - } +public class MentalServiceImpl implements MentalService { + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private MentalTestMapper mentalTestMapper; + + @Autowired + private HealthRecordMapper healthRecordMapper; + + @Autowired + private ScoreMapper scoreMapper; + + @Autowired + private PracticeMapper practiceMapper; + + @Autowired + private FollowUpMapper followUpMapper; + + @Autowired + private CareMapper careMapper; + + @Override + public MentalTest queryRecentMental(String userId) { + return mentalTestMapper.selectRecentMental(userId); + } + + @Override + public int editHealthRecord(HealthRecord healthRecord) { + return healthRecordMapper.updateHealthRecord(healthRecord); + } + + @Override + public MentalTest queryMentalRecordNewest(String userId) { + return mentalTestMapper.selectMentalRecordNewest(userId); + } + + @Override + public List queryMentalRecordTop(String userId) { + return mentalTestMapper.selectMentalRecordTop(userId); + } + + @Override + public ScoreVO queryScoreSum(ArrayList str) { + return scoreMapper.selectScoreSum(str); + } + + @Override + public int addMentalRecord(MentalTest mentalTest) { + int flag = 0; + try { + flag += mentalTestMapper.insertSelective(mentalTest); + //添加健康档案 + HealthRecord healthRecord = new HealthRecord(); + healthRecord.setId(UUID.randomUUID().toString()); + healthRecord.setMentalId(mentalTest.getId()); + healthRecord.setUserId(mentalTest.getUserId()); + //查询是否有最新随访记录 + FollowUp followUp = followUpMapper.selectFollowUpByUserId(mentalTest.getUserId()); + if (null != followUp) { + healthRecord.setFollowId(followUp.getId()); + } + //查询是否有最新的ZBI照顾者记录 + Care care = careMapper.selectZBICareNewest(mentalTest.getUserId()); + if (null != care) { + healthRecord.setCareId(care.getId()); + } + healthRecord.setRecordAt(new Date()); + healthRecord.setCreateAt(new Date()); + healthRecord.setUpdateAt(new Date()); + healthRecord.setStatus(true); + flag += healthRecordMapper.insertSelective(healthRecord); + } catch (Exception e) { + flag = 0; + log.debug("############MentalServiceImpl addMentalRecord#########e=" + e.getMessage()); + } + return flag; + } + + @Override + public Practice queryPracticeNewest(String userId, String mentalId) { + return practiceMapper.selectPracticeNewest(userId, mentalId); + } + + @Override + public int addPracticeRecord(PracticeVO practiceVO) { + return practiceMapper.insertSelective(practiceVO); + } + + @Override + public HealthRecordVO queryHealthRecordNewest(String userId) { + return healthRecordMapper.selectHealthRecordNewest(userId); + } + + @Override + public List queryHealthRecordList(String userId) { + return healthRecordMapper.selectHealthRecordList(userId); + } + + @Override + public HealthRecordVO queryHealthRecordDetail(String userId, String id) { + 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/UserServiceImpl.java b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/UserServiceImpl.java index b7b5b65..a37bfbe 100644 --- a/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/UserServiceImpl.java +++ b/bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/UserServiceImpl.java @@ -85,6 +85,7 @@ public class UserServiceImpl implements UserService { @Override public ResultVO addInfoBasic(UserVO userVO) { + log.info("进入添加信息接口"+userVO); ResultVO result=new ResultVO(); if(userVO==null){ result.setCode(-1); @@ -103,15 +104,18 @@ public class UserServiceImpl implements UserService { } RedisUtil.setValue(RedisUtil.PREFIX_MOBILE_CODE + userVO.getMobile(), ""); try { + log.info("添加基本信息"+userVO); userVO.setId(user.getId()); userVO.setSex(Integer.valueOf(userVO.getGender()==null?"0":userVO.getGender())); userVO.setBirthDate(new SimpleDateFormat("yyyy-MM-dd").parse(userVO.getBirthDay())); int updateByPrimaryKeySelective = userMapper.updateBySelective(userVO); + log.info("修改信息"+updateByPrimaryKeySelective); if(updateByPrimaryKeySelective>0){ User selectByOpenId = userMapper.selectByOpenId(openId); //将更新的user信息放进redis里 RedisUtil.setValue(RedisUtil.PREFIX_USER_INFO + openId, selectByOpenId); result.setCode(0); + log.info("更新redis"); } } catch (Exception e) { result.setCode(-1); diff --git a/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/care_index.jsp b/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/care_index.jsp index 52fe702..184ad84 100644 --- a/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/care_index.jsp +++ b/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/care_index.jsp @@ -90,7 +90,7 @@ -<%--<%--//--%>--%> +<%--<%--//--%> diff --git a/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/follow_up_add.jsp b/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/follow_up_add.jsp index 7dfb72c..1067275 100644 --- a/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/follow_up_add.jsp +++ b/bjyy-weixin/src/main/webapp/WEB-INF/pages/measure/follow_up_add.jsp @@ -17,6 +17,10 @@ + + + +
@@ -42,12 +46,19 @@ 未作测评
- +<%-- --%> +