| | |
| | | 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); |
| | | } |
| | | } |