package com.yeshi.fanli.service.impl.push; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.mybatis.push.DeviceTokenHWMapper; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.push.DeviceTokenHW; import com.yeshi.fanli.service.inter.push.DeviceTokenHWService; import com.yeshi.fanli.util.StringUtil; @Service public class DeviceTokenHWServiceImpl implements DeviceTokenHWService { @Resource private DeviceTokenHWMapper deviceTokenHWMapper; @Override public List getDeviceTokenList(int page, int pageSize) { return deviceTokenHWMapper.selectList((page - 1) * pageSize, pageSize); } @Override public Long getDeviceTokenCount() { Long count = deviceTokenHWMapper.selectCount(); return count == null ? 0 : count; } @Override public void addDeviceToken(String token, String device, Long uid) { if (StringUtil.isNullOrEmpty(device)) return; // if (uid != null && uid == 0) uid = null; List list = deviceTokenHWMapper.selectByDevice(device); if (list == null || list.size() == 0) { DeviceTokenHW deviceTokenHW = new DeviceTokenHW(); deviceTokenHW.setDevice(device); deviceTokenHW.setDeviceToken(token); deviceTokenHW.setUpdateTime(new Date()); if (uid != null) deviceTokenHW.setUser(new UserInfo(uid)); deviceTokenHWMapper.insertSelective(deviceTokenHW); } else { for (DeviceTokenHW deviceTokenHW : list) { DeviceTokenHW update = new DeviceTokenHW(); update.setId(deviceTokenHW.getId()); if (!StringUtil.isNullOrEmpty(token)) update.setDeviceToken(token); update.setUpdateTime(new Date()); if (uid != null) update.setUser(new UserInfo(uid)); deviceTokenHWMapper.updateByPrimaryKeySelective(update); } } } @Override public List getDeviceTokenByUid(Long uid) { if (uid == null) return null; return deviceTokenHWMapper.selectByUid(uid); } @Override public void unBindDeviceToken(String device) { List list = deviceTokenHWMapper.selectByDevice(device); if (list == null || list.size() == 0) return; for (DeviceTokenHW deviceTokenHW : list) { deviceTokenHW.setUser(null); deviceTokenHW.setUpdateTime(new Date()); deviceTokenHWMapper.updateByPrimaryKey(deviceTokenHW); } } }