Пример #1
0
 /*
  * 检查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;
 }
Пример #2
0
  /**
   * 发送短信
   *
   * @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;
  }