@Override
  public Map<String, Object> examineSendMessage(Map<String, Object> map) throws Exception {
    int r = randomDao.queryRandomNo(map);
    if (r < 1) {
      map.clear();
      map.put("result", "验证失败!");
      map.put("status", "N");
      return map;
    }
    // 成功审核日志

    map.put("examine_id", map.get("spr"));
    map.put("examine_time", DateUtil.getNowDateStr());
    sendMessageDao.insertSendMessageLog(map);
    if ("1".equals(map.get("exLev"))) {
      map.put("status", "2"); // 可用 -- 地市审核状态修改成5  省级领导审核 状态为2
    } else if ("2".equals(map.get("exLev"))) {
      map.put("status", "2"); // 可用
    }
    int j = sendMessageDao.updateSendMessageStatus(map); // 更新推送信息状态
    if (j == 1) {
      map.put("randomStatus", "1"); // 已经使用
      randomDao.updateRandomNo(map);
      map.clear();
      map.put("result", "审核通过!");
      map.put("status", "S");
    } else {
      map.clear();
      map.put("result", "审核通过,推送信息状态更新失败!");
      map.put("status", "Y");
    }
    return map;
  }
  @Override
  public boolean sendExamineRandomNo(Map<String, Object> map) {
    if ("Y".equals(map.get("rsend"))) { // 从新发送短信随机码
      // 修改现有的随机码状态
      map.put("randomStatus", "2"); // 超时状态
      try {
        randomDao.updateRandomNo(map);
      } catch (Exception e) {
        log.error("更新随机码状态(失效)出错=" + e.getMessage());
      }
      Map<String, Object> smMap = sendMessageDao.getSendMessages(map);
      Map<String, String> m = getExamineId((String) map.get("user_id")); // 获取审核人
      map.put("examine_id", m.get("examine_id"));
      map.put("send_ms", smMap.get("send_ms"));
    }
    String randomNo = RandomUtil.getRandom();
    map.put("random_type", "sh");
    map.put("create_time", DateUtil.getNowDateStr());
    map.put("random_no", randomNo);
    map.put("status", "0"); // 0未使用

    int r = 0;
    try {
      r = randomDao.insertRandomCode(map);
    } catch (Exception e) {
      log.info("随机码插入日志表出错=" + e.getMessage());
    } // 随机码入库
    if (1 != r) {
      return false;
    }

    // 生成短信信息
    map.put("send_time", DateUtil.getNowDateStr());
    map.put("send_ms", map.get("send_ms") + "|本次审核随机码:" + randomNo);
    map.put("ms_type", "9"); // 系统内部短信

    // 调用发送信息方法
    // if短信是否发送成功
    log.info("下发短信信息=" + map);

    // 发送短信入库日志表  》》
    try {
      sendMessageDao.insertSendMessageLog(map);
    } catch (Exception e) {
      log.info("发送短信入库日志表出错=" + e.getMessage());
    }

    return sendmsdb(map);
  }
 @Override
 public String getSendMsRondom(String activeCode) {
   try {
     return randomDao.querySendMsRandom(activeCode);
   } catch (Exception e) {
     log.error("手动查询验证码出错:" + e.getMessage());
   }
   return null;
 }
  @Override
  public String randomNoSend(Map<String, Object> map) {
    String randomNo = RandomUtil.getRandom();
    map.put("random_type", "sh");
    map.put("create_time", DateUtil.getNowDateStr());
    map.put("random_no", randomNo);
    map.put("status", "0"); // 0未使用
    int r = 0;
    try {
      r = randomDao.insertRandomCode(map);
    } catch (Exception e) {
      log.info("随机码插入日志表出错=" + e.getMessage());
      return "E";
    } // 随机码入库
    if (1 != r) {
      return "N";
    }

    Map<String, String> pm = getExamineId((String) map.get("spr"));
    if (pm != null) {
      map.put("phone_no", pm.get("examine_phone"));
    }
    // 生成短信信息
    map.put("send_time", DateUtil.getNowDateStr());
    map.put("send_ms", map.get("smbCode") + "|本次审核随机码:" + randomNo);
    map.put("ms_type", "9"); // 系统内部短信
    // 调用发送信息方法
    // select * from vgop.msm_upload_his where msm_phonenum='15828295348' order by msm_date desc
    // fetch first 10 rows only

    // if短信是否发送成功
    log.info("下发短信信息=" + map);
    // 发送短信入库日志表  》》
    try {
      sendMessageDao.insertSendMessageLog(map);
    } catch (Exception e) {
      log.info("发送短信入库日志表出错=" + e.getMessage());
      return "E";
    }

    if (!sendmsdb(map)) {
      return "N";
    }
    return "Y";
  }