每一天簡訊傳送次數每一分鐘傳送頻率傳送限制 hibernate資料庫框架
1:程式碼設計
public static void sendiscan(){
if (StringUtils.isBlank(mobile)) {
error.code = -1;error.msg = "手機號碼不能為空";
return ;
}
//根據手機查詢 資料是否存在該手機記錄
String sql = "select mobile from t_user_send_now where mobile=? ";
String Smobile = null;
try {
Smobile = t_user_send_now.find(sql, mobile).first();
} catch (Exception e) {
e.printStackTrace();
Logger.info("判斷手機是否存在時,根據手機查詢資料時:" + e.getMessage());
return ;
}
//如果存在
if (Smobile != null && mobile.equals(Smobile)) {Date send_time;
Date date=new Date();
Date dateNow=new Date(date.getTime()-60000);
String dql="select send_time from t_user_send_now where mobile=? ";
try {
send_time=t_user_send_now.find(dql, mobile).first();
} catch (Exception e) {
e.printStackTrace();
Logger.info("查詢手機傳送簡訊實際時間時出現錯誤:" + e.getMessage());
return ;
}
//判斷髮送間隔是否超過一分鐘
if(send_time.getTime()>dateNow.getTime()){return ;
}else{
int sendCount = 0;
String hql = "select sendCount from t_user_send_now where mobile=? ";
try {
sendCount = t_user_send_now.find(hql, mobile).first();
} catch (Exception e) {
e.printStackTrace();
Logger.info("判斷手機傳送簡訊時,根據手機查詢資料時:" + e.getMessage());
return ;
}
//判斷當天傳送次數是否超過6次
if (sendCount > 6 || sendCount == 6) {error.code = -4;
error.msg = "該手機傳送簡訊超過6次";
return;
} else {
EntityManager em = JPA.em();
int rows = em.createQuery(
"update t_user_send_now set sendCount=sendCount+1 , send_time=? where 1=1 and mobile=?")
.setParameter(1, new Date()).setParameter(2, mobile).executeUpdate();
if (rows == 0) {
JPA.setRollbackOnly();
return;
} else {
return ;
}
}
}
//第一次傳送
}else{t_user_send_now sendnow = new t_user_send_now();
sendnow.mobile=mobile;
sendnow.sendCount=1;
sendnow.send_time=new Date();
try {
sendnow.save();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
Logger.info("增加傳送手機時出現錯誤 :" + e.getMessage());
return ;
}
return ;
}
}
2:資料庫設計
sql 語句mysql
CREATE TABLE `t_user_send_now` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '簡訊傳送號碼統計表編號',
`mobile` varchar(50) DEFAULT NULL COMMENT '傳送手機號碼',
`sendCount` int(11) DEFAULT '0' COMMENT '簡訊傳送次數',
`send_time` datetime DEFAULT NULL COMMENT '上次簡訊傳送時間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=78 DEFAULT CHARSET=utf8;
相關文章
- android 傳送簡訊Android
- 設定訊號傳送鬧鐘
- 使用 Python 傳送簡訊?Python
- Laravel SMS 簡訊傳送包Laravel
- 郵件和簡訊傳送
- android簡訊傳送器Android
- 使用阿里簡訊(防止薅羊毛、限制傳送次數)直接複製直接用阿里
- a標籤的妙用-撥打電話、傳送簡訊、傳送郵件
- 阿里雲簡訊傳送 sdk阿里
- 簡訊傳送機的實現
- java 阿里雲簡訊傳送Java阿里
- python 傳送buffer型別資料, 傳送octet-stream型別資料, 傳送Uint8Array型別資料Python型別UI
- 利用Oracle資料庫傳送郵件Oracle資料庫
- 資料庫映象和日誌傳送資料庫
- 傳送陣
- ASP.NET Core中如何限制響應傳送速率(不是呼叫頻率)ASP.NET
- 【RocketMQ】MQ訊息傳送MQ
- RocketMQ(八):訊息傳送MQ
- iOS 傳送位置訊息iOS
- 鴻蒙傳送訊息通知鴻蒙
- 小米4無法傳送簡訊怎麼辦 小米4無法傳送簡訊解決方法
- SpringBoot 實現傳送簡訊Spring Boot
- 阿里雲平臺傳送簡訊阿里
- 二十一章 PHP傳送簡訊PHP
- 資料傳送類指令【80486】
- lncRNA資料分析傳送門
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- RocketMQ(九):訊息傳送(續)MQ
- TNW-傳送模板訊息TNW
- flutter: 深入通訊-傳送端Flutter
- 6-RocketMQ傳送訊息MQ
- Laravel6 使用騰訊雲簡訊-傳送簡訊Laravel
- 郵件傳送
- ReactPortals傳送門React
- 傳送郵件
- 【測試】echo傳送和接收TCP/UDP資料包|shell 傳送TCP/UDP資料包TCPUDP
- Nagios呼叫WSDL WebServer介面傳送簡訊iOSWebServer
- 30332資料傳送指令