Commit d67de635 by 缪晖

Merge branch 'feature/2.0.1-collageOrder-刘鹏飞' into develop

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
parents 5f7c1097 744539c7
package com.freemud.sdk.api.assortment.order.adapter;
import cn.freemud.base.constant.Version;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.couponcenter.offline.domain.ProductRedeemVO;
import com.freemud.application.sdk.api.couponcenter.offline.domain.TransactionVO;
......@@ -82,15 +81,15 @@ public class OrderSdkAdapter {
* @param orderBean
* @return
*/
public BaseQueryOrderRequest getOrderDeliveryRequest(String operator, QueryOrdersResponse.DataBean.OrderBean orderBean){
BaseQueryOrderRequest orderDeliveryRequest = getOrderConfirmRequest(operator, orderBean);
if (orderBean.getType() == 1) {
orderDeliveryRequest.setOrderType(com.freemud.application.sdk.api.ordercenter.enums.OrderType.GENERAL_EXPRESS);
} else {
orderDeliveryRequest.setOrderType(com.freemud.application.sdk.api.ordercenter.enums.OrderType.GENERAL_SELF_PICKUP);
}
return orderDeliveryRequest;
}
// public BaseQueryOrderRequest getOrderDeliveryRequest(String operator, QueryOrdersResponse.DataBean.OrderBean orderBean){
// BaseQueryOrderRequest orderDeliveryRequest = getOrderConfirmRequest(operator, orderBean);
// if (orderBean.getType() == 1) {
// orderDeliveryRequest.setOrderType(com.freemud.application.sdk.api.ordercenter.enums.OrderType.GENERAL_EXPRESS);
// } else {
// orderDeliveryRequest.setOrderType(com.freemud.application.sdk.api.ordercenter.enums.OrderType.GENERAL_SELF_PICKUP);
// }
// return orderDeliveryRequest;
// }
/**
* 拒单request
......@@ -215,112 +214,7 @@ public class OrderSdkAdapter {
//订单market类型
if (requestVO.getMarketingType() != null) {
request.setMarketingType(ClassUtils.toInteger(requestVO.getMarketingType()));
};
//商品信息转换
List<OrderItemCreateReq> orderItemList = new ArrayList<>();
//优惠信息转换
List<OrderSettlementCreateReq> orderSettlementCreateReqList = new ArrayList<>();
//结算信息转换
List<OrderCostCreateReq> orderCostCreateReqs = new ArrayList<>();
// 更新订单商品详情信息
originalAmount = updateOrderItemsAndSettlements(orderItemList, orderSettlementCreateReqList, orderCostCreateReqs, requestVO.getProducts(), requestVO.getAccounts(), requestVO.getCompanyId());
//商品信息赋值
request.setOrderItemList(orderItemList);
//订单原始金额,单位分
request.setOriginalAmount(originalAmount);
//结算信息赋值
request.setOrderCostDetailList(orderCostCreateReqs);
//商品优惠信息赋值
request.setOrderSettlementDetailList(orderSettlementCreateReqList);
//收货人信息转换
List<DeliveryContactInfoCreateReq> deliveryContactInfoList = new ArrayList<DeliveryContactInfoCreateReq>();
DeliveryContactInfoCreateReq deliveryContactInfoCreateReq = new DeliveryContactInfoCreateReq();
//地址类型 1:订单地址 2:售后单地址 3:配送员信息
deliveryContactInfoCreateReq.setRelateObjectType(1);
//联系方式类型 1:取件 2:收件
deliveryContactInfoCreateReq.setInfoType(1);
deliveryContactInfoCreateReq.setContactsName(requestVO.getUserName());
deliveryContactInfoCreateReq.setMobile(requestVO.getPhone());
deliveryContactInfoCreateReq.setLatitude(StringUtils.isBlank(requestVO.getLatitude()) ? null : new BigDecimal(requestVO.getLatitude()));
deliveryContactInfoCreateReq.setLongitude(StringUtils.isBlank(requestVO.getLongitude()) ? null : new BigDecimal(requestVO.getLongitude()));
deliveryContactInfoCreateReq.setAddressDetail(requestVO.getAddress());
deliveryContactInfoCreateReq.setProvince(requestVO.getProvince());
deliveryContactInfoCreateReq.setCity(requestVO.getCity());
deliveryContactInfoCreateReq.setRegion(requestVO.getRegion());
JSONObject deliveryExtInfo = new JSONObject();
deliveryExtInfo.put("receiveId", requestVO.getReceiveId());
deliveryContactInfoCreateReq.setExtInfo(deliveryExtInfo.toJSONString());
deliveryContactInfoList.add(deliveryContactInfoCreateReq);
//第三方配送信息
getThirdDeliveryInfo(deliveryContactInfoList, requestVO.getAddInfo());
request.setDeliveryContactInfoList(deliveryContactInfoList);
//保存门店渠道信息
request.setOrderExtended(requestVO.getOrderExtended());
request.setOperator(requestVO.getOperator());
request.setAppId(requestVO.getAppId());
//订单重量
Double orderWeight = sumOrderWeight(requestVO.getProducts());
request.setWeight(orderWeight);
// 扩展字段(第三方商品分类编号)
if (null != requestVO && null != requestVO.getOtherInfo()) {
request.setExtInfo(JSONObject.toJSONString(requestVO.getOtherInfo()));
}
// 买一赠一寄件信息
if(requestVO.getChooseGoods() != null && !requestVO.getChooseGoods().isEmpty()){
request.setChooseGoods(JSONArray.parseArray(JSONObject.toJSONString(requestVO.getChooseGoods()), CreateOrderRequest.ChooseGood.class));
}
return request;
}
public com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest convent2NEWCreateMCCafeOrderRequest(BaseCreateOrderRequest requestVO) {
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest request = new com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest();
request.setPartnerId(requestVO.getCompanyId());
request.setStoreId(requestVO.getShopId());
//1:线上支付 2:线下支付
request.setPayType(1);
request.setUserId(requestVO.getUserId());
request.setUserName(requestVO.getUserName());
request.setStoreName(requestVO.getShopName());
request.setPayTime(requestVO.getPayTime());
request.setThirdStoreId(requestVO.getThirdShopId());
request.setThirdOrderCode(requestVO.getThirdOrderCode());
request.setPayChannelType(requestVO.getPayChannelType());
if (requestVO.getOrderStatus() != null) {
request.setOrderState(getNewOrderStatus(requestVO.getOrderStatus().getCode()));
}
if (requestVO.getPayStatus() != null) {
request.setPayState(requestVO.getPayStatus().getCode());
}
if (requestVO.getPayChannel() != null) {
request.setPayChannel(requestVO.getPayChannel());
}
if (requestVO.getPayChannelName() != null) {
request.setPayChannelName(requestVO.getPayChannelName());
}
if (requestVO.getGmtExpect() != null && requestVO.getGmtExpect() != 0) {
request.setExpectTime(new Date(requestVO.getGmtExpect()));
}
//订单原始金额,单位分
Long originalAmount = 0L;
//用户在界面上看到的支付金额
request.setSettlementAmount(requestVO.getAmount());
//实际支付现金金额,扣除支付自生优惠,单位分
request.setActualPayAmount(requestVO.getAmount());
if(requestVO.getOrderClient() != null){
request.setOrderClient(requestVO.getOrderClient().getIndex());
}else {
request.setOrderClient(StringUtils.isEmpty(requestVO.getSource())? OrderClientType.SAAS.getIndex():getNewOrderClient(requestVO.getSource()));
}
//订单业务类型 1:普通订单 2:虚拟订单
request.setBizType(1);
request.setNote(requestVO.getRemark());
request.setOrderType(getNewOrderType(requestVO.getOrderType(), requestVO.getGmtExpect()));
request.setBarCounter(requestVO.getBarCounter());
//商品信息转换
List<OrderItemCreateReq> orderItemList = new ArrayList<>();
......@@ -329,7 +223,7 @@ public class OrderSdkAdapter {
//结算信息转换
List<OrderCostCreateReq> orderCostCreateReqs = new ArrayList<>();
// 更新订单商品详情信息
originalAmount = updateMCCafeOrderItemsAndSettlements(orderItemList, orderSettlementCreateReqList, orderCostCreateReqs, requestVO.getProducts(), requestVO.getAccounts(), requestVO.getCompanyId());
originalAmount = updateOrderItemsAndSettlements(orderItemList, orderSettlementCreateReqList, orderCostCreateReqs, requestVO.getProducts(), requestVO.getAccounts(), requestVO.getCompanyId());
//商品信息赋值
request.setOrderItemList(orderItemList);
//订单原始金额,单位分
......@@ -492,9 +386,7 @@ public class OrderSdkAdapter {
//老订单服务 1=配送费;3=包装费
if (QueryOrderAccountType.DELIVERY_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.PACK_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.CARD_ORIGINAL_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.WITH_ORDER_BUY_COUPON_FEE.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.WITH_ORDER_BUY3_SEND1_FEE.equals(accountRequest.getAccountType())) {
|| QueryOrderAccountType.CARD_ORIGINAL_AMOUNT.equals(accountRequest.getAccountType())) {
OrderCostCreateReq orderCostCreateReq = new OrderCostCreateReq();
orderCostCreateReq.setCostName(accountRequest.getName());
//新订单服务 1=包装费,2=运费,3=餐盒单价,4=餐盒数量
......@@ -505,11 +397,6 @@ public class OrderSdkAdapter {
orderCostCreateReq.setProductSeq(accountRequest.getSequence());
//1=订单,2=订单商品,3=售后单
orderCostCreateReq.setBillType(1);
orderCostCreateReq.setProductId(accountRequest.getProductId());
if(StringUtils.isNotBlank(accountRequest.getAddInfo())) {
orderCostCreateReq.setExtInfo(accountRequest.getAddInfo());
}
orderCostCreateReq.setNote(accountRequest.getNote());
orderCostCreateReqs.add(orderCostCreateReq);
} else {
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
......@@ -539,7 +426,7 @@ public class OrderSdkAdapter {
* @return
*/
private Integer getCostType(QueryOrderAccountType queryOrderAccountType) {
// 订单费用类型 1=包装费,2=运费,3=餐盒单价,4=餐盒数量,5=会员卡费用,10=麦咖啡月卡
// 订单费用类型 1=包装费,2=运费,3=餐盒单价,4=餐盒数量,5=会员卡费用
Integer type = 0;
String code = queryOrderAccountType.getCode();
......@@ -553,12 +440,6 @@ public class OrderSdkAdapter {
case "CARD_ORIGINAL_AMOUNT":
type = 5;
break;
case "WITH_ORDER_BUY_COUPON_FEE":
type = 10;
break;
case "WITH_ORDER_BUY3_SEND1_FEE":
type = 11;
break;
default:
break;
}
......@@ -826,9 +707,7 @@ public class OrderSdkAdapter {
}
accountBean.setSequence(orderSettlementResp.getProductSeq());
accountBean.setType(getOldOrderAccountType(orderSettlementResp.getSettlementType()));
accountBean.setAddInfo(orderSettlementResp.getExtInfo());
// accountBean.setAddInfo("");
accountBean.setAddInfo(orderSettlementResp.getExtInfo());
accountBean.setAddInfo("");
accountBean.setPlatformDiscountAmount(orderSettlementResp.getPlatformDiscountAmount());
accountBean.setShopDiscountAmount(orderSettlementResp.getShopDiscountAmount());
accountList.add(accountBean);
......@@ -855,16 +734,9 @@ public class OrderSdkAdapter {
}
if (orderCostResp.getCostType() == 5) {
accountBean.setType(OldOrderAccountType.CARD_ORIGINAL_AMOUNT.getCode());
}
if (orderCostResp.getCostType() == 7) {
}if (orderCostResp.getCostType() == 7) {
accountBean.setType(OldOrderAccountType.DRIVER_FEE.getCode());
}
if (orderCostResp.getCostType() == 10) {
accountBean.setType(OldOrderAccountType.WITH_ORDER_BUY_COUPON_FEE.getCode());
}
if (orderCostResp.getCostType() == 11) {
accountBean.setType(OldOrderAccountType.WITH_ORDER_BUY3_SEND1_FEE.getCode());
}
accountBean.setAddInfo("");
accountList.add(accountBean);
}
......@@ -888,16 +760,6 @@ public class OrderSdkAdapter {
String partnerProductId = orderItem.getProductId() + "_" + orderItem.getProductSeq();
List<OrderItemResp> comboProducts = orderItemList.stream().filter(item -> ObjectUtils.equals(partnerProductId, item.getParentProductId())).collect(Collectors.toList());
comboProducts.forEach(combo -> productBean.getComboProduct().add(getOldOrderProduct(orderSettlementResps, combo)));
if(CollectionUtils.isNotEmpty(productBean.getComboProduct())) {
for(QueryOrdersResponse.DataBean.OrderBean.ProductBean comboProductBean : productBean.getComboProduct()) {
if(ObjectUtils.equals(ProductTypeEnum.MATERIAL_PRODUCT.getCode(), comboProductBean.getProductType())) {
comboProductBean.setMaterialProduct(new ArrayList<>());
String addProductId = comboProductBean.getProductId() + "_" + comboProductBean.getOpid();
List<OrderItemResp> materialProducts = orderItemList.stream().filter(item -> ObjectUtils.equals(addProductId, item.getParentProductId())).collect(Collectors.toList());
materialProducts.forEach(material -> comboProductBean.getMaterialProduct().add(getOldOrderProduct(new ArrayList<>(), material)));
}
}
}
}
if (ObjectUtils.equals(ProductTypeEnum.MATERIAL_PRODUCT.getCode(), orderItem.getProductType())) {
// 获取加料子商品列表
......@@ -944,6 +806,7 @@ public class OrderSdkAdapter {
// 拼单类型商品加购人相关信息
productBean.setUserId(orderItemResp.getUserId());
productBean.setOpenId(orderItemResp.getOpenId());
productBean.setNickName(orderItemResp.getNickName());
productBean.setPhotoUrl(orderItemResp.getPhotoUrl());
......@@ -960,7 +823,7 @@ public class OrderSdkAdapter {
productDiscount.setDiscountAmount(orderSettlementResp.getShopDiscountAmount());
//无数据
productDiscount.setCustomerCode("");
productDiscount.setAddInfo(orderSettlementResp.getExtInfo());
productDiscount.setAddInfo("");
productDiscount.setProductId(orderSettlementResp.getProductId());
discountList.add(productDiscount);
}
......@@ -1200,40 +1063,15 @@ public class OrderSdkAdapter {
data.setExpressChannelName(orderInfoReqs.getExpressChannelName());
//发票信息
data.setOrderInvoice(orderInfoReqs.getOrderInvoice());
// 买一赠一寄件信息
data.setOrderSendCouponRespList(orderInfoReqs.getOrderSendCouponRespList()); data.setPayChannelType(orderInfoReqs.getPayChannelType());
data.setPickUpGoodsNo(orderInfoReqs.getPickUpGoodsNo());
//todo:混合支付
if (CollectionUtils.isNotEmpty(orderInfoReqs.getOrderPayItemCreateReqList())) {
data.setOrderPayItem(this.getOrderItemPayList(orderInfoReqs.getOrderPayItemCreateReqList()));
}
data.setPayChannelType(orderInfoReqs.getPayChannelType());
//订单类型回传
if (orderInfoReqs.getMarketingType() != null) {
data.setMarketingType(ClassUtils.toByte(orderInfoReqs.getMarketingType()));
}
data.setPickUpGoodsNo(orderInfoReqs.getPickUpGoodsNo());
return data;
}
/**
* 混合支付转换
* @param OrderPayItemReqs
*/
private List<QueryOrdersResponse.DataBean.OrderBean.OrderPayItem> getOrderItemPayList(List<OrderPayItemReqs> OrderPayItemReqs) {
List<QueryOrdersResponse.DataBean.OrderBean.OrderPayItem> OrderPayItemList = new ArrayList<>(2);
for (OrderPayItemReqs orderPayItemReq : OrderPayItemReqs) {
QueryOrdersResponse.DataBean.OrderBean.OrderPayItem orderPayItem = new QueryOrdersResponse.DataBean.OrderBean.OrderPayItem();
orderPayItem.setOrderCode(orderPayItemReq.getOrderCode());
orderPayItem.setOrderPayItemCode(orderPayItemReq.getOrderPayItemCode());
orderPayItem.setPayAmount(orderPayItemReq.getPayAmount());
orderPayItem.setPayChannelName(orderPayItemReq.getPayChannelName());
orderPayItem.setPayChannelType(orderPayItemReq.getPayChannelType());
OrderPayItemList.add(orderPayItem);
}
return OrderPayItemList;
}
public QueryOrdersResponse convent2QueryOrdersResponse(BaseResponse<QueryOrderForUserResp> baseResponse) {
QueryOrdersResponse response = new QueryOrdersResponse();
response.setErrcode(Integer.parseInt(baseResponse.getCode()));
......@@ -1333,9 +1171,6 @@ public class OrderSdkAdapter {
case "COUPON":
type = 10;
break;
case "FREIGHT_COUPON":
type = 99;
break;
case "PRODUCT_COUPON":
type = 118;
break;
......@@ -1384,12 +1219,6 @@ public class OrderSdkAdapter {
case "MEMBER_PRICE_DISCOUNT":
type=220;
break;
case "GATHER_SPOT":
type=221;
break;
case "BUY3_SEND1":
type=35;
break;
default:
break;
}
......@@ -1670,9 +1499,6 @@ public class OrderSdkAdapter {
activityUpdateStockRequest.setPartnerCode(orderBean.getCompanyId());
activityUpdateStockRequest.setStoreId(orderBean.getShopId());
activityUpdateStockRequest.setVer("1");
// add by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
activityUpdateStockRequest.setUserId(orderBean.getUserId());
activityUpdateStockRequest.setOrderCreateTime(DateUtil.getCurrentDate(DateUtil.FORMAT_yyyyMMdd_date));
return activityUpdateStockRequest;
}
......@@ -1958,9 +1784,6 @@ public class OrderSdkAdapter {
case 10:
newOrderAccountType = OldOrderAccountType.COUPON.getCode();
break;
case 35:
newOrderAccountType = OldOrderAccountType.BUY3_SEND1.getCode();
break;
case 118:
newOrderAccountType = OldOrderAccountType.PRODUCT_COUPON.getCode();
break;
......@@ -1993,13 +1816,8 @@ public class OrderSdkAdapter {
break;
case 205:
newOrderAccountType=OldOrderAccountType.TOTAL_DISCOUNT.getCode();
break;
case 220:
newOrderAccountType=OldOrderAccountType.MEMBER_PRICE_DISCOUNT.getCode();
break;
case 99:
newOrderAccountType=OldOrderAccountType.FREIGHT_COUPON.getCode();
break;
default:
break;
}
......@@ -2684,54 +2502,6 @@ public class OrderSdkAdapter {
return originalAmount;
}
private Long updateMCCafeOrderItemsAndSettlements(List<OrderItemCreateReq> orderItemList, List<OrderSettlementCreateReq> orderSettlementCreateReqList, List<OrderCostCreateReq> orderCostCreateReqs,
List<CreateOrderProductRequest> products, List<CreateOrderAccountRequest> accounts, String partnerId) {
Long originalAmount = 0L;
// 更新订单费用信息
originalAmount = convertCreateOrderCost(originalAmount, orderSettlementCreateReqList, orderCostCreateReqs, accounts);
// 更新商品属性信息
if (CollectionUtils.isEmpty(products)) {
return originalAmount;
}
Integer index = 1;
Integer comboIndex = 1;
for (CreateOrderProductRequest productRequest : products) {
// 普通商品 订单转换
productRequest.setOpid(index);
originalAmount += updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, productRequest, partnerId, "", false);
// 如果是套餐商品,需要转换当前商品行子集ComboProduct&GroupProduct(固定商品、可选商品)
if (ObjectUtils.equals(ProductTypeEnum.SETMEAL_PRODUCT.getCode(), productRequest.getProductType()) || ObjectUtils.equals(ProductTypeEnum.SETMEAL_UPPRICE_PRODUCT.getCode(), productRequest.getProductType())) {
// 父类商品productId=productId+seq
String parentProductId = productRequest.getProductId() + "_" + index;
if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) {
for(CreateOrderProductRequest combo : productRequest.getComboProduct()) {
combo.setOpid(comboIndex);
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, combo, partnerId, parentProductId, false);
if(CollectionUtils.isNotEmpty(combo.getMaterialProduct())) {
String addProductId = combo.getProductId() + "_" + comboIndex;
for(CreateOrderProductRequest material : combo.getMaterialProduct()) {
material.setSpecification(material.getProductId());
material.setSpecificationName(material.getProductName());
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, material, partnerId, addProductId, true);
}
}
comboIndex++;
}
}
} else if(CollectionUtils.isNotEmpty(productRequest.getMaterialProduct())) {
// 父类商品productId=productId+seq
String addProductId = productRequest.getProductId() + "_" + index;
for (CreateOrderProductRequest material: productRequest.getMaterialProduct()){
material.setSpecification(material.getProductId());
material.setSpecificationName(material.getProductName());
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, material, partnerId, addProductId, true);
}
}
index++;
}
return originalAmount;
}
/**
* 更新当前商品行,订单商品明细和优惠明细
*
......@@ -2852,9 +2622,6 @@ public class OrderSdkAdapter {
extInfo.setThirdCensusCategoryId(product.getClassificationId());
extInfo.setThirdCensusCategoryName(product.getClassificationName());
}
if(CollectionUtils.isNotEmpty(product.getSpecialAttrs())) {
extInfo.setSpecialAttrs(product.getSpecialAttrs());
}
if (0 != product.getTax()){
extInfo.setTax(product.getTax());
}
......@@ -2869,6 +2636,14 @@ public class OrderSdkAdapter {
extInfo.setProductGroupList(product.getProductGroupList());
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(extInfo));
// 拼单加购人信息 add by miaohui 2020.10.12 start
orderItemCreateReq.setUserId(product.getUserId());
orderItemCreateReq.setOpenId(product.getOpenId());
orderItemCreateReq.setNickName(product.getNickName());
orderItemCreateReq.setPhotoUrl(product.getPhotoUrl());
// 拼单加购人信息 add by miaohui 2020.10.12 end
orderItemList.add(orderItemCreateReq);
if (product.getTotalDiscountAmount() != null && product.getTotalDiscountAmount() > 0L && !isMaterial) {
//优惠信息转换
......@@ -2903,7 +2678,6 @@ public class OrderSdkAdapter {
orderSettlementCreateReq.setIsOnline(true);
orderSettlementCreateReq.setSettlementType(getDiscountType(accountRequest.getAccountType()));
orderSettlementCreateReq.setNote(accountRequest.getName());
orderSettlementCreateReq.setExtInfo(accountRequest.getAddInfo());
orderSettlementCreateReqList.add(orderSettlementCreateReq);
}
......@@ -3223,10 +2997,6 @@ public class OrderSdkAdapter {
name ="审核未通过";
break;
}
case 8: {
name ="撤单";
break;
}
}
return name;
}
......
......@@ -185,6 +185,11 @@ public class CreateOrderProductRequest extends BaseConfig {
private String userId;
/**
* 加购人openId
*/
private String openId;
/**
* 加购人昵称
*/
private String nickName;
......
......@@ -567,6 +567,11 @@ public class QueryOrdersResponse {
private String userId;
/**
* 加购人openId
*/
private String openId;
/**
* 加购人昵称
*/
private String nickName;
......
......@@ -42,6 +42,11 @@ public class CartGoods {
private String userId;
/**
* 购买人的的openId
*/
private String openId;
/**
* 购买人的的头像
*/
private String photoUrl;
......
......@@ -15,6 +15,7 @@ import lombok.Data;
@Data
public class CollageMemberState {
private String userId;
private String openId;
private String nickName;
private String photoUrl;
private Boolean state;
......
......@@ -50,6 +50,11 @@ public class CollageOrderDto
private String currentUserId;
/**
* 拼单当前用户openId
*/
private String openId;
/**
* 拼单当前用户昵称
*/
private String nickName;
......
......@@ -511,6 +511,7 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
public void initCollageMemberState(String collageMemberStateHashKey, CollageOrderDto collageOrderDto) {
CollageMemberState collageMemberState = new CollageMemberState();
collageMemberState.setUserId(collageOrderDto.getCurrentUserId());
collageMemberState.setOpenId(collageOrderDto.getOpenId());
collageMemberState.setNickName(collageOrderDto.getNickName());
collageMemberState.setPhotoUrl(collageOrderDto.getPhotoUrl());
collageMemberState.setState(CollageMemberStateType.SHOPPING.getValue());
......@@ -526,6 +527,7 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
public void addCollageMemberState(String collageMemberStateHashKey, CollageOrderDto collageOrderDto) {
CollageMemberState collageMemberState = new CollageMemberState();
collageMemberState.setUserId(collageOrderDto.getCurrentUserId());
collageMemberState.setOpenId(collageOrderDto.getOpenId());
collageMemberState.setNickName(collageOrderDto.getNickName());
collageMemberState.setPhotoUrl(collageOrderDto.getPhotoUrl());
collageMemberState.setState(CollageMemberStateType.SHOPPING.getValue());
......
......@@ -20,7 +20,6 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.order.*;
import cn.freemud.entities.dto.order.CreateOrderAccountDto;
import cn.freemud.entities.dto.order.CreateOrderProductDto;
import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.promotion.OrderBeanRequest;
import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
......@@ -28,43 +27,37 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.entities.vo.encircle.PreviewOrderInfoVo;
import cn.freemud.enums.*;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.*;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.OrderSourceType;
import cn.freemud.enums.OrderType;
import cn.freemud.enums.PayStatus;
import cn.freemud.enums.QueryOrderStatus;
import cn.freemud.enums.RefundStatus;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.request.wechat.dto.SignMessageBuilder;
import cn.freemud.service.impl.OrderCommonService;
import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.entities.PayItem;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType;
import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq;
import com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO;
import com.freemud.sdk.api.assortment.order.request.payment.ProductVO;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderFlowResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
......@@ -84,12 +77,13 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.awt.geom.Point2D;
import java.io.*;
import java.math.BigDecimal;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -98,10 +92,6 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
@Component
public class OrderAdapter {
private static FastDateFormat yyyyMMddHHmmss = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
public final static String TAKECODEKEY = "takecode";
public static final String REDIS_KEY_SEP = ":";
public static final String numberChar = "0123456789";
public static final String numberCharWithoutZero = "12345";
private static String SPMCHID = "1237482502";
// private static String SPWXAPPID = "wx8244c7c48c7d45de";
......@@ -113,8 +103,6 @@ public class OrderAdapter {
@Value("${mccafe.partner.id}")
private String mcCafePartnerId;
@Value("${mcCafe.refund.interval}")
private String mccafeRefundInterval;
@Value("${saas.reverseNotifyiDcUrl}")
private String reverseNotifyiDcUrl;
......@@ -172,25 +160,21 @@ public class OrderAdapter {
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : cartGoodsDetailDtos) {
Integer qty = cartGoodsDetailDto.getQty();
if (qty > 0) {
CreateOrderProductRequest createOrderProductDto = null;
if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) {
createOrderProductDto = convent2MCCafeOrderProduct(cartGoodsDetailDto);
} else {
createOrderProductDto = convent2OrderProduct(cartGoodsDetailDto);
}
CreateOrderProductRequest createOrderProductDto = convent2OrderProduct(cartGoodsDetailDto);
createOrderProductDto.setIgnoreProductPrice(1);
products.add(createOrderProductDto);
if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getActivityDiscountsDtos())) {
List<CreateOrderAccountRequest> accounts = null;
if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) {
createOrderProductDto.setAccounts(getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos()));
accounts = getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos());
} else {
createOrderProductDto.setAccounts(getAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos()));
accounts = getAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos());
}
createOrderProductDto.setAccounts(accounts);
}
}
}
createOrderDto.setProducts(products);
boolean hasDeliveryMonthCard = false;
for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId(activityDiscountsDto.getActivityCode())
......@@ -199,23 +183,6 @@ public class OrderAdapter {
.accountType(getQueryOrderAccountType(getOrderAccountType(activityDiscountsDto.getActivityType())))
.sequence(orderAccountIndex++)
.build();
if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) {
JSONObject jsonObject = new JSONObject();
if(ActivityTypeEnum.TYPE_11.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_12.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
} else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("customerCode", activityDiscountsDto.getTenderId());
if(null != activityDiscountsDto.getExtendType() && activityDiscountsDto.getExtendType() == 2) {
hasDeliveryMonthCard = true;
}
}
if(null != activityDiscountsDto.getExtendType()) {
jsonObject.put("extendType", activityDiscountsDto.getExtendType());
}
createOrderAccountDto.setAddInfo(jsonObject.toJSONString());
}
orderAccountDtos.add(createOrderAccountDto);
}
......@@ -228,9 +195,6 @@ public class OrderAdapter {
.sequence(orderAccountIndex++)
.actualPrice(discountDeliveryAmount)
.build();
if(hasDeliveryMonthCard && StringUtils.isNotBlank(storeResponseDto.getBenefitCardDiscountAmount())) {
createOrderAccountDto.setNote((Integer.parseInt(storeResponseDto.getBenefitCardDiscountAmount())*100)+"");
}
orderAccountDtos.add(createOrderAccountDto);
}
if (packageAmount > 0) {
......@@ -277,17 +241,6 @@ public class OrderAdapter {
.build();
orderAccountDtos.add(createOrderAccountDto);
}
if(null != shoppingCartGoodsDto.getPayCardFee() && 0l != shoppingCartGoodsDto.getPayCardFee() && StringUtils.isNotBlank(createOrderVo.getCardKeyCode())) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId("")
.name("啡常月享卡")
.price(shoppingCartGoodsDto.getPayCardFee())
.accountType(QueryOrderAccountType.MCCAFE_MONTH_CARD)
.sequence(orderAccountIndex++)
.productId(createOrderVo.getCardKeyCode())
.build();
orderAccountDtos.add(createOrderAccountDto);
}
createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList());
//设置库存扣减
......@@ -316,24 +269,9 @@ public class OrderAdapter {
createOrderDto.setActivityUpdateStockRequest(activityUpdateStockRequest);
}
createOrderDto.setPayChannelType(createOrderVo.getPayChannelType());
// 买一赠一寄件信息
if(createOrderVo.getChooseGoods() != null && !createOrderVo.getChooseGoods().isEmpty()){
createOrderDto.setChooseGoods(JSONArray.parseArray(JSONObject.toJSONString(createOrderVo.getChooseGoods()), BaseCreateOrderRequest.ChooseGood.class));
}
return createOrderDto;
}
private BaseCreateOrderRequest.OrderOtherInfo getOrderOtherInfo(ShoppingCartGoodsDto shoppingCartGoodsDto) {
BaseCreateOrderRequest.SendPoint sendPoint = new BaseCreateOrderRequest.SendPoint();
if (sendPoint != null){
BeanUtil.convertBean(shoppingCartGoodsDto.getSendPoint(), sendPoint);
}
BaseCreateOrderRequest.OrderOtherInfo orderOtherInfo = new BaseCreateOrderRequest.OrderOtherInfo();
orderOtherInfo.setPoint(sendPoint);
return orderOtherInfo;
}
private List<CreateOrderAccountRequest> getMaterialAccounts(CreateOrderProductRequest createOrderProductDto, ShoppingCartGoodsDto.CartGoodsDetailDto material) {
List<CreateOrderAccountRequest> orderAccountDtos = createOrderProductDto.getAccounts();
if (CollectionUtils.isEmpty(orderAccountDtos)){
......@@ -408,14 +346,6 @@ public class OrderAdapter {
.discountQty((activityDiscountsDto.getActualActivityGoodsNumber()==null||activityDiscountsDto.getActualActivityGoodsNumber()==0)
?createOrderProductDto.getNumber():activityDiscountsDto.getActualActivityGoodsNumber())
.build();
JSONObject jsonObject = new JSONObject();
if(ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
}
if(null != activityDiscountsDto.getExtendType()) {
jsonObject.put("extendType", activityDiscountsDto.getExtendType());
}
createOrderAccountDto.setAddInfo(jsonObject.toJSONString());
orderAccountDtos.add(createOrderAccountDto);
}
return orderAccountDtos;
......@@ -620,19 +550,12 @@ public class OrderAdapter {
createOrderDto.setLongitude(longitude);
createOrderDto.setOrderType(convent2OrderTypeEnum(orderType));
createOrderDto.setPayType(QueryPayType.ONLINE_PAY);
//电子风味卡
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
createOrderDto.setPayChannel(PayChannelType.USVCP.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.USVCP.getName());
createOrderDto.setPayChannelType(PayChannelType.USVCP.getIndex());
}
if (StringUtils.isNotBlank(createOrderVo.getChannel())) {
PayChannelType channelType = PayChannelType.getByIndex(Byte.parseByte(createOrderVo.getChannel()));
if (channelType!=null) {
createOrderDto.setPayChannel(channelType.getEbcode());
createOrderDto.setPayChannelName(channelType.getName());
createOrderDto.setPayChannelType(channelType.getIndex());
}
createOrderDto.setPayChannel(PayChannel.USVCP.getCode());
createOrderDto.setPayChannelName(PayChannel.USVCP.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
createOrderDto.setPayChannel("10102");
createOrderDto.setPayChannelName("储值卡支付");
}
createOrderDto.setSource(OrderSourceType.SAAS.getCode());
createOrderDto.setSourceName(OrderSourceType.SAAS.getDesc());
......@@ -646,6 +569,7 @@ public class OrderAdapter {
createOrderDto.setBarCounter(createOrderVo.getTableNumber());
createOrderDto.setOperator(createOrderVo.getUserName());
createOrderDto.setMenuType(BusinessTypeEnum.getByCode(createOrderVo.getMenuType()));
createOrderDto.setMarketingType(createOrderVo.getMarketingType());
return createOrderDto;
}
......@@ -1128,24 +1052,21 @@ public class OrderAdapter {
responseVo.setPayStatusDesc(Optional.ofNullable(PayStatus.getByCode(ordersBean.getPayStatus()))
.map(PayStatus::getDesc).orElse(""));
responseVo.setPayVoucher(orderExtInfoDto != null ? orderExtInfoDto.getPayTransId() : "");
if(mcCafePartnerId.equals(ordersBean.getCompanyId())) {
responseVo.setPayVoucherBarCode(Base64.getEncoder().encodeToString(
BarcodeUtil.generateBarCode128(responseVo.getPayVoucher(),null,null, true, true)));
}
responseVo.setPayCreateTime(orderExtInfoDto != null ? orderExtInfoDto.getPayDate() : "");
responseVo.setPayChannel(ordersBean.getPayChannel());
if (StringUtils.isNotBlank(ordersBean.getPayChannel())) {
PayChannelType ebcode = PayChannelType.getByEbcode(ordersBean.getPayChannel());
if (ebcode!=null) {
responseVo.setOrderPayType(ebcode.getName());
}
else {
responseVo.setOrderPayType(PayChannelType.WECHAT.getName());
if ("10102".equals(ordersBean.getPayChannel())) {
responseVo.setOrderPayType("储值卡支付");
} else if (PayChannel.ALIPAY.getCode().equals(ordersBean.getPayChannel())) {
responseVo.setOrderPayType("支付宝支付");
} else if (PayChannel.WXPAY.getCode().equals(ordersBean.getPayChannel())) {
responseVo.setOrderPayType("微信支付");
} else if (Objects.equals(PayChannel.USVCP.getCode(), ordersBean.getPayChannel())) {
responseVo.setOrderPayType("电子风味卡支付");
} else {
responseVo.setOrderPayType("微信支付");
}
}
else if (ordersBean.getOrderPayItem().size()>0) {
responseVo.setOrderPayType(PayChannelType.COMB.getName());
}
else {
if (OrderSourceType.ALIPAY.getCode().equals(ordersBean.getSource())) {
responseVo.setOrderPayType("支付宝支付");
......@@ -1178,9 +1099,6 @@ public class OrderAdapter {
if (CollectionUtils.isNotEmpty(ordersBean.getRefundList())) {
responseVo.setRefundTips(orderViewStatusDto.getRefundStatusText());
}
if(OrderStatus.COMPLETE.getCode().equals(ordersBean.getStatus()) && null != ordersBean.getGmtCompleteTime() && 0l != ordersBean.getGmtCompleteTime()) {
responseVo.setCompleteTime(DateUtil.convert2String(new Date(ordersBean.getGmtCompleteTime()), "yyyy-MM-dd HH:mm:ss"));
}
responseVo.setTakeMealFlows(getTakeMealFlows(ordersBean));
responseVo.setRiderName(orderViewStatusDto.getRiderName());
responseVo.setRiderText(orderViewStatusDto.getRiderText());
......@@ -1225,36 +1143,7 @@ public class OrderAdapter {
responseVo.setModifiedTime(DateUtil.convert2String(new Date(ordersBean.getGmtModified()), "yyyy-MM-dd HH:mm:ss"));
}
if (ordersBean.getHasRefund() != null && ordersBean.getHasRefund() && CollectionUtils.isNotEmpty(ordersBean.getRefundList())) {
if(mcCafePartnerId.equals(ordersBean.getCompanyId())) {
QueryOrdersResponse.DataBean.OrderBean.RefundBean latestRefundBean = ordersBean.getRefundList().get(0);
for(int i=0;i<ordersBean.getRefundList().size();i++) {
QueryOrdersResponse.DataBean.OrderBean.RefundBean refundBean = ordersBean.getRefundList().get(i);
if (RefundStatus.COMPLETE_REFUND.getCode().equals(refundBean.getStatus())
|| RefundStatus.APPLY_REFUND.getCode().equals(refundBean.getStatus())) {
responseVo.setRid(refundBean.getRid());
responseVo.setRefundStatus(refundBean.getStatus());
responseVo.setRefundStatusDesc(Optional.ofNullable(RefundStatus.getByCode(refundBean.getStatus()))
.map(RefundStatus::getDesc).orElse(""));
responseVo.setRefundReason(refundBean.getReason());
String refundCreateTime = DateUtil.convert2String(new Date(Long.parseLong(refundBean.getCreateTime())),DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
responseVo.setRefundCreateTime(refundCreateTime);
break;
} else {
if(new Date(Long.valueOf(refundBean.getCreateTime())).after(new Date(Long.valueOf(latestRefundBean.getCreateTime())))) {
latestRefundBean = refundBean;
}
}
}
if(StringUtils.isBlank(responseVo.getRid())) {
if(new Date().getTime() - Long.parseLong(latestRefundBean.getCreateTime()) > Long.valueOf(mccafeRefundInterval)) {
responseVo.setAfterRefundInterval(true);
}
responseVo.setRefundIntervalTime(Long.valueOf(latestRefundBean.getCreateTime()) + Long.valueOf(mccafeRefundInterval));
}
} else {
if (CollectionUtils.isNotEmpty(ordersBean.getRefundList())) {
QueryOrdersResponse.DataBean.OrderBean.RefundBean refundBean = ordersBean.getRefundList().get(0);
responseVo.setRid(refundBean.getRid());
responseVo.setRefundStatus(refundBean.getStatus());
......@@ -1264,35 +1153,13 @@ public class OrderAdapter {
String refundCreateTime = DateUtil.convert2String(new Date(Long.parseLong(refundBean.getCreateTime())),DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
responseVo.setRefundCreateTime(refundCreateTime);
}
} else {
responseVo.setAfterRefundInterval(true);
}
//如果是已取消、拒单、已完成的订单,则设置不能申请取消订单
if(OrderStatus.REFUSE.getCode().equals(ordersBean.getStatus())
|| OrderStatus.CALCEL.getCode().equals(ordersBean.getStatus())
|| OrderStatus.COMPLETE.getCode().equals(ordersBean.getStatus())) {
responseVo.setAfterRefundInterval(false);
}
//商品信息转换
convent2ProductVos(ordersBean.getProductList(), responseVo);
responseVo.setOrderAccounts(convent2OrderAccountVo(ordersBean.getApportionDetails()));
if(CollectionUtils.isNotEmpty(ordersBean.getOrderCostDetailList())) {
ordersBean.getOrderCostDetailList().forEach(o -> {
if(o.getCostType() == 10 && o.getBillType() == 1) {
ProductVo productVo = new ProductVo();
productVo.setQty(1);
productVo.setName(o.getCostName());
productVo.setSpuName(o.getCostName());
productVo.setFinalPrice(o.getCostAmount().longValue());
productVo.setOriginalPrice(o.getActualCostAmount().longValue());
responseVo.getProducts().add(productVo);
}
});
}
Long promotionAmount = 0L;
Long deliveryAmount = 0L;
Long packageAmount = 0L;
Long originalDeliveryAmount = 0L;
//限时特价优惠金额
Long discountLimitAmount = 0L;
Long couponAmount = 0L;
......@@ -1319,7 +1186,6 @@ public class OrderAdapter {
if (OrderAccountType.DELIVERY_AMOUNT.getCode().equals(accountBean.getType())) {
//deliveryAmount = accountBean.getPrice();
deliveryAmount = null != accountBean.getActualCostAmount() ? accountBean.getActualCostAmount() : accountBean.getPrice();
originalDeliveryAmount = accountBean.getPrice();
}
if (OrderAccountType.PACK_AMOUNT.getCode().equals(accountBean.getType())) {
packageAmount = accountBean.getPrice();
......@@ -1342,13 +1208,9 @@ public class OrderAdapter {
customerScorePrompt = decimalFormat.format(customerScoreAmount / 100.0);
// customerScorePrompt = "积分抵扣-¥" + customerScoreAmountStr;
}
if (Integer.valueOf(99).equals(accountBean.getType())) {
responseVo.setFreightCouponName(accountBean.getName());
}
}
}
responseVo.setDeliveryAmount(deliveryAmount);
responseVo.setOriginalDeliveryAmount(originalDeliveryAmount);
responseVo.setPackageAmount(packageAmount);
responseVo.setDiscountLimitAmount(discountLimitAmount);
responseVo.setFullDiscountAmount(fullDiscountAmount);
......@@ -1372,6 +1234,7 @@ public class OrderAdapter {
if (enableRefundCodes.contains(ordersBean.getStatus()) && PayStatus.HAVE_PAID.getCode().equals(ordersBean.getPayStatus())) {
responseVo.setEnableRefund(true);
}
responseVo.setMarketingType(ordersBean.getMarketingType());
list.add(responseVo);
});
return list;
......@@ -1550,7 +1413,7 @@ public class OrderAdapter {
public OrderViewStatusDto getOrderViewStatusDesc(QueryOrdersResponse.DataBean.OrderBean orderBean, String wxAppId) {
OrderViewStatusDto orderViewStatusDto = new OrderViewStatusDto();
LogUtil.info("getOrderStatusDesc start ", JSON.toJSONString(orderBean),"");
LogUtil.info("getOrderStatusDesc start ", new Gson().toJson(orderBean), new Gson().toJson(orderBean));
QueryOrdersResponse.DataBean.OrderBean.RefundBean refundBean = null;
if (CollectionUtils.isNotEmpty(orderBean.getRefundList())) {
refundBean = orderBean.getRefundList().get(0);
......@@ -1956,39 +1819,18 @@ public class OrderAdapter {
// 套餐商品设置子商品节点
if (ObjectUtils.equals(ProductTypeEnum.SETMEAL_PRODUCT.getCode(), productBean.getProductType()) || ObjectUtils.equals(ProductTypeEnum.SETMEAL_UPPRICE_PRODUCT.getCode(), productBean.getProductType())) {
List<ProductVo> setMealProducts = new ArrayList<>();
productBean.getComboProduct().forEach(product -> {
if(!"无".equals(product.getSpecificationName())) {
ProductVo comboProduct = convent2ProductVo(product);
setMealProducts.add(comboProduct);
if (ObjectUtils.equals(ProductTypeEnum.MATERIAL_PRODUCT.getCode(), comboProduct.getProductType()) && CollectionUtils.isNotEmpty(product.getMaterialProduct())) {
List<ProductVo> setMaterialProducts = new ArrayList<>();
product.getMaterialProduct().forEach(materialProduct -> {
ProductVo material = convent2ProductVo(materialProduct);
material.setOriginalTotalAmount(new BigDecimal(material.getOriginalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
material.setSaleTotalAmount(new BigDecimal(material.getFinalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
setMaterialProducts.add(material);
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).add(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).add(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).add(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).add(new BigDecimal(material.getSaleTotalAmount())).longValue());
});
comboProduct.setSetMaterialProducts(setMaterialProducts);
}
}
});
productBean.getComboProduct().forEach(product -> setMealProducts.add(convent2ProductVo(product)));
productVo.setSetMealProducts(setMealProducts);
}
if (ObjectUtils.equals(ProductTypeEnum.MATERIAL_PRODUCT.getCode(), productBean.getProductType())) {
List<ProductVo> setMaterialProducts = new ArrayList<>();
productBean.getMaterialProduct().forEach(product -> {
ProductVo material = convent2ProductVo(product);
material.setOriginalTotalAmount(new BigDecimal(material.getOriginalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
material.setSaleTotalAmount(new BigDecimal(material.getFinalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
setMaterialProducts.add(material);
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).add(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).add(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).add(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).add(new BigDecimal(material.getSaleTotalAmount())).longValue());
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).subtract(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).subtract(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).subtract(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).subtract(new BigDecimal(product.getSettlementPrice())).longValue());
});
productVo.setSetMaterialProducts(setMaterialProducts);
}
......@@ -2004,33 +1846,16 @@ public class OrderAdapter {
ProductVo productVo = new ProductVo();
productVo.setId(productBean.getId());
productVo.setPid(StringUtils.isBlank(productBean.getSpecification()) ? productBean.getProductId() : productBean.getSpecification());
String productName = StringUtils.isBlank(productBean.getSpecificationName()) ? productBean.getProductName() : productBean.getSpecificationName();
OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class);
if(CollectionUtils.isNotEmpty(extInfo.getSpecialAttrs())) {
String attr = "";
for (OrderSpecialExtraAttrRequest special : extInfo.getSpecialAttrs()) {
if(special.getAttributeName().indexOf("冰") >= 0) {
attr = special.getAttributeName();
break;
}
}
if(attr.length() > 0) {
productName += "("+attr+")";
}
}
if(CollectionUtils.isNotEmpty(productBean.getMaterialProduct())) {
for (QueryOrdersResponse.DataBean.OrderBean.ProductBean material : productBean.getMaterialProduct()) {
productName += "/"+material.getSpecificationName();
}
}
productVo.setName(productName);
productVo.setName(StringUtils.isBlank(productBean.getSpecificationName()) ? productBean.getProductName() : productBean.getSpecificationName());
productVo.setSpuName(productBean.getProductName());
productVo.setPicture(productBean.getPicture());
productVo.setSequence(productBean.getSequence());
productVo.setQty(productBean.getNumber());
productVo.setSpecification("");
productVo.setUserId(productBean.getUserId());
productVo.setOpenId(productBean.getOpenId());
productVo.setNickName(productBean.getNickName());
productVo.setPhotoUrl(productBean.getPhotoUrl());
List<InventedParentActivityVo> inventedParentActivityVos = new ArrayList<>();
String attributeNames = "";
if (StringUtils.isNotBlank(productBean.getAddInfo()) && productBean.getAddInfo().contains("attributeNames")) {
......@@ -2077,15 +1902,10 @@ public class OrderAdapter {
discountTotalAmount = discountTotalAmount + productDiscount.getDiscountAmount()*productDiscount.getDiscountQty();
if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
hasProductCoupon = true;
Integer extendType = StringUtils.isBlank(productDiscount.getAddInfo())?null:JSON.parseObject(productDiscount.getAddInfo()).getInteger("extendType");
if(null != extendType && (3 == extendType || 4 == extendType || 5 == extendType)) {
productVo.setCouponName(productDiscount.getDiscountDesc());
} else {
productVo.setName(productDiscount.getDiscountDesc());
productVo.setSpuName(productDiscount.getDiscountDesc());
productVo.setExtras("");
productVo.setSpecification("");
}
productVo.setName(productDiscount.getDiscountDesc());
productVo.setSpuName(productDiscount.getDiscountDesc());
productVo.setExtras("");
productVo.setSpecification("");
}
if (OrderAccountType.BUYM_SENDN.getCode().equals(productDiscount.getDiscountType())) {
activityType = ActivityTypeEnum.TYPE_61.getCode();
......@@ -2306,42 +2126,6 @@ public class OrderAdapter {
return createOrderProductDemoDto;
}
public CreateOrderProductRequest convent2MCCafeOrderProduct(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
CreateOrderProductRequest createOrderProductDemoDto = convent2MCCafeOrderProductDemo(cartGoodsDetailDto, cartGoodsDetailDto.getProductType());
if(cartGoodsDetailDto.getProductType() != null) {
if(cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT.getCode()
|| cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT_UPPRICE.getCode()) {
createOrderProductDemoDto.setPrice(0l);
//套餐
List<CreateOrderProductRequest> comboProducts = new ArrayList<>();
cartGoodsDetailDto.getComboProducts().forEach(product -> {
CreateOrderProductRequest createOrderComboProduct = convent2MCCafeOrderProductDemo(product, product.getProductType());
comboProducts.add(createOrderComboProduct);
if(CollectionUtils.isNotEmpty(product.getMaterialList())) {
//加料商品
createOrderComboProduct.setProductType(ProductType.MATERIALPRODUCT_UPPRICE.getCode());
List<CreateOrderProductRequest> materialProducts = new ArrayList<>();
product.getMaterialList().forEach(cartMaterial -> {
materialProducts.add(convent2MCCafeOrderProductDemo(cartMaterial, ProductType.LITTLE_MATERIAL_PRODUCT.getCode()));
});
createOrderComboProduct.setMaterialProduct(materialProducts);
}
});
createOrderProductDemoDto.setComboProduct(comboProducts);
}
}
if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getMaterialList())) {
//加料商品
createOrderProductDemoDto.setProductType(ProductType.MATERIALPRODUCT_UPPRICE.getCode());
List<CreateOrderProductRequest> materialProducts = new ArrayList<>();
cartGoodsDetailDto.getMaterialList().forEach(product -> {
materialProducts.add(convent2MCCafeOrderProductDemo(product, ProductType.LITTLE_MATERIAL_PRODUCT.getCode()));
});
createOrderProductDemoDto.setMaterialProduct(materialProducts);
}
return createOrderProductDemoDto;
}
private CreateOrderProductRequest convent2OrderProductMaterial(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
......@@ -2399,42 +2183,10 @@ public class OrderAdapter {
createOrderProductDemoDto.setTaxId(cartGoodsDetailDto.getTaxId());
createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName());
return createOrderProductDemoDto;
}
public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto, Integer productType) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
createOrderProductDemoDto.setProductName(cartGoodsDetailDto.getSpuName());
createOrderProductDemoDto.setSpecification(cartGoodsDetailDto.getSkuId());
createOrderProductDemoDto.setSpecificationName(cartGoodsDetailDto.getSkuName());
createOrderProductDemoDto.setPrice(cartGoodsDetailDto.getOriginalPrice());
createOrderProductDemoDto.setSalePrice(cartGoodsDetailDto.getOriginalPrice());
createOrderProductDemoDto.setTotalDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount() == null ? 0 : cartGoodsDetailDto.getTotalDiscountAmount().longValue());
createOrderProductDemoDto.setNumber(cartGoodsDetailDto.getQty());
createOrderProductDemoDto.setPicture(cartGoodsDetailDto.getPicture());
createOrderProductDemoDto.setAddInfo(cartGoodsDetailDto.getAttributeNames());
createOrderProductDemoDto.setDiscountId(cartGoodsDetailDto.getCouponCode());
createOrderProductDemoDto.setProductType(productType);
createOrderProductDemoDto.setParentProductId(cartGoodsDetailDto.getParentProductId());
createOrderProductDemoDto.setIsFixedProduct(cartGoodsDetailDto.getIsFixedProduct());
createOrderProductDemoDto.setCustomerCode(cartGoodsDetailDto.getCustomerCode());
createOrderProductDemoDto.setProductCode(cartGoodsDetailDto.getProductCode());
createOrderProductDemoDto.setHasStockProudct(cartGoodsDetailDto.isStockLimit());
createOrderProductDemoDto.setWeight(cartGoodsDetailDto.getWeight());
createOrderProductDemoDto.setUnit(cartGoodsDetailDto.getUnit());
createOrderProductDemoDto.setStapleFood(0);
createOrderProductDemoDto.setCategory(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setTax(cartGoodsDetailDto.getTax());
createOrderProductDemoDto.setTaxId(cartGoodsDetailDto.getTaxId());
createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName());
if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getSpecialExtra())) {
createOrderProductDemoDto.setSpecialAttrs(new ArrayList<>());
cartGoodsDetailDto.getSpecialExtra().stream().forEach(o -> {
createOrderProductDemoDto.getSpecialAttrs().add(new OrderSpecialExtraAttrRequest(o.getAttributeId(), o.getAttributeName(), o.getSpecialCode()));
});
}
createOrderProductDemoDto.setUserId(cartGoodsDetailDto.getUserId());
createOrderProductDemoDto.setOpenId(cartGoodsDetailDto.getOpenId());
createOrderProductDemoDto.setNickName(cartGoodsDetailDto.getUserName());
createOrderProductDemoDto.setPhotoUrl(cartGoodsDetailDto.getPhotoUrl());
return createOrderProductDemoDto;
}
......@@ -2457,9 +2209,6 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_32.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON;
}
if (ActivityTypeEnum.TYPE_34.getCode().equals(activityType)) {
return OldOrderAccountType.FREIGHT_COUPON;
}
if (ActivityTypeEnum.TYPE_31.getCode().equals(activityType)) {
return OldOrderAccountType.DISCOUNT_COUPON;
}
......@@ -2788,7 +2537,6 @@ public class OrderAdapter {
orderPayResponse.setPartnerId(partnerId);
orderPayResponse.setOrderId(orderId);
orderPayResponse.setFmId(fmId);
orderPayResponse.setPayMode(PayChannelType.ZERO.getEbcode());
return orderPayResponse;
}
......@@ -3361,57 +3109,12 @@ public class OrderAdapter {
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(AssortmentCustomerInfoVo userLoginInfoDto,CreateOrderVo createOrderVo,
CreateOrderOperateDto createOrderOperateDto, OrderExtInfoDto orderExtInfoDTO){
return this.convertToCreatePrepayRequestDto(createOrderVo.getPartnerId()
, userLoginInfoDto.getWxAppId()
, userLoginInfoDto.getOpenId()
, createOrderVo.getFaceCode()
, createOrderVo.getCardCode()
, null
, createOrderOperateDto.getFatherOrderBean()
, createOrderOperateDto.getProductOrderBean()
, createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount()
, createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount()
, orderExtInfoDTO
, createOrderOperateDto.getFatherOrderBean().getOid()
, null
, createOrderVo.getUnionPayCard()
, createOrderVo.getShopId()
, createOrderVo.getChannel()==null ? "" :createOrderVo.getChannel()
);
}
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(String partnerId
, String wxAppId, String openId
,String faceCode
, String cardCode
, String payCode
, QueryOrdersResponse.DataBean.OrderBean fatherOrderBean
, QueryOrdersResponse.DataBean.OrderBean productOrderBean
, long totalAmount
, int cardAmount
, OrderExtInfoDto orderExtInfoDTO
, String transId
, OrderClientType orderClient
, CreateOrderVo.UnionPayCard unionPayCard
, String storeId
, String channel){
CreatePrepayRequestDto requestDto = new CreatePrepayRequestDto();
requestDto.setPartnerId(partnerId);
requestDto.setWxAppId(wxAppId);
requestDto.setOpenId(openId);
requestDto.setFaceCode(faceCode);
requestDto.setCardCode(cardCode);
requestDto.setPayCode(payCode);
requestDto.setFatherOrderBean(fatherOrderBean);
requestDto.setProductOrderBean(productOrderBean);
requestDto.setTotalAmount(totalAmount);
requestDto.setCardAmount(cardAmount);
requestDto.setOrderExtInfoDTO(orderExtInfoDTO);
requestDto.setTransId(transId);
requestDto.setOrderClient(orderClient);
requestDto.setUnionPayCard(unionPayCard);
requestDto.setStoreId(storeId);
requestDto.setChannel(channel);
return requestDto;
return this.convertToCreatePrepayRequestDto(createOrderVo.getPartnerId(), userLoginInfoDto.getWxAppId(), userLoginInfoDto.getOpenId(),
createOrderVo.getFaceCode(), createOrderVo.getCardCode(), null,
createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(),
createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount(),
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), orderExtInfoDTO,
createOrderOperateDto.getFatherOrderBean().getOid(), null, createOrderVo.getUnionPayCard());
}
/**
......@@ -3434,7 +3137,6 @@ public class OrderAdapter {
return gson.toJson(map);
}
public Integer getNewOrderClient(String name) {
String _name = OrderSourceType.SAAS.getCode();
Integer orderClientType;
......@@ -3490,297 +3192,20 @@ public class OrderAdapter {
return StringUtils.isNotBlank(payChannel) && OrderAdapter.PAY_CODE_10102.equalsIgnoreCase(payChannel);
}
/**
* 混合支付返回的支付参数
* @param payPlatforms
* @return
*/
public OrderPayResponse convent2OrderCombPayResponse(List<CombPayResponse.PayPlatform> payPlatforms,String partnerId) {
CombPayResponse.PayPlatform payPlatform = payPlatforms
.stream()
.filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.orElse(null);
OrderPayResponse responseDto = new OrderPayResponse();
responseDto.setMsg("succ");
responseDto.setPayEbcode(payPlatform.getEbCode());
responseDto.setPayId("");
OrderPayResponse.PayOrderBean payBean = new OrderPayResponse.PayOrderBean();
responseDto.setPayTransId(payPlatform.getTransId());
responseDto.setFmId(payPlatform.getFmTradeNo());
CombPayResponse.PayPlatform.PayOrderBean payOrderBean = payPlatform.getPayOrder();
if (null != payOrderBean) {
payBean.setAppid(payOrderBean.getAppId());
payBean.setNonceStr(payOrderBean.getNonceStr());
payBean.setPackageX(payOrderBean.getPackageX());
payBean.setSign(payOrderBean.getPaySign());
payBean.setSignType(payOrderBean.getSignType());
payBean.setTimestamp(payOrderBean.getTimeStamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean);
}
//供修改订单
for (CombPayResponse.PayPlatform pt : payPlatforms) {
PayItem payItem = new PayItem();
payItem.setFmTradeNo(pt.getFmTradeNo());
payItem.setPayChannelType(PayChannelType.getByEbcode(pt.getEbCode()).getIndex().intValue());
payItem.setTransId(pt.getTransId());
payItem.setPartnerId(partnerId);
responseDto.getPayItem().add(payItem);
}
return responseDto;
}
/**
* @param payChannelType
* @return
* @nots 基础服务映射, 存储数据库用 payChannel 映射 payChannelType java类
*/
public String getPayChannel4SharedOrder(Integer payChannelType) {
String payChannel = "";
switch (payChannelType) {
case 1:
payChannel = "10211";
break;
case 2:
payChannel = "10102";
break;
case 3:
payChannel = "10300";
break;
case 4:
payChannel = "10212";
break;
}
return payChannel;
}
/**
* @param payChannelType
* @return
* @nots 基础支付
*/
public String getEbCode4PayOrderCenter(String payChannelType) {
String ebCode = "";
switch (payChannelType) {
case "1":
ebCode = "10004";
break;
case "2":
ebCode = "10200";
break;
case "3":
ebCode = "10001";
break;
case "4":
ebCode = "";
break;
}
return ebCode;
}
public List<AssortmentOpenPlatformPartnerWxappConfig> cacheSelectDefaultPage(String wxAppId, String type) {
if (!StringUtils.isEmpty(wxAppId) && !StringUtils.isEmpty(type)) {
String hashKey = "ecology:kgd:wxappconfig:open_platform_partner_wxapp_config:appkey_" + wxAppId;
Object value = redisCache.hashGet(hashKey, type);
JSONArray jsonArray = value != null ? JSONArray.parseArray(value.toString()) : new JSONArray();
if (null != jsonArray && jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
if(null != jsonArray && jsonArray.size() >0){
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
jsonObject.remove("@type");
}
}
return (value != null ? JSONObject.parseArray(jsonArray.toString(), AssortmentOpenPlatformPartnerWxappConfig.class) : new ArrayList());
return (value != null ? JSONObject.parseArray(jsonArray.toString(), AssortmentOpenPlatformPartnerWxappConfig.class) : new ArrayList());
} else {
return new ArrayList();
}
}
/**
* @nots 基础支付
* @param payChannelType
* @return
*/
public String getPayChannelName(Integer payChannelType) {
String payChannelName = "" ;
switch (payChannelType) {
case 1:
payChannelName = "微信";
break;
case 2:
payChannelName = "svc卡支付";
break;
case 3:
payChannelName = "支付宝";
break;
case 4:
payChannelName = "混合支付";
break;
}
return payChannelName;
}
public DeleteOrderDto convent2DeleteOrderDto(String oId) {
DeleteOrderDto deleteOrderDto = new DeleteOrderDto();
deleteOrderDto.setOrderId(oId);
return deleteOrderDto;
}
//public CombPayRequest convent2CombPayOrderRequest(String cardNo
// , QueryOrdersResponse.DataBean.OrderBean orderBean
// , PaymentRequest paymentRequest
// , String partnerPayOvertime
// , String orderClient
// , String channel
// , Integer totalAmount
// , Integer svcAmount
// , Integer svcVAmount) {
/**
* 初始化扣减活动库存请求对象
* add by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
* @return
*/
private ActivityUpdateStockRequest initActivityUpdateStockRequest(List<ActivityDiscountsDto> activityDiscountsDtos) {
// 原逻辑只检测扣减库存不为空时调用,现改为扣减库存不为空或参加活动不为空时调用
ActivityUpdateStockRequest activityUpdateStockRequest = new ActivityUpdateStockRequest();
List<String> activityList = new ArrayList<>();
// 只记录订单级别的活动ID
if (CollectionUtils.isNotEmpty(activityDiscountsDtos)) {
activityList.addAll(activityDiscountsDtos.stream().filter(ad -> StringUtils.isNotBlank(ad.getActivityCode())).map(ActivityDiscountsDto::getActivityCode).distinct().collect(Collectors.toList()));
}
//设置活动编号
activityUpdateStockRequest.setActivityList(CollectionUtils.isNotEmpty(activityList) ? activityList : null);
return activityUpdateStockRequest;
}
public CombPayRequest convent2CombPayOrderRequest(String cardNo
, QueryOrdersResponse.DataBean.OrderBean orderBean
, PaymentRequest paymentRequest
, String partnerPayOvertime
, String orderClient
, String channel
, Integer totalAmount) {
CombPayRequest orderPayDto = new CombPayRequest();
orderPayDto.setEbCode(paymentRequest.getPayCode());
orderPayDto.setPartner_id(orderBean.getCompanyId());
orderPayDto.setBody(paymentRequest.getPrincipalName());
orderPayDto.setNotify_url(paymentRequest.getReverseNotifyiDcUrl());
orderPayDto.setStore_id(orderBean.getShopId());
orderPayDto.setOpen_id(paymentRequest.getOpenId());
String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd");
orderPayDto.setBusiness_date(businessDate);
orderPayDto.setAmount(totalAmount.longValue());
orderPayDto.setVip_amount(0L);
orderPayDto.setAppId(paymentRequest.getWxAppId());
orderPayDto.setPayCode(paymentRequest.getPayCode());
orderPayDto.setVer("V1");
orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
List<ProductVO> productVOS = new ArrayList<ProductVO>();
if (CollectionUtils.isNotEmpty(orderBean.getProductList())) {
for (QueryOrdersResponse.DataBean.OrderBean.ProductBean product : orderBean.getProductList()) {
ProductVO productBean = new ProductVO();
productBean.setId(product.getProductId());
productBean.setQuantity(product.getNumber());
productBean.setSeq(product.getSequence());
productBean.setSalesType("NORMAL");
productBean.setPrice(product.getPrice());
productBean.setName(product.getProductName());
productVOS.add(productBean);
}
}
orderPayDto.setProducts(productVOS);
List<PayPlatformVO> platforms = new ArrayList<>();
PayPlatformVO payPlatformVO = new PayPlatformVO();
payPlatformVO.setClientCode(PayChannelType.SVC.getEbcode());
payPlatformVO.setEbcode(PayChannelType.SVC.getEbcode());
payPlatformVO.setAmount(0L);
platforms.add(payPlatformVO);
String ebcode = PayChannelType.getByIndex(Byte.parseByte(channel)).getEbcode();
payPlatformVO = new PayPlatformVO();
payPlatformVO.setAmount(0L);
payPlatformVO.setClientCode(orderClient);
payPlatformVO.setEbcode(ebcode);
platforms.add(payPlatformVO);
orderPayDto.setPlatforms(platforms);
orderPayDto.setOut_order_no(orderBean.getOid());
orderPayDto.setCardCode(cardNo);
return orderPayDto;
}
/**
* 混合支付返回的支付参数
* @param payPlatforms
* @return
*/
public OrderPayResponse convent2OrderCombPayResponse(List<CombPayResponse.PayPlatform> payPlatforms
,String partnerId
,String storeId) {
CombPayResponse.PayPlatform payPlatform = payPlatforms
.stream()
.filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.orElse(null);
OrderPayResponse responseDto = new OrderPayResponse();
responseDto.setMsg("succ");
responseDto.setPayEbcode(payPlatform.getEbCode());
responseDto.setPayId("");
OrderPayResponse.PayOrderBean payBean = new OrderPayResponse.PayOrderBean();
responseDto.setPayTransId(payPlatform.getTransId());
responseDto.setFmId(payPlatform.getFmTradeNo());
CombPayResponse.PayPlatform.PayOrderBean payOrderBean = payPlatform.getPayOrder();
if (null != payOrderBean) {
payBean.setAppid(payOrderBean.getAppId());
payBean.setNonceStr(payOrderBean.getNonceStr());
payBean.setPackageX(payOrderBean.getPackageX());
payBean.setSign(payOrderBean.getPaySign());
payBean.setSignType(payOrderBean.getSignType());
payBean.setTimestamp(payOrderBean.getTimeStamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean);
}
//供修改订单
for (CombPayResponse.PayPlatform pt : payPlatforms) {
PayItem payItem = new PayItem();
payItem.setFmTradeNo(pt.getFmTradeNo());
payItem.setStoreId(storeId);
payItem.setPayChannelType(PayChannelType.getByEbcode(pt.getEbCode()).getIndex().intValue());
payItem.setPayChannelName(PayChannelType.getByEbcode(pt.getEbCode()).getName());
payItem.setTransId(pt.getTransId());
payItem.setPartnerId(partnerId);
if (PayChannelType.SVC.getEbcode().equals(pt.getEbCode())) {
payItem.setPayAmount(new BigDecimal(pt.getPayAmount()));
responseDto.setPayMode(PayChannelType.SVC.getEbcode());
}
else if (PayChannelType.WECHAT.getEbcode().equals(pt.getEbCode()) || PayChannelType.ALIPAY.getEbcode().equals(pt.getEbCode())){
payItem.setPayAmount(new BigDecimal(pt.getPayAmount()));
responseDto.setPayMode(PayChannelType.getByEbcode(pt.getEbCode()).getEbcode());
}
responseDto.getPayItem().add(payItem);
}
if(responseDto.getPayItem().size()==2) {
responseDto.setPayMode(PayChannelType.COMB.getEbcode());
}
return responseDto;
}
public MultiOrderRefundRequest getMultiOrderPayRefundRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, Long refundId) {
MultiOrderRefundRequest multiQueryRequest = new MultiOrderRefundRequest();
multiQueryRequest.setStationId("1");
multiQueryRequest.setPartnerId(orderBean.getCompanyId());
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setFmId("");
multiQueryRequest.setRefundAmount(orderBean.getAmount());
multiQueryRequest.setRefundTradeNo(String.valueOf(refundId));
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setNotifyUrl(refundNotifyCallback);
multiQueryRequest.setVer("V1");
multiQueryRequest.setVer3(false);
multiQueryRequest.setOutOrderNo(orderBean.getOid());
return multiQueryRequest;
}
}
......@@ -230,6 +230,11 @@ public class ShoppingCartGoodsDto {
private String userId;
/**
* 加购人openId
*/
private String openId;
/**
* 加购人昵称
*/
private String userName;
......
......@@ -49,6 +49,11 @@ public class ProductVo {
private String userId;
/**
* 加购人openId
*/
private String openId;
/**
* 加购人昵称
*/
private String nickName;
......
......@@ -26,6 +26,11 @@ public class UserProductVo {
private String userId;
/**
* 加购人openId
*/
private String openId;
/**
* 加购人昵称
*/
private String nickName;
......
......@@ -132,16 +132,15 @@ public class CollageOrderServiceImpl implements CollageOrderService {
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = order.getProductList();
// 群收款支付用户userId列表
List<String> payerUserIdList = productList.stream().filter(product -> !userInfo.getMemberId().equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getUserId).distinct().collect(Collectors.toList());
// 群收款支付用户列表
List<String> payerOpenIdList = productList.stream().filter(product -> !userInfo.getMemberId().equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getOpenId).distinct().collect(Collectors.toList());
// 组装群收款付款人列表
GroupBuyRequest.UserInfo groupBuyUserInfo;
for (String payerUserId : payerUserIdList) {
Long amount = productList.stream().filter(product -> payerUserId.equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getSalePrice).reduce(Long::sum).get();
for (String payerOpenId : payerOpenIdList) {
Long amount = productList.stream().filter(product -> payerOpenId.equals(product.getOpenId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getSalePrice).reduce(Long::sum).get();
groupBuyUserInfo = new GroupBuyRequest.UserInfo();
// TODO 新增openid值传入
groupBuyUserInfo.setOpenid("oORZK5A8hrejg0uBVSlkpv-KPgv4");
groupBuyUserInfo.setOpenid(payerOpenId);
groupBuyUserInfo.setAmount(Integer.parseInt(String.valueOf(amount)));
userInfoList.add(groupBuyUserInfo);
}
......
......@@ -1143,6 +1143,7 @@ public class OrderServiceImpl implements Orderservice {
UserProductVo userProductVo = new UserProductVo();
userProductVo.setUserId(products.get(0).getUserId());
userProductVo.setOpenId(products.get(0).getOpenId());
userProductVo.setNickName(products.get(0).getNickName());
userProductVo.setPhotoUrl(products.get(0).getPhotoUrl());
userProductVo.setProducts(products);
......
......@@ -6,6 +6,7 @@ import cn.freemud.entities.vo.WechatGroupBuyVo;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
import cn.freemud.service.thirdparty.WeChatClient;
import com.freemud.sdk.api.assortment.order.request.order.GroupBuyRequest;
import com.freemud.sdk.api.assortment.order.response.order.GroupBuyResponse;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -97,7 +98,7 @@ public class EcologyAdminApplicationClientTest {
//String requestUrl = "https://api.weixin.qq.com/wxa/business/groupBuy/createOrder?access_token=" + accessToken;
String result = weChatClient.groupBuyCreateOrder(accessToken, groupBuyRequest);
log.info(result);
GroupBuyResponse groupBuyResponse = weChatClient.groupBuyCreateOrder(accessToken, groupBuyRequest);
log.info(groupBuyResponse.toString());
}
}
......@@ -129,6 +129,11 @@ public class OrderItemCreateReq {
private String userId;
/**
* 加购人openId
*/
private String openId;
/**
* 加购人昵称
*/
private String nickName;
......
......@@ -109,6 +109,9 @@ public class OrderItemResp {
//加购人ID
private String userId;
//加购人openId
private String openId;
//加购人昵称
private String nickName;
......
......@@ -103,6 +103,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto.setOriginalPrice(cartGoods.getOriginalPrice());
// cartGoodsDetailDto.setTotalDiscountAmount(0);
cartGoodsDetailDto.setUserId(cartGoods.getUserId());
cartGoodsDetailDto.setOpenId(cartGoods.getOpenId());
cartGoodsDetailDto.setUserName(cartGoods.getUserName());
cartGoodsDetailDto.setPhotoUrl(cartGoods.getPhotoUrl());
cartGoodsDetailDto.setSalePrice(cartGoods.getOriginalPrice());
......
......@@ -180,6 +180,11 @@ public class ShoppingCartGoodsDto {
private String userId;
/**
* 购买人的的openId
*/
private String openId;
/**
* 购买人的的头像
*/
private String photoUrl;
......
......@@ -44,6 +44,11 @@ public class CartGoods {
private String userId;
/**
* 购买人的的openId
*/
private String openId;
/**
* 购买人的的头像
*/
private String photoUrl;
......
......@@ -30,6 +30,11 @@ public class ShoppingCartCollageGoodsResponseVo extends ShoppingCartGoodsBaseRes
private String userName;
/**
* 用户openId
*/
private String openId;
/**
* 用户头像
*/
private String photoUrl;
......
......@@ -103,6 +103,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
CustomerInfoVo userInfo = this.getUserInfo(request.getSessionId());
collageOrderDto.setCreateCollageUserId(userInfo.getMemberId());
collageOrderDto.setCurrentUserId(userInfo.getMemberId());
collageOrderDto.setOpenId(userInfo.getOpenId());
collageOrderDto.setNickName(userInfo.getNickName());
collageOrderDto.setPhotoUrl(userInfo.getPhotoUrl());
......@@ -254,6 +255,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
// 设置拼单发起人
collageOrderDto.setCreateCollageUserId(request.getCreateCollageUserId());
collageOrderDto.setOpenId(userInfo.getOpenId());
collageOrderDto.setNickName(userInfo.getNickName());
collageOrderDto.setPhotoUrl(userInfo.getPhotoUrl());
......
......@@ -141,6 +141,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
CartGoods cartGoods = ShoppingCartConvertAdapter.convent2CartGoods(addShoppingCartGoodsRequestVo);
cartGoods.setUserId(currentUserId);
cartGoods.setOpenId(currentUserInfoVo.getOpenId());
cartGoods.setUserName(currentUserInfoVo.getNickName());
cartGoods.setPhotoUrl(currentUserInfoVo.getPhotoUrl());
......@@ -250,6 +251,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
shoppingCartCollageGoodsResponseVo.setUserName(cmbs.getNickName());
shoppingCartCollageGoodsResponseVo.setPhotoUrl(cmbs.getPhotoUrl());
shoppingCartCollageGoodsResponseVo.setUid(cmbs.getUserId());
shoppingCartCollageGoodsResponseVo.setOpenId(cmbs.getOpenId());
// 包装费
Long packPrice = 0L;
// 商品数量
......@@ -496,6 +498,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
ShoppingCartCollageGoodsResponseVo shoppingCartCollageGoodsResponseVo = new ShoppingCartCollageGoodsResponseVo();
shoppingCartCollageGoodsResponseVo.setProducts(cartGoods);
shoppingCartCollageGoodsResponseVo.setUid(currentUserId);
shoppingCartCollageGoodsResponseVo.setOpenId(currentUserInfoVo.getOpenId());
shoppingCartCollageGoodsResponseVo.setUserName(currentUserInfoVo.getNickName());
shoppingCartCollageGoodsResponseVo.setPhotoUrl(currentUserInfoVo.getPhotoUrl());
shoppingCartCollageGoodsResponseVo.setPackPrice(shoppingCartGoodsResponseVo.getNewPackAmount());
......
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