Browse Source

查看康复计划

master
zhizhi wu 5 years ago
parent
commit
9eebc978f0
  1. 14
      bjyy-core/src/main/java/com/wmeimob/bjyy/util/DateUtil.java
  2. 122
      bjyy-core/src/main/java/com/wmeimob/bjyy/util/PdfUtil.java
  3. 4
      bjyy-dal/pom.xml
  4. 7
      bjyy-dal/src/main/java/com/wmeimob/bjyy/dao/TrainDao.java
  5. 29
      bjyy-dal/src/main/java/com/wmeimob/bjyy/mapping/TrainDao.xml
  6. 26
      bjyy-dal/src/main/java/com/wmeimob/bjyy/vo/TrainVo.java
  7. 15
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java
  8. 44
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/PracticeController.java
  9. 9
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/TrainService.java
  10. 58
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/TrainServiceImpl.java
  11. 214
      bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice.jsp
  12. 261
      bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice_old.jsp
  13. 7
      pom.xml

14
bjyy-core/src/main/java/com/wmeimob/bjyy/util/DateUtil.java

@ -156,12 +156,14 @@ public class DateUtil {
* 获取某个日期前后几天日期
*/
public static Date getDate(int num,Date date)
throws ParseException {
Calendar calendar = Calendar.getInstance(); //得到日历
calendar.setTime(date);//把当前时间赋给日历
calendar.add(Calendar.DATE, num); //设置为前3月
public static Date getDate(int num,Date date) {
//得到日历
Calendar calendar = Calendar.getInstance();
//把当前时间赋给日历
calendar.setTime(date);
//设置为前3月
calendar.add(Calendar.DATE, num);
return calendar.getTime();
}
}

122
bjyy-core/src/main/java/com/wmeimob/bjyy/util/PdfUtil.java

@ -99,51 +99,6 @@ public class PdfUtil {
return fileName;
}
/**
*
* @param imageFiles
* @return
* @throws IOException
* @throws DocumentException
*/
public static void fillImage(String pdf, ImageFile... imageFiles) throws IOException, DocumentException {
if (ArrayUtils.isEmpty(imageFiles)) {
return ;
}
File pdfFile = new File(pdf);
// 创建文件
Document document = new Document();
// 建立一个书写器
PdfReader pdfReader = new PdfReader(pdf);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdfFile));
writer.setStrictImageSequence(true);
PdfStamper pdfStamper = new PdfStamper(pdfReader,new FileOutputStream(pdfFile));
// // 打开文件
// document.open();
for (ImageFile imageFile : imageFiles) {
// 图片
Image image = Image.getInstance(imageFile.getUrl());
image.scalePercent(imageFile.getScalePercentage());
image.setAlignment(Element.ALIGN_CENTER);
image.setAbsolutePosition(imageFile.getX(), imageFile.getY());
// 将图片1添加到pdf文件中
// document.add(image);
PdfContentByte content = pdfStamper.getUnderContent(imageFile.getX());
content.addImage(image);
}
// 关闭文档
pdfStamper.close();
// document.close();
// // 关闭书写器
// writer.close();
}
/**
* 添加空白行
@ -173,18 +128,21 @@ public class PdfUtil {
PdfPTable table = new PdfPTable(size);
table.setSpacingBefore(0);
table.setWidthPercentage(90);
table.setSplitLate(false);
table.setSplitRows(false);
for (int j = 0; j < rows.size(); j++) {
Row row = rows.get(j);
table.setHorizontalAlignment(row.align);
Font font = new Font(bfChinese, row.fontSize, row.fontStyle);
for (int i = 0; i < row.cells.size(); i++) {
Cell cell = row.cells.get(i);
PdfPCell pdfpCell = new PdfPCell();
PdfPCell pdfpCell;
if (cell.getType() == 0) {
pdfpCell.setPhrase(new Phrase(cell.content,font));
pdfpCell = new PdfPCell((new Phrase(cell.content,font)));
} else {
Image image = Image.getInstance(cell.content);
pdfpCell.setImage(image);
Image image = Image.getInstance(cell.content,true);
image.scalePercent(cell.getScalePercent());
pdfpCell = new PdfPCell(image);
}
pdfpCell.setBorderWidthTop(cell.borderTop == null ? 0 : cell.borderTop);
pdfpCell.setBorderWidthLeft(cell.borderLeft == null ? 0 : cell.borderLeft);
@ -192,6 +150,10 @@ public class PdfUtil {
pdfpCell.setBorderWidthBottom(cell.borderBottom == null ? 0 : cell.borderBottom);
pdfpCell.setColspan(cell.colSpan);
pdfpCell.setRowspan(cell.rowSpan);
if (cell.fixedHeight != null) {
pdfpCell.setFixedHeight(cell.fixedHeight);
}
if (cell.isCenter) {
//水平居中
pdfpCell.setHorizontalAlignment(Element.ALIGN_CENTER);
@ -201,6 +163,7 @@ public class PdfUtil {
pdfpCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
pdfpCell.setMinimumHeight(cell.height);
table.addCell(pdfpCell);
}
}
try {
@ -227,6 +190,15 @@ public class PdfUtil {
public void addCell(Cell cell) {
cells.add(cell);
}
public static Row fillBlankRow(){
Row row = new Row();
Cell cell = new Cell();
cell.setBorderLeft(0);
cell.setBorderBottom(0);
row.addCell(cell);
return row;
}
}
@Data
public static class Cell{
@ -251,8 +223,8 @@ public class PdfUtil {
private int height = defaultHeight;
// 单元格是否居中
private boolean isCenter = true;
// 固定高度
private Integer fixedHeight ;
/**
* 类型 0文字 1图片
* */
@ -260,7 +232,7 @@ public class PdfUtil {
/**
* 缩放比例
*/
private int scalePercent;
private float scalePercent = 1;
}
/**
@ -290,4 +262,50 @@ public class PdfUtil {
this.scalePercentage = scalePercentage;
}
}
public static void main(String[] args) throws IOException, DocumentException {
Document document = new Document();
// 创建PdfWriter对象
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("D:/3.pdf"));
// 打开文档
document.open();
// 添加表格,4列
PdfPTable table = new PdfPTable(1);
// 设置表格宽度比例为%100
table.setWidthPercentage(100);
// 设置表格的宽度
table.setTotalWidth(500);
// 也可以每列分别设置宽度
// table.setTotalWidth(new float[] { 160, 70, 130, 100 });
// 锁住宽度
table.setLockedWidth(true);
// 设置表格上面空白宽度
table.setSpacingBefore(10f);
// 设置表格下面空白宽度
table.setSpacingAfter(10f);
// 设置表格默认为无边框
table.getDefaultCell().setBorder(0);
PdfContentByte cb = writer.getDirectContent();
// 在表格添加图片
Image cellimg = Image.getInstance("D:/git/bjyy/bjyy-weixin/target/bjyy-weixin//static/train/1-2星迷宫1.jpg");
PdfPCell cell1 = new PdfPCell(cellimg, true);
cell1.setBorderColor(BaseColor.RED);
cell1.setPaddingLeft(10);
cell1.setFixedHeight(30);
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell1);
// 在表格添加图片
PdfPCell cell4 = new PdfPCell(cellimg, true);
cell4.setBorderColor(BaseColor.RED);
cell4.setPaddingLeft(10);
cell4.setFixedHeight(30);
cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell4);
document.add(table);
// 关闭文档
document.close();
}
}

4
bjyy-dal/pom.xml

@ -18,6 +18,10 @@
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bjyy-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>

7
bjyy-dal/src/main/java/com/wmeimob/bjyy/dao/TrainDao.java

@ -14,4 +14,11 @@ public interface TrainDao {
* @return 训练内容
*/
List<TrainVo.TrainContentVo> queryByLevel(@Param("level") byte grade);
/**
* 根据用户ID查看最新的训练内容
* @param userId 用户ID
* @return 训练内容
*/
List<TrainVo.TrainQueryVo> queryLastPractice(@Param("userId") String userId);
}

29
bjyy-dal/src/main/java/com/wmeimob/bjyy/mapping/TrainDao.xml

@ -2,6 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wmeimob.bjyy.dao.TrainDao">
<resultMap id="TrainQueryMap" type="com.wmeimob.bjyy.vo.TrainVo$TrainQueryVo">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="description" property="description"/>
<result column="startTime" property="startTime"/>
<result column="content" property="content"/>
<collection property="images" ofType="com.wmeimob.bjyy.vo.TrainVo$ContentImage">
<result column="url" property="url"/>
</collection>
</resultMap>
<resultMap id="contentMap" type="com.wmeimob.bjyy.vo.TrainVo$TrainContentVo">
<id column="aidId" property="id"/>
<result column="name" property="name"/>
@ -36,7 +47,7 @@
LEFT JOIN t_train_img i ON c.id = i.content_id
AND i.rec_status = 0
WHERE
c.LEVEL = 1
c.LEVEL = #{level}
and c.rec_status = 0
) c
WHERE
@ -46,4 +57,20 @@
a.id,
c.id
</select>
<select id="queryLastPractice" resultMap="TrainQueryMap">
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,
t_train_record r,
t_train_content c,
t_train_aid a
where t.id = r.test_id
and r.question_id = c.id
and c.aid_id = a.id
and r.rec_status = 0
and c.rec_status in (0,1)
and a.rec_status in (0,1)
) c left join t_train_img i
on c.id = i.content_id and i.rec_status = 0
</select>
</mapper>

26
bjyy-dal/src/main/java/com/wmeimob/bjyy/vo/TrainVo.java

@ -1,7 +1,10 @@
package com.wmeimob.bjyy.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wmeimob.bjyy.util.DateUtil;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@ -11,6 +14,29 @@ import java.util.List;
*/
public class TrainVo {
@Data
public static class TrainQueryVo{
@JsonFormat(pattern = "yyyy.MM.dd")
private Date startTime;
@JsonFormat(pattern = "yyyy.MM.dd")
private Date endTime;
private String name;
private String description;
/**题目ID*/
private int id;
/**内容*/
private String content;
/**图片*/
private List<ContentImage> images;
public Date getEndTime() {
if (endTime == null) {
endTime = DateUtil.getDate(14, new Date());
}
return endTime;
}
}
@Data
public static class TrainContentVo{
/**教具*/

15
bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java

@ -72,11 +72,13 @@ public class MentalController {
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");//跳转到注册码注册页面
//跳转到注册码注册页面
mv.setViewName("/core/register");
return mv;
}
if(StringUtils.isEmpty(user.getMobile())){
mv.setViewName("/user/first_basic");//跳转到基础信息填写第一页
//跳转到基础信息填写第一页
mv.setViewName("/user/first_basic");
//查询所有的省
mv.addObject("provinces", addressService.listAllProvince());
mv.addObject("user", user);
@ -101,7 +103,6 @@ public class MentalController {
ResultVO result = new ResultVO();
String openId = SessionUtil.getValue(SessionUtil.SESSION_WX_OPENID);
User user = RedisUtil.getObject(RedisUtil.PREFIX_USER_INFO + openId);
try {
//查找最新记录,判断是否已满2个月
MentalTest queryMentalRecord = mentalService.queryMentalRecordNewest(user.getId());
if(null != queryMentalRecord){
@ -128,11 +129,7 @@ public class MentalController {
int nextInt = new Random().nextInt(3);
result.setData(nextInt+1);
}
}catch (ParseException e) {
result.setCode(-2);
result.setMessage("系统出错了,请稍后重试");
log.debug("###########MentalController toFirstQust###########e="+e.getMessage());
}
return result;
}
@ -374,9 +371,9 @@ public class MentalController {
// 生成训练试题
String pdfUrl = trainService.generateTrainPlan(mentalTest.getId(), (byte)grade);
if(addCareRecord>0){
result.setCode(0);
result.setData(pdfUrl);
}else{
result.setCode(-1);
result.setMessage("操作失败,请重试");

44
bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/PracticeController.java

@ -0,0 +1,44 @@
package com.wmeimob.bjyy.controller;
import com.wmeimob.bjyy.model.User;
import com.wmeimob.bjyy.service.TrainService;
import com.wmeimob.bjyy.util.RedisUtil;
import com.wmeimob.bjyy.util.SessionUtil;
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 javax.annotation.Resource;
import java.util.List;
/**
* @description: 康复训练
* @author: whj
* @time: 2021/2/6 16:05
*/
@Log4j
@ResponseBody
@RequestMapping("/wx/practice")
public class PracticeController {
@Resource
private TrainService trainService;
/**
* 根据用户ID查看最新的训练内容
* @return 康复训练
*/
@RequestMapping("/last")
public ResultVO queryLastPractice(){
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<TrainVo.TrainQueryVo> list = trainService.queryLastPractice(user.getId());
result.setCode(0);
result.setData(list);
return result;
}
}

9
bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/TrainService.java

@ -1,8 +1,10 @@
package com.wmeimob.bjyy.service;
import com.itextpdf.text.DocumentException;
import com.wmeimob.bjyy.vo.TrainVo;
import java.io.IOException;
import java.util.List;
/**
* @author whj
@ -17,4 +19,11 @@ public interface TrainService {
* @return 测评计划路径
*/
String generateTrainPlan(String testId, byte grade) throws IOException, DocumentException;
/**
* 根据用户ID查看最新的训练内容
* @param userId 用户ID
* @return 训练内容
*/
List<TrainVo.TrainQueryVo> queryLastPractice(String userId);
}

58
bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/TrainServiceImpl.java

@ -55,13 +55,15 @@ public class TrainServiceImpl implements TrainService {
List<PdfUtil.Row> contents = new ArrayList<>();
Random random = new Random();
int max = 1;
for (int i = 0; i < vos.size(); i+=2) {
int day = i/2 + 1;
String dayChinese = CommonUtils.numMap.get(day);
// pdf第几天
PdfUtil.Row row = new PdfUtil.Row();
row.setFontSize(16);
PdfUtil.Cell cell = new PdfUtil.Cell();
cell.setContent("第"+dayChinese+"天(________年________________日)(________年________________日)");
cell.setContent("第"+dayChinese+"天(________年____月____日)(________年____月____日)");
cell.setBorderLeft(null);
cell.setBorderBottom(null);
cell.setCenter(false);
@ -70,17 +72,31 @@ public class TrainServiceImpl implements TrainService {
contents.add(row);
// 添加题目
TrainVo.TrainContentVo vo = vos.get(i);
fillRows(testId, records, contents, random, vo);
int size1 = fillRows(testId, records, contents, random, vo);
max = Math.max(max, size1);
if (i+1 >= vos.size()) {
break;
}
TrainVo.TrainContentVo vo2 = vos.get(i+1);
fillRows(testId, records, contents, random, vo2);
int size2 = fillRows(testId, records, contents, random, vo2);
max = Math.max(max, size2);
}
for (PdfUtil.Row row:contents) {
List<PdfUtil.Cell> cells = row.getCells();
if (CollectionUtil.isEmpty(cells)) {
continue;
}
int size = cells.size();
if (size >= max) {
continue;
}
PdfUtil.Cell lastCell = cells.get(size - 1);
lastCell.setColSpan(max - size + 1);
}
//保存记录
records.forEach(record -> {
trainRecordMapper.insert(record);
trainRecordMapper.insertSelective(record);
});
Calendar calendar = Calendar.getInstance();
@ -88,6 +104,7 @@ public class TrainServiceImpl implements TrainService {
//介绍
List<PdfUtil.Row> intros = new ArrayList<>();
PdfUtil.Row row = new PdfUtil.Row();
row.setFontSize(16);
PdfUtil.Cell cell = new PdfUtil.Cell();
cell.setContent(" 根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。");
cell.setBorderBottom(null);
@ -95,6 +112,8 @@ public class TrainServiceImpl implements TrainService {
cell.setCenter(false);
row.addCell(cell);
intros.add(row);
intros.add(PdfUtil.Row.fillBlankRow());
PdfUtil.Margin margin = new PdfUtil.Margin();
String parentPath = WeChatConfig.getValue("filePath");
String fileName = PdfUtil.credatePdf(
@ -104,7 +123,6 @@ public class TrainServiceImpl implements TrainService {
DateUtil.format(new Date(), DateUtil.yyyyMMddDot)+ "-" + DateUtil.format(calendar.getTime(), DateUtil.yyyyMMddDot),
intros, contents, margin
);
// PdfUtil.fillImage("", parentPath+fileName, new PdfUtil.ImageFile(WeChatConfig.getValue("logoPath"), 50, 50, 40));
MentalTest test = new MentalTest();
test.setId(testId);
@ -113,7 +131,13 @@ public class TrainServiceImpl implements TrainService {
return WeChatConfig.getValue("domain") + fileName;
}
private void fillRows(String testId, List<TrainRecord> records, List<PdfUtil.Row> contents, Random random, TrainVo.TrainContentVo vo) {
@Override
public List<TrainVo.TrainQueryVo> queryLastPractice(String userId) {
return trainDao.queryLastPractice(userId);
}
private int fillRows(String testId, List<TrainRecord> records, List<PdfUtil.Row> contents, Random random, TrainVo.TrainContentVo vo) {
// 生成随机数
List<TrainVo.ContentVo> contentVos = vo.getContentVos();
int index = random.nextInt(contentVos.size());
@ -126,15 +150,18 @@ public class TrainServiceImpl implements TrainService {
// 添加pdf内容
//类型
PdfUtil.Row row = new PdfUtil.Row();
row.setFontSize(16);
PdfUtil.Cell cell = new PdfUtil.Cell();
cell.setContent(vo.getName());
cell.setCenter(false);
cell.setBorderBottom(null);
cell.setBorderLeft(null);
row.addCell(cell);
contents.add(row);
// 题目
PdfUtil.Row row2 = new PdfUtil.Row();
row2.setFontSize(16);
PdfUtil.Cell cell2 = new PdfUtil.Cell();
cell2.setContent(contentVo.getContent());
cell2.setCenter(false);
@ -142,20 +169,27 @@ public class TrainServiceImpl implements TrainService {
cell2.setBorderLeft(null);
row2.addCell(cell2);
contents.add(row2);
if (CollectionUtil.isEmpty(contentVo.getImages())) {
contents.add(PdfUtil.Row.fillBlankRow());
return 0;
}
// 图片
if (CollectionUtil.isNotEmpty(contentVo.getImages())) {
PdfUtil.Row row3 = new PdfUtil.Row();
contentVo.getImages().forEach(image->{
PdfUtil.Cell cell3 = new PdfUtil.Cell();
cell3.setContent(WeChatConfig.getValue("projectPath") + image.getUrl());
cell3.setScalePercent(10);
cell3.setType((byte)1);
cell3.setCenter(false);
cell3.setBorderBottom(null);
cell3.setBorderLeft(null);
cell3.setBorderBottom(0);
cell3.setBorderLeft(0);
row3.addCell(cell3);
});
contents.add(row3);
contents.add(PdfUtil.Row.fillBlankRow());
log.info("contents:" + contents);
return contentVo.getImages().size();
}
contents.add(new PdfUtil.Row());
}
}

214
bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice.jsp

@ -24,189 +24,34 @@
<div class="swiper-wrapper">
<div class="swiper-slide">
<section class="sectionBox">
<div class="wrapper" id="wrapperIndex">
git <div class="wrapper" id="wrapperIndex">
<div class="scroller center">
<!-- 头部 -->
<div class="header mt">
<div class="return"><img src="${contextPath}/static/images/return.png" width="100%"></div>
<div class="title">训练跟踪</div>
<div class="title">脑益宝—老年脑健康认知训练方案</div>
</div>
<div class="follow mt">
<h2>训练周期<span id="wholePeriod"><f:formatDate pattern="yyyy/MM/dd" value="${firstDay}"/>
-<f:formatDate pattern="yyyy/MM/dd" value="${endDay}"/></span></h2>
<p>每周训练完成后,在训练点击完成次数;点击下一周可进入下一周。</p>
<h2 id="wholePeriod"><span></span>-<span></span></h2>
<p>根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。</p>
</div>
<div class="center">
<form name="firstBasicForm" onsubmit="return false;">
<div class="follow mt" id="uldiv">
<c:if test="${practice==null}">
<h2><em name="time"><f:formatDate pattern="yyyy/MM/dd" value="${firstDay}"/>-
<f:formatDate pattern="yyyy/MM/dd" value="${sevDay}"/></em>
<span>第<em name="period">1</em>周</span></h2>
</c:if>
<c:if test="${practice!=null }">
<h2><em name="time"><f:formatDate pattern="yyyy/MM/dd" value="${practice.startAt}"/>-
<f:formatDate pattern="yyyy/MM/dd" value="${practice.endAt}"/></em>
<span>第<em name="period">${practice.practicePeriod }</em>周</span></h2>
</c:if>
<ul>
<li>
<div class="left">数字方格</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="firstPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">正方体拼图</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="thirdPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">图片</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="fifthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">迷宫</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="eighthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">找不同</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="tenthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">数独</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="twelfthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">串珠</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="sixthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">颜色旗</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="ninthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">木条</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="eleventhPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">扑克</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="forthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">钟表</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="secondPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">空间记忆</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="seventhPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
</ul>
<div class="nextweek"><a>下一周</a></div>
</div>
</form>
<c:if test="${mentalTest.gradeResult==1 }">
<%@include file="/static/train_aid/first_grade.jsp"%>
</c:if>
<c:if test="${mentalTest.gradeResult==2 }">
<%@include file="/static/train_aid/second_grade.jsp"%>
</c:if>
<c:if test="${mentalTest.gradeResult==3 }">
<%@include file="/static/train_aid/third_grade.jsp"%>
</c:if>
<c:if test="${mentalTest.gradeResult==4 }">
<%@include file="/static/train_aid/forth_grade.jsp"%>
</c:if>
</div>
<%-- <jsp:include page="/WEB-INF/train_aid/first_grade.jsp"></jsp:include> --%>
<!-- <div class="highbg"></div> -->
</div>
</div>
</section>
</div>
<div class="deletebox">
<div class="deleteboxcon Vcenter">
<p>确定提交吗?</p>
<div class="btn"><a class="cancel">取消</a><a class="confirm">确认</a></div>
</div>
</div>
</div>
</div>
@ -218,14 +63,47 @@
<!-- 配置滚动条 -->
<script type="text/javascript">
$(function(){
// setTimeout(function(){
// loadedScroll("#wrapperIndex",false,true);
// },2000);
// iScroll.refresh();
// $('body').click(function(){$('input').blur();})
$.ajax({
url:"${contextPath}/wx/practice/last",
type:'post',
success:function(result){
if (result.code==0) {
let list = result.data;
if (!list || !list.length) {
return;
}
// 训练周期
let one = list[0];
$("#wholePeriod span:eq(0)").html(one.startTime);
$("#wholePeriod span:eq(1)").html(one.endTime);
// 训练计划
let ul = $("#uldiv ul");
ul.empty();
for(let i = 0; i< list.length; i++) {
let item = list[i];
ul.append("<li>")
ul.append("<div>"+item.name+"</div>");
ul.append("<div>"+item.content+"</div>");
if (!item.images || !item.images.length) {
ul.append("</li>");
continue;
}
for(let j =0; j < item.images.length; j++) {
ul.append("<img src='${contextPath}'"+item.images[j].url+" width='100%' class='minus'>")
}
ul.append("</li>");
}
}else{
alert(result.message);
}
},
error:function(){
alert("系统异常");
}
});
});
$(".nextweek").click(function(){
/*$(".nextweek").click(function(){
$(".deletebox").show();
});
@ -254,7 +132,7 @@
alert("系统异常");
}
});
});
});*/
</script>
</body>

261
bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice_old.jsp

@ -0,0 +1,261 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"><meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /><meta http-equiv="Pragma" content="no-cache" /><meta http-equiv="Expires" content="0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta name="format-detection" content="telephone=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>北京燕园</title>
<script src="${contextPath}/static/js/flexible.js"></script>
<script src="${contextPath}/static/js/jquery.js"></script>
<script src="${contextPath}/static/js/swiper.min.js"></script>
<link rel="stylesheet" href="${contextPath}/static/css/swiper.min.css">
<link rel="stylesheet" type="text/css" href="${contextPath}/static/css/style.css"/>
</head>
<body>
<div class="iphone4 swiper-container" id="indexSwiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<section class="sectionBox">
<div class="wrapper" id="wrapperIndex">
<div class="scroller center">
<!-- 头部 -->
<div class="header mt">
<div class="return"><img src="${contextPath}/static/images/return.png" width="100%"></div>
<div class="title">训练跟踪</div>
</div>
<div class="follow mt">
<h2>训练周期<span id="wholePeriod"><f:formatDate pattern="yyyy/MM/dd" value="${firstDay}"/>
-<f:formatDate pattern="yyyy/MM/dd" value="${endDay}"/></span></h2>
<p>每周训练完成后,在训练点击完成次数;点击下一周可进入下一周。</p>
</div>
<div class="center">
<form name="firstBasicForm" onsubmit="return false;">
<div class="follow mt" id="uldiv">
<c:if test="${practice==null}">
<h2><em name="time"><f:formatDate pattern="yyyy/MM/dd" value="${firstDay}"/>-
<f:formatDate pattern="yyyy/MM/dd" value="${sevDay}"/></em>
<span>第<em name="period">1</em>周</span></h2>
</c:if>
<c:if test="${practice!=null }">
<h2><em name="time"><f:formatDate pattern="yyyy/MM/dd" value="${practice.startAt}"/>-
<f:formatDate pattern="yyyy/MM/dd" value="${practice.endAt}"/></em>
<span>第<em name="period">${practice.practicePeriod }</em>周</span></h2>
</c:if>
<ul>
<li>
<div class="left">数字方格</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="firstPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">正方体拼图</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="thirdPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">图片</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="fifthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">迷宫</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="eighthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">找不同</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="tenthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">数独</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="twelfthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">串珠</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="sixthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">颜色旗</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="ninthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">木条</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="eleventhPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">扑克</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="forthPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">钟表</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="secondPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
<li>
<div class="left">空间记忆</div>
<div class="right">
<div class="add-minus">
<img src="${contextPath}/static/images/minus.png" width="100%" class="minus">
<input type="text" value="0" name="seventhPractice" class="num">
<img src="${contextPath}/static/images/add.png" width="100%" class="add">
</div>
</div>
</li>
</ul>
<div class="nextweek"><a>下一周</a></div>
</div>
</form>
<c:if test="${mentalTest.gradeResult==1 }">
<%@include file="/static/train_aid/first_grade.jsp"%>
</c:if>
<c:if test="${mentalTest.gradeResult==2 }">
<%@include file="/static/train_aid/second_grade.jsp"%>
</c:if>
<c:if test="${mentalTest.gradeResult==3 }">
<%@include file="/static/train_aid/third_grade.jsp"%>
</c:if>
<c:if test="${mentalTest.gradeResult==4 }">
<%@include file="/static/train_aid/forth_grade.jsp"%>
</c:if>
</div>
<%-- <jsp:include page="/WEB-INF/train_aid/first_grade.jsp"></jsp:include> --%>
<!-- <div class="highbg"></div> -->
</div>
</div>
</section>
</div>
<div class="deletebox">
<div class="deleteboxcon Vcenter">
<p>确定提交吗?</p>
<div class="btn"><a class="cancel">取消</a><a class="confirm">确认</a></div>
</div>
</div>
</div>
</div>
<script src="${contextPath}/static/js/swiper.animate.min.js"></script>
<%--//<script src="${contextPath}/static/js/iscroll.js"></script>--%>
<script src="${contextPath}/static/js/main.js"></script>
<!-- 配置滚动条 -->
<script type="text/javascript">
$(function(){
// setTimeout(function(){
// loadedScroll("#wrapperIndex",false,true);
// },2000);
// iScroll.refresh();
// $('body').click(function(){$('input').blur();})
});
$(".nextweek").click(function(){
$(".deletebox").show();
});
$(".confirm").click(function(){
$(".deletebox").hide();
$.ajax({
url:"${contextPath}/wx/mental/nextweek",
type:'post',
data:$("form[name='firstBasicForm']").serialize(),
success:function(result){
if (result.code==0) {
$("#uldiv ul").find("input").each(function(){
$(this).val(0);
});
$("#uldiv h2").find("em[name='time']").html("");
$("#uldiv h2").find("em[name='time']").html(result.data.startTime+"-"+result.data.endTime);
$("#uldiv h2").find("em[name='period']").html(result.data.practicePeriod);
}else if(result.code==2){
alert(result.message);
window.location.href="${contextPath}/wx/mental/nextweekLast";
}else{
alert(result.message);
}
},
error:function(){
alert("系统异常");
}
});
});
</script>
</body>
</html>

7
pom.xml

@ -352,6 +352,13 @@
<version>5.2.0</version>
</dependency>
<!-- jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.2</version>
</dependency>
</dependencies>
<build>
<pluginManagement>

Loading…
Cancel
Save