547 lines
25 KiB
Plaintext
547 lines
25 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\",to_char(a.gmt_created,'yyyy-mm-dd hh24:mi:ss') as \"gmt_created\",to_char(a.gmt_modified,'yyyy-mm-dd hh24:mi:ss') 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 ID,KINDS,FOOD_NAME,PICTURE,PRICE,UNIT,UPLOAD_DATE,"
|
|||
|
|
+ "CREATOR,MODIFIER,to_char(GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\","
|
|||
|
|
+ "to_char(GMT_MODIFIED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_MODIFIED\","
|
|||
|
|
+ "IS_DELETED,PICTURE_DATA,IMG_STATUS,SPEC,MARKET_NO"
|
|||
|
|
+ " 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\",to_char(gf.gmt_created,'yyyy-mm-dd hh24:mi:ss') as \"gmt_created\",to_char(gf.gmt_modified,'yyyy-mm-dd hh24:mi:ss') 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\",to_char(gmt_created,'yyyy-mm-dd hh24:mi:ss') as \"gmt_created\",to_char(gmt_modified,'yyyy-mm-dd hh24:mi:ss') 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 ID,DINING_ROOM_ID,DINING_ROOM_ID,"
|
|||
|
|
+ "ORDER_TIME,PAY_PRICE,PAY_STATUS,ORDER_STATUS,TAKE_STATUS,"
|
|||
|
|
+ "BUYER_NAME,BUYER_NAME,CREATOR,MODIFIER,to_char(GMT_CREATED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_CREATED\","
|
|||
|
|
+ "to_char(GMT_MODIFIED,'yyyy-mm-dd hh24:mi:ss') AS \"GMT_MODIFIED\",IS_DELETED,TAKE_FOOD_TIME,TAKE_FOOD_PLACE"
|
|||
|
|
+ " 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, "通知失败");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|