539 lines
24 KiB
Plaintext
539 lines
24 KiB
Plaintext
package com.nationalelectric.greenH5;
|
||
|
||
import org.springframework.web.bind.annotation.RequestMethod;
|
||
import org.springframework.web.bind.annotation.ResponseBody;
|
||
|
||
import com.nationalelectirc.Constant.Constant;
|
||
import com.nationalelectirc.utils.RestResult;
|
||
import com.nationalelectric.greenH5.DTO.GreenFoodOrderDetailDTO;
|
||
import com.nationalelectric.greenH5.DTO.GreenFoodOrderListDTO;
|
||
import com.nationalelectric.greenH5.DTO.GreenMealTicketApplyDTO;
|
||
import com.nationalelectric.greenH5.DTO.UserDTO;
|
||
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
|
||
import com.nationalelectric.greenH5.bizc.IGreenMarketOrderDetailBizc;
|
||
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
|
||
import com.nationalelectric.greenH5.enums.OrderStatus;
|
||
import com.nationalelectric.greenH5.enums.PayStatus;
|
||
import com.nationalelectric.greenH5.enums.TakeStatus;
|
||
import com.sgcc.uap.service.validator.ServiceValidatorBaseException;
|
||
import com.sgcc.uap.persistence.IHibernateDao;
|
||
|
||
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.GreenDrugsApply;
|
||
import com.nationalelectric.greenH5.po.GreenMarketOrderDetail;
|
||
import com.nationalelectric.greenH5.po.GreenMarketOrderList;
|
||
import com.nationalelectric.greenH5.po.GreenUserInfo;
|
||
import com.nationalelectric.greenH5.utils.DateTime;
|
||
import com.nationalelectric.greenH5.utils.DateUtil;
|
||
|
||
import javax.annotation.Resource;
|
||
|
||
import org.apache.commons.lang.StringUtils;
|
||
import org.codehaus.jackson.map.ObjectMapper;
|
||
import org.codehaus.jackson.type.TypeReference;
|
||
import org.springframework.beans.BeanUtils;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Controller;
|
||
import org.springframework.transaction.annotation.Transactional;
|
||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||
import org.springframework.web.bind.annotation.RequestBody;
|
||
|
||
/**
|
||
* <b>概述</b>:<br>
|
||
* <p>
|
||
* <b>功能</b>:<br>
|
||
*
|
||
* @author BOWEI
|
||
*/
|
||
@Controller
|
||
@RequestMapping("/greenMarket")
|
||
public class GreenMarketController extends GreenBaseController {
|
||
|
||
@Resource
|
||
private IHibernateDao hibernateDao;
|
||
@Resource
|
||
private IGreenOperateLogBizc greenOperateLogBizc;
|
||
@Autowired
|
||
private BaseServiceImpl baseService;
|
||
@Resource
|
||
private AliasManageController aliasManageController;
|
||
@Resource
|
||
private IGreenMarketOrderDetailBizc greenmarketorderdetailBizc;
|
||
|
||
private ReentrantLock lock = new ReentrantLock();
|
||
|
||
/** 外卖点餐列表 */
|
||
@RequestMapping(value = "/getAttrTypes", method = RequestMethod.POST)
|
||
@ResponseBody
|
||
public RestResult getAttrTypes(Map<String, Object> rmap) {
|
||
String userId = rmap.get("userId").toString();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
try {
|
||
|
||
String sql = "select attr_name as \"attr_name\" from green_market_attribute where attr_type=0 and attr_range=0 and is_deleted='N' order by sort";
|
||
List<Map<String, String>> list = hibernateDao.queryForListWithSql(sql);
|
||
|
||
return new RestResult(Constant.SUCCESS, "成功", list);
|
||
} catch (ServiceValidatorBaseException e) {
|
||
throw e;
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
|
||
@RequestMapping(value = "/getMarketKindsList", method = RequestMethod.POST)
|
||
@ResponseBody
|
||
public RestResult getMarketKindsList(Map<String, Object> rmap) {
|
||
String userId = rmap.get("userId").toString();
|
||
String attrType = rmap.get("attrType").toString();
|
||
String keyWord = rmap.get("keyWord")==null?"": rmap.get("keyWord").toString();
|
||
Integer pageSize = rmap.get("pageSize")==null?10: (Integer)rmap.get("pageSize");
|
||
Integer pageNum = rmap.get("pageNum")==null?1: (Integer)rmap.get("pageNum");
|
||
int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize;
|
||
pageSize = pageSize*pageNum;
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
try {
|
||
GreenUserInfo userInfo = getUserInfo(userId);
|
||
List<Object> params = new ArrayList<Object>();
|
||
String sql = "select * from (select rn.*,rownum rw from ("
|
||
+ "SELECT a.id as \"id\",a.location_id as \"location_id\",a.kinds_id as \"kinds_id\",a.menu_id as \"menu_id\","
|
||
+ "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\","
|
||
+ "b.kinds as \"kinds\",b.food_name as \"food_name\",b.picture as \"picture\",b.price as \"price\",b.unit as \"company\",b.spec "
|
||
+ "FROM GREEN_MARKET_VARIETY a left join GREEN_MARKET_KINDS b on a.kinds_id = b.id where a.is_deleted = "
|
||
+ "'N' "
|
||
+ " and b.kinds =? "
|
||
+ "and a.upload_date = to_char(sysdate, 'yyyy-mm-dd')";
|
||
params.add(attrType);
|
||
if(!"".equals(keyWord)){
|
||
sql+=" and b.food_name like ?";
|
||
params.add("%"+keyWord+"%");
|
||
}
|
||
sql+=" ) rn )where rw>? and rw<=?";
|
||
params.add(limit);
|
||
params.add(pageSize);
|
||
List<Map<String, String>> list = hibernateDao.queryForListWithSql(sql,params.toArray());
|
||
|
||
for (Map<String, String> map : list) {
|
||
String pictureString = map.get("picture");
|
||
map.put("picture", baseService.getImageBase64(pictureString));
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "成功", list);
|
||
} catch (ServiceValidatorBaseException e) {
|
||
throw e;
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value="/submitMarketOrder", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor=Exception.class)
|
||
@ResponseBody
|
||
public RestResult submitMarketOrder(@RequestBody GreenFoodOrderListDTO greenfoodorderlists){
|
||
|
||
try {
|
||
lock.lock();
|
||
String userId = greenfoodorderlists.getUserId();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if(info==null){
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
StringBuilder stringBuilder = new StringBuilder();
|
||
stringBuilder.append("(");
|
||
for (GreenFoodOrderDetailDTO orderDetail : greenfoodorderlists.getOrderDetails()) {
|
||
String goodsId = String.valueOf(orderDetail.getGoodsId());
|
||
stringBuilder.append(goodsId + ",");
|
||
}
|
||
String substring = null;
|
||
if (stringBuilder != null) {
|
||
substring = stringBuilder.substring(0, stringBuilder.length()-1) +")";
|
||
}
|
||
String sql = "select * from GREEN_MARKET_KINDS where id in " + substring;
|
||
List<Map<String,Object>> list1 = hibernateDao.queryForListWithSql(sql);
|
||
//计算价钱
|
||
String Id = null;
|
||
BigDecimal scale = BigDecimal.ZERO;
|
||
BigDecimal totalMoney = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_UP);
|
||
for (int i = 0; i < greenfoodorderlists.getOrderDetails().size(); i++) {
|
||
|
||
for (int j = 0; j < list1.size(); j++) {
|
||
Id = list1.get(j).get("id").toString();
|
||
String goodsId = String.valueOf(greenfoodorderlists.getOrderDetails().get(i).getGoodsId());
|
||
|
||
if (Id.equals(goodsId)) {
|
||
|
||
String num = greenfoodorderlists.getOrderDetails().get(i).getGoodsNum();
|
||
String price = list1.get(j).get("price").toString();
|
||
BigDecimal numDecimal = new BigDecimal(num);
|
||
BigDecimal priceDecimal = new BigDecimal(price);
|
||
scale = numDecimal.multiply(priceDecimal).setScale(2,BigDecimal.ROUND_UP);
|
||
totalMoney = totalMoney.add(scale);
|
||
}
|
||
}
|
||
}
|
||
greenfoodorderlists.setPayPrice( String.valueOf(totalMoney));
|
||
greenfoodorderlists.setOrderTime(DateUtil.now());
|
||
greenfoodorderlists.setPayStatus(PayStatus.PAY_STATUS_SUCCESS.getName());
|
||
greenfoodorderlists.setTakeStatus(TakeStatus.TAKE_STATUS_CANCEL.getName());
|
||
greenfoodorderlists.setOrderStatus(OrderStatus.ORDER_STATUS_SUCCESS.getName());
|
||
greenfoodorderlists.setBuyerName(info.getRealName());
|
||
greenfoodorderlists.setBuyerPhone(info.getMobile());
|
||
String takeDay = "";
|
||
greenfoodorderlists.setTakeFoodTime(takeDay);
|
||
GreenMarketOrderList greenFoodOrderList = new GreenMarketOrderList();
|
||
BeanUtils.copyProperties(greenfoodorderlists, greenFoodOrderList);
|
||
greenFoodOrderList.setPayPrice(String.valueOf(totalMoney));
|
||
hibernateDao.saveObject(greenFoodOrderList);
|
||
//ArrayList<GreenFoodOrderDetail> list = new ArrayList<GreenFoodOrderDetail>();
|
||
for (GreenFoodOrderDetailDTO greenFoodOrderDetail : greenFoodOrderList.getOrderDetails()) {
|
||
if(greenFoodOrderList.getId() != null){
|
||
greenFoodOrderDetail.setOrderId(greenFoodOrderList.getId());
|
||
GreenMarketOrderDetail greenFoodOrderDetail2 = new GreenMarketOrderDetail();
|
||
BeanUtils.copyProperties(greenFoodOrderDetail, greenFoodOrderDetail2);
|
||
//list.add(greenFoodOrderDetail);
|
||
greenmarketorderdetailBizc.add(greenFoodOrderDetail2);
|
||
}
|
||
}
|
||
HashMap<String, java.lang.Object> data = new HashMap<String,Object>();
|
||
data.put("orderId", greenfoodorderlists.getId());
|
||
String title = "线上超市";
|
||
String text = "您好,您已成功预订商品,取货地点:"+greenFoodOrderList.getTakeFoodPlace()+",请注意查看。";
|
||
String url = "/pages/market/market?currentTabIndex=1";
|
||
aliasManageController.pushToSingle(greenFoodOrderList.getUserId(), title, text, url);
|
||
|
||
String role = "14007";//超市订单权限
|
||
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<Map<String,Object>> userList2 = hibernateDao.queryForListWithSql(getUserSql, new Object[]{role});
|
||
title = "超市订单";
|
||
text = "您好,您有新的超市订单,请注意查看。";
|
||
url = "/pages/market/market-sl";
|
||
aliasManageController.pushToSingleBatch(userList2, title, text, url);
|
||
//greenOperateLogBizc.addLog(Constant.TAKE_OUT_FOOD, Constant.SUBMIT, Constant.OPERATE_SUCCESS, "提交外卖订单", Constant.LOG_OPERATE, greenfoodorderlists.getUserId());
|
||
return new RestResult(Constant.SUCCESS,"成功",data);
|
||
}catch (ServiceValidatorBaseException e) {
|
||
throw e;
|
||
}catch (Exception e) {
|
||
e.printStackTrace();
|
||
//greenOperateLogBizc.addLog(Constant.TAKE_OUT_FOOD, Constant.SUBMIT, Constant.OPERATE_FAIL, "提交外卖订单", Constant.LOG_ERROR, greenfoodorderlists.getUserId());
|
||
//设置手动回滚
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED,"返回异常");
|
||
}finally {
|
||
if (lock.isLocked()) {
|
||
lock.unlock();
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
/**用户订单列表*/
|
||
@RequestMapping(value="/myMarketOrderList", method = RequestMethod.POST)
|
||
@ResponseBody
|
||
public RestResult myMarketOrderList(@RequestBody Object requestBody){
|
||
|
||
GreenFoodOrderListDTO greenfoodorderlists = new ObjectMapper().convertValue(requestBody, new TypeReference<GreenFoodOrderListDTO>() {});
|
||
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\""
|
||
+ ", ");
|
||
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_MARKET_ORDER_LIST gf where gf.user_id = ? and gf.is_deleted = 'N' order by gf.order_time desc ) rn )where rw>? and rw<=? ");
|
||
|
||
List<Map<String,Object>> 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<orderList.size();i++) {
|
||
stringId = String.valueOf(orderList.get(i).get("id"));
|
||
stringBuilder.append(stringId + ",");
|
||
}
|
||
String substring = null;
|
||
if (stringBuilder != null) {
|
||
substring = stringBuilder.substring(0, stringBuilder.length()-1) +")";
|
||
}
|
||
//查询订单详情
|
||
String sql = "Select a.id as \"id\",a.order_id as \"order_id\",a.goods_id as \"goods_id\","
|
||
+ "b.food_name as \"goods_name\",b.price as \"price\",b.unit as \"unit\",a.goods_num as \"goods_num\",b.picture as \"goods_icon\" from GREEN_MARKET_ORDER_DETAIL a left join GREEN_MARKET_KINDS b on a.goods_id = b.id where a.order_id in " + substring;
|
||
List<Map<String,Object>> detailList =hibernateDao.queryForListWithSql( sql);
|
||
for (Map<String, Object> 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<Object> arrayList = new ArrayList<Object>();
|
||
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="/marketOrderList", method = RequestMethod.POST)
|
||
@ResponseBody
|
||
public RestResult marketOrderList(@RequestBody Object requestBody){
|
||
|
||
GreenFoodOrderListDTO greenfoodorderlists = new ObjectMapper().convertValue(requestBody, new TypeReference<GreenFoodOrderListDTO>() {});
|
||
String userId = greenfoodorderlists.getUserId();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if(info==null){
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
try {
|
||
List<Object> params = new ArrayList<Object>();
|
||
|
||
//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 = "";
|
||
// 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 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\" "
|
||
+ " from GREEN_MARKET_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 order_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 order_time<=? ");
|
||
params.add(endDate);
|
||
}
|
||
|
||
|
||
sb.append(" order by order_time desc ) rn )where rw>? and rw<=? ");
|
||
params.add(limit);
|
||
params.add(pageSize);
|
||
List<Map<String,Object>> orderList = hibernateDao.queryForListWithSql(sb.toString()
|
||
,params.toArray());
|
||
StringBuilder stringBuilder = new StringBuilder();
|
||
|
||
String stringId = null;
|
||
List<Map<String,Object>> numList =new ArrayList<Map<String,Object>>();
|
||
if (!orderList.isEmpty()) {
|
||
stringBuilder.append("(");
|
||
for (int i = 0;i<orderList.size();i++) {
|
||
stringId = String.valueOf(orderList.get(i).get("id"));
|
||
stringBuilder.append(stringId + ",");
|
||
}
|
||
String substring = null;
|
||
if (stringBuilder != null) {
|
||
substring = stringBuilder.substring(0, stringBuilder.length()-1) +")";
|
||
}
|
||
|
||
String sql = "Select a.id as \"id\",a.order_id as \"order_id\",a.goods_id as \"goods_id\",b.food_name as \"goods_name\","
|
||
+ "b.price as \"price\",a.goods_num as \"goods_num\",b.picture as \"goods_icon\" from GREEN_MARKET_ORDER_DETAIL a left join GREEN_MARKET_KINDS b on a.goods_id = b.id where a.order_id in " + substring;
|
||
List<Map<String,Object>> detailList =hibernateDao.queryForListWithSql( sql);
|
||
for (Map<String, Object> 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<String, Object> map = new HashMap<String, Object>();
|
||
|
||
for (int i = 0; i < orderList.size(); i++) {
|
||
ArrayList<Object> arrayList = new ArrayList<Object>();
|
||
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<Object> params2 = new ArrayList<Object>();
|
||
|
||
String numSql = " Select count(id) as \"num\",sum(case when order_status = 0 then 0 else pay_price end) as \"price\" from GREEN_MARKET_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 order_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 order_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<String, Object> map = new HashMap<String, Object>();
|
||
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 = "/marketPickUp", method = RequestMethod.POST)
|
||
public @ResponseBody RestResult marketPickUp(Map<String,Object> map) {
|
||
try {
|
||
String id = map.get("orderId").toString();
|
||
String userId = map.get("userId").toString();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
String sql = "select * from green_market_order_list where id ="+id+"";
|
||
List<Map<String, Object>> list = hibernateDao.queryForListWithSql(sql);
|
||
String orderUser = list.get(0).get("user_id").toString();
|
||
String title = "线上超市";
|
||
String text = "您好,您预订的商品已备货完成,请及时取货。";
|
||
String url = "/pages/market/market?currentTabIndex=1";
|
||
aliasManageController.pushToSingle(orderUser, title, text, url);
|
||
|
||
String upSql = "update green_market_order_list set order_status='3' where id="+id;
|
||
hibernateDao.executeSqlUpdate(upSql);
|
||
|
||
// 返回结果
|
||
return new RestResult(Constant.SUCCESS, "已通知");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "通知失败");
|
||
}
|
||
}
|
||
|
||
}
|