| | |
| | | package com.yeshi.location.app.service.impl.sos; |
| | | |
| | | import java.lang.Exception; |
| | | import javax.annotation.Resource; |
| | | import org.springframework.stereotype.Service; |
| | | import java.util.Date; |
| | | import org.yeshi.utils.bean.BeanUtil; |
| | | import java.util.List; |
| | | import com.yeshi.location.app.dao.sos.SOSTargetInfoDao; |
| | | import com.yeshi.location.app.dao.sos.SOSTargetInfoDao.DaoQuery; |
| | | import com.yeshi.location.app.entity.sos.SOSRecordList; |
| | | import com.yeshi.location.app.entity.sos.SOSTargetInfo; |
| | | import com.yeshi.location.app.service.inter.sos.SOSRecordListService; |
| | | import com.yeshi.location.app.service.inter.sos.SOSTargetInfoService; |
| | | import com.yeshi.location.app.service.query.sos.SOSTargetInfoQuery; |
| | | import com.yeshi.location.app.dao.sos.SOSTargetInfoDao.DaoQuery; |
| | | |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Service; |
| | | import org.yeshi.utils.bean.BeanUtil; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | public class SOSTargetInfoServiceImpl implements SOSTargetInfoService{ |
| | | public class SOSTargetInfoServiceImpl implements SOSTargetInfoService { |
| | | |
| | | @Resource |
| | | private SOSTargetInfoDao sOSTargetInfoDao; |
| | | @Resource |
| | | private SOSTargetInfoDao sOSTargetInfoDao; |
| | | |
| | | @Override |
| | | public List<SOSTargetInfo> list(SOSTargetInfoQuery sOSTargetInfoQuery, int page, int pageSize) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | try { |
| | | BeanUtil.copyProperties(sOSTargetInfoQuery, daoQuery); |
| | | } catch (IllegalAccessException e) { |
| | | e.printStackTrace(); |
| | | @Resource |
| | | private SOSRecordListService sosRecordListService; |
| | | |
| | | @Override |
| | | public List<SOSTargetInfo> list(SOSTargetInfoQuery sOSTargetInfoQuery, int page, int pageSize) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | try { |
| | | BeanUtil.copyProperties(sOSTargetInfoQuery, daoQuery); |
| | | } catch (IllegalAccessException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | daoQuery.start = (page - 1) * pageSize; |
| | | daoQuery.count = pageSize; |
| | | return sOSTargetInfoDao.list(daoQuery); |
| | | } |
| | | daoQuery.start=(page-1)*pageSize; |
| | | daoQuery.count=pageSize; |
| | | return sOSTargetInfoDao.list(daoQuery); |
| | | } |
| | | |
| | | @Override |
| | | public long count(SOSTargetInfoQuery sOSTargetInfoQuery) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | try { |
| | | BeanUtil.copyProperties(sOSTargetInfoQuery, daoQuery); |
| | | } catch (IllegalAccessException e) { |
| | | e.printStackTrace(); |
| | | @Override |
| | | public long count(SOSTargetInfoQuery sOSTargetInfoQuery) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | try { |
| | | BeanUtil.copyProperties(sOSTargetInfoQuery, daoQuery); |
| | | } catch (IllegalAccessException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return sOSTargetInfoDao.count(daoQuery); |
| | | } |
| | | return sOSTargetInfoDao.count(daoQuery); |
| | | } |
| | | |
| | | @Override |
| | | public SOSTargetInfo get(String id) { |
| | | Query query=new Query(); |
| | | query.addCriteria(Criteria.where("_id").is(id)); |
| | | return sOSTargetInfoDao.findOne(query); |
| | | } |
| | | @Override |
| | | public SOSTargetInfo get(String id) { |
| | | Query query = new Query(); |
| | | query.addCriteria(Criteria.where("_id").is(id)); |
| | | return sOSTargetInfoDao.findOne(query); |
| | | } |
| | | |
| | | @Override |
| | | public void add(SOSTargetInfo sOSTargetInfo) throws Exception { |
| | | //查询主键ID是否存在 |
| | | if(sOSTargetInfoDao.get(sOSTargetInfo.getId())!=null){ |
| | | throw new Exception("已存在"); |
| | | } |
| | | @Override |
| | | public void add(SOSTargetInfo sOSTargetInfo) throws Exception { |
| | | |
| | | if(sOSTargetInfo.getCreateTime()==null){ |
| | | sOSTargetInfo.setCreateTime(new Date()); |
| | | } |
| | | //保存 |
| | | sOSTargetInfoDao.save(sOSTargetInfo); |
| | | } |
| | | if (sOSTargetInfo == null || sOSTargetInfo.getTargetUid() == null || sOSTargetInfo.getSosId() == null) { |
| | | throw new Exception("参数不完整"); |
| | | } |
| | | |
| | | @Override |
| | | public void update(SOSTargetInfo sOSTargetInfo) { |
| | | if(sOSTargetInfo.getUpdateTime()==null){ |
| | | sOSTargetInfo.setUpdateTime(new Date()); |
| | | } |
| | | //更新 |
| | | sOSTargetInfoDao.updateSelective(sOSTargetInfo); |
| | | } |
| | | if (sOSTargetInfo.getId() == null) { |
| | | sOSTargetInfo.setId(SOSTargetInfo.createId(sOSTargetInfo.getSosId(), sOSTargetInfo.getTargetUid())); |
| | | } |
| | | //查询主键ID是否存在 |
| | | if (sOSTargetInfoDao.get(sOSTargetInfo.getId()) != null) { |
| | | throw new Exception("已存在"); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(List<String> idList) { |
| | | for (String id : idList){ |
| | | sOSTargetInfoDao.delete(id); |
| | | } |
| | | } |
| | | if (sOSTargetInfo.getStatus() == null) { |
| | | sOSTargetInfo.setStatus(SOSTargetInfo.STATUS_UNREAD); |
| | | sOSTargetInfo.setStatusDesc("未读"); |
| | | } |
| | | |
| | | if (sOSTargetInfo.getCreateTime() == null) { |
| | | sOSTargetInfo.setCreateTime(new Date()); |
| | | } |
| | | |
| | | |
| | | //保存 |
| | | sOSTargetInfoDao.save(sOSTargetInfo); |
| | | |
| | | SOSRecordList recordList = new SOSRecordList(); |
| | | recordList.setSourceId(sOSTargetInfo.getId()); |
| | | recordList.setType(SOSRecordList.SOSRecordType.passive); |
| | | recordList.setUid(sOSTargetInfo.getTargetUid()); |
| | | sosRecordListService.add(recordList); |
| | | } |
| | | |
| | | @Override |
| | | public void update(SOSTargetInfo sOSTargetInfo) { |
| | | if (sOSTargetInfo.getUpdateTime() == null) { |
| | | sOSTargetInfo.setUpdateTime(new Date()); |
| | | } |
| | | //更新 |
| | | sOSTargetInfoDao.updateSelective(sOSTargetInfo); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(List<String> idList) { |
| | | for (String id : idList) { |
| | | sOSTargetInfoDao.delete(id); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<SOSTargetInfo> listByIds(List<String> ids) { |
| | | if(ids==null||ids.size()==0) { |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | List<Criteria> orList = new ArrayList<>(); |
| | | for (String id : ids) { |
| | | orList.add(Criteria.where("_id").is(id)); |
| | | } |
| | | Criteria[] ors = new Criteria[orList.size()]; |
| | | orList.toArray(ors); |
| | | |
| | | Query query = new Query(); |
| | | query.addCriteria(new Criteria().orOperator(ors)); |
| | | List<SOSTargetInfo> list = sOSTargetInfoDao.findList(query); |
| | | Comparator<SOSTargetInfo> cm = (SOSTargetInfo o1, SOSTargetInfo o2) -> { |
| | | return ids.indexOf(o1.getId()) - ids.indexOf(o2.getId()); |
| | | }; |
| | | Collections.sort(list, cm); |
| | | return list; |
| | | } |
| | | |
| | | |
| | | } |