package cn.newgxu.bbs.service.impl.annotate; import java.util.Calendar; import java.util.Date; import java.util.List; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import cn.newgxu.bbs.common.exception.BBSException; import cn.newgxu.bbs.common.exception.BBSExceptionMessage; import cn.newgxu.bbs.domain.calendar.FixHoliday; import cn.newgxu.bbs.domain.calendar.MonthUnit; import cn.newgxu.bbs.domain.calendar.UserHoliday; import cn.newgxu.bbs.domain.calendar.YWSCalendar; import cn.newgxu.bbs.domain.user.User; import cn.newgxu.bbs.service.YCalendarService; import cn.newgxu.bbs.web.model.ycalendar.EditCalendarModel; import cn.newgxu.bbs.web.model.ycalendar.IndexCalendarModel; import cn.newgxu.bbs.web.model.ycalendar.ListHolidayModel; import cn.newgxu.jpamodel.ObjectNotFoundException; /** * @path valhalla_hx----cn.newgxu.bbs.service.impl.YCalendarServiceImpl.java * * @author 集成显卡 * @since 4.5.0 * @version $Revision 1.1$ * @date 2011-9-18 * @describe * YCalendarService的实现类 */ @Service("yCalendarService") public class YCalendarServiceImpl implements YCalendarService{ public Integer getMonthStep(Integer ...monthStep){ if(monthStep.length>1) return monthStep[0]>0?monthStep[0]:YWSCalendar.MONTH_STEP; return YWSCalendar.MONTH_STEP; } public void getMonthUnit(IndexCalendarModel model) { if(model.getYear()<=0) model.setYear(Calendar.getInstance().get(Calendar.YEAR)); if(model.getMonth()<1||model.getMonth()>12) model.setMonth(Calendar.getInstance().get(Calendar.MONTH)+1); if(model.getDay()==0) model.setDay(Calendar.getInstance().get(Calendar.DAY_OF_MONTH)); model.setMonthUnit(new MonthUnit(model.getYear(),model.getMonth())); } /** * 检查节日是否是合格 * @param day */ public UserHoliday checkUserHoliday(UserHoliday day) throws BBSException{ if(day==null) throw new BBSException("对象为空!不能创建相应的UserHoliday,请联系技术人员"); if(day.getName()==null||day.getName().trim().length()==0) throw new BBSException("节日名称必须填写"); if(day.getDate()==null||day.getDate().trim().length()==0) throw new BBSException("节日日期必须填写,且一定要是一个有效的日期"); day.setDate(YWSCalendar.resetDateInfo(day.getDate())); if(day.getOvert()<0) day.setOvert(0); return day; } public List<FixHoliday> getComingFixHoliday(Integer... monthStep) { return FixHoliday.getComingHoliday(this.getMonthStep(monthStep)); } public List<UserHoliday> getNearbyUserHoliday(Integer... monthStep) { return UserHoliday.getNearbyHoliday(this.getMonthStep(monthStep)); } @Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class) public void createUserHolidayDo(EditCalendarModel model) throws BBSException{ this.checkUserHoliday(model.getHoliday()); model.getHoliday().setJoinTime(new Date()); try{ model.getHoliday().setUser(User.get(70797)); }catch(ObjectNotFoundException e){ e.printStackTrace(); } //day.getUser().addMoney(0-1000); model.getHoliday().save(); } public void deleteUserHoliday(EditCalendarModel model)throws BBSException { } public void editUserHoliday(EditCalendarModel model) throws BBSException{ } public void editUserHolidayDo(EditCalendarModel model) throws BBSException{ } public String viewHoliday(ListHolidayModel model) throws BBSException { try{ if(model.getUhid()!=0){ model.setUserHoliday(UserHoliday.getById(model.getUhid())); model.setTitle("查看用户节日--"+model.getUserHoliday().getName()); return "userH"; }else if(model.getFhid()!=0){ model.setFixHoliday(FixHoliday.getById(model.getFhid())); model.setTitle("查看固定节日--"+model.getFixHoliday().getName()); return "fixH"; } throw new BBSException(BBSExceptionMessage.PARAMETER_ERROR); }catch(ObjectNotFoundException e){ e.printStackTrace(); throw new BBSException(BBSExceptionMessage.PARAMETER_ERROR); } } public void viewMyHoliday(ListHolidayModel model) throws BBSException { model.setTitle("用户节日列表"); model.getPagination().setPageSize(UserHoliday.getUserHolidaySize(model.getUserId())); model.setUserHolidays(UserHoliday.getUserHoliday(model.getUserId(), model.getPagination())); } }