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

349 lines
14 KiB
Plaintext
Raw Normal View History

2025-01-21 13:12:35 +08:00
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();
}
}
}