Commit 0625bdc0 by 刘鹏飞

获取拼单订单详情

parent c03e8fa7
...@@ -1850,6 +1850,9 @@ public class OrderAdapter { ...@@ -1850,6 +1850,9 @@ public class OrderAdapter {
productVo.setSequence(productBean.getSequence()); productVo.setSequence(productBean.getSequence());
productVo.setQty(productBean.getNumber()); productVo.setQty(productBean.getNumber());
productVo.setSpecification(""); productVo.setSpecification("");
productVo.setUserId(productBean.getUserId());
productVo.setNickName(productBean.getNickName());
productVo.setPhotoUrl(productBean.getPhotoUrl());
List<InventedParentActivityVo> inventedParentActivityVos = new ArrayList<>(); List<InventedParentActivityVo> inventedParentActivityVos = new ArrayList<>();
String attributeNames = ""; String attributeNames = "";
if (StringUtils.isNotBlank(productBean.getAddInfo()) && productBean.getAddInfo().contains("attributeNames")) { if (StringUtils.isNotBlank(productBean.getAddInfo()) && productBean.getAddInfo().contains("attributeNames")) {
......
...@@ -345,5 +345,14 @@ public class OrderController { ...@@ -345,5 +345,14 @@ public class OrderController {
return orderservice.mcCafePollingPickUpCode(vo); return orderservice.mcCafePollingPickUpCode(vo);
} }
/**
* 获取拼单订单详情
*/
@ApiAnnotation(logMessage = "collageQueryOrderById")
@PostMapping("/collage/queryOrderById")
public BaseResponse queryCollageOrderById(@Validated @LogParams @RequestBody QueryOrderVo queryOrderVo) {
return orderservice.queryCollageOrderById(queryOrderVo.getOperation(),queryOrderVo.getSessionId(), queryOrderVo.getOid(),queryOrderVo.getPartnerId(),queryOrderVo.getChannelType());
}
} }
...@@ -42,6 +42,22 @@ public class ProductVo { ...@@ -42,6 +42,22 @@ public class ProductVo {
* 商品spu名称 * 商品spu名称
*/ */
private String spuName; private String spuName;
/**
* 加购人ID
*/
private String userId;
/**
* 加购人昵称
*/
private String nickName;
/**
* 加购人头像
*/
private String photoUrl;
/** /**
* 商品的规格信息加属性信息 * 商品的规格信息加属性信息
*/ */
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: QueryOrderResponseVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: liming.guo
* @date: 2018/5/23 14:21
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.vo;
import cn.freemud.entities.dto.PromotionMessageDto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Builder;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class QueryCollageOrderResponseVo {
private String oid;
/**
* 订单Id二维码
*/
private String oidBase64Image;
private String shopId;
private String thirdShopId;
private String shopName;
private String shopAddress;
private String shopPhone;
private String wxappid;
/**
* 取餐方式 0 立即取餐 1 预约取餐
*/
private Integer takeMealType;
/**
* 取餐方式 描述
*/
private String takeMealTypeDesc;
/**
* 取餐时间
*/
private String takeMealTime;
/**
* 外卖预约
*/
private String reserveDeliveryTime;
/**
* 是否外带 ,打包 1 是 0 否
*/
private Integer takeOut;
/**
* 是否外带 描述
*/
private String takeOutDesc;
/**
* 桌号
*/
private String tableNumber;
/**
* 取餐码
*/
private String takeCode;
/**
* 订单金额
*/
private Long amount;
/**
* 商品总金额 不包括满减,配送费,包装费
*/
private Long itemAmount;
/**
* 优惠总金额
*/
private Long discountTotalAmount;
/**
* 包装费
*/
private Long packageAmount;
/**
* 配送费
*/
private Long deliveryAmount;
/**
* 限时折扣优惠金额
*/
private Long discountLimitAmount;
/**
* 满减总优惠金额V1.5.2增加
*/
private Long fullDiscountAmount;
/**
* 用户积分抵扣金额
*/
private Long customerScoreAmount;
/**
* 用户积分抵扣提示
*/
private String customerScorePrompt;
/**
* 订单类型 enum OrderType
*/
private Integer orderType;
/**
* 订单类型描述
*/
private String orderTypeDesc;
/**
* 订单状态 enum OrderStatus ,DeliverStatus=42 骑手取餐中
*/
private Integer orderStatus;
/**
* 订单状态描述
*/
private String orderStatusDesc;
/**
* 订单状态显示的对应描述
*/
private String orderStatusDescText;
/**
* 取餐排队号 订单详情使用 默认为空
*/
private String queueIndex;
/**
* 申请退款按钮
*/
private Boolean buttonRefund;
/**
* 联系商家按钮
*/
private Boolean buttonContactPartner;
/**
* 评价按钮
*/
private Boolean buttonEvaluate;
/**
* 联系骑手按钮
*/
private Boolean buttonContactRider;
/**
* 取餐码按钮
*/
private Boolean buttonMealCode;
/**
* 支付状态 enum PayStatus
*/
private Integer payStatus;
/**
* 支付状态描述
*/
private String payStatusDesc;
/**
* 支付时间
*/
private String payCreateTime;
/**
* 付款方式 微信支付
*/
private String orderPayType;
/**
* 收货地址id
*/
private String receiveId;
/**
* 支付渠道
*/
@JsonIgnore
@JSONField(serialize = false)
private String payChannel;
/**
* 付款单号
*/
private String payVoucher;
/**
* 退款状态 enum refundStatus
*/
private Integer refundStatus;
/**
* 退款状态描述
*/
private String refundStatusDesc;
/**
* 退款原因
*/
private String refundReason;
/**
* 退款文案提示 若48小时后商家未处理,自动同意/拒绝退款
*/
private String refundTips;
/*
* 麦咖啡 外卖单或者自提单文案提示
*/
private String mcCafeOrderTag;
/**
* 退款单
*/
private String rid;
/**
* 申请退款时间 yyyy-MM-dd HH:mm:ss
*/
private String refundCreateTime;
/**
* 订单备注
*/
private String orderRemark;
/**
* 订单创建时间
*/
private String orderCreateTime;
/**
* 订单更新时间
*/
private String modifiedTime;
private Integer sex;
private String sexDesc;
/**
* 收货办公楼
*/
private String officeName;
/**
* 收货地址
*/
private String receiveAddress;
/**
* 收货用户名
*/
private String receiveUsername;
/**
* 收货电话
*/
private String receiveMobile;
private Integer distance;
/**
* 订单是否可申请退款 可申请退款条件 :1 .支付未接单 2. 已接单,制作完成,配送中 ,用户可申请退款
*/
private Boolean enableRefund;
//private List<ProductVo> products;
/**
* 参单用户信息和用户商品信息
*/
private List<UserProductVo> userProducts;
private List<OrderAccountVo> orderAccounts;
private PromotionMessageDto promotionMessage;
/**
* 优惠券信息
*/
private CouponInfoVo couponInfo;
/**
* 是否有裂变活动分享
*/
private String activityId;
/**
* 红包图片
*/
private String redpacketsPicture;
/**
* 是否是第三方配送单
*/
private Boolean hasThirdDelivery;
/**
* 骑手名称 商家自配送名称
*/
private String riderName;
/**
* 骑手文案 商家自配送文案
*/
private String riderText;
/**
* 骑手头像
*/
private String riderPhoto;
/**
* 骑手电话
*/
private String riderPhone;
/**
* 门店首页图片
*/
private String shopImageUrl;
/**
* 门店经度
*/
private String longitude;
/**
* 门店纬度
*/
private String latitude;
/**
* 商品数量
*/
private Integer productNum;
/**
* 订单流转时间
*/
private ArrayList<OrderStatusFlow> orderStatusFlows;
/**
* 取餐页面订单流转状态
*/
private ArrayList<TakeMealFlow> takeMealFlows;
//支付有礼活动名称
private String activityName;
//支付有礼领券集合
private List<PayGiftCouponVo> coupons;
private PayGiftWechatCouponInfoVo wechatCouponInfo;
/**
* 收件人省份
*/
private String receiveProvince;
/**
* 收件人城市
*/
private String receiveCity;
/**
* 收件人区
*/
private String receiveRegion;
/**
* 订单业务类型 1:普通订单 2:虚拟订单 3:会员订单 4:积分商城订单 5:储值卡订单 6:卖券虚拟商品
*/
private Integer bizType;
/**
* 麦咖啡餐道订单号
*/
private String downstreamThirdOrderCode;
@Data
public static class OrderStatusFlow {
/**
* 时间描述
*/
private String status;
/**
* 时间
*/
private String orderTime;
}
@Data
@Builder
public static class TakeMealFlow {
/**
* 流程名称
*/
private String name;
/**
* 是否显示
*/
private Boolean active;
/**
* icon图标
*/
private String icon;
}
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: ProductVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: liming.guo
* @date: 2018/5/15 15:11
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class UserProductVo {
/**
* 加购人ID
*/
private String userId;
/**
* 加购人昵称
*/
private String nickName;
/**
* 加购人头像
*/
private String photoUrl;
/**
* 均摊金额,分
*/
private BigDecimal avgAmount;
/**
* 商品信息
*/
private List<ProductVo> products;
}
...@@ -126,4 +126,13 @@ public interface Orderservice { ...@@ -126,4 +126,13 @@ public interface Orderservice {
BaseResponse mcCafeQueryOrders(McCafeQueryOrderVo queryOrderVo); BaseResponse mcCafeQueryOrders(McCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafePollingPickUpCode(MaCafeQueryOrderVo vo ); BaseResponse mcCafePollingPickUpCode(MaCafeQueryOrderVo vo );
/**
* 通过订单号查询订单详情
*
* @param sessionId 用户会话ID
* @param oid 订单ID
* @return
*/
BaseResponse queryCollageOrderById(Integer operation,String sessionId, String oid, String partnerId,String channel);
} }
...@@ -1064,6 +1064,55 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1064,6 +1064,55 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(responseMap); return ResponseUtil.success(responseMap);
} }
@Override
public BaseResponse queryCollageOrderById(Integer operation, String sessionId, String oid, String partnerId, String channel) {
BaseResponse orderInfoRes = this.queryOrderById(operation,sessionId, oid,partnerId,channel);
if (!RESPONSE_SUCCESS_CODE.equals(orderInfoRes.getCode()) || orderInfoRes.getResult() == null) {
return orderInfoRes;
}
// 根据用户聚合商品信息,计算分摊
QueryCollageOrderResponseVo queryCollageOrderResponseVo = new QueryCollageOrderResponseVo();
QueryOrderResponseVo queryOrderResponseVo = (QueryOrderResponseVo)orderInfoRes.getResult();
List<ProductVo> productVo = queryOrderResponseVo.getProducts();
// 根据用户id分类商品
Map<String,List<ProductVo>> orderItemMap = productVo.stream().collect(Collectors.groupingBy(ProductVo::getUserId));
List<UserProductVo> userProducts = new ArrayList<>();
for(Map.Entry<String,List<ProductVo>> m : orderItemMap.entrySet()){
List<ProductVo> products = m.getValue();
// 根据行金额计算加和每个会员的分摊金额
BigDecimal avgAmount = new BigDecimal(0);
for (ProductVo po : products){
avgAmount.add(new BigDecimal(po.getFinalPrice()));
List<ProductVo> materialProducts = po.getSetMaterialProducts();
for(ProductVo mp : materialProducts){
avgAmount.add(new BigDecimal(mp.getFinalPrice()));
}
List<ProductVo> mealProducts = po.getSetMealProducts();
for(ProductVo mp:mealProducts){
avgAmount.add(new BigDecimal(mp.getFinalPrice()));
}
}
UserProductVo userProductVo = new UserProductVo();
userProductVo.setUserId(products.get(0).getUserId());
userProductVo.setNickName(products.get(0).getNickName());
userProductVo.setPhotoUrl(products.get(0).getPhotoUrl());
userProductVo.setProducts(products);
userProductVo.setAvgAmount(avgAmount);
userProducts.add(userProductVo);
}
JSONObject.parseObject(JSONObject.toJSONString(queryOrderResponseVo),QueryCollageOrderResponseVo.class);
queryCollageOrderResponseVo.setUserProducts(userProducts);
return ResponseUtil.success(queryCollageOrderResponseVo);
}
private String getRedpacketsPicture(String activityId) { private String getRedpacketsPicture(String activityId) {
if (StringUtils.isNotBlank(activityId)) { if (StringUtils.isNotBlank(activityId)) {
try { try {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment