增加联系人操作,优化无状态获取绑定的信息
This commit is contained in:
@@ -12,4 +12,10 @@ public class PushIdConfig {
|
|||||||
public static final String CLEAR_APP = "12";
|
public static final String CLEAR_APP = "12";
|
||||||
/*卸载应用*/
|
/*卸载应用*/
|
||||||
public static final String UNINSTALL_APP = "13";
|
public static final String UNINSTALL_APP = "13";
|
||||||
|
|
||||||
|
public static final String CONTACT_CALL = "14";
|
||||||
|
public static final String CONTACT_AUDIO = "15";
|
||||||
|
public static final String CONTACT_VIDEO = "16";
|
||||||
|
public static final String CONTACT_DELETE = "17";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@@ -104,4 +105,67 @@ public class ManageSnController {
|
|||||||
|
|
||||||
return Result.ok().data(map);
|
return Result.ok().data(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取平板sn绑定状态
|
||||||
|
* 标准的通过平板获取接口,需要 Device-Token Device-ID Device-Sig
|
||||||
|
*
|
||||||
|
* @param deviceToken
|
||||||
|
* @param deviceId
|
||||||
|
* @param deviceSig
|
||||||
|
* @param sn
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
// TODO: 2025/8/22 Device_Token在docker无法被接收到,使用Device-Token代替
|
||||||
|
@GetMapping("/get_bind_statu")
|
||||||
|
public Result getBindStatus(
|
||||||
|
// @RequestHeader("Device-Token") String deviceToken,
|
||||||
|
@RequestHeader("Device-ID") String deviceId,
|
||||||
|
// @RequestHeader("Device-Sig") String deviceSig,
|
||||||
|
@RequestParam(value = "sn") String sn,
|
||||||
|
@RequestParam(value = "code1") String sigCode,
|
||||||
|
@RequestParam(value = "code2") String sha256
|
||||||
|
) {
|
||||||
|
if (TextUtils.isEmpty(sigCode) || TextUtils.isEmpty(sha256)) {
|
||||||
|
return Result.error().message("sigCode or sha256 is empty");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!"tongtongstudio".equals(sigCode)) {
|
||||||
|
return Result.error().message("sigCode not match");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!"5304915c4bb7baca28776231993996fde1baffcbbe6500fb0fc7f2d3a2888cb7".equalsIgnoreCase(sha256)) {
|
||||||
|
return Result.error().message("sha256 not match");
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (!jwtUtil.validateDeviceToken(deviceToken, deviceId, sn)) {
|
||||||
|
// return Result.error().message("Invalid token");
|
||||||
|
// }
|
||||||
|
|
||||||
|
DeviceInfo deviceInfo = deviceSnService.findBySn(sn);
|
||||||
|
if (deviceInfo == null) {
|
||||||
|
return Result.notFound().message("sn not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (!deviceInfo.getBindSig().equals(deviceSig)) {
|
||||||
|
// return Result.error().message("device sig not match");
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (TextUtils.isEmpty(deviceInfo.getBindPhone())) {
|
||||||
|
return Result.error().message("sn not bind");
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("device_token", deviceInfo.getToken());
|
||||||
|
map.put("device_sig", deviceInfo.getBindSig());
|
||||||
|
map.put("bind_status", 1);
|
||||||
|
map.put("device_alias", deviceInfo.getDeviceAlias());
|
||||||
|
map.put("tablet_avatar", deviceInfo.getTabletAvatar());
|
||||||
|
map.put("bind_phone", deviceInfo.getBindPhone());
|
||||||
|
map.put("user_id", deviceInfo.getUserId());
|
||||||
|
map.put("add_time", deviceInfo.getAddTime());
|
||||||
|
map.put("bind_time", deviceInfo.getBindTime());
|
||||||
|
|
||||||
|
return Result.ok().data(map).message("sn bind");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,49 +97,4 @@ public class BindSnController {
|
|||||||
return Result.ok().data(map).message("bind success");
|
return Result.ok().data(map).message("bind success");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取平板sn绑定状态
|
|
||||||
* 标准的通过平板获取接口,需要 Device-Token Device-ID Device-Sig
|
|
||||||
* @param deviceToken
|
|
||||||
* @param deviceId
|
|
||||||
* @param deviceSig
|
|
||||||
* @param sn
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
// TODO: 2025/8/22 Device_Token在docker无法被接收到,使用Device-Token代替
|
|
||||||
@GetMapping("/get_bind_statu")
|
|
||||||
public Result getBindStatus(
|
|
||||||
// @RequestHeader("Device-Token") String deviceToken, @RequestHeader("Device-ID") String deviceId,
|
|
||||||
// @RequestHeader("Device-Sig") String deviceSig,
|
|
||||||
@RequestParam(value = "sn") String sn) {
|
|
||||||
|
|
||||||
// if (!jwtUtil.validateDeviceToken(deviceToken, deviceId, sn)) {
|
|
||||||
// return Result.error().message("Invalid token");
|
|
||||||
// }
|
|
||||||
|
|
||||||
DeviceInfo deviceInfo = deviceSnService.findBySn(sn);
|
|
||||||
if (deviceInfo == null) {
|
|
||||||
return Result.notFound().message("sn not found");
|
|
||||||
}
|
|
||||||
|
|
||||||
// if (!deviceInfo.getBindSig().equals(deviceSig)) {
|
|
||||||
// return Result.error().message("device sig not match");
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (TextUtils.isEmpty(deviceInfo.getBindPhone())) {
|
|
||||||
return Result.error().message("sn not bind");
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
|
||||||
map.put("bind_status", 1);
|
|
||||||
map.put("device_alias", deviceInfo.getDeviceAlias());
|
|
||||||
map.put("tablet_avatar", deviceInfo.getTabletAvatar());
|
|
||||||
map.put("bind_phone", deviceInfo.getBindPhone());
|
|
||||||
map.put("user_id", deviceInfo.getUserId());
|
|
||||||
map.put("add_time", deviceInfo.getAddTime());
|
|
||||||
map.put("bind_time", deviceInfo.getBindTime());
|
|
||||||
|
|
||||||
return Result.ok().data(map).message("sn bind");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,4 +102,55 @@ public class ContactController {
|
|||||||
}
|
}
|
||||||
return Result.ok().data(contacts);
|
return Result.ok().data(contacts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/control_contact")
|
||||||
|
public Result controlContact(
|
||||||
|
@RequestParam(value = "user_id") String userId,
|
||||||
|
@RequestParam(value = "sn") String sn,
|
||||||
|
@RequestParam(value = "contact_id") String contactId,
|
||||||
|
@RequestParam(value = "action") String action
|
||||||
|
) throws ExecutionException, InterruptedException {
|
||||||
|
|
||||||
|
User user = userService.getUserByUserId(userId);
|
||||||
|
if (user == null) {
|
||||||
|
return Result.error().message("user not found");
|
||||||
|
}
|
||||||
|
DeviceInfo deviceInfo = deviceSnService.findBySn(sn);
|
||||||
|
if (deviceInfo == null) {
|
||||||
|
return Result.error().message("device not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!deviceInfo.getUserId().equals(userId)) {
|
||||||
|
return Result.error().message("device not belong to user");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Contact> contacts = contactService.findAllBySn(sn);
|
||||||
|
if (contacts == null || contacts.isEmpty()) {
|
||||||
|
return Result.notFound().message("contacts not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
Contact contact = contactService.findById(contactId);
|
||||||
|
if (contact == null) {
|
||||||
|
return Result.error().message("contact not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (action) {
|
||||||
|
case "call":
|
||||||
|
DevicePushUtils.aliyunAsyncPush(PushIdConfig.CONTACT_CALL, sn, GsonUtils.toJSONString(contact));
|
||||||
|
break;
|
||||||
|
case "audio":
|
||||||
|
DevicePushUtils.aliyunAsyncPush(PushIdConfig.CONTACT_AUDIO, sn, GsonUtils.toJSONString(contact));
|
||||||
|
break;
|
||||||
|
case "video":
|
||||||
|
DevicePushUtils.aliyunAsyncPush(PushIdConfig.CONTACT_VIDEO, sn, GsonUtils.toJSONString(contact));
|
||||||
|
break;
|
||||||
|
case "delete":
|
||||||
|
DevicePushUtils.aliyunAsyncPush(PushIdConfig.CONTACT_DELETE, sn, GsonUtils.toJSONString(contact));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return Result.error().message("action not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ public class ContactService {
|
|||||||
return contactRepository.findAllBySn(sn);
|
return contactRepository.findAllBySn(sn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Contact findById(String id) {
|
||||||
|
return contactRepository.findById(Long.valueOf(id)).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
public void save(Contact contact) {
|
public void save(Contact contact) {
|
||||||
contactRepository.save(contact);
|
contactRepository.save(contact);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user