/* * 检查code是否核查不合法返回null */ @Override public UserCode checkUserCode(String code) throws Exception { // 获取加密后的信息解密 String msg = PurseSecurityUtils.decryption(code, CommonConstants.SecurityKey); // 解密后的json格式验证是否正确 JsonParser jsonParser = new JsonParser(); JsonObject jsonObject = jsonParser.parse(msg).getAsJsonObject(); String createTime = jsonObject.get("createTime").getAsString(); Long userId = jsonObject.get("userId").getAsLong(); Long id = jsonObject.get("id").getAsLong(); // 验证信息为空 if (StringUtils.isEmpty(createTime) || ObjectUtils.isNull(userId) || ObjectUtils.isNull(id)) { return null; } UserCode userCode = userCodeDao.getUserCodeById(id); // 查询userCode 状态是否已经使用过 if (ObjectUtils.isNotNull(userCode) && userCode.getStatus().longValue() == 0) { Calendar c = Calendar.getInstance(); c.setTime(userCode.getCreateTime()); c.add(Calendar.DAY_OF_MONTH, 3); if (new Date().getTime() > c.getTime().getTime()) { // 超过三天 return null; } return userCode; } return null; }
/** * 发送短信 * * @param request * @return */ @RequestMapping("/user/sendMsg") @ResponseBody public Map<String, Object> sendMobileMsg(HttpServletRequest request) { try { List<UserMobileMsg> msgList = new ArrayList<UserMobileMsg>(); String linksman = request.getParameter("linksman"); // 获取联系人 String content = request.getParameter("content"); // 获取内容 Integer type = Integer.parseInt(request.getParameter("sendType")); // 发送方式 Date now = new Date(); Date sendTime = now; if (type == 2) { // 定时发送 if (StringUtils.isEmpty(request.getParameter("sendTime"))) { this.setJson(false, "定时发送时间不能为空", ""); return json; } DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); sendTime = df.parse(request.getParameter("sendTime")); // 定时发送时间 } if (StringUtils.isNotEmpty(linksman) && StringUtils.isNotEmpty(content)) { // 验证手机 Map<String, Object> returnMap = checkMobile(linksman); // 错误信息 String errorMobile = returnMap.get("errorMobile").toString(); if (Boolean.parseBoolean(returnMap.get("flag").toString()) == false) { this.setJson(false, errorMobile, ""); return json; } else { // 添加发送记录 JsonObject user = SingletonLoginUtils.getSysUser(request); UserMobileMsg userMobileMsg = new UserMobileMsg(); userMobileMsg.setSendTime(sendTime); if (type == 1) { // 正常发送 userMobileMsg.setStatus(1); } else { // 定时发送 userMobileMsg.setStatus(2); } userMobileMsg.setId(0); userMobileMsg.setType(type); userMobileMsg.setContent(content); userMobileMsg.setMobile(returnMap.get("mobileList").toString()); if (ObjectUtils.isNotNull(user)) { userMobileMsg.setUserId(user.get("userId").getAsLong()); } else { userMobileMsg.setUserId(0L); } userMobileMsg.setCreateTime(now); msgList.add(userMobileMsg); // 添加记录 暂不发送 userMobileMsgService.addUserMobileMsg(msgList); if (type == 1) { // 正常发送 userMobileMsgService.batchSendMobileMsg( content, returnMap.get("mobileList").toString().split(","), 3); } errorMobile = "发送成功"; } this.setJson(Boolean.parseBoolean(returnMap.get("flag").toString()), errorMobile, ""); } else { this.setJson(false, "联系人或内容不能为空", null); } } catch (Exception e) { logger.error("sendMobileMsg", e); } return json; }