From 4a7367a869ef12375ea6678ca44e102b8919c624 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 12 一月 2022 16:53:42 +0800 Subject: [PATCH] 极光推送完善(推送通知与透传消息) --- service-push/src/main/java/com/ks/push/service/remote/BDeviceTokenServiceImpl.java | 67 +++++++++++++++++++++++++++++++-- 1 files changed, 62 insertions(+), 5 deletions(-) diff --git a/service-push/src/main/java/com/ks/push/service/remote/BDeviceTokenServiceImpl.java b/service-push/src/main/java/com/ks/push/service/remote/BDeviceTokenServiceImpl.java index 455e2bd..e6f4e8c 100644 --- a/service-push/src/main/java/com/ks/push/service/remote/BDeviceTokenServiceImpl.java +++ b/service-push/src/main/java/com/ks/push/service/remote/BDeviceTokenServiceImpl.java @@ -1,29 +1,86 @@ package com.ks.push.service.remote; +import com.ks.lib.common.exception.ParamsException; +import com.ks.push.dao.BPushDeviceTokenDao; import com.ks.push.exception.BPushDeviceTokenException; import com.ks.push.pojo.DO.BPushDeviceToken; import com.ks.push.service.BDeviceTokenService; import org.apache.dubbo.config.annotation.Service; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.yeshi.utils.StringUtil; + +import javax.annotation.Resource; +import java.util.Date; @Service(version = "1.0") public class BDeviceTokenServiceImpl implements BDeviceTokenService { - @Override - public void save(BPushDeviceToken deviceToken) throws BPushDeviceTokenException { + @Resource + private BPushDeviceTokenDao bPushDeviceTokenDao; + + @Override + public void save(BPushDeviceToken deviceToken) throws ParamsException, BPushDeviceTokenException { + if (deviceToken == null) { + throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "瀵硅薄涓虹┖"); + } + if (StringUtil.isNullOrEmpty(deviceToken.getAppCode())) { + throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "appcode涓虹┖"); + } + if (StringUtil.isNullOrEmpty(deviceToken.getDeviceId())) { + throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "璁惧ID涓虹┖"); + } + if (StringUtil.isNullOrEmpty(deviceToken.getToken())) { + throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "token涓虹┖"); + } + String id = BPushDeviceToken.createId(deviceToken.getAppCode(), deviceToken.getDeviceId()); + if (bPushDeviceTokenDao.get(id) == null) { + //鏂板 + deviceToken.setId(id); + if (deviceToken.getCreateTime() == null) { + deviceToken.setCreateTime(new Date()); + } + deviceToken.setUpdateTime(new Date()); + bPushDeviceTokenDao.save(deviceToken); + } else { + //鏇存柊 + deviceToken.setId(id); + deviceToken.setUpdateTime(new Date()); + bPushDeviceTokenDao.updateSelective(deviceToken); + } } @Override public void deleteByDeviceId(String appCode, String deviceId) { - + String id = BPushDeviceToken.createId(appCode, deviceId); + bPushDeviceTokenDao.delete(id); } @Override public void unBindUid(String appCode, String deviceId) { - + String id = BPushDeviceToken.createId(appCode, deviceId); + if (bPushDeviceTokenDao.get(id) == null) { + return; + } + Update update = new Update(); + update.set("uid", null); + update.set("updateTime", new Date()); + Query query = new Query(); + query.addCriteria(Criteria.where("_id").is(id)); + bPushDeviceTokenDao.update(query, update); } @Override public void bindUid(String appCode, String deviceId, String uid) { - + String id = BPushDeviceToken.createId(appCode, deviceId); + if (bPushDeviceTokenDao.get(id) == null) { + return; + } + Update update = new Update(); + update.set("uid", uid); + Query query = new Query(); + query.addCriteria(Criteria.where("_id").is(id)); + bPushDeviceTokenDao.update(query, update); } } -- Gitblit v1.8.0