package com.lyms.platform.biz.service;
import com.lyms.platform.biz.dal.PatientCheckTicketDao;
import com.lyms.platform.common.dao.operator.MongoQuery;
import com.lyms.platform.pojo.PatientCheckTicket;
import com.lyms.platform.query.PatientCheckTicketQuery;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* Created by riecard on 2016/12/28.
*/
@Service
public class PatientCheckTicketService {
@Autowired
private PatientCheckTicketDao patientCheckTicketDao;
public PatientCheckTicket addTicket(PatientCheckTicket obj) {
return patientCheckTicketDao.addTicket(obj);
}
public void updateTicket(PatientCheckTicket obj) {
patientCheckTicketDao.updateTicket(obj);;
}
public String updateTicket(String id, Integer status, String cousumeHospitalId) {
PatientCheckTicket ticket = getTicket(id);
if (ticket == null) {
return "当前免费券不存在";
} else if (ticket.getStatus() == 2) {
return "当前免费券已被使用";
}else if (ticket.getStatus() == 3) {
return "当前免费券已经失效";
}
ticket.setStatus(status);
ticket.setConsumeHospitalId(cousumeHospitalId);
ticket.setConsumeDate(new Date());
updateTicket(ticket);
return null;
}
public void findAndModify(PatientCheckTicketQuery query,PatientCheckTicket ticket){
patientCheckTicketDao.findAndModify(query.convertToQuery(),ticket);
}
public PatientCheckTicket getTicket(String id) {
return patientCheckTicketDao.getTicket(id);
}
public int queryTicketCount(PatientCheckTicketQuery query) {
return patientCheckTicketDao.queryTicketCount(query.convertToQuery());
}
public List<PatientCheckTicket> queryTicket(PatientCheckTicketQuery ticketQuery) {
MongoQuery query = ticketQuery.convertToQuery();
if (StringUtils.isNotEmpty(ticketQuery.getNeed())) {
ticketQuery.mysqlBuild(patientCheckTicketDao.queryTicketCount(query));
query.start(ticketQuery.getOffset()).end(ticketQuery.getLimit());
}
if(!StringUtils.isEmpty(ticketQuery.getSort())){
return patientCheckTicketDao.queryTicket(query.addOrder(Sort.Direction.ASC, ticketQuery.getSort()));
}
return patientCheckTicketDao.queryTicket(query.addOrder(Sort.Direction.DESC, "id"));
}
public List<PatientCheckTicket> queryTicket(String patientId, String hospitalId,String consumeHospitalId,Integer status) {
PatientCheckTicketQuery query = new PatientCheckTicketQuery();
query.setNeed(null);
query.setPatientId(patientId);
query.setHospitalId(hospitalId);
query.setConsumeHospitalId(consumeHospitalId);
query.setStatus(status);
return patientCheckTicketDao.queryTicket(query.convertToQuery().addOrder(Sort.Direction.DESC, "id"));
}
}