package controllers;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import play.data.validation.Required;
import play.mvc.Before;
import vo.YudingVO;
import com.withiter.common.Constants.YudingStatus;
import com.withiter.models.merchant.Yuding;
public class YudingController extends BaseController {
private static Logger logger = LoggerFactory.getLogger(controllers.YudingController.class);
/**
* Interception any caller on this controller, will first invoke this method
*/
@Before
static void checkAuthentification() {
Map headers = request.headers;
Iterator it = headers.keySet().iterator();
while (it.hasNext()) {
String key = (String) it.next();
logger.debug(key + ", " + headers.get(key));
}
if (headers.containsKey("user-agent")) {
if (!(request.headers.get("user-agent").values.contains("QuhaoAndroid") || request.headers.get("user-agent").values.contains("QuhaoIOS"))) {
renderJSON("请使用Android/iOS APP访问。");
}
} else {
renderJSON("请使用Android/iOS APP访问。");
}
}
/**
* 添加预定
* @param mid 商家id
* @param renshu 人数
* @param shijian 预定时间
* @param baojian 是否要包间
* @param xing 贵姓
* @param mobile 手机号码
*/
public static void add(@Required String mid, @Required String renshu, @Required String shijian, @Required String baojian, @Required String xing, @Required String mobile){
String aid = params.get("aid");
String baojianOptional = params.get("baojianOptional");
if(validation.hasErrors()){
renderJSON(validation.errors());
}
Yuding y = new Yuding();
y.mid = mid;
y.aid = aid;
y.renshu = Integer.parseInt(renshu);
y.shijian = new Date(Long.parseLong(shijian));
y.baojian = Boolean.parseBoolean(baojian);
if(y.baojian){
y.baojianOptional = Boolean.parseBoolean(baojianOptional);
}
y.xing = xing;
y.mobile = mobile;
y.status = YudingStatus.created;
y.save();
renderJSON(true);
}
/**
* 用户取消预定
* @param yid
*/
public static void cancel(@Required String yid){
if(validation.hasErrors()){
renderJSON(validation.errors());
}
Yuding y = Yuding.findById(new ObjectId(yid));
if(y != null){
y.status = YudingStatus.canceled;
y.save();
}
renderJSON(true);
}
/**
* 查看
* @param aid
* @param mid
*/
public static void my(String aid, @Required String mobile, @Required String mid){
if(validation.hasErrors()){
renderJSON(validation.errors());
}
Yuding y = Yuding.findByMidAndAid(mid, aid, mobile);
if(y != null){
renderJSON(YudingVO.build(y));
} else {
renderJSON("");
}
}
}