package com.nationalelectric.greenH5;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import com.sgcc.uap.service.validator.ServiceValidatorBaseException;
import com.sgcc.uap.persistence.IHibernateDao;
import com.jysoft.unipush.AliasManage;
import com.nationalelectirc.Constant.Constant;
import com.nationalelectirc.utils.RestResult;
import com.nationalelectric.greenH5.DTO.GreenFoodOrderListDTO;
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
import com.nationalelectric.greenH5.bizc.IGreenFoodOrderDetailBizc;
import com.nationalelectric.greenH5.bizc.IGreenFoodOrderListBizc;
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
import com.nationalelectric.greenH5.enums.OrderStatus;
import org.springframework.web.bind.annotation.RequestMapping;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import com.nationalelectric.greenH5.po.GreenFoodOrderDetail;
import com.nationalelectric.greenH5.po.GreenFoodOrderList;
import com.nationalelectric.greenH5.po.GreenUserInfo;
import com.nationalelectric.greenH5.utils.DateUtil;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 概述:
*
* 功能:
*
* @author bowei
*/
@Controller
@RequestMapping("/greenFoodOrderDetail")
public class GreenFoodOrderDetailController extends GreenBaseController{
/**
* greenfoodorderdetail GreenFoodOrderDetail逻辑构件
*/
@Resource
private IGreenFoodOrderDetailBizc greenfoodorderdetailBizc;
@Resource
private IHibernateDao hibernateDao;
@Resource
private IGreenFoodOrderListBizc greenfoodorderlistBizc;
@Resource
private IGreenOperateLogBizc greenOperateLogBizc;
@Autowired
private BaseServiceImpl baseService;
private ReentrantLock lock = new ReentrantLock();
@Resource
private AliasManageController aliasManageController;
/**用户订单列表*/
@RequestMapping(value="/list", method = RequestMethod.POST)
@ResponseBody
public RestResult list(@RequestBody Object requestBody){
GreenFoodOrderListDTO greenfoodorderlists = new ObjectMapper().convertValue(requestBody, new TypeReference() {});
String userId = greenfoodorderlists.getUserId();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
try {
StringBuffer sb = new StringBuffer();
//分页信息
Integer pageSize = greenfoodorderlists.getPageSize() == null ? 10 : Integer.parseInt(greenfoodorderlists.getPageSize());
Integer pageNum = greenfoodorderlists.getPageNum() == null ? 1 : Integer.parseInt(greenfoodorderlists.getPageNum());
// pageNum = (pageNum-1) * pageSize;
int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize;
pageSize = pageSize*pageNum;
//查询订单
sb.append(" select * from (select rn.*,rownum rw from ("
+ "Select gf.id as \"id\",gf.dining_room_id as \"dining_room_id\",gf.user_id as \"user_id\",gf.order_time as \"order_time\",gf.pay_price as \"pay_price\","
+ "gf.pay_status as \"pay_status\",gf.order_status as \"order_status\",gf.take_status as \"take_status\",gf.buyer_name as \"buyer_name\",gf.buyer_phone as \"buyer_phone\","
+ "gf.creator as \"creator\",gf.modifier as \"modifier\",gf.gmt_created as \"gmt_created\",gf.gmt_modified as \"gmt_modified\",gf.is_deleted as \"is_deleted\","
+ " gf.take_food_time as \"take_food_time\",gf.take_food_place as \"take_food_place\",gf.remarks as \"remarks\""
+ ", ");
sb.append(" (select count(t.id) from t_order_evaluate t where t.type_id = gf.id and t.user_id = gf.user_id) as \"order_no\", ");
sb.append(" (select count(t.id) from t_order_evaluate t where t.type_id = gf.dining_room_id and t.user_id = gf.user_id and t.bak1 = gf.id) as \"dining_no\" ");
sb.append(" from GREEN_FOOD_ORDER_LIST gf where gf.user_id = ? and gf.is_deleted = 'N' order by gf.order_time desc) rn )where rw>? and rw<=? ");
List