Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -2,6 +2,7 @@ package it.integry.firebase.dto;
|
||||
|
||||
import com.google.firebase.messaging.FcmOptions;
|
||||
import com.google.firebase.messaging.Message;
|
||||
import it.integry.ems_model.entity.WtbUserDeviceToken;
|
||||
import it.integry.firebase.dto.android.AndroidConfigDTO;
|
||||
import it.integry.firebase.dto.apns.ApnsConfigDTO;
|
||||
import it.integry.firebase.dto.webpush.WebpushConfigDTO;
|
||||
@@ -19,6 +20,7 @@ public class MessageDTO {
|
||||
private String condition;
|
||||
private String analyticsLabel;
|
||||
private String userName;
|
||||
private WtbUserDeviceToken.AppName appName;
|
||||
|
||||
public Message.Builder toBuilder() {
|
||||
Message.Builder builder = Message.builder();
|
||||
@@ -151,4 +153,13 @@ public class MessageDTO {
|
||||
this.userName = userName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public WtbUserDeviceToken.AppName getAppName() {
|
||||
return appName;
|
||||
}
|
||||
|
||||
public MessageDTO setAppName(WtbUserDeviceToken.AppName appName) {
|
||||
this.appName = appName;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.entity.WtbDeviceTokenTopic;
|
||||
import it.integry.ems_model.entity.WtbUserDeviceToken;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.firebase.enums.SubscribeOperation;
|
||||
@@ -124,29 +125,19 @@ public class DeviceTokenService {
|
||||
}
|
||||
|
||||
public List<WtbUserDeviceToken> getUserDevices(String userName) throws Exception {
|
||||
String sql = "SELECT * from wtb_user_device_tokens where user_name = " + UtilityDB.valueToString(userName);
|
||||
return getUserDevices(userName, null);
|
||||
}
|
||||
|
||||
Connection connection = multiDBTransactionManager.getPrimaryConnection();
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
List<WtbUserDeviceToken> devices = new ArrayList<>();
|
||||
public List<WtbUserDeviceToken> getUserDevices(String userName, WtbUserDeviceToken.AppName appName) throws Exception {
|
||||
String sql = Query.format(
|
||||
"SELECT *\n" +
|
||||
"FROM wtb_user_device_tokens\n" +
|
||||
"WHERE user_name = %s\n" +
|
||||
" AND (%s IS NULL OR app_name = %s)",
|
||||
userName, appName.getValue(), appName.getValue()
|
||||
);
|
||||
|
||||
while (rs.next()) {
|
||||
WtbUserDeviceToken device = new WtbUserDeviceToken();
|
||||
|
||||
device.setDeviceToken(rs.getString("device_token"));
|
||||
device.setAppName(WtbUserDeviceToken.AppName.from(rs.getInt("app_name")));
|
||||
device.setId(rs.getLong("id"));
|
||||
device.setPlatform(rs.getString("platform"));
|
||||
device.setUserName(rs.getString("user_name"));
|
||||
|
||||
devices.add(device);
|
||||
}
|
||||
|
||||
rs.close();
|
||||
ps.close();
|
||||
|
||||
return devices;
|
||||
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, WtbUserDeviceToken.class);
|
||||
}
|
||||
|
||||
public List<String> getUserAssociatedTopics(String userName) throws Exception {
|
||||
|
||||
@@ -547,7 +547,7 @@ public class NotificationService {
|
||||
throw new Exception("Username nullo in sendNotificationToUserDevices.");
|
||||
}
|
||||
|
||||
for (WtbUserDeviceToken device : deviceTokenService.getUserDevices(messageDTO.getUserName())) {
|
||||
for (WtbUserDeviceToken device : deviceTokenService.getUserDevices(messageDTO.getUserName(), messageDTO.getAppName())) {
|
||||
try {
|
||||
Message message = messageDTO.toBuilder()
|
||||
.setToken(device.getDeviceToken())
|
||||
|
||||
@@ -14,6 +14,7 @@ import it.integry.ems.user.service.UserService;
|
||||
import it.integry.ems.utility.service.UtilityService;
|
||||
import it.integry.ems_model.entity.JtbRLavr;
|
||||
import it.integry.ems_model.entity.JtbRLavt;
|
||||
import it.integry.ems_model.entity.WtbUserDeviceToken;
|
||||
import it.integry.ems_model.exception.DataConverterNotFoundException;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
@@ -236,6 +237,7 @@ public class UserWorkHoursService {
|
||||
|
||||
notificationService.sendNotificationToUserDevices(new MessageDTO()
|
||||
.setUserName(user.getUsername())
|
||||
.setAppName(WtbUserDeviceToken.AppName.WINCLOCK)
|
||||
.setNotification(new NotificationDTO()
|
||||
.setTitle("Brav*")
|
||||
.setBody("Hai completato le tue 8 ore di lavoro giornaliere 😁🙌"))
|
||||
|
||||
Reference in New Issue
Block a user