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