hz-zhhq-app-service/greenH5modul/.svn/pristine/21/21f3488f39b5a9c5b0c7b3ffc0c...

349 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
/**
* <b>概述</b><br>
* <p>
* <b>功能</b><br>
*
* @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<String, Object> 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<Map<String, String>> menuList1 = new
// ArrayList<Map<String,String>>();
// 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<String, String> 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<String, Object> 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<Map<String, String>> menuList1 = new ArrayList<Map<String, String>>();
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<String, String> 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<String, Object> map) {
try {
String userId = map.get("userId").toString();
GreenUserInfo info = getUserInfo(userId);
if (info == null) {
return new RestResult(Constant.FAILED, "非法用户");
}
ArrayList<Object> paramList = new ArrayList<>();
paramList.add(DateTimeHelper.getWeek());
paramList.add(DateTimeHelper.getNowYear());
paramList.add(String.valueOf(map.get("foodType")));
StringBuilder sql = new StringBuilder();
Map<String, Object> 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<Map<String, Object>> 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<String, Object> map) {
try {
String userId = map.get("userId").toString();
GreenUserInfo info = getUserInfo(userId);
if (info == null) {
return new RestResult(Constant.FAILED, "非法用户");
}
ArrayList<Object> 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<Map<String, Object>> labelList = hibernateDao.queryForListWithSql(sql.toString(), paramList.toArray());
for (Map<String, Object> 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<String, Object> map) {
try {
String userId = map.get("userId").toString();
GreenUserInfo info = getUserInfo(userId);
if (info == null) {
return new RestResult(Constant.FAILED, "非法用户");
}
ArrayList<Object> 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<Map<String, Object>> labelList = hibernateDao.queryForListWithSql(sql.toString(), paramList.toArray());
for (Map<String, Object> mapData : labelList) {
String sqlPhoto = "SELECT * FROM GREEN_WEEK_EVALUATE_PHOTO WHERE EVALUATE_ID = ? ";
List<Map<String, Object>> photoList = hibernateDao.queryForListWithSql(sqlPhoto.toString(),
new Object[] { mapData.get("ID").toString() });
List<String> strings = new ArrayList<>();
for (Map<String, Object> 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<String, Object> map) {
try {
String userId = map.get("userId").toString();
GreenUserInfo info = getUserInfo(userId);
if (info == null) {
return new RestResult(Constant.FAILED, "非法用户");
}
ArrayList<Object> 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<String> 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<String, Object> getMap(String key, List<Map<String, Object>> labelList) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> dayData = new HashMap<>();
for (int i = 0; i < labelList.size(); i++) {
Map<String, Object> 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();
}
}
}