Browse Source

推送测试

koul 7 years ago
parent
commit
38f0c7e8a5

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