/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.plugin.notes.manager.web;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.ewcms.plugin.notes.manager.NotesFacable;
import com.ewcms.plugin.notes.model.Memoranda;
import com.ewcms.plugin.notes.util.Lunar;
import com.ewcms.web.CrudBaseAction;
import com.ewcms.web.util.JSONUtil;
import com.ewcms.web.util.Struts2Util;
/**
*
* @author wu_zhijun
*/
public class MemorandaAction extends CrudBaseAction<Memoranda, Long> {
private static final long serialVersionUID = 7925268963440319845L;
private SimpleDateFormat warnDateFormat = new SimpleDateFormat("HH:mm:00");
@Autowired
private NotesFacable notesFac;
private Integer year;
private Integer month;
private Integer day;
private Integer currentYear = Calendar.getInstance().get(Calendar.YEAR);
private Integer currentMonth = Calendar.getInstance().get(Calendar.MONTH) + 1;
private String result;
private String toDayLunar;
private String warnTime;
public Memoranda getMemorandaVo() {
return super.getVo();
}
public void setMemorandaVo(Memoranda memorandaVo) {
super.setVo(memorandaVo);
}
public Integer getYear() {
return year;
}
public void setYear(Integer year) {
this.year = year;
}
public Integer getMonth() {
return month;
}
public void setMonth(Integer month) {
this.month = month;
}
public Integer getCurrentYear() {
return currentYear;
}
public Integer getCurrentMonth() {
return currentMonth;
}
public Integer getDay() {
return day;
}
public void setDay(Integer day) {
this.day = day;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getToDayLunar() {
return toDayLunar;
}
public void setToDayLunar(String toDayLunar) {
this.toDayLunar = toDayLunar;
}
public String getWarnTime() {
return warnTime;
}
public void setWarnTime(String warnTime) {
this.warnTime = warnTime;
}
public void changeDate() {
Struts2Util.renderJson(JSONUtil.toJSON(notesFac.getInitCalendarToHtml(getYear(), getMonth()).toString()));
}
public void toDay() {
Struts2Util.renderJson(JSONUtil.toJSON(notesFac.getInitCalendarToHtml(getCurrentYear(), getCurrentMonth()).toString()));
}
@Override
protected Memoranda createEmptyVo() {
return new Memoranda();
}
public List<Long> getSelections() {
return super.getOperatorPK();
}
public void setSelections(List<Long> selections) {
super.setOperatorPK(selections);
}
@Override
protected void deleteOperator(Long pk) {
notesFac.delMemoranda(pk);
}
@Override
protected Memoranda getOperator(Long pk) {
Memoranda memoranda = notesFac.findMemoranda(pk);
if (memoranda.getWarn() && memoranda.getWarnTime() != null){
setWarnTime(warnDateFormat.format(memoranda.getWarnTime()));
}
return memoranda;
}
@Override
protected Long getPK(Memoranda vo) {
return vo.getId();
}
@Override
protected Long saveOperator(Memoranda vo, boolean isUpdate) {
if (vo.getWarn() && getWarnTime() != null){
try {
vo.setWarnTime(warnDateFormat.parse(getWarnTime()));
} catch (ParseException e) {
vo.setWarnTime(null);
}
}
if (isUpdate) {
return notesFac.updMemoranda(vo);
} else {
return notesFac.addMemoranda(vo, getYear(), getMonth(), getDay());
}
}
@Override
public String save() throws Exception {
try{
Long memoId = null;
if (getPK(vo) == null) {
operatorState = OperatorState.ADD;
memoId = saveOperator(vo, false);
} else {
operatorState = OperatorState.UPDATE;
memoId = saveOperator(vo, true);
}
if (memoId != null){
Struts2Util.renderJson(JSONUtil.toJSON("true"));
}
}catch(Exception e){
Struts2Util.renderJson(JSONUtil.toJSON("false"));
}
return NONE;
}
public String index() throws Exception {
Calendar calendar = Calendar.getInstance();
int currentDay = calendar.get(Calendar.DATE);
setToDayLunar(Lunar.getLunar("" + getCurrentYear(), "" + getCurrentMonth(), "" + currentDay));
if (getYear() == null || getMonth() == null) {
setYear(currentYear);
setMonth(currentMonth);
}
setResult(notesFac.getInitCalendarToHtml(getYear(), getMonth()).toString());
return SUCCESS;
}
private Long memoId;
private Integer dropDay;
public Long getMemoId() {
return memoId;
}
public void setMemoId(Long memoId) {
this.memoId = memoId;
}
public Integer getDropDay() {
return dropDay;
}
public void setDropDay(Integer dropDay) {
this.dropDay = dropDay;
}
public void drop(){
if (getMemoId() != null && getDropDay() != null){
notesFac.updMemoranda(getMemoId(), getYear(), getMonth(), getDropDay());
Struts2Util.renderJson(JSONUtil.toJSON("true"));
}
}
}