349 lines
14 KiB
Plaintext
349 lines
14 KiB
Plaintext
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();
|
||
}
|
||
}
|
||
|
||
}
|