From 6b2670dfa68af9ce2e36a5f9580125f4fc6da570 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 26 六月 2021 18:06:10 +0800
Subject: [PATCH] 推送服务完善

---
 service-push/src/main/java/com/ks/push/service/remote/BDeviceTokenServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 53 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..30e4fef 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,77 @@
 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) {
+            //鏂板
+            if (deviceToken.getCreateTime() == null) {
+                deviceToken.setCreateTime(new Date());
+            }
+            deviceToken.setUpdateTime(new Date());
+            bPushDeviceTokenDao.save(deviceToken);
+        } else {
+            //鏇存柊
+            deviceToken.setId(id);
+            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);
+        Update update = new Update();
+        update.set("uid", null);
+        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);
+        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