package cn.com.goldenwater.dcproj.service.impl.travel; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspTravelPlanDao; import cn.com.goldenwater.dcproj.dao.BisInspTravelPlanDayDao; import cn.com.goldenwater.dcproj.dto.BisInspTravelPlanDayDto; import cn.com.goldenwater.dcproj.model.BisInspTravelPlan; import cn.com.goldenwater.dcproj.model.BisInspTravelPlanDay; import cn.com.goldenwater.dcproj.param.BisInspTravelPlanDayParam; import cn.com.goldenwater.dcproj.service.BisInspTravelPlanDayService; import cn.com.goldenwater.id.util.UuidUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Calendar; import java.util.Date; import java.util.List; /** * @author lhc * @date 2019-9-17 */ @Service @Transactional(rollbackFor = Exception.class) public class BisInspTravelPlanDayServiceImpl extends AbstractCrudService implements BisInspTravelPlanDayService { @Autowired private BisInspTravelPlanDayDao bisInspTravelPlanDayDao; @Autowired private BisInspTravelPlanDao bisInspTravelPlanDao; public BisInspTravelPlanDayServiceImpl(BisInspTravelPlanDayDao bisInspTravelPlanDayDao) { super(bisInspTravelPlanDayDao); this.bisInspTravelPlanDayDao = bisInspTravelPlanDayDao; } @Override public int insert(BisInspTravelPlanDay bisInspTravelPlanDay) { int effRow = 0; bisInspTravelPlanDay.setId(UuidUtil.uuid()); bisInspTravelPlanDay.setUptm(new Date()); bisInspTravelPlanDay.setIntm(new Date()); bisInspTravelPlanDay.setDataStat("0"); Integer ordr = bisInspTravelPlanDayDao.getMaxOne(bisInspTravelPlanDay.getTravelPlanId()); if (null == ordr) { ordr = 1; } else { ordr = ordr + 1; } bisInspTravelPlanDay.setOrdr(ordr); effRow = bisInspTravelPlanDayDao.insert(bisInspTravelPlanDay); //更新行程天数 if (null != bisInspTravelPlanDay.getTravelPlanId()) { updateTravelPlanDayCount(bisInspTravelPlanDay.getTravelPlanId()); } return effRow; } @Override public int update(BisInspTravelPlanDay bisInspTravelPlanDay) { int effRow = 0; bisInspTravelPlanDay.setUptm(new Date()); effRow = bisInspTravelPlanDayDao.update(bisInspTravelPlanDay); //更新行程天数 if (null != bisInspTravelPlanDay.getTravelPlanId()) { updateTravelPlanDayCount(bisInspTravelPlanDay.getTravelPlanId()); } return effRow; } @Override public int delete(String id) { int effRow = 0; BisInspTravelPlanDay bisInspTravelPlanDay = bisInspTravelPlanDayDao.get(id); effRow = bisInspTravelPlanDayDao.delete(id); //更新行程天数 if (null != bisInspTravelPlanDay.getTravelPlanId()) { updateTravelPlanDayCount(bisInspTravelPlanDay.getTravelPlanId()); } return effRow; } @Override public List getTravelPlanDay(String travelId) { return bisInspTravelPlanDayDao.getTravelPlanDay(travelId); } /** * 根据行程ID获取行程天数 * * @param travelId * @return */ public Integer updateTravelPlanDayCount(String travelId) { Integer dayCount = getTravelPlanDayCount(travelId); BisInspTravelPlan bisInspTravelPlan = bisInspTravelPlanDao.get(travelId); bisInspTravelPlan.setDayCount(dayCount); Date stTm = bisInspTravelPlan.getSttm(); Calendar c = Calendar.getInstance(); c.setTime(stTm); c.add(Calendar.DAY_OF_MONTH, dayCount);// 今天+1天 bisInspTravelPlan.setEntm(c.getTime()); bisInspTravelPlanDao.update(bisInspTravelPlan); return bisInspTravelPlanDayDao.getTravelPlanDayCount(travelId); } public Integer getTravelPlanDayCount(String travelId) { return bisInspTravelPlanDayDao.getTravelPlanDay(travelId) == null ? 1 : bisInspTravelPlanDayDao.getTravelPlanDay(travelId).size(); } }