package com.nationalelectric.greenH5;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jysoft.unipush.AliasManage;
import com.nationalelectirc.Constant.Constant;
import com.nationalelectirc.utils.RestResult;
import com.nationalelectric.greenH5.DTO.GreenFoodOrderDetailDTO;
import com.nationalelectric.greenH5.DTO.GreenFoodOrderListDTO;
import com.nationalelectric.greenH5.bizc.IGreenFoodOrderDetailBizc;
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
import com.nationalelectric.greenH5.enums.OrderStatus;
import com.nationalelectric.greenH5.enums.PayStatus;
import com.nationalelectric.greenH5.enums.TakeStatus;
import com.nationalelectric.greenH5.po.GreenDiningRoom;
import com.nationalelectric.greenH5.po.GreenFoodOrderDetail;
import com.nationalelectric.greenH5.po.GreenFoodOrderList;
import com.nationalelectric.greenH5.po.GreenUserInfo;
import com.nationalelectric.greenH5.utils.DateTime;
import com.nationalelectric.greenH5.utils.DateUtil;
import com.sgcc.uap.persistence.IHibernateDao;
import com.sgcc.uap.service.validator.ServiceValidatorBaseException;
/**
* 概述:
*
* 功能:
*
* @author chenweikang
*/
@Controller
@RequestMapping("/greenFoodOrderList")
public class GreenFoodOrderListController extends GreenBaseController {
@Resource
private IHibernateDao hibernateDao;
/**
* greenfoodorderdetail GreenFoodOrderDetail逻辑构件
*/
@Resource
private IGreenFoodOrderDetailBizc greenfoodorderdetailBizc;
@Resource
private IGreenOperateLogBizc greenOperateLogBizc;
@Resource
private AliasManageController aliasManageController;
private ReentrantLock lock = new ReentrantLock();
/**提交订单*/
@SuppressWarnings("deprecation")
@RequestMapping(value="/submitOrder", method = RequestMethod.POST)
@Transactional(rollbackFor=Exception.class)
@ResponseBody
public RestResult submit(@RequestBody GreenFoodOrderListDTO greenfoodorderlists){
try {
lock.lock();
String userId = greenfoodorderlists.getUserId();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
int week = DateUtil.getWeek(new Date());
if(week==4||week==6||week==7){
return new RestResult(Constant.FAILED,"今日不可预定!");
}
//一次查询 详情中的菜品
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("(");
//String stringId = null;
for (GreenFoodOrderDetailDTO orderDetail : greenfoodorderlists.getOrderDetails()) {
String goodsId = String.valueOf(orderDetail.getGoodsId());
stringBuilder.append(goodsId + ",");
}
String substring = null;
if (stringBuilder != null) {
substring = stringBuilder.substring(0, stringBuilder.length()-1) +")";
}
String sql = "select * from GREEN_FOODS_KINDS where id in " + substring;
List