Browse Source

分享

master
zhizhi wu 5 years ago
parent
commit
6414c4044e
  1. 7
      bjyy-core/pom.xml
  2. 6
      bjyy-core/src/main/java/com/wmeimob/bjyy/common/BaseController.java
  3. 142
      bjyy-core/src/main/java/com/wmeimob/bjyy/util/UploadFileUtil_Servlet3.java
  4. 5
      bjyy-core/src/main/resources/dev/jdbc.properties
  5. 4
      bjyy-core/src/main/resources/dev/redis.properties
  6. 4
      bjyy-core/src/main/resources/dev/wechat.properties
  7. 4
      bjyy-core/src/main/resources/prod/redis.properties
  8. 5
      bjyy-core/src/main/resources/prod/wechat.properties
  9. 5
      bjyy-core/src/main/resources/test/jdbc.properties
  10. 2
      bjyy-core/src/main/resources/test/redis.properties
  11. 8
      bjyy-core/src/main/resources/test/wechat.properties
  12. 4
      bjyy-dal/pom.xml
  13. 3
      bjyy-dal/src/main/java/com/wmeimob/bjyy/dao/TrainDao.java
  14. 7
      bjyy-dal/src/main/java/com/wmeimob/bjyy/mapping/TrainDao.xml
  15. 11
      bjyy-dal/src/main/java/com/wmeimob/bjyy/vo/TrainVo.java
  16. 39
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/MentalController.java
  17. 25
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/PracticeController.java
  18. 32
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/controller/WxController.java
  19. 6
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/MentalService.java
  20. 3
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/TrainService.java
  21. 7
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/MentalServiceImpl.java
  22. 6
      bjyy-weixin/src/main/java/com/wmeimob/bjyy/service/impl/TrainServiceImpl.java
  23. 2
      bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/mental_result.jsp
  24. 78
      bjyy-weixin/src/main/webapp/WEB-INF/pages/mental/practice.jsp
  25. 3
      bjyy-weixin/src/main/webapp/static/css/style.css
  26. 2
      bjyy-weixin/src/main/webapp/static/exam1/test28.html
  27. 2
      bjyy-weixin/src/main/webapp/static/exam1/test29.html
  28. 2
      bjyy-weixin/src/main/webapp/static/exam1/test30.html
  29. 2
      bjyy-weixin/src/main/webapp/static/exam2/test28.html
  30. 2
      bjyy-weixin/src/main/webapp/static/exam2/test29.html
  31. 2
      bjyy-weixin/src/main/webapp/static/exam2/test30.html
  32. 6
      bjyy-weixin/src/main/webapp/static/exam3/test30.html
  33. 8
      bjyy-weixin/src/main/webapp/static/js/h5share.js
  34. 1
      bjyy-weixin/src/main/webapp/static/js/share/css/share.min.css
  35. BIN
      bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.eot
  36. 88
      bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.svg
  37. BIN
      bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.ttf
  38. BIN
      bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.woff
  39. 1
      bjyy-weixin/src/main/webapp/static/js/share/js/jquery.share.min.js
  40. 1
      bjyy-weixin/src/main/webapp/static/js/share/js/social-share.min.js
  41. 10
      pom.xml

7
bjyy-core/pom.xml

@ -175,15 +175,18 @@
<properties>
<profiles.active>test</profiles.active>
</properties>
<activation>
<!--<activation>
<activeByDefault>true</activeByDefault>
</activation>
</activation>-->
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
</project>

6
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";
}
}

142
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);
}
}
}
}
}

5
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=
jdbc.password=po3OynBO[M3579p6L7)o

4
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
redis.password=
redis.index=1

4
bjyy-core/src/main/resources/dev/wechat.properties

@ -7,3 +7,7 @@
wechat.AppID=wx7af1bf1e14facf82
wechat.AppSecret=a6613fae11b497639c0224b820aaf6d9
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/

4
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
redis.password=areowqr!@43ef
redis.index=1

5
bjyy-core/src/main/resources/prod/wechat.properties

@ -7,3 +7,8 @@
wechat.AppID=wx7af1bf1e14facf82
wechat.AppSecret=a6613fae11b497639c0224b820aaf6d9
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/

5
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=
jdbc.password=

2
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
redis.index=1

8
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/

4
bjyy-dal/pom.xml

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

3
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<TrainVo.TrainQueryVo> queryLastPractice(@Param("userId") String userId);
List<TrainVo.TrainQueryVo> queryLastPractice(@Param("userId") String userId, @Param("testId") String testId);
}

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

@ -60,7 +60,12 @@
<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,
(select id, test_at as startTime from u_mental_test where
<choose>
<when test="testId != null and testId != ''">id = #{testId}</when>
<otherwise>user_id = #{userId}</otherwise>
</choose>
and status = 1 order by test_at desc limit 1) t,
t_train_record r,
t_train_content c,
t_train_aid a

11
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<ContentImage> 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;
}

39
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);

25
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<TrainVo.TrainQueryVo> list = trainService.queryLastPractice(user.getId());
List<TrainVo.TrainQueryVo> 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");
}
}

32
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;
}
}

6
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);
}

3
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<TrainVo.TrainQueryVo> queryLastPractice(String userId);
List<TrainVo.TrainQueryVo> queryLastPractice(String userId, String testId);
}

7
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);
}
}

6
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<PdfUtil.Row> intros = new ArrayList<>();
PdfUtil.Row row = new PdfUtil.Row();
@ -132,8 +132,8 @@ public class TrainServiceImpl implements TrainService {
}
@Override
public List<TrainVo.TrainQueryVo> queryLastPractice(String userId) {
return trainDao.queryLastPractice(userId);
public List<TrainVo.TrainQueryVo> queryLastPractice(String userId, String testId) {
return trainDao.queryLastPractice(userId, testId);
}

2
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}";
});
</script>

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

@ -13,9 +13,11 @@
<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>
@ -24,7 +26,7 @@
<div class="swiper-wrapper">
<div class="swiper-slide">
<section class="sectionBox">
git <div class="wrapper" id="wrapperIndex">
<div class="wrapper" id="wrapperIndex">
<div class="scroller center">
<!-- 头部 -->
@ -33,20 +35,16 @@ git <div class="wrapper" id="wrapperIndex">
<div class="title">脑益宝—老年脑健康认知训练方案</div>
</div>
<div class="follow mt">
<h2 id="wholePeriod"><span></span>-<span></span></h2>
<p>根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。</p>
<h2 id="wholePeriod"><span></span></h2>
<p>
根据长者“脑力测评”,系统生成此训练方案,训练周期为2周,每周训练5天,每天训练时常40分钟左右,第二周训练内容重复第一周方案。
<button type="button" class="btn green2" style="border: 0; float:right;" onclick="window.location.href='${contextPath}/wx/practice/download?testId=${testId}'">导出</button>
</p>
</div>
<div class="center">
<div class="follow mt" id="uldiv">
<div class="follow mt" id="uldiv" >
<ul>
</ul>
</div>
</div>
</div>
</div>
</section>
@ -58,14 +56,53 @@ git <div class="wrapper" id="wrapperIndex">
<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 src="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"/>--%>
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<!-- 配置滚动条 -->
<script type="text/javascript">
/*var vConsole = new VConsole();
console.log('Hello world');*/
let url = window.location.href;
let domain = url.substring(0,url.indexOf('${contextPath}'));
$.ajax({
url:"${contextPath}/wx/config",
type:'post',
data: 'url=' + url,
success:function(result){
let data = result.data;
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature,// 必填,签名
jsApiList: ['updateAppMessageShareData','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表
});
wx.ready(function () { //需在用户可能点击分享按钮前就先调用
wx.updateAppMessageShareData({
title: '脑益宝—老年脑健康认知训练方案', // 分享标题
desc: '', // 分享描述
link: domain + '${contextPath}/wx/mental/practice?testId=${testId}', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: domain + '${contextPath}/static/images/logo.jpg', // 分享图标
success: function () {
// 设置成功
},
error: function (result) {
alert(result);
}
})
});
},
error:function(){
alert("系统异常");
}
});
$(function(){
$.ajax({
url:"${contextPath}/wx/practice/last",
type:'post',
data: 'testId=${testId}',
success:function(result){
if (result.code==0) {
let list = result.data;
@ -74,22 +111,21 @@ git <div class="wrapper" id="wrapperIndex">
}
// 训练周期
let one = list[0];
$("#wholePeriod span:eq(0)").html(one.startTime);
$("#wholePeriod span:eq(1)").html(one.endTime);
$("#wholePeriod span").eq(0).html(one.startTime+"-"+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>");
ul.append("<p>"+(i+1) + "." +item.name+"</p>");
ul.append("<p>"+item.content+"</p>");
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("<div style='width:100%;text-align: center;'><img src='${contextPath}"+item.images[j].url+"' style='width:80%; display:inline-block; ' class='minus'>")
}
ul.append("</li>");
}
@ -103,7 +139,9 @@ git <div class="wrapper" id="wrapperIndex">
});
});
/*$(".nextweek").click(function(){
<%--$(".nextweek").click(function(){
$(".deletebox").show();
});
@ -132,7 +170,7 @@ git <div class="wrapper" id="wrapperIndex">
alert("系统异常");
}
});
});*/
});--%>
</script>
</body>

3
bjyy-weixin/src/main/webapp/static/css/style.css

@ -329,7 +329,8 @@ b{ font-weight:normal}
.follow li .right .add-minus .num{ display: inline-block;margin: 0 0.1rem; width: 1rem; height: 0.8rem;background: none; border:1px solid #666666; text-align: center; text-align: center; font-size: 0.35rem; float: left; line-height: 0.8rem; }
.follow .nextweek{height: 1.2rem;text-align: center;border: none; width: 100%; }
.follow .nextweek a{ background: #6baf00;line-height: 1.2rem; font-size: 0.4rem; color: #fff; display: block;}
.btn.green{color: white;text-shadow: none;background-color: #4d90fe;}
.btn.green2{color: white;text-shadow: none;background-color: #6baf00;}
.item{ background: #fff; padding: 0 0.3rem;}
.item h2{ height: 1.2rem; line-height: 1.2rem; border-bottom: 1px solid #dadada; font-size: 0.35rem; }

2
bjyy-weixin/src/main/webapp/static/exam1/test28.html

@ -37,7 +37,7 @@
<p>79-41=?</p>
</div>
</div>
<div class="resulttip" style="display: none;">
<div class="resulttip" ><!--style="display: none;"-->
<div class="basicinfo">
<h2>刚才题目的答案是:</h2>
<ul>

2
bjyy-weixin/src/main/webapp/static/exam1/test29.html

@ -37,7 +37,7 @@
</div>
</div>
<div class="resulttip" style="display: none;">
<div class="resulttip" ><!--style="display: none;"-->
<div class="basicinfo">
<h2>请问,刚才出现的数字从小到大排列是:</h2>
<ul>

2
bjyy-weixin/src/main/webapp/static/exam1/test30.html

@ -50,7 +50,7 @@
</div>
</div>
<div class="resulttip" style="display: none;">
<div class="resulttip" ><!--style="display: none;"-->
<div class="basicinfo">
<h2>请问,刚才出现的数字从小到大排列是:</h2>
<ul>

2
bjyy-weixin/src/main/webapp/static/exam2/test28.html

@ -38,7 +38,7 @@
</div>
</div>
<div class="resulttip" style="display: none;">
<div class="resulttip"><!--style="display: none;"-->
<div class="basicinfo">
<h2>刚才题目的答案是:</h2>
<ul>

2
bjyy-weixin/src/main/webapp/static/exam2/test29.html

@ -39,7 +39,7 @@
</div>
</div>
<div class="resulttip" style="display: none;">
<div class="resulttip"><!--style="display: none;"-->
<div class="basicinfo">
<h2>请问,刚才出现的数字从大到小排列是:</h2>
<ul>

2
bjyy-weixin/src/main/webapp/static/exam2/test30.html

@ -40,7 +40,7 @@
</div>
</div>
<div class="resulttip" style="display: none;">
<div class="resulttip"><!--style="display: none;"-->
<div class="basicinfo">
<h2>请问,刚才出现的数字从大到小排列是:</h2>
<ul>

6
bjyy-weixin/src/main/webapp/static/exam3/test30.html

@ -55,7 +55,11 @@
</div>
<button class="nextstep answer">答题</button>
<button class="nextstep nextquestion" style="display: none;">下一题</button>
</div>
<form name="firstBasicForm" onsubmit="return false;">
<input type="hidden" name="chooseIds">
<input type="hidden" name="type">
</form>
</div>
</section>
</div>

8
bjyy-weixin/src/main/webapp/static/js/h5share.js

@ -31,6 +31,9 @@
// 插入空图片
function insertShareImg(img_url){
alert("img");
alert(window);
console.info(window, window.document)
var div = doc.createElement('div');
div.style.position = 'absolute';
div.style.opacity = '0';
@ -38,6 +41,8 @@
var img = new Image();
img.src = img_url;
div.appendChild(img);
console.info(doc,doc.body);
doc.body.insertBefore(div,doc.body.children[0]);
}
@ -106,6 +111,7 @@
h5share.prototype.shareWX = function(){
var that = this;
alert(wx);
// 旧wechat接口
document.addEventListener('WeixinJSBridgeReady', function () {
WeixinJSBridge.on("menu:share:timeline", function(e) {
@ -368,7 +374,9 @@
var that = this;
switch(getPlatform()){
case 'wechat':
console.info("微信")
loadscript('http://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(){
console.info("加载微信成功")
that.shareWX();
});
break;

1
bjyy-weixin/src/main/webapp/static/js/share/css/share.min.css

@ -0,0 +1 @@
@font-face{font-family:"socialshare";src:url("../fonts/iconfont.eot");src:url("../fonts/iconfont.eot?#iefix") format("embedded-opentype"),url("../fonts/iconfont.woff") format("woff"),url("../fonts/iconfont.ttf") format("truetype"),url("../fonts/iconfont.svg#iconfont") format("svg")}.social-share{font-family:"socialshare" !important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:0.2px;-moz-osx-font-smoothing:grayscale}.social-share *{font-family:"socialshare" !important}.social-share .icon-tencent:before{content:"\f07a"}.social-share .icon-qq:before{content:"\f11a"}.social-share .icon-weibo:before{content:"\f12a"}.social-share .icon-wechat:before{content:"\f09a"}.social-share .icon-douban:before{content:"\f10a"}.social-share .icon-heart:before{content:"\f20a"}.social-share .icon-like:before{content:"\f00a"}.social-share .icon-qzone:before{content:"\f08a"}.social-share .icon-linkedin:before{content:"\f01a"}.social-share .icon-diandian:before{content:"\f05a"}.social-share .icon-facebook:before{content:"\f03a"}.social-share .icon-google:before{content:"\f04a"}.social-share .icon-twitter:before{content:"\f06a"}.social-share a{position:relative;text-decoration:none;margin:4px;display:inline-block;outline:none}.social-share .social-share-icon{position:relative;display:inline-block;width:32px;height:32px;font-size:20px;border-radius:50%;line-height:32px;border:1px solid #666;color:#666;text-align:center;vertical-align:middle;transition:background 0.6s ease-out 0s}.social-share .social-share-icon:hover{background:#666;color:#fff}.social-share .icon-weibo{color:#ff763b;border-color:#ff763b}.social-share .icon-weibo:hover{background:#ff763b}.social-share .icon-tencent{color:#56b6e7;border-color:#56b6e7}.social-share .icon-tencent:hover{background:#56b6e7}.social-share .icon-qq{color:#56b6e7;border-color:#56b6e7}.social-share .icon-qq:hover{background:#56b6e7}.social-share .icon-qzone{color:#FDBE3D;border-color:#FDBE3D}.social-share .icon-qzone:hover{background:#FDBE3D}.social-share .icon-douban{color:#33b045;border-color:#33b045}.social-share .icon-douban:hover{background:#33b045}.social-share .icon-linkedin{color:#0077B5;border-color:#0077B5}.social-share .icon-linkedin:hover{background:#0077B5}.social-share .icon-facebook{color:#44619D;border-color:#44619D}.social-share .icon-facebook:hover{background:#44619D}.social-share .icon-google{color:#db4437;border-color:#db4437}.social-share .icon-google:hover{background:#db4437}.social-share .icon-twitter{color:#55acee;border-color:#55acee}.social-share .icon-twitter:hover{background:#55acee}.social-share .icon-diandian{color:#307DCA;border-color:#307DCA}.social-share .icon-diandian:hover{background:#307DCA}.social-share .icon-wechat{position:relative;color:#7bc549;border-color:#7bc549}.social-share .icon-wechat:hover{background:#7bc549}.social-share .icon-wechat .wechat-qrcode{display:none;border:1px solid #eee;position:absolute;z-index:9;top:-205px;left:-84px;width:200px;height:192px;color:#666;font-size:12px;text-align:center;background-color:#fff;box-shadow:0 2px 10px #aaa;transition:all 200ms;-webkit-tansition:all 350ms;-moz-transition:all 350ms}.social-share .icon-wechat .wechat-qrcode.bottom{top:40px;left:-84px}.social-share .icon-wechat .wechat-qrcode.bottom:after{display:none}.social-share .icon-wechat .wechat-qrcode h4{font-weight:normal;height:26px;line-height:26px;font-size:12px;background-color:#f3f3f3;margin:0;padding:0;color:#777}.social-share .icon-wechat .wechat-qrcode .qrcode{width:105px;margin:10px auto}.social-share .icon-wechat .wechat-qrcode .qrcode table{margin:0 !important}.social-share .icon-wechat .wechat-qrcode .help p{font-weight:normal;line-height:16px;padding:0;margin:0}.social-share .icon-wechat .wechat-qrcode:after{content:'';position:absolute;left:50%;margin-left:-6px;bottom:-13px;width:0;height:0;border-width:8px 6px 6px 6px;border-style:solid;border-color:#fff transparent transparent transparent}.social-share .icon-wechat:hover .wechat-qrcode{display:block}

BIN
bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.eot

Binary file not shown.

88
bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.svg

@ -0,0 +1,88 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Sat Nov 28 22:48:50 2015
By Ads
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="896"
descent="-128"
x-height="792"
bbox="-0.097561 -77 1024.92 839"
underline-thickness="50"
underline-position="-100"
unicode-range="U+0078-F20A"
/>
<missing-glyph horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".notdef" horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="uniF00A" unicode="&#xf00a;"
d="M911 512l-334 1q19 79 23 116q4 45 -3 76q-11 47 -34 90q-6 12 -17 18.5t-24 6.5h-65q-13 0 -23.5 -6.5t-17 -17t-6.5 -23.5v-35v-32v-26q0 -10 -1 -11q-12 -26 -26.5 -52t-29.5 -51.5t-32 -49.5q-6 -9 -11.5 -17t-11.5 -16t-12.5 -16t-13.5 -15q-13 -14 -13 -32v-411
q0 -19 13 -33q28 -28 73 -28q323 1 440 1q13 0 24 6t17 17l119 203q6 11 9 22.5t3 23.5l1 244q0 13 -6.5 24t-17 17t-23.5 6zM155 445h-42q-13 0 -24 -6t-17 -17t-6 -24v-403q0 -19 13.5 -33t33.5 -14h42q13 0 23.5 6.5t17 17t6.5 23.5v403q0 20 -14 33.5t-33 13.5z" />
<glyph glyph-name="uniF01A" unicode="&#xf01a;"
d="M260 740q0 -41 -29.5 -69.5t-76.5 -28.5q-45 0 -74 28.5t-29 69.5q0 43 29 71t76 28t74.5 -28t29.5 -71zM57 -69v633h197v-633h-197zM371 361q0 89 -4 203h170l10 -88h4q61 103 194 103q103 0 165.5 -69t62.5 -204v-375h-197v351q0 137 -100 137q-72 0 -101 -74
q-6 -12 -6 -49v-365h-198v430z" />
<glyph glyph-name="uniF03A" unicode="&#xf03a;"
d="M751 815v-142h-84q-46 0 -62 -19t-16 -58v-101h157l-21 -158h-136v-407h-164v407h-136v158h136v117q0 100 56 154.5t148 54.5q79 0 122 -6z" />
<glyph glyph-name="uniF04A" unicode="&#xf04a;"
d="M629 830h-245q-37 0 -69 -4t-71.5 -19t-71.5 -41q-37 -31 -56.5 -72.5t-19.5 -82.5q0 -46 22.5 -87t68.5 -68t106 -27h7h8q2 0 7.5 0.5t7.5 1t8 0.5q-1 -1 -2 -4t-1.5 -4t-1.5 -4l-2 -5q0 -1 -1 -3.5t-1.5 -4.5t-1 -4.5t-0.5 -5t-0.5 -5t-0.5 -5.5q0 -17 6.5 -33
t11.5 -23t18 -23q-18 -1 -26.5 -1.5t-29 -2.5t-33.5 -4.5t-34 -6.5t-36.5 -9t-34 -12.5t-33.5 -16.5q-48 -28 -69.5 -66.5t-21.5 -75.5q0 -69 66.5 -117.5t188.5 -48.5q74 0 134.5 19t98.5 50.5t58.5 70t20.5 80.5q0 19 -3.5 36t-11.5 32t-15 26.5t-21 24.5t-23 21t-26 22
l-43 32q-9 8 -14 12.5t-10.5 15.5t-5.5 22.5t6 23t11 17t16 16.5q24 18 37.5 30.5t30 33t24 45.5t7.5 56t-8.5 57.5t-24 46.5t-25.5 30t-26 22h74zM524 120q0 -36 -19.5 -64t-59.5 -44.5t-95 -16.5q-94 0 -151.5 39.5t-57.5 102.5q0 83 102 119q57 19 125 19h6h4
q3 0 4.5 -0.5t3.5 -0.5h5q2 0 4 -1q75 -51 102 -81t27 -72zM429 494q-33 -33 -80 -33q-36 0 -66 21t-47 53.5t-26 67t-9 65.5q0 54 26 86q14 17 36.5 27.5t46.5 10.5q46 0 81.5 -37t51.5 -84.5t16 -92.5v-10q0 -4 -1 -10.5t-2 -12.5t-3.5 -13t-5.5 -13.5t-7.5 -13
t-10.5 -11.5zM865 653v118h-59v-118h-119v-58h119v-118h59v118h118v58h-118z" />
<glyph glyph-name="uniF05A" unicode="&#xf05a;"
d="M540 185h370v370h-369l-1 85h285v114h-285v85h-142v-284h-256v-370h199v-258zM284 279v175h484v-175h-484zM853 100q-17 0 -33 -6.5t-27.5 -18t-18 -27.5t-6.5 -33.5t6.5 -33.5t18 -27.5t27.5 -18.5t33 -7q35 0 60 25.5t25 61t-25 60.5t-60 25zM597.5 100
q-35.5 0 -60.5 -25t-25 -60.5t25 -61t60.5 -25.5t60 25.5t24.5 61t-24.5 60.5t-60 25zM171 100q-14 0 -27 -4t-23.5 -12t-18.5 -18.5t-12 -24t-4 -27.5q0 -35 24.5 -60.5t60 -25.5t60.5 25.5t25 60.5q0 18 -7 34t-18 27.5t-27 18t-33 6.5z" />
<glyph glyph-name="uniF06A" unicode="&#xf06a;" horiz-adv-x="1025"
d="M1024 702q-58 -26 -121 -34q33 20 57 50t36 67q-63 -37 -134 -51q-62 66 -153 66q-57 0 -105.5 -28t-76.5 -76.5t-28 -105.5q0 -8 0.5 -16t2 -16t2.5 -16q-129 7 -241.5 65t-191.5 155q-13 -24 -20.5 -51t-7.5 -55q0 -36 11.5 -69t32.5 -60t49 -46q-50 2 -95 26v-2
q0 -76 48 -134t121 -72q-27 -8 -56 -8q-5 0 -10 1h-10q-5 1 -9.5 1.5t-9.5 1.5q20 -63 74 -103.5t122 -42.5q-36 -28 -77.5 -48t-88 -31t-95.5 -11q-25 0 -50 3q147 -94 322 -94q112 0 210 35.5t168 95t120.5 136.5t75 161.5t24.5 169.5q0 14 -1 27q8 5 15.5 11t14.5 12
l14 14q7 6 13.5 12.5t13 14t12 14.5t11.5 15t11 16z" />
<glyph glyph-name="uniF07A" unicode="&#xf07a;"
d="M435 826q-94 -21 -163.5 -85.5t-98.5 -155.5t-8 -186q7 -34 21 -66q4 -9 12.5 -15t18 -7t18.5 3q15 6 20.5 20.5t-0.5 28.5q-11 25 -17 53q-17 74 6 146t78 123t129.5 67.5t145.5 -6.5t121.5 -78.5t67 -130t-6 -146.5t-77.5 -123t-130 -67q-44 -10 -89 -5q-15 1 -27 -9
t-13.5 -25t8.5 -27.5t25 -13.5q56 -6 112 7q94 20 164 85t98.5 155.5t8 185t-84.5 164.5t-154.5 99t-184.5 9zM542 339q57 13 88 62t18 106q-8 37 -33 64.5t-60.5 39t-72.5 3.5q-57 -13 -88 -62t-19 -106q5 -21 16 -41q-70 -81 -105 -197t-16 -239q2 -16 14.5 -25t28.5 -7
q1 1 2 1q14 3 22.5 15.5t6.5 26.5q-17 105 12.5 204.5t88.5 168.5q46 -25 97 -14z" />
<glyph glyph-name="uniF08A" unicode="&#xf08a;"
d="M767 277q-9 -8 -11 -13.5t0 -16.5l4 -24q-183 2 -297 18q-6 2 0 5l289 201q11 7 -1 9q-7 1 -19 3t-21 3l-9 1q-90 11 -190 11q-170 0 -303 -30h8q225 0 374 -23q7 -2 0 -6l-289 -206l-5 -4q-2 -4 5 -5q45 -6 94 -9q59 -4 116 -4q176 0 312 32l5 1q-19 -15 -63 -30
l42 -226q2 -12 -1.5 -19t-11 -7.5t-18.5 4.5l-241 140q-24 15 -49 -1l-240 -139q-16 -9 -25 -2.5t-5 24.5l53 284q3 9 1.5 14t-8.5 12l-210 193q-9 8 -10.5 16t4.5 13t18 6l268 30q15 2 21 5.5t12 14.5l126 262q9 17 20.5 17t19.5 -17l118 -262q5 -13 11 -17t21 -6l277 -27
q18 -2 21.5 -12t-9.5 -23z" />
<glyph glyph-name="uniF09A" unicode="&#xf09a;"
d="M704 547q-87 0 -163 -38t-120 -103q-22 -32 -33.5 -67t-11.5 -73q0 -41 14 -78h-18q-64 0 -124 18l-124 -56l30 102q-64 43 -101 105t-37 134q0 124 104.5 213t251.5 89q128 0 227 -70t122 -176h-17zM218 557q8 -7 17 -10.5t19 -3.5q22 0 36.5 14.5t14.5 35.5q0 11 -4 20
t-11 16q-2 2 -4 3l-4 4l-4 2l-4 2l-4 2h-6l-4 2h-6q-21 0 -36 -15q-7 -7 -10.5 -16t-3.5 -20q0 -7 1.5 -13.5t5 -12t7.5 -10.5zM1008 266q0 -126 -116 -204l23 -87l-105 49q-50 -16 -106 -16q-124 0 -213 75.5t-89 182.5q0 70 40.5 129t110.5 93q23 11 47.5 18.5t50.5 11.5
t53 4q126 0 215 -75t89 -181zM526.5 629.5q-14.5 14.5 -35 14.5t-34.5 -15q-7 -7 -11 -16t-4 -19q0 -20 14.5 -34.5t35 -14.5t35.5 14q7 8 10.5 16.5t3.5 18.5q0 21 -14.5 35.5zM603 312q9 0 16.5 3.5t13.5 9.5q13 13 13 29q0 8 -3.5 15.5t-9.5 13.5q-12 13 -30 13
q-6 0 -11 -1.5t-10 -4.5t-9 -7q-13 -13 -13 -28q0 -12 6 -21.5t16 -15.5q5 -3 10 -4.5t11 -1.5zM775 323q12 -13 30.5 -13t31.5 13q3 3 5 6.5t4 7.5t2.5 8t0.5 8q0 6 -1.5 11t-4 10t-6.5 9q-13 13 -31.5 13t-30.5 -13q-5 -4 -7.5 -9t-4 -10t-1.5 -11q0 -9 3 -16.5t10 -13.5z
" />
<glyph glyph-name="uniF10A" unicode="&#xf10a;"
d="M138 773h746v-84h-746v84zM820 273v328h-617v-328h617zM292 517h439v-160h-439v160zM686 83q41 63 76 143l-90 33q-35 -97 -81 -176h-156q-39 103 -88 176l-83 -33q51 -77 83 -143h-230v-83h789v83h-220z" />
<glyph glyph-name="uniF11A" unicode="&#xf11a;"
d="M911 223q-5 31 -17 61t-25.5 50.5t-26.5 37t-21 24.5l-8 9q5 44 -2.5 73t-17.5 36l-10 8q-2 62 -18.5 112.5t-39.5 81.5t-54 53.5t-57 32.5t-54 15.5t-38.5 6t-17.5 0.5q-6 0 -16.5 -0.5t-39 -6t-54 -15.5t-57 -32.5t-54.5 -53.5t-39.5 -81.5t-17.5 -112.5q-2 -1 -4.5 -3
t-9.5 -10t-10.5 -20.5t-7 -34t0.5 -49.5l-9 -9q-5 -5 -19.5 -23.5t-26.5 -38t-24.5 -50t-17.5 -61.5q-1 -4 -1 -10t1 -22t3.5 -28t9 -21t15.5 -8t25 17t37 50q23 -62 64 -117q-3 -1 -8 -3.5t-17.5 -10t-21.5 -17t-16 -26t-5 -34.5q0 -2 0.5 -4.5t3 -10t8 -14t17.5 -14.5
t28 -13.5t42.5 -9t58.5 -2.5q13 1 32.5 4t59.5 17t55 36h30q31 -44 141 -56l6 -1q45 -1 78 5.5t47.5 15.5t23 21.5t9 17.5t0.5 8q2 18 -4.5 34t-16.5 26t-20.5 17.5t-18.5 10.5l-8 3q9 11 17 23.5t14 23.5l12 22q6 11 9.5 19.5t6.5 15t4 9.5l1 4q21 -34 37 -50t25.5 -17
t15.5 8t8.5 21t3.5 28t1 23v9v0z" />
<glyph glyph-name="uniF12A" unicode="&#xf12a;" horiz-adv-x="1026"
d="M0 242q0 65 40 140t113 147q96 97 195.5 134.5t140.5 -3.5q36 -36 11 -119q-2 -9 0 -12t5 -4t8 0t8 2l3 1q80 34 141.5 34t87.5 -35q25 -35 0 -101q-1 -8 -3 -11t3 -7.5t7 -5.5t9 -3q33 -10 59.5 -26.5t45 -47t19.5 -66.5q0 -39 -20.5 -79t-62.5 -79t-96 -66.5t-129 -48
t-155 -17.5t-157.5 19.5t-137 52.5t-98.5 87t-37 114zM104 201q5 -55 51 -97t118.5 -62t156.5 -12q128 13 211 80.5t76 151.5q-5 54 -50 96t-120 62.5t-157 12.5q-127 -13 -211 -80.5t-75 -151.5zM237 151q-24 52 3 106q27 53 86.5 80t120.5 10q63 -16 90.5 -67.5
t1.5 -109.5t-90.5 -85t-127.5 -7q-62 19 -84 73zM283 166q5 -21 24.5 -30t43 -1t35.5 28q11 18 6 38.5t-25 28.5q-20 9 -42.5 0.5t-33.5 -25.5q-13 -20 -8 -39zM403 247q-10 -19 8 -27q8 -2 16 1t12 10q6 8 2.5 16t-10.5 10q-7 3 -16 0t-12 -10zM666 746q-3 16 5 30.5
t25 16.5q70 14 139.5 -6.5t118.5 -76.5q50 -56 65 -128.5t-8 -137.5q-5 -16 -19.5 -23t-30 -2t-22.5 19.5t-3 29.5q16 47 6 98t-46 90q-36 40 -85 54.5t-98 5.5q-17 -3 -30 6t-17 24zM699 616q-3 15 5.5 26t20.5 14q35 8 68.5 -2.5t57.5 -37t31 -62.5t-3 -68
q-5 -12 -17.5 -19t-25.5 -2t-20 17.5t-2 25.5q11 36 -13.5 62.5t-61.5 20.5q-13 -3 -25 4t-15 21z" />
<glyph glyph-name="uniF20A" unicode="&#xf20a;"
d="M945 677q-23 37 -54.5 64t-68.5 42.5t-79 18.5q-148 7 -228 -101l-1 2q-1 1 -2 1q0 -3 -3 -3q-80 108 -228 101q-60 -3 -113 -36t-89 -89q-26 -41 -36 -89.5t-5 -99t25 -102.5t54 -98q53 -69 89 -110q122 -134 282 -240l21 -15h6l21 15q78 52 150 113t132 127
q11 13 24 28.5t22.5 28t22 28t20.5 25.5q69 94 79.5 200.5t-41.5 188.5z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.ttf

Binary file not shown.

BIN
bjyy-weixin/src/main/webapp/static/js/share/fonts/iconfont.woff

Binary file not shown.

1
bjyy-weixin/src/main/webapp/static/js/share/js/jquery.share.min.js

File diff suppressed because one or more lines are too long

1
bjyy-weixin/src/main/webapp/static/js/share/js/social-share.min.js

File diff suppressed because one or more lines are too long

10
pom.xml

@ -353,6 +353,16 @@
</dependency>
<!-- jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>

Loading…
Cancel
Save