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> orderList = hibernateDao.queryForListWithSql(sb.toString() ,new Object[]{ greenfoodorderlists.getUserId(), limit, pageSize}); StringBuilder stringBuilder = new StringBuilder(); String stringId = null; if (!orderList.isEmpty()) { stringBuilder.append("("); for (int i = 0;i> detailList =hibernateDao.queryForListWithSql( sql); for (Map map : detailList) { String picString=(String)map.get("goods_icon"); map.put("goods_icon", baseService.getImageBase64(picString)); } //初始化图片缓存 baseService.initImage(); String stringId2 = null; String stringId3 = null; for (int i = 0; i < orderList.size(); i++) { ArrayList arrayList = new ArrayList(); orderList.get(i).put("orderDetails",null); stringId2 = String.valueOf(orderList.get(i).get("id")); for (int j = 0; j < detailList.size(); j++) { stringId3 = String.valueOf(detailList.get(j).get("order_id")); if (stringId2.equals(stringId3)) { arrayList.add(detailList.get(j)); orderList.get(i).put("orderDetails",arrayList); } } } // addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询我的订单列表", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); //orderList.get(i).put("orderDetails",detaiList); return new RestResult(Constant.SUCCESS,"成功",orderList); } // greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询我的订单列表", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); return new RestResult(Constant.SUCCESS,"成功",null); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); // greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_FAIL, "查询我的订单列表", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); return new RestResult(Constant.FAILED,"返回异常"); } } /**用户今日订单受理列表*/ @RequestMapping(value="/toDaylist", method = RequestMethod.POST) @ResponseBody public RestResult toDaylist(@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 { List params = new ArrayList(); //greenfoodorderdetailBizc.updateOrderStatus(userId); StringBuffer sb = new StringBuffer(); Integer pageSize = greenfoodorderlists.getPageSize() == null ? 10 : Integer.parseInt(greenfoodorderlists.getPageSize()); Integer pageNum = greenfoodorderlists.getPageNum() == null ? 1 : Integer.parseInt(greenfoodorderlists.getPageNum()); String queryType = greenfoodorderlists.getQueryType() == null ? "0" :greenfoodorderlists.getQueryType() ; String takeFoodPlace = greenfoodorderlists.getTakeFoodPlace(); String startDate = greenfoodorderlists.getStartDate(); String endDate = greenfoodorderlists.getEndDate(); String takeDay = ""; int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize; pageSize = pageSize*pageNum; sb.append(" select * from (select rn.*,rownum rw from (" + "Select id as \"id\",dining_room_id as \"dining_room_id\",user_id as \"user_id\",order_time as \"order_time\",pay_price as \"pay_price\",pay_status as \"pay_status\",order_status as \"order_status\"," + "take_status as \"take_status\",buyer_name as \"buyer_name\",buyer_phone as \"buyer_phone\",creator as \"creator\",modifier as \"modifier\",gmt_created as \"gmt_created\",gmt_modified as \"gmt_modified\",is_deleted as \"is_deleted\"," + "take_food_time as \"take_food_time\",take_food_place as \"take_food_place\",remarks as \"remarks\"" + " from GREEN_FOOD_ORDER_LIST where ") //.append(" SUBSTRING(order_time,1,10) = DATE_FORMAT(NOW(),'%Y-%m-%d') ") .append(" is_deleted = 'N' and order_status <> '0' "); if("0".equals(queryType)){ int week = DateUtil.getWeek(new Date()); if(week==1){ takeDay = DateUtil.addDays(4, new Date()).toString("yyyy-MM-dd"); }else if(week==2){ takeDay = DateUtil.addDays(3, new Date()).toString("yyyy-MM-dd"); }else if(week==3){ takeDay = DateUtil.addDays(2, new Date()).toString("yyyy-MM-dd"); }else if(week==4){ takeDay = DateUtil.addDays(1, new Date()).toString("yyyy-MM-dd"); }else if(week==5){ takeDay = DateUtil.addDays(0, new Date()).toString("yyyy-MM-dd"); }else if(week==6){ takeDay = DateUtil.addDays(6, new Date()).toString("yyyy-MM-dd"); }else if(week==7){ takeDay = DateUtil.addDays(5, new Date()).toString("yyyy-MM-dd"); } sb.append(" and take_food_time= ? "); params.add(takeDay); } if(!StringUtils.isEmpty(takeFoodPlace)){ sb.append(" and take_food_place= ? "); params.add(takeFoodPlace); } if(!StringUtils.isEmpty(startDate)){ // startDate = startDate+" 00:00:00"; // numSql+=" and DATE_FORMAT(order_time,'%Y-%m-%d %H:%i:%S')>=? "; // params2.add(startDate); sb.append(" and take_food_time>=? "); params.add(startDate); } if(!StringUtils.isEmpty(endDate)){ // endDate = endDate+" 23:59:59"; // numSql+=" and DATE_FORMAT(order_time,'%Y-%m-%d %H:%i:%S')<=? "; // params2.add(endDate); sb.append(" and take_food_time<=? "); params.add(endDate); } sb.append(" order by order_time desc ) rn )where rw>? and rw<=?"); params.add(limit); params.add(pageSize); List> orderList = hibernateDao.queryForListWithSql(sb.toString() ,params.toArray()); StringBuilder stringBuilder = new StringBuilder(); String stringId = null; List> numList =new ArrayList>(); if (!orderList.isEmpty()) { stringBuilder.append("("); for (int i = 0;i> detailList =hibernateDao.queryForListWithSql( sql); for (Map map : detailList) { String picString=(String)map.get("goods_icon"); map.put("goods_icon", baseService.getImageBase64(picString)); } //初始化图片缓存 baseService.initImage(); String stringId2 = null; String stringId3 = null; Map map = new HashMap(); for (int i = 0; i < orderList.size(); i++) { ArrayList arrayList = new ArrayList(); orderList.get(i).put("orderDetails",null); stringId2 = String.valueOf(orderList.get(i).get("id")); for (int j = 0; j < detailList.size(); j++) { stringId3 = String.valueOf(detailList.get(j).get("order_id")); if (stringId2.equals(stringId3)) { arrayList.add(detailList.get(j)); orderList.get(i).put("orderDetails",arrayList); } } } List params2 = new ArrayList(); String numSql = " Select count(id) as \"num\",sum(case when order_status = 0 then 0 else pay_price end) as \"price\" from GREEN_FOOD_ORDER_LIST where " + " is_deleted = 'N' and order_status <> '0' ";//SUBSTRING(order_time,1,10) = DATE_FORMAT(NOW(),'%Y-%m-%d') and if("0".equals(queryType)){ numSql+=" and take_food_time= ? "; params2.add(takeDay); } if(!StringUtils.isEmpty(takeFoodPlace)){ numSql+=" and take_food_place= ? "; params2.add(takeFoodPlace); } if(!StringUtils.isEmpty(startDate)){ // startDate = startDate+" 00:00:00"; // numSql+=" and DATE_FORMAT(order_time,'%Y-%m-%d %H:%i:%S')>=? "; // params2.add(startDate); numSql+=" and take_food_time>=? "; params2.add(startDate); } if(!StringUtils.isEmpty(endDate)){ // endDate = endDate+" 23:59:59"; // numSql+=" and DATE_FORMAT(order_time,'%Y-%m-%d %H:%i:%S')<=? "; // params2.add(endDate); numSql+=" and take_food_time<=? "; params2.add(endDate); } numList = hibernateDao.queryForListWithSql(numSql,params2.toArray()); map.put("orderList", orderList); map.put("numList", numList); map.put("takeDay",takeDay); //addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询我的订单列表", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); //orderList.get(i).put("orderDetails",detaiList); return new RestResult(Constant.SUCCESS,"成功",map); } // greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询我的订单列表", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); Map map = new HashMap(); map.put("orderList", orderList); map.put("numList", numList); map.put("takeDay",takeDay); return new RestResult(Constant.SUCCESS,"成功",map); }catch (Exception e) { e.printStackTrace(); // greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_FAIL, "查询我的订单列表", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); return new RestResult(Constant.FAILED,"返回异常"); } } /**用户今日订单受理列表*/ @RequestMapping(value="/getAllFoodList", method = RequestMethod.POST) @ResponseBody public RestResult getAllFoodList(Map map){ String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } try { List params = new ArrayList(); //greenfoodorderdetailBizc.updateOrderStatus(userId); StringBuffer sb = new StringBuffer(); String queryType = map.get("queryType").toString(); String takeFoodPlace = map.get("takeFoodPlace").toString(); String takeDay = ""; sb.append(" Select id as \"id\" from GREEN_FOOD_ORDER_LIST where is_deleted = 'N' and order_status <> '0' "); if("0".equals(queryType)){ int week = DateUtil.getWeek(new Date()); if(week==1){ takeDay = DateUtil.addDays(4, new Date()).toString("yyyy-MM-dd"); }else if(week==2){ takeDay = DateUtil.addDays(3, new Date()).toString("yyyy-MM-dd"); }else if(week==3){ takeDay = DateUtil.addDays(2, new Date()).toString("yyyy-MM-dd"); }else if(week==4){ takeDay = DateUtil.addDays(1, new Date()).toString("yyyy-MM-dd"); }else if(week==5){ takeDay = DateUtil.addDays(0, new Date()).toString("yyyy-MM-dd"); }else if(week==6){ takeDay = DateUtil.addDays(6, new Date()).toString("yyyy-MM-dd"); }else if(week==7){ takeDay = DateUtil.addDays(5, new Date()).toString("yyyy-MM-dd"); } sb.append(" and take_food_time= ? "); params.add(takeDay); } if(!StringUtils.isEmpty(takeFoodPlace)){ sb.append(" and take_food_place= ? "); params.add(takeFoodPlace); } List> orderList = hibernateDao.queryForListWithSql(sb.toString() ,params.toArray()); StringBuilder stringBuilder = new StringBuilder(); String stringId = null; if (!orderList.isEmpty()) { stringBuilder.append("("); for (int i = 0;i> allFoodList =hibernateDao.queryForListWithSql( sql); //addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询我的订单列表", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); //orderList.get(i).put("orderDetails",detaiList); return new RestResult(Constant.SUCCESS,"成功",allFoodList); } // greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询我的订单列表", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); return new RestResult(Constant.SUCCESS,"成功",new ArrayList>()); }catch (Exception e) { e.printStackTrace(); // greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_FAIL, "查询我的订单列表", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); return new RestResult(Constant.FAILED,"返回异常"); } } /**用户订单详情*/ @RequestMapping(value="/detail", method = RequestMethod.POST) @ResponseBody public RestResult detail(@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 { // //对所有属性进行后端校验 // validateService.validateWithException(GreenFoodOrderList.class, changedProperies); List> list = hibernateDao.queryForListWithSql("Select l.pay_price,l.order_status,l.dining_room_id,l.order_time,l.buyer_name,l.buyer_phone from GREEN_FOOD_ORDER_LIST l left join GREEN_FOOD_ORDER_DETAIL a on l.id = a.order_id left join GREEN_FOODS_KINDS b on a.goods_id = b.id where a.order_id = ?" ,new Object[]{ greenfoodorderlists.getOrderId()}); List detaiList = hibernateDao.queryForListWithSql("Select a.goods_id,a.order_id,b.price,b.food_name as 'goods_name',a.goods_num,b.picture as 'goods_icon' from GREEN_FOOD_ORDER_LIST l left join GREEN_FOOD_ORDER_DETAIL a on l.id = a.order_id left join GREEN_FOODS_KINDS b on a.goods_id = b.id where a.order_id = ?" ,new Object[]{ greenfoodorderlists.getOrderId()}); for (Object map : detaiList) { Map maps= (Map)map; String picString=(String)maps.get("goods_icon"); maps.put("goods_icon",baseService.getImageBase64(picString)); } if (list.isEmpty()) { return new RestResult(Constant.FAILED,"返回异常"); } String orderStatus = list.get(0).get("order_status"); String payPrice = String.valueOf(list.get(0).get("pay_price")); String diningRoomId = String.valueOf(list.get(0).get("dining_room_id")); String orderTime = list.get(0).get("order_time"); Map map = new HashMap(); map.put("diningRoomId",diningRoomId ); map.put("payPrice", payPrice); map.put("orderStatus", orderStatus); map.put("detaiList", detaiList); map.put("orderTime", orderTime); map.put("realName", list.get(0).get("buyer_name")); map.put("mobilePhone", list.get(0).get("buyer_phone")); if (detaiList == null) { return new RestResult(Constant.FAILED,"返回异常"); } //greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询我的订单详情", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); return new RestResult(Constant.SUCCESS,"成功",map); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); //greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_FAIL, "查询我的订单详情", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); return new RestResult(Constant.FAILED,"返回异常"); } } /**取消订单*/ @SuppressWarnings({ "unchecked", "rawtypes" }) @RequestMapping(value="/cancelOrder", method = RequestMethod.POST) @Transactional(rollbackFor=Exception.class) @ResponseBody public RestResult cancelOrder(@RequestBody Object requestBody){ GreenFoodOrderListDTO greenfoodorderlists = new ObjectMapper().convertValue(requestBody, new TypeReference() {}); try { //加锁 防止出错 lock.lock(); String userId = greenfoodorderlists.getUserId(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } // //对所有属性进行后端校验 // validateService.validateWithException(GreenFoodOrderList.class, changedProperies); GreenFoodOrderList greenFoodOrderList = greenfoodorderlistBizc.get(greenfoodorderlists.getOrderId()); // //对订餐时间做校验 // List queryForListWithSql = hibernateDao.queryForListWithSql("Select order_time from GREEN_DINING_ROOM where id = ? ",new Object[]{greenFoodOrderList.getDiningRoomId()},new BeanPropertyRowMapper(GreenDiningRoom.class)); // String cancelOrder = queryForListWithSql.get(0).getOrderTime(); // String[] split = cancelOrder.split("-"); // String format = new SimpleDateFormat("HH:mm").format(new Date()); // long startDate = Long.valueOf(split[0].replaceAll("[-\\s:]","")); // long endDate = Long.valueOf(split[1].replaceAll("[-\\s:]","")); // long formatDate1 = Long.valueOf(format.replaceAll("[-\\s:]","")); // if (formatDate1 < startDate || formatDate1 > endDate) { // return new RestResult(Constant.FAILED,"不在订餐时间内,不能取消订单!"); // } if (greenFoodOrderList != null) { greenFoodOrderList.setOrderStatus(OrderStatus.ORDER_STATUS_CANCEL.getName()); greenfoodorderlistBizc.update(greenFoodOrderList, greenFoodOrderList.getId()); } //回库存 List list = hibernateDao.queryForListWithSql("Select * from GREEN_FOOD_ORDER_DETAIL where order_id = ? ",new Object[]{greenfoodorderlists.getOrderId()},new BeanPropertyRowMapper(GreenFoodOrderDetail.class)); Long diningRoomId = greenFoodOrderList.getDiningRoomId(); List> menuList = null; if (!list.isEmpty()) { for (GreenFoodOrderDetail greenFoodOrderDetail : list) { String menuSql = "SELECT a.id as \"id\",a.location_id as \"location_id\",a.kinds_id as \"kinds_id\",a.menu_id as \"menu_id\",a.food_name as \"food_name\",a.no_buy_num as \"no_buy_num\"," + "a.sell_number as \"sell_number\",a.quota as \"quota\",a.upload_date as \"upload_date\",a.status as \"status\",a.creator as \"creator\",a.modifier as \"modifier\"," + "a.gmt_created as \"gmt_created\",a.gmt_modified as \"gmt_modified\",a.is_deleted as \"is_deleted\"" + " FROM GREEN_FOODS_VARIETY a left join GREEN_FOODS_KINDS b on a.kinds_id = b.id where a.is_deleted = 'N' and a.location_id = ? and kinds_id = ? and a.upload_date = to_char(sysdate,'yyyy-mm-dd')"; menuList = hibernateDao.queryForListWithSql(menuSql,new Object[]{diningRoomId, Long.valueOf(greenFoodOrderDetail.getGoodsId())}); String noBuyNum = String.valueOf(menuList.get(0).get("no_buy_num")); BigDecimal noBuyNumDecimal = new BigDecimal(noBuyNum); String goodsNum = greenFoodOrderDetail.getGoodsNum(); BigDecimal goodsNumDecimal = new BigDecimal(goodsNum); noBuyNumDecimal = noBuyNumDecimal.add(goodsNumDecimal); hibernateDao.executeSqlUpdate("update GREEN_FOODS_VARIETY set no_buy_num = ? where is_deleted = 'N' and id = ?", new Object[]{ noBuyNumDecimal, menuList.get(0).get("id")}); // if (diningRoomId == 1) { // menuList = hibernateDao.queryForListWithSql("SELECT a.* FROM GREEN_FOODS_VARIETY a left join GREEN_FOODS_KINDS b on a.kinds_id = b.id where a.is_deleted = 'N' and a.location_id = 1 and kinds_id = ? and a.upload_date = (SELECT upload_date FROM GREEN_FOODS_VARIETY WHERE upload_date <= DATE_FORMAT(now(), '%Y-%m-%d') and location_id = 1 and is_deleted = 'N' ORDER BY upload_date DESC LIMIT 1 ) ",new Object[]{Long.valueOf(greenFoodOrderDetail.getGoodsId())}); // String noBuyNum = String.valueOf(menuList.get(0).get("no_buy_num")); // BigDecimal noBuyNumDecimal = new BigDecimal(noBuyNum); // String goodsNum = greenFoodOrderDetail.getGoodsNum(); // BigDecimal goodsNumDecimal = new BigDecimal(goodsNum); // noBuyNumDecimal = noBuyNumDecimal.add(goodsNumDecimal); // hibernateDao.updateWithSql("update GREEN_FOODS_VARIETY set no_buy_num = ? where is_deleted = 'N' and id = ?",new Object[]{ noBuyNumDecimal,menuList.get(0).get("id")}); // } // if (diningRoomId == 2) { // menuList = hibernateDao.queryForListWithSql("SELECT a.* FROM GREEN_FOODS_VARIETY a left join GREEN_FOODS_KINDS b on a.kinds_id = b.id where a.is_deleted = 'N' and a.location_id = 2 and kinds_id = ? and a.upload_date = (SELECT upload_date FROM GREEN_FOODS_VARIETY WHERE upload_date <= DATE_FORMAT(now(), '%Y-%m-%d') and location_id = 2 and is_deleted = 'N' ORDER BY upload_date DESC LIMIT 1 ) ",new Object[]{Long.valueOf(greenFoodOrderDetail.getGoodsId())}); // String noBuyNum = String.valueOf(menuList.get(0).get("no_buy_num")); // BigDecimal noBuyNumDecimal = new BigDecimal(noBuyNum); // String goodsNum = greenFoodOrderDetail.getGoodsNum(); // BigDecimal goodsNumDecimal = new BigDecimal(goodsNum); // noBuyNumDecimal = noBuyNumDecimal.add(goodsNumDecimal); // hibernateDao.updateWithSql("update GREEN_FOODS_VARIETY set no_buy_num = ? where is_deleted = 'N' and id = ?",new Object[]{ noBuyNumDecimal,menuList.get(0).get("id")}); // } } } String title = "外卖预订"; String text = "您好,您已成功取消订单。"; String url = "/pages/take-out2/take-out3?currentTabIndex=1"; aliasManageController.pushToSingle(greenFoodOrderList.getUserId(), title, text, url); String role = "14002";//外卖受理权限 String getUserSql = "SELECT u.id,u.ISC_ID FROM green_user_info u " + " LEFT JOIN green_user_role_rel r ON u.id = r.user_id " + " LEFT JOIN green_role_permission p ON p.role_id = r.role_id " + " WHERE p.permission_id = ? "; List> userList2 = hibernateDao.queryForListWithSql(getUserSql, new Object[]{role}); title = "外卖受理"; text = "您好,有订单被取消,请注意查看。"; url = "/pages/today-order/today-order"; aliasManageController.pushToSingleBatch(userList2, title, text, url); //greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.CANCEL, Constant.OPERATE_SUCCESS, "取消我的订单", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); return new RestResult(Constant.SUCCESS,"成功"); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); //greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.CANCEL, Constant.OPERATE_FAIL, "取消我的订单", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); //设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return new RestResult(Constant.FAILED,"返回异常"); }finally { if (lock.isLocked()) { lock.unlock(); } } } /**食堂师傅-订单列表*/ @RequestMapping(value="/listByLocation", method = RequestMethod.POST) @ResponseBody public RestResult listBylocation(@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 { // //对所有属性进行后端校验 // validateService.validateWithException(GreenFoodOrderList.class, changedProperies); GreenUserInfo userInfo = getUserInfo(String.valueOf(greenfoodorderlists.getUserId())); String ownerLocation = userInfo.getOwnerLocation(); List> orderList = hibernateDao.queryForListWithSql("Select * from GREEN_FOOD_ORDER_LIST where dining_room_id = ? and order_status = '1' and STR_TO_DATE(order_time, '%Y-%m-%d') = date_format(now(),'%y-%m-%d') order by order_time desc" ,new Object[]{ ownerLocation}); StringBuilder stringBuilder = new StringBuilder(); String stringId = null; if (!orderList.isEmpty()) { stringBuilder.append("("); for (int i = 0;i> detailList =hibernateDao.queryForListWithSql(sql ); for (Map map : detailList) { String pictureString=(String)map.get("goods_icon"); map.put("goods_icon", baseService.getImageBase64(pictureString)); } String stringId2 = null; String stringId3 = null; for (int i = 0; i < orderList.size(); i++) { ArrayList arrayList = new ArrayList(); stringId2 = String.valueOf(orderList.get(i).get("id")); for (int j = 0; j < detailList.size(); j++) { stringId3 = String.valueOf(detailList.get(j).get("order_id")); if (stringId2.equals(stringId3)) { arrayList.add(detailList.get(j)); orderList.get(i).put("orderDetails",arrayList); if ("1".equals(ownerLocation) ) { orderList.get(i).put("diningRoomName", Constant.DINING_HQ); } if ("2".equals(ownerLocation)) { orderList.get(i).put("diningRoomName", Constant.DINING_YZ); } } } } } //greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询今日订单列表", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); return new RestResult(Constant.SUCCESS,"成功",orderList); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_FAIL, "查询今日订单列表", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); return new RestResult(Constant.FAILED,"返回异常"); } } /**食堂师傅-订单概览*/ @RequestMapping(value="/sellView", method = RequestMethod.POST) @ResponseBody public RestResult sellView(@RequestBody Object requestBody){ GreenFoodOrderListDTO greenfoodorderlists = new ObjectMapper().convertValue(requestBody, new TypeReference() {}); try { String userId = greenfoodorderlists.getUserId(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } GreenUserInfo userInfo = getUserInfo(String.valueOf(greenfoodorderlists.getUserId())); String ownerLocation = userInfo.getOwnerLocation(); List> orderList = hibernateDao.queryForListWithSql("Select COUNT(*) as 'orderCount',IF(sum(pay_price) is null,0,sum(pay_price)) AS 'sellPrice' from GREEN_FOOD_ORDER_LIST where dining_room_id = ? and order_status = '1' and STR_TO_DATE(order_time, '%Y-%m-%d') = date_format(now(),'%y-%m-%d') order by order_time desc" ,new Object[]{ ownerLocation}); Map map = new HashMap(); map.put("orderCount", orderList.get(0).get("orderCount")); map.put("sellPrice", orderList.get(0).get("sellPrice")); //greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询今日订单概览", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); return new RestResult(Constant.SUCCESS,"成功",map); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_FAIL, "查询今日订单概览", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); return new RestResult(Constant.FAILED,"返回异常"); } } /**食堂师傅-热卖菜品*/ @RequestMapping(value="/sellHot", method = RequestMethod.POST) @ResponseBody public RestResult sellHot(@RequestBody Object requestBody){ GreenFoodOrderListDTO greenfoodorderlists = new ObjectMapper().convertValue(requestBody, new TypeReference() {}); try { String userId = greenfoodorderlists.getUserId(); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } GreenUserInfo userInfo = getUserInfo(String.valueOf(greenfoodorderlists.getUserId())); String ownerLocation = userInfo.getOwnerLocation(); // List> orderList = hibernateDao.queryForListWithSql("Select k.food_name,any_value(i.image_content) AS 'image_content',IF(sum(d.goods_num) is null,0,sum(d.goods_num)) AS 'sellNum' from GREEN_FOOD_ORDER_LIST l" // +" LEFT JOIN GREEN_FOOD_ORDER_DETAIL d ON l.id = d.order_id LEFT JOIN GREEN_FOODS_KINDS k ON k.id = d.goods_id LEFT JOIN GREEN_IMAGE_INFO i on i.id = k.picture where l.dining_room_id = ? and l.order_status = '1' and STR_TO_DATE(l.order_time, '%Y-%m-%d') = date_format(now(),'%y-%m-%d') AND l.is_deleted = 'N' GROUP BY k.food_name order by sellNum desc" ,new Object[]{ ownerLocation}); List> orderList = hibernateDao.queryForListWithSql("Select k.food_name,k.picture AS 'image_content',IF(sum(d.goods_num) is null,0,sum(d.goods_num)) AS 'sellNum' from GREEN_FOOD_ORDER_LIST l" +" LEFT JOIN GREEN_FOOD_ORDER_DETAIL d ON l.id = d.order_id LEFT JOIN GREEN_FOODS_KINDS k ON k.id = d.goods_id where l.dining_room_id = ? and l.order_status = '1' and STR_TO_DATE(l.order_time, '%Y-%m-%d') = date_format(now(),'%y-%m-%d') AND l.is_deleted = 'N' GROUP BY k.food_name,k.picture order by sellNum desc" ,new Object[]{ ownerLocation}); for (Map map : orderList) { String picString=String.valueOf(map.get("image_content")); map.put("image_content", baseService.getImageBase64(picString)); } //greenOperateLogBizc.addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_SUCCESS, "查询今日订单热销菜品", Constant.LOG_OPERATE, greenfoodorderlists.getUserId()); return new RestResult(Constant.SUCCESS,"成功",orderList); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); addLog(Constant.ORDER_LIST, Constant.QUERY, Constant.OPERATE_FAIL, "查询今日订单热销菜品", Constant.LOG_ERROR, greenfoodorderlists.getUserId()); return new RestResult(Constant.FAILED,"返回异常"); } } }