|
|
@@ -763,7 +763,7 @@ public class serviceorder extends Controller {
|
|
|
public String sendMessage() throws YosException {
|
|
|
String customerphone = "";
|
|
|
long sa_workorderid=content.getLong("sa_workorderid");
|
|
|
- Rows rows = dbConnect.runSqlQuery("select t1.type,t2.* from sa_workorder t1 inner join sa_serviceorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid and t1.siteid=t2.siteid where t1.sa_workorderid="+sa_workorderid);
|
|
|
+ Rows rows = dbConnect.runSqlQuery("select t1.type,t1.verificationcode,t1.verificationdate,t2.* from sa_workorder t1 inner join sa_serviceorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid and t1.siteid=t2.siteid where t1.sa_workorderid="+sa_workorderid);
|
|
|
if(rows.isEmpty()){
|
|
|
return getErrReturnObject().setErrMsg("该工单不存在").toString();
|
|
|
}
|
|
|
@@ -783,12 +783,18 @@ public class serviceorder extends Controller {
|
|
|
customerphone=rows.get(0).getString("scenecontactphonenumber");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- if (!Pattern.matches("^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$", customerphone)) {
|
|
|
- return getErrReturnObject().setErrMsg("手机格式有误").toString();
|
|
|
+ if(StringUtils.isNotBlank(customerphone)){
|
|
|
+ if (!Pattern.matches("^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$", customerphone)) {
|
|
|
+ return getErrReturnObject().setErrMsg("手机格式有误").toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String verificationCode ="";
|
|
|
+ if(StringUtils.isBlank(rows.get(0).getString("verificationcode"))){
|
|
|
+ verificationCode = createVerificationCode();
|
|
|
+ }else{
|
|
|
+ verificationCode = rows.get(0).getString("verificationcode");
|
|
|
}
|
|
|
- String verificationCode = createVerificationCode();
|
|
|
+
|
|
|
dbConnect.runSqlUpdate("update sa_workorder set verificationcode='"+verificationCode+"' where sa_workorderid="+sa_workorderid);
|
|
|
Rows wxserviceRows = dbConnect.runSqlQuery("select t2.userid from sys_wechatapp_openids t1 inner join sys_users t2 on t1.userid=t2.userid where t2.phonenumber='"+customerphone+"'");
|
|
|
Row row = new Row();
|
|
|
@@ -802,12 +808,23 @@ public class serviceorder extends Controller {
|
|
|
row.put("msg", "验证码已发送,请注意查收!");
|
|
|
}
|
|
|
}else {
|
|
|
- if(StringUtils.isNotBlank("customerphone")){
|
|
|
- Sms sms = new Sms();
|
|
|
- sms.sendout(Sms.SmsType.PassWord,customerphone, Parameter.getString("chuanglan_sms_model_password"), new String[]{verificationCode});
|
|
|
- message_map.put(customerphone, new VerificationManage(verificationCode));
|
|
|
- }
|
|
|
if (!BaseClass.isdebug() && !Arrays.asList(Parameter.getString("system_invalidate_phonenumber").split(",")).contains(customerphone)) {
|
|
|
+ if(StringUtils.isNotBlank("customerphone")){
|
|
|
+ if(StringUtils.isNotBlank(rows.get(0).getString("verificationdate"))){
|
|
|
+ if(isMoreThanOneHourUsingCalendar(rows.get(0).getDate("verificationdate"),new Date())){
|
|
|
+ Sms sms = new Sms();
|
|
|
+ sms.sendout(Sms.SmsType.PassWord,customerphone, Parameter.getString("chuanglan_sms_model_password"), new String[]{verificationCode});
|
|
|
+ message_map.put(customerphone, new VerificationManage(verificationCode));
|
|
|
+ dbConnect.runSqlUpdate("update sa_workorder set verificationdate=CURRENT_TIME where sa_workorderid="+sa_workorderid);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ Sms sms = new Sms();
|
|
|
+ sms.sendout(Sms.SmsType.PassWord,customerphone, Parameter.getString("chuanglan_sms_model_password"), new String[]{verificationCode});
|
|
|
+ message_map.put(customerphone, new VerificationManage(verificationCode));
|
|
|
+ dbConnect.runSqlUpdate("update sa_workorder set verificationdate=CURRENT_TIME where sa_workorderid="+sa_workorderid);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
row.put("code", 1);
|
|
|
row.put("msg", "手机验证码已发送,请注意查收!");
|
|
|
}else{
|
|
|
@@ -908,9 +925,9 @@ public class serviceorder extends Controller {
|
|
|
workpresetInfo1.setRequired(row2.getLong("required"));
|
|
|
workpresetInfo1.setTextedit(row2.getLong("textedit"));
|
|
|
workpresetInfo1.setSignature(row2.getLong("signature"));
|
|
|
- workpresetInfo1.setPasscheck(row.getLong("passcheck"));
|
|
|
- workpresetInfo1.setQuestionedit(row.getLong("questionedit"));
|
|
|
- workpresetInfo1.setQuestionoption(row.getString("questionoption"));
|
|
|
+ workpresetInfo1.setPasscheck(row2.getLong("passcheck"));
|
|
|
+ workpresetInfo1.setQuestionedit(row2.getLong("questionedit"));
|
|
|
+ workpresetInfo1.setQuestionoption(row2.getString("questionoption"));
|
|
|
String workpresetjson1 = JSONObject.toJSONString(workpresetInfo1);
|
|
|
SQLFactory sqlFactory1 = new SQLFactory(this, "服务工单流程节点新增");
|
|
|
sqlFactory1.addParameter("sa_workorder_nodeid", createTableID("sa_workorder_node"));
|
|
|
@@ -957,4 +974,17 @@ public class serviceorder extends Controller {
|
|
|
return s;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 方法2:使用 Calendar 计算是否超过一小时
|
|
|
+ */
|
|
|
+ public boolean isMoreThanOneHourUsingCalendar(Date date1, Date date2) {
|
|
|
+ Calendar cal1 = Calendar.getInstance();
|
|
|
+ Calendar cal2 = Calendar.getInstance();
|
|
|
+ cal1.setTime(date1);
|
|
|
+ cal2.setTime(date2);
|
|
|
+
|
|
|
+ // 计算相差的毫秒数
|
|
|
+ long diffInMillis = Math.abs(cal2.getTimeInMillis() - cal1.getTimeInMillis());
|
|
|
+ return diffInMillis >= 3600000L;
|
|
|
+ }
|
|
|
}
|