Browse Source

Changes in 1913 whatsapp message api

main
Hariprasath S 4 months ago
parent
commit
516651af49
  1. 4
      gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/callcenterqaqc/controller/QaqcCallsController.java
  2. 122
      gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/callcenterqaqc/controller/WhatsappController.java
  3. 186
      gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/callcenterqaqc/service/WhatsappqaqcMsgService.java
  4. 34
      gcc_officer_portal/src/main/resources/templates/modules/callcenterqaqc/agentqaqccalls.html

4
gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/callcenterqaqc/controller/QaqcCallsController.java

@ -116,11 +116,13 @@ public class QaqcCallsController {
String result = sendWhatsappMsg(pname, cat, mob_no, complaintNumber); String result = sendWhatsappMsg(pname, cat, mob_no, complaintNumber);
if(result.equals("200")) { if(result.equals("200")) {
System.out.println("Followup Whatsapp Complaint Triggered for "+complaintNumber);
System.out.println("Followup Whatsapp Message Triggered for "+complaintNumber);
} }
} }
// Execute common update methods // Execute common update methods
qaqcCallsService.updateComplaintDetails(complaintNumber, dataId, action,remarks,updated_agent); qaqcCallsService.updateComplaintDetails(complaintNumber, dataId, action,remarks,updated_agent);
qaqcCallsService.updateComplaintHistoryDetails(complaintNumber,dataId, action, remarks,updated_agent, remainderDate); qaqcCallsService.updateComplaintHistoryDetails(complaintNumber,dataId, action, remarks,updated_agent, remainderDate);

122
gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/callcenterqaqc/controller/WhatsappController.java

@ -1,8 +1,15 @@
package in.gov.chennaicorporation.gccoffice.callcenterqaqc.controller; package in.gov.chennaicorporation.gccoffice.callcenterqaqc.controller;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@ -11,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
import in.gov.chennaicorporation.gccoffice.callcenterqaqc.service.WhatsappqaqcMsgService; import in.gov.chennaicorporation.gccoffice.callcenterqaqc.service.WhatsappqaqcMsgService;
@RestController("callcenterqaqcwhatsapp") @RestController("callcenterqaqcwhatsapp")
@RequestMapping("/gcc/qaqc/api/whatsapp")
@RequestMapping("/gcc/api/qaqc/whatsapp")
public class WhatsappController { public class WhatsappController {
@Autowired @Autowired
@ -22,6 +29,119 @@ public class WhatsappController {
String response = whatsappqaqcMsgService.sendMsg(msgUrl,tamilmsgUrl); String response = whatsappqaqcMsgService.sendMsg(msgUrl,tamilmsgUrl);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@GetMapping("/checkforwhatsappmsg")
public boolean checkforwhatsappmsg(
@RequestParam String complaintNumber,
@RequestParam String action,
@RequestParam String complaintTypeName,
@RequestParam String mobnumber,
@RequestParam String pname) {
Map<String, Object> ismsg =
whatsappqaqcMsgService.checkforwhatsappmsg(
complaintNumber,
action);
String returnedAction =
String.valueOf(ismsg.get("action"));
boolean status =
Boolean.TRUE.equals(ismsg.get("status"));
System.out.println("Action = " + returnedAction);
System.out.println("Status = " + status);
if (status) {
String result = sendWhatsappMsg(pname, complaintTypeName, mobnumber, complaintNumber,returnedAction);
if(result.equals("200")) {
System.out.println("Whatsapp Message Triggered for "+complaintNumber);
return true;
}
else {
System.out.println("Whatsapp Message Failed for "+complaintNumber);
return false;
}
}
return false;
}
private String sendWhatsappMsg(String pname,String cat,String mob_no, String complaintNumber,String returnedAction) {
String urlString = "";
try {
if("COMPLETED".equalsIgnoreCase(returnedAction)) {
}
if("UNATTENDED".equalsIgnoreCase(returnedAction)) {
}
String placeholders =
URLEncoder.encode(
pname + "|~|" + cat + "|~|" + complaintNumber,
StandardCharsets.UTF_8.toString());
String buttonPlaceholder =
URLEncoder.encode(
complaintNumber,
StandardCharsets.UTF_8.toString());
String mobile =
URLEncoder.encode(
mob_no,
StandardCharsets.UTF_8.toString());
urlString="";
String res = hitURL(urlString);
return res;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
private String hitURL(String urlString) {
String response = "";
try {
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
response = String.valueOf(responseCode);
//System.out.println("Response Code for URL: " + urlString + " is " + responseCode);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("response=" + response);
return response;
}
@GetMapping("/getclosefromuser")
public String getclosefromuser(@RequestParam String complaintNumber) {
return whatsappqaqcMsgService.getclosefromuser(complaintNumber);
}
@GetMapping("/getreopenfromuser")
public String getreopenfromuser(@RequestParam String complaintNumber) {
return whatsappqaqcMsgService.getreopenfromuser(complaintNumber);
}
} }

186
gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/callcenterqaqc/service/WhatsappqaqcMsgService.java

@ -2,13 +2,44 @@ package in.gov.chennaicorporation.gccoffice.callcenterqaqc.service;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.env.Environment;
import org.springframework.http.ResponseEntity;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
@Service @Service
public class WhatsappqaqcMsgService { public class WhatsappqaqcMsgService {
private final RestTemplate restTemplate;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private SocialMediaService socialMediaService;
@Autowired
private QaqcCallsService qaqcCallsService;
@Autowired
public void setDataSource(@Qualifier("mysql1913QAQCDataSource") DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public WhatsappqaqcMsgService(RestTemplate restTemplate) {
this.restTemplate=restTemplate;
}
public String sendMsg(String msgUrl, String tamilmsgUrl) { public String sendMsg(String msgUrl, String tamilmsgUrl) {
StringBuilder response = new StringBuilder(); StringBuilder response = new StringBuilder();
@ -45,4 +76,159 @@ public class WhatsappqaqcMsgService {
String response =restTemplate.getForObject(SMS_Url,String.class); String response =restTemplate.getForObject(SMS_Url,String.class);
return response; return response;
} }
public Map<String, Object> checkforwhatsappmsg(String complaintNumber, String action) {
Map<String, Object> response = new HashMap<>();
boolean result = false;
if ("COMPLETED".equalsIgnoreCase(action)) {
String sql =
"SELECT call_status " +
"FROM qaqc_upload_data_history " +
"WHERE complaint_number=? " +
"ORDER BY id DESC " +
"LIMIT 20";
List<String> statuses =
jdbcTemplate.queryForList(
sql,
String.class,
complaintNumber);
if (!statuses.isEmpty()
&& "COMPLETED".equalsIgnoreCase(statuses.get(0))) {
int unattendedCount = 0;
for (int i = 1; i < statuses.size(); i++) {
if ("UNATTENDED".equalsIgnoreCase(statuses.get(i))) {
unattendedCount++;
} else {
break;
}
}
result = unattendedCount >= 5;
}
}
else if ("UNATTENDED".equalsIgnoreCase(action)) {
String sql =
"SELECT call_status " +
"FROM qaqc_upload_data_history " +
"WHERE complaint_number=? " +
"ORDER BY id DESC " +
"LIMIT 5";
List<String> statuses =
jdbcTemplate.queryForList(
sql,
String.class,
complaintNumber);
int unattendedCount = 0;
for (String status : statuses) {
if ("UNATTENDED".equalsIgnoreCase(status)) {
unattendedCount++;
} else {
break;
}
}
result = unattendedCount >= 3;
}
response.put("action", action);
response.put("status", result);
return response;
}
public String getclosefromuser(String complaintNumber) {
try {
Map<String, Object> complaintDetails =socialMediaService.getDetailsByComplaintNumber(complaintNumber);
String currentStatus =
String.valueOf(
complaintDetails.getOrDefault(
"currentStatus",
""
)
);
String Erpname="QAops72";
if ("Action Taken - Level 2".equalsIgnoreCase(currentStatus)) {
boolean statusUpdated=qaqcCallsService.ChangeStatusInErp(complaintNumber, "", "COMPLETED",Erpname);
if (statusUpdated)
{
return complaintNumber+ " PGR Complaint closed Successfully";
}
else {
return "Unable to close "+complaintNumber+" PGR Complaint";
}
}
else {
return "Unable to close PGR "+complaintNumber+" Complaint,Because the complaint status is "+currentStatus;
}
} catch (Exception e) {
e.printStackTrace();
return "Error in closing PGR complaint from user "+complaintNumber;
}
} }
public String getreopenfromuser(String complaintNumber) {
try {
Map<String, Object> complaintDetails =socialMediaService.getDetailsByComplaintNumber(complaintNumber);
String currentStatus =
String.valueOf(
complaintDetails.getOrDefault(
"currentStatus",
""
)
);
String Erpname="QAops72";
if ("Action Taken - Level 2".equalsIgnoreCase(currentStatus)) {
boolean statusUpdated=qaqcCallsService.ChangeStatusInErp(complaintNumber, "", "REOPEN",Erpname);
if (statusUpdated)
{
return complaintNumber+ " Complaint Reopened Successfully";
}
else {
return "Unable to Reopen "+complaintNumber+" Complaint";
}
}
else {
return "Unable to Reopen "+complaintNumber+" Complaint,Because the complaint status is "+currentStatus;
}
} catch (Exception e) {
e.printStackTrace();
return "Error in Reopen complaint from user "+complaintNumber;
}
}
}

34
gcc_officer_portal/src/main/resources/templates/modules/callcenterqaqc/agentqaqccalls.html

@ -780,11 +780,19 @@
//console.log("valid phone number"); //console.log("valid phone number");
$('.submitid').prop('disabled', false).text('Submit'); $('.submitid').prop('disabled', false).text('Submit');
// Trigger WhatsApp message functions based on action // Trigger WhatsApp message functions based on action
if (action === "UNATTENDED") {
// if (action === "UNATTENDED") {
//sendWhatsAppMessageUnattended(name, complaintNumber, cellnumber, complaintTypeName); //sendWhatsAppMessageUnattended(name, complaintNumber, cellnumber, complaintTypeName);
} else if (action === "REOPEN") {
// } else if (action === "REOPEN") {
//sendWhatsAppMessageReopened(name, complaintNumber, cellnumber, complaintTypeName); //sendWhatsAppMessageReopened(name, complaintNumber, cellnumber, complaintTypeName);
}
// }
if (action === "UNATTENDED" || action === "COMPLETED" ) {
//checkforUnattendedwhatsappmsg(complaintNumber,action,complaintTypeName,cellnumber,name);
}
} }
else{ else{
console.log("not valid phone number,So message not sent"); console.log("not valid phone number,So message not sent");
@ -1025,6 +1033,26 @@ const detailsHtml = `
return detailsHtml; return detailsHtml;
} }
//checkforwhatsappmsg
function checkforUnattendedwhatsappmsg(complaintNumber,action,complaintTypeName,cellnumber,name) {
$.ajax({
url: '/gcc/api/qaqc/whatsapp/checkforwhatsappmsg',
type: 'GET',
data: { complaintNumber: complaintNumber,action:action,
complaintTypeName:complaintTypeName,mobnumber:cellnumber,
name:pname},
success: function(response) {
//console.log('WhatsApp message sent successfully', response);
console.log(response);
},
error: function(xhr, status, error) {
console.error('Error sending WhatsApp message:', error);
}
});
}
//whatsapp message function for REOPENED //whatsapp message function for REOPENED

Loading…
Cancel
Save