package com.nationalelectric.greenH5; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.nationalelectirc.Constant.Constant; import com.nationalelectirc.utils.RestResult; import com.nationalelectric.greenH5.DTO.GreenMealTicketApplyDTO; import com.nationalelectric.greenH5.DTO.UserDTO; import com.nationalelectric.greenH5.bizc.BaseServiceImpl; import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc; import com.sgcc.uap.service.validator.ServiceValidatorBaseException; import com.sgcc.uap.persistence.IHibernateDao; import org.springframework.web.bind.annotation.RequestMapping; import java.text.SimpleDateFormat; import java.util.*; import com.nationalelectric.greenH5.po.GreenUserInfo; import com.nationalelectric.greenH5.utils.DateTimeHelper; import javax.annotation.Resource; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; /** * 概述
*

* 功能
* * @author BOWEI */ @Controller @RequestMapping("/greenWeekMenu") public class GreenWeekMenuController extends GreenBaseController { @Resource private IHibernateDao hibernateDao; @Resource private IGreenOperateLogBizc greenOperateLogBizc; @Autowired private BaseServiceImpl baseService; // /** 外卖点餐列表 */ // @RequestMapping(value = "/list", method = RequestMethod.POST) // @ResponseBody // public RestResult list(Map map) { // String userId = map.get("userId").toString(); // String date = map.get("date").toString(); // String locationId = map.get("locationId").toString(); // String menuType = map.get("menuType").toString(); // GreenUserInfo info = getUserInfo(userId); // if (info == null) { // return new RestResult(Constant.FAILED, "非法用户"); // } // try { // List> menuList1 = new // ArrayList>(); // if("0".equals(menuType)){ // String sql = "select * from green_week_menu m where m.sell_date = ? AND // m.menu_type = ? AND m.location_id = ? "; // menuList1 = hibernateDao.queryForListWithSql(sql,new // Object[]{date,menuType,locationId}); // }else{ // String sql = "SELECT k.* FROM green_week_variety v" // + " LEFT JOIN green_week_menu m ON v.menu_id = m.id" // + " LEFT JOIN green_week_kinds k ON v.kinds_id = k.id" // + " WHERE m.sell_date = ? AND m.menu_type = ? AND m.location_id = ? and // v.is_deleted='N' and m.is_deleted='N' and k.is_deleted='N'"; // menuList1 = hibernateDao.queryForListWithSql(sql,new // Object[]{date,menuType,locationId}); // for (Map map1 : menuList1) { // String pictureString = map1.get("picture"); // map1.put("picture", baseService.getImageBase64ForWeek(pictureString)); // } // } // return new RestResult(Constant.SUCCESS, "成功", menuList1); // } catch (ServiceValidatorBaseException e) { // throw e; // } catch (Exception e) { // e.printStackTrace(); // // greenOperateLogBizc.addLog(Constant.TAKE_OUT_FOOD, // // Constant.QUERY, Constant.OPERATE_FAIL, "查询外卖预定列表", // // Constant.LOG_ERROR, userDTO.getUserId()); // return new RestResult(Constant.FAILED, "返回异常"); // } // } @RequestMapping(value = "/list", method = RequestMethod.POST) @ResponseBody public RestResult list(Map map) { String userId = map.get("userId").toString(); // String date = map.get("date").toString(); GreenUserInfo info = getUserInfo(userId); if (info == null) { return new RestResult(Constant.FAILED, "非法用户"); } try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String today = sdf.format(new Date()); List> menuList1 = new ArrayList>(); String sql = "select * from green_week_carte where is_deleted='N' and start_date<=? and end_date>=?"; menuList1 = hibernateDao.queryForListWithSql(sql, new Object[] { today, today }); for (Map map1 : menuList1) { String pictureString = map1.get("lunch"); map1.put("lunch", baseService.getImageBase64ForWeek(pictureString)); String pictureString1 = map1.get("breakfast"); map1.put("breakfast", baseService.getImageBase64ForWeek(pictureString1)); } return new RestResult(Constant.SUCCESS, "成功", menuList1); } catch (ServiceValidatorBaseException e) { throw e; } catch (Exception e) { e.printStackTrace(); // greenOperateLogBizc.addLog(Constant.TAKE_OUT_FOOD, // Constant.QUERY, Constant.OPERATE_FAIL, "查询外卖预定列表", // Constant.LOG_ERROR, userDTO.getUserId()); return new RestResult(Constant.FAILED, "返回异常"); } } /** 菜品管理-编辑 */ @RequestMapping(value = "/getWeeKCookBook", method = RequestMethod.POST) @ResponseBody public RestResult getWeeKCookBook(Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if (info == null) { return new RestResult(Constant.FAILED, "非法用户"); } ArrayList paramList = new ArrayList<>(); paramList.add(DateTimeHelper.getWeek()); paramList.add(DateTimeHelper.getNowYear()); paramList.add(String.valueOf(map.get("foodType"))); StringBuilder sql = new StringBuilder(); Map data = new HashMap<>(); sql.append( "SELECT gwc.ID,gwc.WEEKS,gwc.YEAR,gwc.DAY,gwc.TIME,gwc.FOOD_ID,gwc.FOOD_TYPE,gwk.FOOD_NAME,gwk.PICTURE,gwk.NUTRITIVE_VALUE FROM GREEN_WEEK_COOKBOOK gwc LEFT JOIN GREEN_WEEK_KINDS gwk ON gwk.ID = gwc.FOOD_ID WHERE gwc.WEEKS =? AND gwc.YEAR = ? AND gwc.FOOD_TYPE = ? "); List> labelList = hibernateDao.queryForListWithSql(sql.toString(), paramList.toArray()); data.put("one", getMap("1", labelList)); data.put("two", getMap("2", labelList)); data.put("three", getMap("3", labelList)); data.put("four", getMap("4", labelList)); data.put("five", getMap("5", labelList)); return new RestResult(Constant.SUCCESS, "获取成功", data); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "获取失败"); } } /** 菜品管理-编辑 */ @RequestMapping(value = "/getWeeKCookBookForDay", method = RequestMethod.POST) @ResponseBody public RestResult getWeeKCookBookForDay(Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if (info == null) { return new RestResult(Constant.FAILED, "非法用户"); } ArrayList paramList = new ArrayList<>(); paramList.add(DateTimeHelper.getWeek()); paramList.add(DateTimeHelper.getNowYear()); paramList.add(String.valueOf(map.get("foodType"))); paramList.add(String.valueOf(map.get("day"))); StringBuilder sql = new StringBuilder(); sql.append( "SELECT * FROM ( SELECT ROWNUM rn,A.* FROM ( SELECT gwk.FOOD_NAME,gwk.NUTRITIVE_VALUE,gwk.PICTURE FROM GREEN_WEEK_COOKBOOK gwc LEFT JOIN GREEN_WEEK_KINDS gwk ON gwk.ID = gwc.FOOD_ID WHERE gwc.WEEKS =? AND gwc.YEAR = ? AND gwc.FOOD_TYPE = ? AND gwc.DAY =? "); sql.append(" ORDER BY gwc.TIME DESC) A ) WHERE rn > ? AND rn <= ?"); int pageSize = map.get("pageSize") == null ? 10 : Integer.valueOf(String.valueOf(map.get("pageSize"))); int pageNum = map.get("pageNum") == null ? 1 : Integer.valueOf(String.valueOf(map.get("pageNum"))); int page = (pageNum - 1) * pageSize; int limit = pageNum * pageSize; paramList.add(page); paramList.add(limit); List> labelList = hibernateDao.queryForListWithSql(sql.toString(), paramList.toArray()); for (Map mapData : labelList) { String photot = String.valueOf(mapData.get("PICTURE")); if ("null".equals(photot)) { mapData.put("PICTURE", ""); } else { mapData.put("PICTURE", baseService.getImageBase64(photot)); } } return new RestResult(Constant.SUCCESS, "获取成功", labelList); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "获取失败"); } } /** 菜品管理-编辑 */ @RequestMapping(value = "/getEvaluate", method = RequestMethod.POST) @ResponseBody public RestResult getEvaluate(Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if (info == null) { return new RestResult(Constant.FAILED, "非法用户"); } ArrayList paramList = new ArrayList<>(); StringBuilder sql = new StringBuilder(); String type = map.get("type").toString(); sql.append("SELECT * FROM ( SELECT ROWNUM rn ,A.* FROM ( SELECT gwe.* FROM GREEN_WEEK_EVALUATE gwe WHERE gwe.IS_DELETED = 'N' "); if ("1".equals(type)) { sql.append(" AND gwe.USER_ID = ? "); paramList.add(userId); } sql.append(" ORDER BY gwe.TIME DESC) A ) WHERE rn > ? AND rn <= ?"); int pageSize = map.get("pageSize") == null ? 10 : Integer.valueOf(String.valueOf(map.get("pageSize"))); int pageNum = map.get("pageNum") == null ? 1 : Integer.valueOf(String.valueOf(map.get("pageNum"))); int page = (pageNum - 1) * pageSize; int limit = pageNum * pageSize; paramList.add(page); paramList.add(limit); List> labelList = hibernateDao.queryForListWithSql(sql.toString(), paramList.toArray()); for (Map mapData : labelList) { String sqlPhoto = "SELECT * FROM GREEN_WEEK_EVALUATE_PHOTO WHERE EVALUATE_ID = ? "; List> photoList = hibernateDao.queryForListWithSql(sqlPhoto.toString(), new Object[] { mapData.get("ID").toString() }); List strings = new ArrayList<>(); for (Map mapPhoto : photoList) { Integer RECIPE_SCORE = getInteger(mapPhoto.get("RECIPE_SCORE")); Integer VARIETY_SCORE = getInteger(mapPhoto.get("VARIETY_SCORE")); Integer CANTEEN_SCORE = getInteger(mapPhoto.get("CANTEEN_SCORE")); Integer DINING_SCORE = getInteger(mapPhoto.get("DINING_SCORE")); Integer HEALTH_SCORE = getInteger(mapPhoto.get("HEALTH_SCORE")); Float SCORE = (float) ((RECIPE_SCORE+VARIETY_SCORE+CANTEEN_SCORE+DINING_SCORE+HEALTH_SCORE)/5); mapPhoto.put("SCORE",SCORE); String photot = String.valueOf(mapPhoto.get("PHOTO")); if ("null".equals(photot)) { mapPhoto.put("PHOTO",""); } else { strings.add(baseService.getImageBase64(photot)); mapPhoto.put("PHOTO", baseService.getImageBase64(photot)); } } mapData.put("PHOTO", strings); } return new RestResult(Constant.SUCCESS, "获取成功", labelList); } catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED, "获取失败"); } } /** 菜品管理-编辑 */ @RequestMapping(value = "/addEvaluate", method = RequestMethod.POST) @ResponseBody public RestResult addEvaluate(Map map) { try { String userId = map.get("userId").toString(); GreenUserInfo info = getUserInfo(userId); if (info == null) { return new RestResult(Constant.FAILED, "非法用户"); } ArrayList paramList = new ArrayList<>(); StringBuilder sql = new StringBuilder(); String evaluate = getString(map.get("evaluate")); String recipeScore = getString(map.get("recipeScore")); String varietyScore = getString(map.get("varietyScore")); String canteenScore = getString(map.get("canteenScore")); String diningScore = getString(map.get("diningScore")); String healthScore = getString(map.get("healthScore")); String userName = getString(map.get("userName")); String weeks = getString(map.get("weeks")); String year = getString(map.get("year")); String day = getString(map.get("day")); String foodType = getString(map.get("foodType")); String photo = map.get("photo") == null ? "":map.get("photo").toString(); String uuid = UUID.randomUUID().toString().replace("-", ""); paramList.add(uuid); paramList.add(evaluate); paramList.add(recipeScore); paramList.add(varietyScore); paramList.add(canteenScore); paramList.add(diningScore); paramList.add(healthScore); paramList.add(userId); paramList.add(userName); paramList.add(weeks); paramList.add(year); paramList.add(foodType); paramList.add(DateTimeHelper.getNowDate()); paramList.add(day); sql.append( "INSERT INTO GREEN_WEEK_EVALUATE (ID,EVALUATE,RECIPE_SCORE,VARIETY_SCORE,CANTEEN_SCORE,DINING_SCORE,HEALTH_SCORE,USER_ID,USER_NAME,IS_DELETED,WEEKS,YEAR,FOOD_TYPE,TIME,DAY) VALUES ( ?,?,?,?,?,?,?,?,?,'N',?,?,?,? ,?)"); hibernateDao.executeSqlUpdate(sql.toString(), paramList.toArray()); List list = Arrays.asList(photo.split(",")); for (String string : list) { String uuidPhoto = UUID.randomUUID().toString().replace("-", ""); String photoSql ="INSERT INTO GREEN_WEEK_EVALUATE_PHOTO (PHOTO, EVALUATE_ID, ID) VALUES (?, ?, ?)"; hibernateDao.executeSqlUpdate(photoSql, new Object[]{ string, uuid,uuidPhoto }); } return new RestResult(Constant.SUCCESS, "评价成功"); } catch (Exception e) { // TODO: handle exception return new RestResult(Constant.FAILED, "评价失败"); } } private Map getMap(String key, List> labelList) { List> list = new ArrayList<>(); Map dayData = new HashMap<>(); for (int i = 0; i < labelList.size(); i++) { Map map = labelList.get(i); String day = String.valueOf(map.get("DAY")); if (key.equals(day)) { list.add(map); } } dayData.put("list", list); return dayData; } private Integer getInteger(Object object){ if (object == null) { return 0; }else { return Integer.valueOf(object.toString()); } } private String getString(Object object){ if (object == null) { return null; }else { return object.toString(); } } }