Browse Source

Merge branches 'dev' and 'master' of ssh://10.10.100.21/source/smartschool-platform into dev

FANGLH 7 years ago
parent
commit
ac2e3162e3
15 changed files with 207 additions and 65 deletions
  1. 1 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/OaLeaveDO.java
  2. 19 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/controller/WxUserController.java
  3. 10 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/WxUserService.java
  4. 4 2
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxNotifyServiceImpl.java
  5. 14 8
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxOaLeaveServiceImpl.java
  6. 17 5
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxOutInRecordServiceImpl.java
  7. 28 23
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxTaskNotifyServiceImpl.java
  8. 49 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxUserServiceImpl.java
  9. 6 4
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxVoteServiceImpl.java
  10. 2 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/support/RemindTask.java
  11. 5 1
      frontend/wechat-web/src/modules/accountBind/BindMenu.jsx
  12. 10 7
      frontend/wechat-web/src/modules/album/ClassAlbum.jsx
  13. 1 1
      frontend/wechat-web/src/modules/hiPages/scorenotification/ScoreNotification.js
  14. 23 6
      frontend/wechat-web/src/modules/notificationCenter/NotifyBoardDetail.jsx
  15. 18 6
      frontend/wechat-web/src/modules/vote/VoteDetailPage.js

+ 1 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/OaLeaveDO.java

@@ -29,7 +29,7 @@ public class OaLeaveDO implements Serializable {
 	//申请人
 	private Long lvProposer;
 	private String proposerName;
-	//状态 1发布   2草稿
+	//状态 1发布   0草稿
 	private Integer lvStatus;
 	//申请时间
 	private Date applyDate;

+ 19 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/controller/WxUserController.java

@@ -215,6 +215,25 @@ public class WxUserController {
 		}
 	}
 
+	/**
+	 * 修改手机号的时候获取验证码
+	 * @param userPhone
+	 * @param openid
+	 * @param schoolId
+	 * @return
+	 * @throws Exception
+	 */
+	@GetMapping("/sendCodeUpdate")
+	public ResultBean sendCodeUpdate(@Param("userPhone") String userPhone, @Param("openid")String openid, @Param("schoolId")Long schoolId){
+		try {
+			Assert.notNull(userPhone,"请填写手机号");
+			userService.sendCodeUpdate(userPhone, openid, schoolId);
+			return new ResultBean("验证码已发送");
+		} catch (Exception e) {
+			return new ResultBean(e);
+		}
+	}
+
 	/**
 	 * 修改手机号
 	 * @param userPhone

+ 10 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/WxUserService.java

@@ -49,6 +49,16 @@ public interface WxUserService {
 	 */
 	public Map<String, Object> homePage(@Param("userOpenid") String userOpenid, @Param("schoolId") Long schoolId) throws Exception;
 
+
+	/**
+	 * 修改手机号的时候获取验证码
+	 * @param userPhone
+	 * @param openid
+	 * @param schoolId
+	 * @return
+	 * @throws Exception
+	 */
+	public SendSmsResponse sendCodeUpdate(@Param("userPhone") String userPhone,@Param("openid")String openid,@Param("schoolId")Long schoolId) throws Exception;
 	/**
 	 * 获取所有老师的信息
 	 * @param schoolId

+ 4 - 2
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxNotifyServiceImpl.java

@@ -94,8 +94,9 @@ public class WxNotifyServiceImpl implements WxNotifyService {
 					notifyrecordsMapper.save(notifyrecordsDO);
 					TeacherDO teacherDO = teacherMapper.get(l);
 					SchoolDO schoolDO = wxSchoolMapper.get(teacherDO.getSchoolId());
+					String teacherName = teacherMapper.get(notifyCreator).getTeacherName();
 					try {
-						wxPushApi.wxPush(schoolDO.getSchoolAppid(),schoolDO.getSchoolSecret(),teacherDO.getOpenid(), "h0BkcnTo24b2jsficMeVO0B17GvE-VzlPvF0fVXea4w", "您好,您有一条通知", schoolDO.getSchoolName(),teacherMapper.get(notifyCreator).getTeacherName(),format.format(new Date()),notifyDetails, "点击查看详情", "https://school-wechat.ubtob.com/notifyDetail/teacher/"+notifyDO.getNotifyId());
+						wxPushApi.wxPush(schoolDO.getSchoolAppid(),schoolDO.getSchoolSecret(),teacherDO.getOpenid(), "h0BkcnTo24b2jsficMeVO0B17GvE-VzlPvF0fVXea4w", "您好,您有一条通知", schoolDO.getSchoolName(),teacherName,format.format(new Date()),notifyDetails, "点击查看详情", "https://school-wechat.ubtob.com/notifyDetail/teacher/"+notifyDO.getNotifyId()+"?teacherId="+l);
 					}catch (Exception e){
 						e.printStackTrace();
 					}
@@ -115,8 +116,9 @@ public class WxNotifyServiceImpl implements WxNotifyService {
 						for (ParentsStuDO ps:parentsStuDOS) {
 							ParentsDO parentsDO = wxParentsMapper.get(ps.getParentId());
 							SchoolDO schoolDO = wxSchoolMapper.get(parentsDO.getSchoolId());
+							String teacherName = teacherMapper.get(notifyCreator).getTeacherName();
 							try {
-								wxPushApi.wxPush(schoolDO.getSchoolAppid(),schoolDO.getSchoolSecret(),parentsDO.getOpenid(), "h0BkcnTo24b2jsficMeVO0B17GvE-VzlPvF0fVXea4w", "您好,您有一条通知", schoolDO.getSchoolName(),teacherMapper.get(notifyCreator).getTeacherName(),format.format(new Date()),notifyDetails, "点击查看详情", "https://school-wechat.ubtob.com/notifyDetail/parent/"+notifyDO.getNotifyId());
+								wxPushApi.wxPush(schoolDO.getSchoolAppid(),schoolDO.getSchoolSecret(),parentsDO.getOpenid(), "h0BkcnTo24b2jsficMeVO0B17GvE-VzlPvF0fVXea4w", "您好,您有一条通知", schoolDO.getSchoolName(),teacherName,format.format(new Date()),notifyDetails, "点击查看详情", "https://school-wechat.ubtob.com/notifyDetail/parent/"+notifyDO.getNotifyId()+"?stuId="+l);
 							}catch (Exception e){
 								e.printStackTrace();
 							}

+ 14 - 8
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxOaLeaveServiceImpl.java

@@ -3,9 +3,8 @@ package com.usoftchina.smartschool.school.wxschool.basic.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.usoftchina.smartschool.school.po.*;
-import com.usoftchina.smartschool.school.wxschool.basic.service.WxSchoolService;
-import com.usoftchina.smartschool.school.wxschool.mapper.*;
 import com.usoftchina.smartschool.school.wxschool.basic.service.WxOaLeaveService;
+import com.usoftchina.smartschool.school.wxschool.mapper.*;
 import com.usoftchina.smartschool.school.wxschool.utils.DateFormatUtil;
 import com.usoftchina.smartschool.school.wxschool.utils.ObjectUtils;
 import com.usoftchina.smartschool.wechat.api.WxPushApi;
@@ -15,7 +14,6 @@ import org.springframework.stereotype.Service;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 
 @Service
@@ -46,13 +44,20 @@ public class WxOaLeaveServiceImpl implements WxOaLeaveService {
         JSONObject json = JSONObject.parseObject(leaveString);
         OaLeaveDO leave = new OaLeaveDO();
         leave.setLvTitle(json.getString("lvTitle"));
-        leave.setLvDetails(json.getString("lvDetails"));
+        String lvDetails = json.getString("lvDetails");
+        leave.setLvDetails(lvDetails);
         leave.setLvType(json.getInteger("lvType"));
         leave.setApplyDate(new Date());
         Long lvProposer = json.getLong("lvProposer");
         leave.setSchoolId(studentMapper.get(lvProposer).getSchoolId());
-        leave.setEndDate(DateFormatUtil.string2Date(json.getString("endDate")));
-        leave.setStartDate(DateFormatUtil.string2Date(json.getString("startDate")));
+        String endDate = json.getString("endDate");
+        if (ObjectUtils.isNotEmpty(endDate)){
+            leave.setEndDate(DateFormatUtil.string2Date(endDate));
+        }
+        String startDate = json.getString("startDate");
+        if (ObjectUtils.isNotEmpty(startDate)){
+            leave.setStartDate(DateFormatUtil.string2Date(startDate));
+        }
         leave.setLvStatus(1);
         leave.setLvRemarks(json.getString("lvRemarks"));
         String lvFiles = json.getString("lvFiles");
@@ -67,11 +72,12 @@ public class WxOaLeaveServiceImpl implements WxOaLeaveService {
                 for (Long teacherId : longs) {
                     TeacherDO teacherDO = teacherMapper.get(teacherId);
                     SchoolDO schoolDO = wxSchoolMapper.get(teacherDO.getSchoolId());
+                    String stuName = studentMapper.get(lvProposer).getStuName();
                     try {
                         wxPushApi.wxPush(schoolDO.getSchoolAppid(), schoolDO.getSchoolSecret(), teacherDO.getOpenid(),
                                 "QC8H4hQd1Fh0wqaaE3mbAxvoBC6y-XkHctIe8Kx6gcA", "您好,您有一个来自家长的请假申请",
-                                studentMapper.get(lvProposer).getStuName(),
-                                json.getString("startDate") + "-" + json.getString("endDate"), leave.getLvDetails(), "-",
+                                stuName,
+                                startDate + "-" + endDate, lvDetails, "-",
                                 "点击查看详情", "https://school-wechat.ubtob.com/leavedetail/teacher/" + leave.getLvId());
                     }catch (Exception e){
                         e.printStackTrace();

+ 17 - 5
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxOutInRecordServiceImpl.java

@@ -3,19 +3,18 @@ package com.usoftchina.smartschool.school.wxschool.basic.service.impl;
 import com.usoftchina.smartschool.school.po.ClazzDO;
 import com.usoftchina.smartschool.school.po.OutInRecordDO;
 import com.usoftchina.smartschool.school.po.StudentDO;
+import com.usoftchina.smartschool.school.wxschool.basic.service.WxOutInRecordService;
 import com.usoftchina.smartschool.school.wxschool.mapper.WxClazzMapper;
 import com.usoftchina.smartschool.school.wxschool.mapper.WxGradeMapper;
 import com.usoftchina.smartschool.school.wxschool.mapper.WxOutInRecordMapper;
-import com.usoftchina.smartschool.school.wxschool.basic.service.WxOutInRecordService;
 import com.usoftchina.smartschool.school.wxschool.mapper.WxStudentMapper;
 import com.usoftchina.smartschool.school.wxschool.utils.JavaBeanUtil;
 import com.usoftchina.smartschool.school.wxschool.utils.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 
 @Service
@@ -44,6 +43,7 @@ public class WxOutInRecordServiceImpl implements WxOutInRecordService {
 		Integer pageStart = (pageIndex-1)*pageSize;
 		Map<String, Object> map = new HashMap<>();
 		List<OutInRecordDO> outInRecordDOS = outInRecordMapper.selectOutInRecordDOListByStuId(stuId, pageStart, pageSize);
+		List<Map<String, Object>> maps = new ArrayList<>();
 		if (ObjectUtils.isNotEmpty(outInRecordDOS)){
 			Long stuId1 = outInRecordDOS.get(0).getStuId();
 			StudentDO studentDO = studentMapper.get(stuId1);
@@ -52,8 +52,20 @@ public class WxOutInRecordServiceImpl implements WxOutInRecordService {
 			map1.put("clazzName",clazzDO.getClazzName());
 			map1.put("gradeName",gradeMapper.get(clazzDO.getGradeId()).getGradeName());
 			map.put("student",map1);
+			for (OutInRecordDO oi:outInRecordDOS) {
+				Map<String, Object> toMap = JavaBeanUtil.convertBeanToMap(oi);
+				SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
+				dateFormat.setTimeZone(TimeZone.getTimeZone("GMT-6"));
+				if (ObjectUtils.isNotEmpty(oi.getInDate())) {
+					toMap.put("inDate", dateFormat.format(oi.getInDate()));
+				}
+				if (ObjectUtils.isNotEmpty(oi.getOutDate())){
+					toMap.put("outDate",dateFormat.format(oi.getOutDate()));
+				}
+				maps.add(toMap);
+			}
 		}
-		map.put("outInRecordDOS",outInRecordDOS);
+		map.put("outInRecordDOS",maps);
 		return map;
 	}
 

+ 28 - 23
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxTaskNotifyServiceImpl.java

@@ -74,34 +74,39 @@ public class WxTaskNotifyServiceImpl implements WxTaskNotifyService {
         taskNotifyDO.setStartDate(startDate);
         Date endDate = DateFormatUtil.string2Date(json.getString("endDate"));
         taskNotifyDO.setEndDate(endDate);
-        String taskNotifier = json.getString("taskNotifier");
-        taskNotifyDO.setTaskNotifier(taskNotifier);
-        int save = taskNotifyMapper.save(taskNotifyDO);
-        if (save > 0) {
-            if (ObjectUtils.isNotEmpty(taskNotifier)) {
-                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-                SchoolDO schoolDO = wxSchoolMapper.get(schoolId);
-                List<Long> longs = JSON.parseArray(taskNotifier, Long.class);
-                for (Long stuId : longs) {
-                    List<ParentsStuDO> parentsStuDOS = wxParentsStuMapper.listByStuId(stuId);
-                    if (parentsStuDOS.size() > 0) {
-                        for (ParentsStuDO ps : parentsStuDOS) {
-                            ParentsDO parentsDO = parentsMapper.get(ps.getParentId());
-                            try {
-                                wxPushApi.wxPush(schoolDO.getSchoolAppid(), schoolDO.getSchoolSecret(),
-                                        parentsDO.getOpenid(), "WwKtiHd4lso9axuavfLdpHIVbzTiopOTyh_uCsL3ZI8", taskTitle,
-                                        wxSubjectMapper.get(subjectId).getSubjectName(), format.format(new Date()),
-                                        taskContext, "-", "点击查看详情", "https://school-wechat.ubtob" +
-                                                ".com/assignmentDetail/parent/" + taskNotifyDO.getTaskId());
-                            }catch (Exception e){
-                                e.printStackTrace();
+        if (endDate.getTime()>startDate.getTime()){
+            String taskNotifier = json.getString("taskNotifier");
+            taskNotifyDO.setTaskNotifier(taskNotifier);
+            int save = taskNotifyMapper.save(taskNotifyDO);
+            if (save > 0) {
+                if (ObjectUtils.isNotEmpty(taskNotifier)) {
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                    SchoolDO schoolDO = wxSchoolMapper.get(schoolId);
+                    List<Long> longs = JSON.parseArray(taskNotifier, Long.class);
+                    for (Long stuId : longs) {
+                        List<ParentsStuDO> parentsStuDOS = wxParentsStuMapper.listByStuId(stuId);
+                        if (parentsStuDOS.size() > 0) {
+                            for (ParentsStuDO ps : parentsStuDOS) {
+                                ParentsDO parentsDO = parentsMapper.get(ps.getParentId());
+                                String subjectName = wxSubjectMapper.get(subjectId).getSubjectName();
+                                try {
+                                    wxPushApi.wxPush(schoolDO.getSchoolAppid(), schoolDO.getSchoolSecret(),
+                                            parentsDO.getOpenid(), "WwKtiHd4lso9axuavfLdpHIVbzTiopOTyh_uCsL3ZI8", taskTitle,
+                                            subjectName, format.format(new Date()),
+                                            taskContext, "-", "点击查看详情", "https://school-wechat.ubtob" +
+                                                    ".com/assignmentDetail/parent/" + taskNotifyDO.getTaskId());
+                                }catch (Exception e){
+                                    e.printStackTrace();
+                                }
                             }
                         }
                     }
-                }
 
+                }
+                return "作业发布成功";
+        }else {
+                throw new Exception("开始时间不能小于结束时间");
             }
-            return "作业发布成功";
         } else {
             throw new Exception("作业发布失败");
         }

+ 49 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxUserServiceImpl.java

@@ -352,6 +352,55 @@ public class WxUserServiceImpl implements WxUserService {
 	}
 
 
+	/**
+	 * 修改手机号发送验证码
+	 * @param userPhone
+	 * @return
+	 */
+	public SendSmsResponse sendCodeUpdate(String userPhone,String openid,Long schoolId) throws Exception {
+		TeacherDO teacherDO = teacherMapper.getBySchoolAndOpenid(schoolId, openid);
+		ParentsDO parentsDO = parentsMapper.getBySchoolAndOpenid(schoolId, openid);
+		if (ObjectUtils.isNotEmpty(teacherDO)){
+			UserDO userDO = userMapper.get(teacherDO.getUserId());
+			if (ObjectUtils.isNotEmpty(userDO)){
+				String vcode = SendMsgUtil.createRandomVcode(CodeConfig.getCodeNumber());
+				userDO.setUserCode(vcode);
+				int update = userMapper.update(userDO);
+				if (update>0){
+					SendSmsResponse sendSmsResponse = SendCode.sendSms(userPhone, vcode);
+					Timer timer = new Timer();
+					timer.schedule(new CodeTask(userMapper,userDO.getUserId()), DateFormatUtil.long2Date(new Date().getTime()+5*60*1000));
+					return sendSmsResponse;
+				}else {
+					throw  new Exception("系统错误,请联系管理员");
+				}
+			}else {
+				throw  new Exception("该用户不存在,请联系管理员");
+			}
+		}else {
+			if (ObjectUtils.isNotEmpty(parentsDO)){
+				UserDO userDO = userMapper.get(parentsDO.getUserId());
+				if (ObjectUtils.isNotEmpty(userDO)){
+					String vcode = SendMsgUtil.createRandomVcode(CodeConfig.getCodeNumber());
+					userDO.setUserCode(vcode);
+					int update = userMapper.update(userDO);
+					if (update>0){
+						SendSmsResponse sendSmsResponse = SendCode.sendSms(userPhone, vcode);
+						Timer timer = new Timer();
+						timer.schedule(new CodeTask(userMapper,userDO.getUserId()), DateFormatUtil.long2Date(new Date().getTime()+5*60*1000));
+						return sendSmsResponse;
+					}else {
+						throw  new Exception("系统错误,请联系管理员");
+					}
+				}else {
+					throw  new Exception("该用户不存在,请联系管理员");
+				}
+			}else {
+				throw  new Exception("该用户不存在,请联系管理员");
+			}
+		}
+	}
+
 	/**
 	 * 修改手机号
 	 * @param userPhone

+ 6 - 4
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxVoteServiceImpl.java

@@ -103,11 +103,12 @@ public class WxVoteServiceImpl implements WxVoteService {
                     TeacherDO teacherDO = teacherMapper.get(ll);
                     SchoolDO schoolDO = wxSchoolMapper.get(teacherDO.getSchoolId());
                     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+                    String teacherName = teacherMapper.get(creator).getTeacherName();
                     try {
                         wxPushApi.wxPush(schoolDO.getSchoolAppid(), schoolDO.getSchoolSecret(), teacherDO.getOpenid(),
                                 "h0BkcnTo24b2jsficMeVO0B17GvE-VzlPvF0fVXea4w", "有一个投票单需要您的支持", schoolDO.getSchoolName(),
-                                teacherMapper.get(creator).getTeacherName(), format.format(new Date()), vote.getVoteName()
-                                , "点击查看详情", "https://school-wechat.ubtob.com/voteDetail/" + vote.getVoteId());
+                                teacherName, format.format(new Date()), vote.getVoteName()
+                                , "点击查看详情", "https://school-wechat.ubtob.com/voteDetail/" + vote.getVoteId()+"?teacherId="+ll);
                     }catch (Exception e){
                         e.printStackTrace();
                     }
@@ -120,15 +121,16 @@ public class WxVoteServiceImpl implements WxVoteService {
                 List<ParentsStuDO> parentsStuDOS = wxParentsStuMapper.listByStuId(l);
                 if (parentsStuDOS.size() > 0) {
                     for (ParentsStuDO ps : parentsStuDOS) {
+                        String teacherName = teacherMapper.get(creator).getTeacherName();
                         ParentsDO parentsDO = wxParentsMapper.get(ps.getParentId());
                         SchoolDO schoolDO = wxSchoolMapper.get(parentsDO.getSchoolId());
                         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                         try {
                             wxPushApi.wxPush(schoolDO.getSchoolAppid(), schoolDO.getSchoolSecret(), parentsDO.getOpenid()
                                     , "h0BkcnTo24b2jsficMeVO0B17GvE-VzlPvF0fVXea4w", "有一个投票单需要您的支持",
-                                    schoolDO.getSchoolName(), teacherMapper.get(creator).getTeacherName(),
+                                    schoolDO.getSchoolName(),teacherName ,
                                     format.format(new Date()), vote.getVoteName(), "点击查看详情",
-                                    "https://school-wechat.ubtob.com/voteDetail/" + vote.getVoteId());
+                                    "https://school-wechat.ubtob.com/voteDetail/" + vote.getVoteId()+"?stuId="+l);
                         }catch (Exception e){
                             e.printStackTrace();
                         }

+ 2 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/support/RemindTask.java

@@ -56,8 +56,9 @@ public class RemindTask extends TimerTask {
         List<Long> list = removeDuplicate(longs);
         for (Long teacherId:list) {
             SchoolDO schoolDO = wxSchoolMapper.get(meetingDO.getSchoolId());
+            String openid = teacherMapper.get(teacherId).getOpenid();
             try {
-                wxPushApi.wxPush(schoolDO.getSchoolAppid(), schoolDO.getSchoolSecret(), teacherMapper.get(teacherId).getOpenid(), "_hX_lGEG1W1bJmW37VBaPYQoLrRrUAlNCSScezZQQWk", "您好,您有一条新的会议通知", meetingDO.getMeetingName(), simpleDateFormat.format(meetingDO.getStartDate()), meetingDO.getMeetingAddress(), "-", "点击查看详情", "https://school-wechat.ubtob.com/meet-detail/" +teacherId+"/"+ meetingDO.getMeetingId());
+                wxPushApi.wxPush(schoolDO.getSchoolAppid(), schoolDO.getSchoolSecret(),openid , "_hX_lGEG1W1bJmW37VBaPYQoLrRrUAlNCSScezZQQWk", "您好,您有一条新的会议通知", meetingDO.getMeetingName(), simpleDateFormat.format(meetingDO.getStartDate()), meetingDO.getMeetingAddress(), "-", "点击查看详情", "https://school-wechat.ubtob.com/meet-detail/" +teacherId+"/"+ meetingDO.getMeetingId()+"?teacherId="+teacherId);
             } catch (Exception e) {
                 e.printStackTrace();
             }

+ 5 - 1
frontend/wechat-web/src/modules/accountBind/BindMenu.jsx

@@ -147,6 +147,8 @@ class BindMenu extends Component {
                 this.setState({
                     bindStatus: 2
                 })
+
+                this.props.history.push('/homePage')
             } else {
                 this.setState({
                     bindStatus: 1
@@ -167,7 +169,9 @@ class BindMenu extends Component {
 
     getRedirectMain = () => {
         return (
-            <Redirect to='/homePage'></Redirect>
+            <div>
+                {/*<Redirect to='/homePage'></Redirect>*/}
+            </div>
         )
     }
 

+ 10 - 7
frontend/wechat-web/src/modules/album/ClassAlbum.jsx

@@ -44,8 +44,9 @@ class ClassAlbum extends Component {
     }
 
     componentDidMount() {
+        console.log(this.props.listState)
         document.title = '班级相册'
-        this.node.scrollIntoView();
+        this.container.scrollIntoView();
 
         if (isObjEmpty(this.props.classData.classList)) {
             Toast.loading('', 0)
@@ -87,17 +88,14 @@ class ClassAlbum extends Component {
             }
         }
         return (
-            <div ref={node => this.node = node}>
+            <div ref={node => this.container = node} style={{height:'100vh',overflow:'scroll'}}>
                 <div className='gray-line'></div>
                 <Picker data={classList} title='选择班级' extra='请选择'
                         value={classValue} onChange={this.handleClassChange} cols={1}>
                     <List.Item arrow="horizontal">选择班级</List.Item>
                 </Picker>
                 <div className='gray-line'></div>
-                <div style={{padding: '20px'}}
-                     ref={el => {
-                         this.container = el
-                     }}>
+                <div style={{padding: '20px'}}>
                     {albumItems}
                 </div>
             </div>
@@ -169,7 +167,11 @@ class ClassAlbum extends Component {
                         albumList.push(albumBean)
                     }
                 }
-                this.setState({albumList})
+                this.setState({albumList}, () => {
+                    if (this.props.listState) {
+                        ReactDOM.findDOMNode(this.container).scrollTop = this.props.listState.scrollTop
+                    }
+                })
             }
         }).catch(error => {
             Toast.hide()
@@ -186,6 +188,7 @@ class ClassAlbum extends Component {
             classList: classList,
             classValue: classValue,
         })()
+        console.log('dd',ReactDOM.findDOMNode(this.container))
         saveListState({
             scrollTop: ReactDOM.findDOMNode(this.container).scrollTop,
         })()

+ 1 - 1
frontend/wechat-web/src/modules/hiPages/scorenotification/ScoreNotification.js

@@ -46,8 +46,8 @@ class ScoreNotification extends Component {
         this.setState({
             stuId: stuId
         }, function () {
+            pageIndex = 0
             this.getScoreData()
-            console.log("stuId", stuId)
         })
     }
 

+ 23 - 6
frontend/wechat-web/src/modules/notificationCenter/NotifyBoardDetail.jsx

@@ -5,7 +5,7 @@
 
 import React, {Component} from 'react'
 import ImagesViewer from "../../components/imagesVIewer";
-import {getArrayValue, getIntValue, getStrValue, isObjEmpty} from "../../utils/common";
+import {getArrayValue, getIntValue, getSearchParams, getStrValue, isObjEmpty} from "../../utils/common";
 import NotifyBoBean from "../../model/NotifyBoBean";
 import {fetchGet, fetchPost} from "../../utils/fetchRequest";
 import {_baseURL, API} from "../../configs/api.config";
@@ -25,11 +25,15 @@ class NotifyBoardDetail extends Component {
         }
     }
 
-    componentDidMount() {
-        document.title = '通知公告详情'
+    componentWillMount() {
+        this.searchParams = getSearchParams(this.props.location.search)
 
         this.notifyId = this.props.match.params.notifyId
         this.role = this.props.match.params.role
+    }
+
+    componentDidMount() {
+        document.title = '通知公告详情'
 
         this.obtainDetail()
     }
@@ -89,7 +93,12 @@ class NotifyBoardDetail extends Component {
                                 className={notifyDetail.noStatu === '已读' ?
                                     'notify-item-statuAl' : 'notify-item-statuNo'}>{notifyDetail.noStatu}</span>
                         </div>
-                        <div className='notify-detail-modal-content-text'>{notifyDetail.noContent}</div>
+                        <div className='notify-detail-modal-content-text'
+                             dangerouslySetInnerHTML={{
+                                 __html: notifyDetail.noContent ?
+                                     notifyDetail.noContent.replaceAll('\n', '<br/>')
+                                     : ''
+                             }}></div>
                         <div style={{padding: '10px'}}>
                             {enclosureItem}
                         </div>
@@ -120,15 +129,23 @@ class NotifyBoardDetail extends Component {
         let url = '', params = {}
         if (this.role === 'teacher') {
             url = API.NOTIFY_DETAIL_TEACHER
+            let id = this.props.userInfo.user.userFunId
+            if (this.searchParams && this.searchParams.teacherId) {
+                id = this.searchParams.teacherId
+            }
             params = {
                 notifyId: this.notifyId,
-                teacherId: this.props.userInfo.user.userFunId
+                teacherId: id
             }
         } else if (this.role === 'parent') {
             url = API.NOTIFY_DETAIL_PARENT
+            let id = this.props.userInfo.user.student.stuId
+            if (this.searchParams && this.searchParams.stuId) {
+                id = this.searchParams.stuId
+            }
             params = {
                 notifyId: this.notifyId,
-                stuId: this.props.userInfo.user.student.stuId
+                stuId: id
             }
         } else {
             return

+ 18 - 6
frontend/wechat-web/src/modules/vote/VoteDetailPage.js

@@ -11,7 +11,7 @@ import {API, _baseURL} from "../../configs/api.config";
 import {Toast} from 'antd-mobile'
 import ImageGrid from "../../components/image/ImageGrid";
 import {connect} from 'react-redux'
-import {getIntValue, getStrValue, isObjEmpty} from "../../utils/common";
+import {getIntValue, getSearchParams, getStrValue, isObjEmpty} from "../../utils/common";
 import {saveListState} from "../../redux/actions/listState";
 
 let role   //parent ,teacher
@@ -34,7 +34,7 @@ class VoteDetailPage extends React.Component {
                 endTime: '2018-11-15 08:00',
                 selectState: 0,//0 单选 1 多选
                 votes: [],
-                voteStatus:''
+                voteStatus: ''
             }
         };
     }
@@ -43,6 +43,8 @@ class VoteDetailPage extends React.Component {
     componentWillMount() {
         document.title = "投票";
         role = this.props.match.params.role
+
+        this.searchParams = getSearchParams(this.props.location.search)
     }
 
     componentDidMount() {
@@ -59,14 +61,24 @@ class VoteDetailPage extends React.Component {
         // console.log("voteId",this.state.id)
         if (role === 'teacher') {
             url_detail = API.voteDetailTeacher
+
+            let id = this.props.userInfo.user.userFunId
+            if (this.searchParams && this.searchParams.teacherId) {
+                id = this.searchParams.teacherId
+            }
             params = {
-                teacherId: this.props.userInfo.user.userFunId,
+                teacherId: id,
                 voteId: this.state.id
             }
         } else if (role === 'parent') {
             url_detail = API.voteDetailParent
+
+            let id = this.props.userInfo.user.student.stuId
+            if (this.searchParams && this.searchParams.stuId) {
+                id = this.searchParams.stuId
+            }
             params = {
-                stuId: this.props.userInfo.user.student.stuId,
+                stuId: id,
                 voteId: this.state.id
             }
         }
@@ -122,9 +134,9 @@ class VoteDetailPage extends React.Component {
                 voteBean.voteStatusCode = getIntValue(item, 'voteStatus')
                 if (voteBean.voteStatusCode === 1) {
                     voteBean.voteStatus = '进行中'
-                }else if(voteBean.voteStatusCode === 4){
+                } else if (voteBean.voteStatusCode === 4) {
                     voteBean.voteStatus = '已截止'
-                }else {
+                } else {
                     voteBean.voteStatus = '已投票'
                 }
                 voteBean.creatDate = getStrValue(item, 'creatDate')