Commit d6596e9b by 徐康

Merge remote-tracking branch 'origin/qa' into qa

parents d74a8dca 395a8a0d
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.18-SNAPSHOT</version> <version>2.2.20-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<version>1.7.3-SNAPSHOT</version> <version>1.7.5-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -149,3 +149,5 @@ ...@@ -149,3 +149,5 @@
| 2.1.6-RELEASE | hun | 徐康 | 2020-11-23 | | 2.1.6-RELEASE | hun | 徐康 | 2020-11-23 |
| 2.2.18-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 | | 2.2.18-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 |
| 2.1.7-RELEASE | 农工商撤单 | 张志恒 | 2020-12-07 | | 2.1.7-RELEASE | 农工商撤单 | 张志恒 | 2020-12-07 |
| 2.2.20-SNAPSHOT| 抖音支付 | 张志恒 | 2020-12-11ß |
...@@ -2644,7 +2644,7 @@ public class OrderSdkAdapter { ...@@ -2644,7 +2644,7 @@ public class OrderSdkAdapter {
for (CreateOrderProductRequest productRequest : products) { for (CreateOrderProductRequest productRequest : products) {
// 普通商品 订单转换 // 普通商品 订单转换
productRequest.setOpid(index); productRequest.setOpid(index);
originalAmount += updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, productRequest, partnerId, "", false); originalAmount += updateOrderItemAndSettlement(productRequest, orderItemList, orderSettlementCreateReqList, productRequest, partnerId, "", false);
if (ProductTypeEnum.MATERIAL_PRODUCT.getCode().equals(productRequest.getProductType())) { if (ProductTypeEnum.MATERIAL_PRODUCT.getCode().equals(productRequest.getProductType())) {
if (CollectionUtils.isNotEmpty(productRequest.getMaterialProduct())) { if (CollectionUtils.isNotEmpty(productRequest.getMaterialProduct())) {
// 父类商品productId=productId+seq // 父类商品productId=productId+seq
...@@ -2654,7 +2654,7 @@ public class OrderSdkAdapter { ...@@ -2654,7 +2654,7 @@ public class OrderSdkAdapter {
material.setOpid(index); material.setOpid(index);
material.setSpecification(material.getProductId()); material.setSpecification(material.getProductId());
material.setSpecificationName(material.getProductName()); material.setSpecificationName(material.getProductName());
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, material, partnerId, partnerProductId, true); updateOrderItemAndSettlement(productRequest, orderItemList, orderSettlementCreateReqList, material, partnerId, partnerProductId, true);
} }
} }
} }
...@@ -2663,7 +2663,7 @@ public class OrderSdkAdapter { ...@@ -2663,7 +2663,7 @@ public class OrderSdkAdapter {
// 父类商品productId=productId+seq // 父类商品productId=productId+seq
String partnerProductId = productRequest.getProductId() + "_" + index; String partnerProductId = productRequest.getProductId() + "_" + index;
if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) { if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) {
productRequest.getComboProduct().forEach(combo -> updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, combo, partnerId, partnerProductId, false)); productRequest.getComboProduct().forEach(combo -> updateOrderItemAndSettlement(productRequest, orderItemList, orderSettlementCreateReqList, combo, partnerId, partnerProductId, false));
} }
} }
index++; index++;
...@@ -2685,7 +2685,7 @@ public class OrderSdkAdapter { ...@@ -2685,7 +2685,7 @@ public class OrderSdkAdapter {
for (CreateOrderProductRequest productRequest : products) { for (CreateOrderProductRequest productRequest : products) {
// 普通商品 订单转换 // 普通商品 订单转换
productRequest.setOpid(index); productRequest.setOpid(index);
originalAmount += updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, productRequest, partnerId, "", false); originalAmount += updateOrderItemAndSettlement(productRequest, orderItemList, orderSettlementCreateReqList, productRequest, partnerId, "", false);
// 如果是套餐商品,需要转换当前商品行子集ComboProduct&GroupProduct(固定商品、可选商品) // 如果是套餐商品,需要转换当前商品行子集ComboProduct&GroupProduct(固定商品、可选商品)
if (ObjectUtils.equals(ProductTypeEnum.SETMEAL_PRODUCT.getCode(), productRequest.getProductType()) || ObjectUtils.equals(ProductTypeEnum.SETMEAL_UPPRICE_PRODUCT.getCode(), productRequest.getProductType())) { if (ObjectUtils.equals(ProductTypeEnum.SETMEAL_PRODUCT.getCode(), productRequest.getProductType()) || ObjectUtils.equals(ProductTypeEnum.SETMEAL_UPPRICE_PRODUCT.getCode(), productRequest.getProductType())) {
// 父类商品productId=productId+seq // 父类商品productId=productId+seq
...@@ -2693,13 +2693,13 @@ public class OrderSdkAdapter { ...@@ -2693,13 +2693,13 @@ public class OrderSdkAdapter {
if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) { if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) {
for(CreateOrderProductRequest combo : productRequest.getComboProduct()) { for(CreateOrderProductRequest combo : productRequest.getComboProduct()) {
combo.setOpid(comboIndex); combo.setOpid(comboIndex);
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, combo, partnerId, parentProductId, false); updateOrderItemAndSettlement(productRequest, orderItemList, orderSettlementCreateReqList, combo, partnerId, parentProductId, false);
if(CollectionUtils.isNotEmpty(combo.getMaterialProduct())) { if(CollectionUtils.isNotEmpty(combo.getMaterialProduct())) {
String addProductId = combo.getProductId() + "_" + comboIndex; String addProductId = combo.getProductId() + "_" + comboIndex;
for(CreateOrderProductRequest material : combo.getMaterialProduct()) { for(CreateOrderProductRequest material : combo.getMaterialProduct()) {
material.setSpecification(material.getProductId()); material.setSpecification(material.getProductId());
material.setSpecificationName(material.getProductName()); material.setSpecificationName(material.getProductName());
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, material, partnerId, addProductId, true); updateOrderItemAndSettlement(productRequest, orderItemList, orderSettlementCreateReqList, material, partnerId, addProductId, true);
} }
} }
comboIndex++; comboIndex++;
...@@ -2711,7 +2711,7 @@ public class OrderSdkAdapter { ...@@ -2711,7 +2711,7 @@ public class OrderSdkAdapter {
for (CreateOrderProductRequest material: productRequest.getMaterialProduct()){ for (CreateOrderProductRequest material: productRequest.getMaterialProduct()){
material.setSpecification(material.getProductId()); material.setSpecification(material.getProductId());
material.setSpecificationName(material.getProductName()); material.setSpecificationName(material.getProductName());
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, material, partnerId, addProductId, true); updateOrderItemAndSettlement(productRequest, orderItemList, orderSettlementCreateReqList, material, partnerId, addProductId, true);
} }
} }
index++; index++;
...@@ -2729,7 +2729,7 @@ public class OrderSdkAdapter { ...@@ -2729,7 +2729,7 @@ public class OrderSdkAdapter {
* @param parentProductId 套餐父商品Id * @param parentProductId 套餐父商品Id
* @return * @return
*/ */
private Long updateOrderItemAndSettlement(List<OrderItemCreateReq> orderItemList, List<OrderSettlementCreateReq> orderSettlementCreateReqList, CreateOrderProductRequest product, String partnerId, String parentProductId, Boolean isMaterial) { private Long updateOrderItemAndSettlement(CreateOrderProductRequest productRequest, List<OrderItemCreateReq> orderItemList, List<OrderSettlementCreateReq> orderSettlementCreateReqList, CreateOrderProductRequest product, String partnerId, String parentProductId, Boolean isMaterial) {
OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq(); OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq();
orderItemCreateReq.setId(product.getId()); orderItemCreateReq.setId(product.getId());
orderItemCreateReq.setPartnerId(partnerId); orderItemCreateReq.setPartnerId(partnerId);
...@@ -2861,11 +2861,11 @@ public class OrderSdkAdapter { ...@@ -2861,11 +2861,11 @@ public class OrderSdkAdapter {
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(extInfo)); orderItemCreateReq.setExtInfo(JSONObject.toJSONString(extInfo));
// 拼单加购人信息 add by miaohui 2020.10.12 start // 拼单加购人信息 add by miaohui 2020.10.12 start
orderItemCreateReq.setUserId(product.getUserId()); orderItemCreateReq.setUserId(productRequest.getUserId());
orderItemCreateReq.setOpenId(product.getOpenId()); orderItemCreateReq.setOpenId(productRequest.getOpenId());
orderItemCreateReq.setNickName(product.getNickName()); orderItemCreateReq.setNickName(productRequest.getNickName());
orderItemCreateReq.setPhotoUrl(product.getPhotoUrl()); orderItemCreateReq.setPhotoUrl(productRequest.getPhotoUrl());
orderItemCreateReq.setPackPrice(product.getPackPrice()); orderItemCreateReq.setPackPrice(productRequest.getPackPrice());
// 拼单加购人信息 add by miaohui 2020.10.12 end // 拼单加购人信息 add by miaohui 2020.10.12 end
orderItemList.add(orderItemCreateReq); orderItemList.add(orderItemCreateReq);
......
...@@ -41,6 +41,7 @@ public enum OrderSourceType { ...@@ -41,6 +41,7 @@ public enum OrderSourceType {
DPZHCT("dpzhct", "美团点评智慧餐厅", 24), DPZHCT("dpzhct", "美团点评智慧餐厅", 24),
FMWD("fmwd", "非码微店", 25), FMWD("fmwd", "非码微店", 25),
Y_POS("ypos", "非码云POS", 26), Y_POS("ypos", "非码云POS", 26),
TIKTOKPAY("tiktokpay","抖音支付", 27),
parkingmanual("parkingmanual", "农工商停车手工录单", 98), parkingmanual("parkingmanual", "农工商停车手工录单", 98),
PARKING("parking", "农工商停车", 99), PARKING("parking", "农工商停车", 99),
SDG("sdg", "闪电购", 1000); SDG("sdg", "闪电购", 1000);
......
...@@ -76,6 +76,13 @@ public class OrderPayResponse { ...@@ -76,6 +76,13 @@ public class OrderPayResponse {
*/ */
private String thirdOrderToken; private String thirdOrderToken;
// 回调地址
private String payNotifyUrl;
//商户id
private String sellerId;
// 支付类型:机场支付=20099
private String ebCode;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class PayOrderBean { public static class PayOrderBean {
...@@ -107,6 +114,8 @@ public class OrderPayResponse { ...@@ -107,6 +114,8 @@ public class OrderPayResponse {
private String signType; private String signType;
private String aliPayOrder; private String aliPayOrder;
} }
} }
...@@ -323,12 +323,14 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -323,12 +323,14 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
BaseResponse<GetMemberExtendInfoResponse> extendInfo = new BaseResponse(); BaseResponse<GetMemberExtendInfoResponse> extendInfo = new BaseResponse();
try { try {
QueryByCodeResponse codeResponse = orderSdkService.getOrderInfo(confirmOrderRequest.getProductOrderCode(), 0, confirmOrderRequest.getTrackingNo()); QueryByCodeResponse codeResponse = orderSdkService.getOrderInfo(confirmOrderRequest.getProductOrderCode(), 0, confirmOrderRequest.getTrackingNo());
orderByIdResponse = orderSdkAdapter.convent2QueryOrderByIdResponse(codeResponse); orderByIdResponse = orderSdkAdapter.convent2QueryOrderByIdResponse(codeResponse);
GetMemberExtendInfoRequest extendInfoRequest = new GetMemberExtendInfoRequest(); GetMemberExtendInfoRequest extendInfoRequest = new GetMemberExtendInfoRequest();
extendInfoRequest.setMemberId(orderByIdResponse.getData().getUserId()); extendInfoRequest.setMemberId(orderByIdResponse.getData().getUserId());
extendInfoRequest.setPartnerId(orderByIdResponse.getData().getCompanyId()); extendInfoRequest.setPartnerId(orderByIdResponse.getData().getCompanyId());
extendInfo = memberCenterService.getMemberExtendInfo(extendInfoRequest, confirmOrderRequest.getTrackingNo()); extendInfo = memberCenterService.getMemberExtendInfo(extendInfoRequest, confirmOrderRequest.getTrackingNo());
OrderExtInfoDto extInfoDTO = JSONObject.parseObject(orderByIdResponse.getData().getExtInfo(),OrderExtInfoDto.class); OrderExtInfoDto extInfoDTO = JSONObject.parseObject(orderByIdResponse.getData().getExtInfo(),OrderExtInfoDto.class);
extInfoDTO.setMemberLevel(extendInfo.getData().getMemberGrade()!=null?extendInfo.getData().getMemberGrade().getRuleName():""); extInfoDTO.setMemberLevel(extendInfo.getData().getMemberGrade()!=null?extendInfo.getData().getMemberGrade().getRuleName():"");
extInfoDTO.setPaidMember(CollectionUtils.isNotEmpty(extendInfo.getData().getMemberPaids())); extInfoDTO.setPaidMember(CollectionUtils.isNotEmpty(extendInfo.getData().getMemberPaids()));
...@@ -341,8 +343,10 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -341,8 +343,10 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
ErrorLog.printErrorLog("getMemberExtendInfoError",MEMBER_EXTEND_INFO,confirmOrderRequest,e); ErrorLog.printErrorLog("getMemberExtendInfoError",MEMBER_EXTEND_INFO,confirmOrderRequest,e);
} }
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<PaySuccessResp> response = orderSdkService.paySuccess(request, confirmOrderRequest.getTrackingNo()); com.freemud.application.sdk.api.ordercenter.response.BaseResponse<PaySuccessResp> response = orderSdkService.paySuccess(request, confirmOrderRequest.getTrackingNo());
//获取会员信息失败直接返回,非空判断 //获取会员信息失败直接返回,非空判断
if(extendInfo.getData() == null){ if(extendInfo.getData() == null){
return orderSdkAdapter.convent2PayAccessResponse(response); return orderSdkAdapter.convent2PayAccessResponse(response);
} }
......
...@@ -11,6 +11,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.domain.CollagePartnerMember; ...@@ -11,6 +11,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.domain.CollagePartnerMember;
import com.freemud.sdk.api.assortment.shoppingcart.service.CollageOrderBaseService; import com.freemud.sdk.api.assortment.shoppingcart.service.CollageOrderBaseService;
import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil; import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil;
import com.freemud.sdk.api.assortment.shoppingcart.util.DateTimeUtils; import com.freemud.sdk.api.assortment.shoppingcart.util.DateTimeUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
...@@ -58,15 +59,18 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -58,15 +59,18 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
*/ */
@Override @Override
public BaseResponse<CollageOrder> queryCollageOrder(CollageOrderDto collageOrderDto) { public BaseResponse<CollageOrder> queryCollageOrder(CollageOrderDto collageOrderDto) {
CollageOrder collageOrder = null;
try { try {
// 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key // 仅支持两种查询场景
String collageBaseHashKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId()); // 1、createCollageUserId存在,则只根据当前三要素查询,若无直接返回不存在
if (StringUtils.isNotBlank(collageOrderDto.getCreateCollageUserId())) {
// 查询Redis缓存中拼单订单基础信息 // 通过商户ID、门店ID、用户ID组装拼单订单Redis缓存基本信息Key
CollageOrder collageOrder = this.getCollageBaseHash(collageBaseHashKey); String collageBaseHashKey = this.genCollageBaseHashKey(collageOrderDto.getPartnerId(), collageOrderDto.getStoreId(), collageOrderDto.getCreateCollageUserId());
// 查询Redis缓存中拼单订单基础信息
// 若按发起人维度查询不到,则按参与人维度查询 collageOrder = this.getCollageBaseHash(collageBaseHashKey);
if (ObjectUtils.isEmpty(collageOrder)) { }
// 2、createCollageUserId不存在,则只从当前商户拼单参与人信息列表中查询并返回,若商户级别拼单不存在,则提示拼单不存在
else {
String collagePartnerMemberHashKey = this.genCollagePartnerMemberHashKey(collageOrderDto.getPartnerId()); String collagePartnerMemberHashKey = this.genCollagePartnerMemberHashKey(collageOrderDto.getPartnerId());
CollagePartnerMember collagePartnerMember = this.getCollagePartnerMember(collagePartnerMemberHashKey, collageOrderDto.getCurrentUserId()); CollagePartnerMember collagePartnerMember = this.getCollagePartnerMember(collagePartnerMemberHashKey, collageOrderDto.getCurrentUserId());
...@@ -79,16 +83,13 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService { ...@@ -79,16 +83,13 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST); return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
} else { } else {
// 从商户拼单参与人列表中获取信息再次查询拼单信息 // 从商户拼单参与人列表中获取信息再次查询拼单信息
collageBaseHashKey = this.genCollageBaseHashKey(collagePartnerMember.getPartnerId(), collagePartnerMember.getStoreId(), collagePartnerMember.getCreateCollageUserId()); String collageBaseHashKey = this.genCollageBaseHashKey(collagePartnerMember.getPartnerId(), collagePartnerMember.getStoreId(), collagePartnerMember.getCreateCollageUserId());
collageOrder = this.getCollageBaseHash(collageBaseHashKey); collageOrder = this.getCollageBaseHash(collageBaseHashKey);
// 若拼单订单信息依然不存在,则返回错误提示【拼单订单信息不存在】,由前端根据场景处理(静默、提示拼单已取消)
if (ObjectUtils.isEmpty(collageOrder)) {
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
}
} }
} }
if (ObjectUtils.isEmpty(collageOrder)) {
return CartResponseUtil.error(CollageOrderConstant.COLLAGE_ORDER_NOT_EXIST);
}
// 若拼单订单信息存在,则构造订单拼单对象并返回成功提示 // 若拼单订单信息存在,则构造订单拼单对象并返回成功提示
return CartResponseUtil.success(collageOrder); return CartResponseUtil.success(collageOrder);
} catch (Exception e) { } catch (Exception e) {
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.18-SNAPSHOT</version> <version>2.2.20-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -1220,8 +1220,9 @@ public class OrderAdapter { ...@@ -1220,8 +1220,9 @@ public class OrderAdapter {
responseVo.setOidBase64Image(oidBase64Image); responseVo.setOidBase64Image(oidBase64Image);
} }
//设置是否是第三方配送单 //设置是否是第三方配送单
if (ordersBean.getDeliverStatus() != null) { if (ordersBean.getAddInfo() !=null && StringUtils.isNotEmpty(ordersBean.getAddInfo().getDeliveryId())&& !"0".equals(ordersBean.getAddInfo().getDeliveryId())) {
responseVo.setHasThirdDelivery(true); responseVo.setHasThirdDelivery(true);
responseVo.setDeliveryId(ordersBean.getAddInfo().getDeliveryId());
} }
responseVo.setDeliveryStatus(ordersBean.getDeliverStatus()); responseVo.setDeliveryStatus(ordersBean.getDeliverStatus());
responseVo.setQueueIndex(ordersBean.getQueueIndex()); responseVo.setQueueIndex(ordersBean.getQueueIndex());
...@@ -2827,6 +2828,10 @@ public class OrderAdapter { ...@@ -2827,6 +2828,10 @@ public class OrderAdapter {
} }
orderPayDto.setProducts(productBeans); orderPayDto.setProducts(productBeans);
orderPayDto.setPayCode(paymentRequest.getPayCode()); orderPayDto.setPayCode(paymentRequest.getPayCode());
//抖音支付的payCode = 10066
if(OrderClientType.TIKTOKPAY.getIndex().toString().equalsIgnoreCase(orderBean.getOrderClient())){
orderPayDto.setPayCode(PayChannelType.TIKTOKPAY.getEbcode());
}
orderPayDto.setFoodOrderType(getFoodOrderType(orderBean.getOrderType())); orderPayDto.setFoodOrderType(getFoodOrderType(orderBean.getOrderType()));
return orderPayDto; return orderPayDto;
} }
...@@ -2928,6 +2933,15 @@ public class OrderAdapter { ...@@ -2928,6 +2933,15 @@ public class OrderAdapter {
payBean.setTimestamp(payOrderBean.getTimestamp()); payBean.setTimestamp(payOrderBean.getTimestamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder()); payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean); responseDto.setPayOrder(payBean);
// coco 机场支付
try {
JSONObject jsonObject = JSONObject.parseObject(payOrderBean.getAliPayOrder());
responseDto.setSellerId(jsonObject.getString("sellerId"));
responseDto.setPayNotifyUrl(jsonObject.getString("payNotifyUrl"));
responseDto.setEbCode(jsonObject.getString("ebCode"));
}catch (Exception e){
}
} }
responseDto.setStatusCode(unifiedOrderResponse.getStatusCode()); responseDto.setStatusCode(unifiedOrderResponse.getStatusCode());
responseDto.setPayTransId(unifiedOrderResponse.getPayTransId()); responseDto.setPayTransId(unifiedOrderResponse.getPayTransId());
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
package cn.freemud.entities.dto.activity; package cn.freemud.entities.dto.activity;
import cn.freemud.entities.vo.PayGiftCouponVo; import cn.freemud.entities.vo.PayGiftCouponVo;
import cn.freemud.entities.vo.PayGiftGoodsConfigVo;
import cn.freemud.entities.vo.PayGiftMicroProgramConfigVo;
import cn.freemud.entities.vo.PayGiftWechatCouponInfoVo; import cn.freemud.entities.vo.PayGiftWechatCouponInfoVo;
import lombok.Data; import lombok.Data;
...@@ -35,4 +37,34 @@ public class PayGiftCheckAndJoinResponseDto { ...@@ -35,4 +37,34 @@ public class PayGiftCheckAndJoinResponseDto {
private String type; private String type;
private List<PayGiftCouponVo> coupons; private List<PayGiftCouponVo> coupons;
private PayGiftWechatCouponInfoVo wechatCouponInfo; private PayGiftWechatCouponInfoVo wechatCouponInfo;
/**
* 奖励类型:1-非码券,2-微信商家券,3-弹窗奖励
*/
private String syncWechat;
/**
* 活动配图
*/
private String activityPicture;
/**
* 跳转设置(跳转类型) 0:无 5:跳转页面 10:外部小程序 15:跳转商品 20:跳转H5
*/
private String redirectType;
/**
* 跳转商品
*/
private PayGiftGoodsConfigVo goodsConfig;
/**
* 跳转小程序
*/
private PayGiftMicroProgramConfigVo microProgramConfig;
/**
* 跳转页面5和20跳转外部H5对应的路径或者URL
*/
private String redirectPage;
} }
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class PayGiftGoodsConfigVo {
/**
* 跳转商品ID
*/
private String goodsId;
/**
* 跳转商品名称
*/
private String goodsName;
/**
* 跳转商品价格,单位分
*/
private Integer price;
}
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class PayGiftMicroProgramConfigVo {
/**
* 跳转小程序ID
*/
private String appId;
/**
* 跳转小程序跳转路径
*/
private String redirectUrl;
}
...@@ -314,7 +314,10 @@ public class QueryOrderResponseVo { ...@@ -314,7 +314,10 @@ public class QueryOrderResponseVo {
* 配送状态 * 配送状态
*/ */
private Integer deliveryStatus; private Integer deliveryStatus;
/**
* 运单号
*/
private String deliveryId;
/** /**
* 骑手名称 商家自配送名称 * 骑手名称 商家自配送名称
*/ */
...@@ -371,6 +374,37 @@ public class QueryOrderResponseVo { ...@@ -371,6 +374,37 @@ public class QueryOrderResponseVo {
private List<PayGiftCouponVo> coupons; private List<PayGiftCouponVo> coupons;
private PayGiftWechatCouponInfoVo wechatCouponInfo; private PayGiftWechatCouponInfoVo wechatCouponInfo;
/**
* 支付有礼奖励类型:1-非码券,2-微信商家券,3-弹窗奖励
*/
private String syncWechat;
/**
* 支付有礼活动配图
*/
private String activityPicture;
/**
* 支付有礼跳转设置(跳转类型) 0:无 5:跳转页面 10:外部小程序 15:跳转商品 20:跳转H5
*/
private String redirectType;
/**
* 支付有礼跳转商品
*/
private PayGiftGoodsConfigVo goodsConfig;
/**
* 支付有礼跳转小程序
*/
private PayGiftMicroProgramConfigVo microProgramConfig;
/**
* 支付有礼跳转页面5和20跳转外部H5对应的路径或者URL
*/
private String redirectPage;
/** /**
* 收件人省份 * 收件人省份
*/ */
......
...@@ -22,9 +22,7 @@ public enum OrderChannelType { ...@@ -22,9 +22,7 @@ public enum OrderChannelType {
SAASMALL("saasmall", "微商城"), SAASMALL("saasmall", "微商城"),
APP("app", "APP"), APP("app", "APP");
TOUTIAO("toutiao", "抖音小程序");;
private String code; private String code;
......
...@@ -307,6 +307,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -307,6 +307,7 @@ public class OrderServiceImpl implements Orderservice {
@Autowired @Autowired
private OrderRelationFactory orderRelationFactory; private OrderRelationFactory orderRelationFactory;
@Override @Override
public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) { public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
String trackingNo = LogTreadLocal.getTrackingNo(); String trackingNo = LogTreadLocal.getTrackingNo();
...@@ -470,6 +471,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -470,6 +471,7 @@ public class OrderServiceImpl implements Orderservice {
} }
// 如果订单状态不是未支付,返回信息 // 如果订单状态不是未支付,返回信息
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus()) || !OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) { if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus()) || !OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return sendPaySuccessNoticeMessage(); return sendPaySuccessNoticeMessage();
} }
//若该订单使用了优惠券,则移除卡包,移除失败也不退款,现在支付成功个调用核销,无需调用此功能 //若该订单使用了优惠券,则移除卡包,移除失败也不退款,现在支付成功个调用核销,无需调用此功能
...@@ -1300,6 +1302,12 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1300,6 +1302,12 @@ public class OrderServiceImpl implements Orderservice {
queryOrderResponseVo.setActivityName(payGiftResponse.getActivityName()); queryOrderResponseVo.setActivityName(payGiftResponse.getActivityName());
queryOrderResponseVo.setCoupons(payGiftResponse.getCoupons()); queryOrderResponseVo.setCoupons(payGiftResponse.getCoupons());
queryOrderResponseVo.setWechatCouponInfo(payGiftResponse.getWechatCouponInfo()); queryOrderResponseVo.setWechatCouponInfo(payGiftResponse.getWechatCouponInfo());
queryOrderResponseVo.setSyncWechat(payGiftResponse.getSyncWechat());
queryOrderResponseVo.setActivityPicture(payGiftResponse.getActivityPicture());
queryOrderResponseVo.setRedirectType(payGiftResponse.getRedirectType());
queryOrderResponseVo.setGoodsConfig(payGiftResponse.getGoodsConfig());
queryOrderResponseVo.setMicroProgramConfig(payGiftResponse.getMicroProgramConfig());
queryOrderResponseVo.setRedirectPage(payGiftResponse.getRedirectPage());
queryOrderResponseVo.setActivitySendType(payGiftResponse.getSendType()); queryOrderResponseVo.setActivitySendType(payGiftResponse.getSendType());
} }
} }
...@@ -1809,18 +1817,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1809,18 +1817,14 @@ public class OrderServiceImpl implements Orderservice {
if (cocoPartnerId.contains(orderByIdResponseDto.getData().getCompanyId())) { if (cocoPartnerId.contains(orderByIdResponseDto.getData().getCompanyId())) {
// COCO 即时单不可取消 // COCO 即时单不可取消
if ( NewOrderType.GENERAL_SELF_PICKUP.getCode().equals(queryOrderByIdResponse.getData().getNewOrderType())) { if ( NewOrderType.GENERAL_SELF_PICKUP.getCode().equals(queryOrderByIdResponse.getData().getNewOrderType())) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND);
} }
// 4,6 预约单 // 4,6 预约单
List<Integer> expectOrderType = Lists.newArrayList( List<Integer> expectOrderType = Lists.newArrayList(
NewOrderType.RESERVED_EXPRESS.getCode(), NewOrderType.RESERVED_EXPRESS.getCode(),
NewOrderType.RESERVED_SELF_PICKUP.getCode()); NewOrderType.RESERVED_SELF_PICKUP.getCode());
long time = DateUtil.addMinutes(new Date(), 15).getTime(); long time = DateUtil.addMinutes(new Date(), 15).getTime();
if (expectOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())
&& Objects.nonNull(orderBean.getGmtExpect())
&& time > orderBean.getGmtExpect()) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_EXPECT_TIME);
}
// 外卖单 // 外卖单
List<Integer> takeOrderType = Lists.newArrayList( List<Integer> takeOrderType = Lists.newArrayList(
NewOrderType.RESERVED_EXPRESS.getCode(), NewOrderType.RESERVED_EXPRESS.getCode(),
...@@ -1831,6 +1835,18 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1831,6 +1835,18 @@ public class OrderServiceImpl implements Orderservice {
&& taskCancelOrderTime > queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime()) { && taskCancelOrderTime > queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime()) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_ESTIMATE_TIME); return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_ESTIMATE_TIME);
} }
if (expectOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())){
if (Objects.nonNull(orderBean.getGmtExpect())
&& time > orderBean.getGmtExpect()) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_EXPECT_TIME);
}
// todo coco 预约单直接退款
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId, AfterSalesType.USER_CANCEL, true);
if (baseResponse != null) {
return baseResponse;
}
}
} }
/** /**
...@@ -2447,8 +2463,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2447,8 +2463,8 @@ public class OrderServiceImpl implements Orderservice {
orderClient = OrderClientType.APP; orderClient = OrderClientType.APP;
} }
//抖音小程序 //抖音小程序
if(OrderChannelType.TOUTIAO.getCode().equals(createOrderVo.getChannelType())) { if(PayChannelType.TIKTOKPAY.getIndex().equals(createOrderVo.getPayChannelType())) {
orderClient = OrderClientType.TOUTIAO; orderClient = OrderClientType.TIKTOKPAY;
} }
long totalAmount = 0; long totalAmount = 0;
int cardAmount = 0; int cardAmount = 0;
......
...@@ -27,7 +27,7 @@ public interface OrderRelationService { ...@@ -27,7 +27,7 @@ public interface OrderRelationService {
/** /**
* 创建订单的时间检查 * 订单详情编辑
* @param * @param
*/ */
void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response); void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response);
......
...@@ -17,17 +17,22 @@ import cn.freemud.entities.dto.order.BusinessDate; ...@@ -17,17 +17,22 @@ import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.ProductVo; import cn.freemud.entities.vo.ProductVo;
import cn.freemud.entities.vo.QueryOrderResponseVo; import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.CreateOrderType; import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.impl.CheckOrder; import cn.freemud.service.impl.CheckOrder;
import cn.freemud.service.order.OrderRelationService; import cn.freemud.service.order.OrderRelationService;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSendCouponResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSendCouponResp;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -101,6 +106,12 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService { ...@@ -101,6 +106,12 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
queryOrderResponseVo.setChooseGoods(chooseGoods); queryOrderResponseVo.setChooseGoods(chooseGoods);
} }
Map<String,QueryOrdersResponse.DataBean.OrderBean.ProductBean> productMap = new HashMap<>();
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = response.getData().getProductList();
if(productList != null && !productList.isEmpty()){
productMap = productList.stream().collect(Collectors.toMap(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getCartGoodsUid, g -> g,(k1,k2)->k1));
}
// 赠品合并到主商品 // 赠品合并到主商品
List<ProductVo> products = queryOrderResponseVo.getProducts(); List<ProductVo> products = queryOrderResponseVo.getProducts();
...@@ -119,13 +130,35 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService { ...@@ -119,13 +130,35 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
} }
if(null != masterProducts && !masterProducts.isEmpty()){ if(null != masterProducts && !masterProducts.isEmpty()){
masterProducts.forEach(product -> { for(ProductVo product : masterProducts){
Integer giftQty = giftMap.get(product.getCid()) == null ? 0 : giftMap.get(product.getCid()); Integer giftQty = giftMap.get(product.getCid()) == null ? 0 : giftMap.get(product.getCid());
product.setQty(product.getQty() + giftQty); product.setQty(product.getQty() + giftQty);
}); // 如果商品参加了第二件半价活动,要把该行拆成数量为1的多行
QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean = productMap.get(product.getCid());
if(productBean == null || productBean.getDiscountList() == null || productBean.getDiscountList().isEmpty()){
continue;
}
boolean halfFlag = false;
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount> discountList = productBean.getDiscountList();
for(QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount productDiscount : discountList){
if(ObjectUtils.equals(productDiscount.getDiscountType(), 20)){
halfFlag = true;
break;
}
}
if(halfFlag){
Integer num = product.getQty();
for(int i = 0 ; i < num-1 ; i++){
ProductVo newProduct = JSONObject.parseObject(JSONObject.toJSONString(product),ProductVo.class);
newProduct.setQty(1);
}
product.setQty(1);
}
}
} }
queryOrderResponseVo.setProducts(masterProducts); queryOrderResponseVo.setProducts(masterProducts);
} }
} }
package cn.freemud.amp.service;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Setter
@Getter
public class AuditScoreAccount {
/**
* 账本主键ID
*/
private String accountId;
private String partnerId;
private String memberId;
/**
* 账本状态{1可使用 2已使用}
*/
private Integer accountStatus;
/**
* 源积分值
*/
private Integer originScore;
/**
* 剩余积分值
*/
private Integer leftScore;
/**
* 到日日期{格式:yyyy-MM-dd}
*/
private String expireDate;
/*
所属机构类型{1总公司2分公司3门店}
*/
private Integer orgType;
/**
* 所属机构编码
*/
private String orgCode;
/**
* 所属机构类型{1总公司2分公司3门店}
*/
private Integer belongOrgType;
/**
* 所属机构编码
*/
private String belongOrgCode;
private Date createTime;
private Date updateTime;
/**
* 是否删除{0表示否 1表示是}
*/
private Integer isDel;
@Override
public String toString() {
return this.accountId;
}
}
\ No newline at end of file
package cn.freemud.amp.service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortTest {
public static void main(String[] args) {
List<AuditScoreAccount> list = new ArrayList<AuditScoreAccount>();
//创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
AuditScoreAccount s1 = new AuditScoreAccount();
s1.setExpireDate("2020-01-02");
s1.setAccountId("1");
AuditScoreAccount s2 = new AuditScoreAccount();
s2.setExpireDate("2020-04-03");
s2.setAccountId("2");
AuditScoreAccount s3 = new AuditScoreAccount();
s3.setExpireDate("2020-03-01");
s3.setAccountId("3");
AuditScoreAccount s5 = new AuditScoreAccount();
list.add(s5);
list.add(s1);
list.add(s2);
list.add(s3);
System.out.println("排序前:"+list);
List<String> stringList = new ArrayList<>();
stringList.add("3");
stringList.add("2");
Collections.sort(list, new Comparator<AuditScoreAccount>(){
/*
* int compare(Student o1, Student o2) 返回一个基本类型的整型,
* 返回负数表示:o1 小于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1大于o2。
*/
public int compare(AuditScoreAccount o1, AuditScoreAccount o2) {
if(stringList.contains(o2.getAccountId())){
return 1;
}
if(stringList.contains(o1.getAccountId())){
return -1;
}
if(o2.getExpireDate() ==null){
return -1;
}
if(o1.getExpireDate() ==null){
return 1;
}
return o1.getExpireDate().compareTo(o2.getExpireDate());
}
});
System.out.println("排序后:"+list);
}
}
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.15-SNAPSHOT</version> <version>2.2.20-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<version>1.0.0</version> <version>1.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.7.3-SNAPSHOT</version> <version>1.7.5-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -90,4 +90,5 @@ ...@@ -90,4 +90,5 @@
| 1.3.21.RELEASE | 混支付 | 徐康 | 2020-11-26 | | 1.3.21.RELEASE | 混支付 | 徐康 | 2020-11-26 |
| 1.7.3-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 | | 1.7.3-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 |
| 1.3.22.RELEASE | 农工商撤单 | 张志恒 | 2020-12-07 | | 1.3.22.RELEASE | 农工商撤单 | 张志恒 | 2020-12-07 |
| 1.7.5-SNAPSHOT| 抖音支付 | 张志恒 | 2020-12-11 |
...@@ -36,7 +36,7 @@ public enum OrderClientType { ...@@ -36,7 +36,7 @@ public enum OrderClientType {
SAASMALL(23, "微商城"), SAASMALL(23, "微商城"),
DPZHCT(24, "美团点评智慧餐厅"), DPZHCT(24, "美团点评智慧餐厅"),
FMWD(25, "非码微店"), FMWD(25, "非码微店"),
TOUTIAO(27, "抖音小程序"), TIKTOKPAY(27, "抖音小程序"),
PARKING(99 , "农工商停车"), PARKING(99 , "农工商停车"),
FU_YOU(100 , "富有"), FU_YOU(100 , "富有"),
; ;
......
...@@ -12,7 +12,8 @@ public enum PayChannelType { ...@@ -12,7 +12,8 @@ public enum PayChannelType {
SVC((byte)3,"10102","储值卡"), SVC((byte)3,"10102","储值卡"),
COMB((byte)4,"10212","混合支付"), COMB((byte)4,"10212","混合支付"),
USVCP((byte)5,"10556", "电子风味卡支付"), USVCP((byte)5,"10556", "电子风味卡支付"),
ZERO((byte)6,"100000", "0元支付"); ZERO((byte)6,"100000", "0元支付"),
TIKTOKPAY((byte)7,"10066", "抖音支付");
private Byte index; private Byte index;
private String ebcode; private String ebcode;
......
...@@ -31,5 +31,5 @@ public class OrderSendCouponReq { ...@@ -31,5 +31,5 @@ public class OrderSendCouponReq {
/** /**
* 买一赠一寄件信息 * 买一赠一寄件信息
*/ */
private List<OrderSendCouponUpdateReq> chooseGoods; private List<OrderSendCouponUpdateReq> orderSendCouponRespList;
} }
...@@ -3,6 +3,7 @@ package com.freemud.application.sdk.api.ordercenter.service; ...@@ -3,6 +3,7 @@ package com.freemud.application.sdk.api.ordercenter.service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.freemud.application.sdk.api.base.BaseRequest; import com.freemud.application.sdk.api.base.BaseRequest;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties; import com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties;
import com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant; import com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant;
import com.freemud.application.sdk.api.ordercenter.constant.ResponseConstant; import com.freemud.application.sdk.api.ordercenter.constant.ResponseConstant;
......
...@@ -103,6 +103,7 @@ public class ShoppingCartConvertAdapter { ...@@ -103,6 +103,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto.setOpenId(cartGoods.getOpenId()); cartGoodsDetailDto.setOpenId(cartGoods.getOpenId());
cartGoodsDetailDto.setUserName(cartGoods.getUserName()); cartGoodsDetailDto.setUserName(cartGoods.getUserName());
cartGoodsDetailDto.setPhotoUrl(cartGoods.getPhotoUrl()); cartGoodsDetailDto.setPhotoUrl(cartGoods.getPhotoUrl());
cartGoodsDetailDto.setPackPrice(cartGoods.getPackPrice());
cartGoodsDetailDto.setSalePrice(cartGoods.getOriginalPrice()); cartGoodsDetailDto.setSalePrice(cartGoods.getOriginalPrice());
cartGoodsDetailDto.setPicture(cartGoods.getPic()); cartGoodsDetailDto.setPicture(cartGoods.getPic());
cartGoodsDetailDto.setQty(cartGoods.getQty()); cartGoodsDetailDto.setQty(cartGoods.getQty());
...@@ -384,9 +385,13 @@ public class ShoppingCartConvertAdapter { ...@@ -384,9 +385,13 @@ public class ShoppingCartConvertAdapter {
cartGoods.setCreateTimeMili(cartGood.getCreateTimeMili()); cartGoods.setCreateTimeMili(cartGood.getCreateTimeMili());
cartGoods.setSkuName(cartGood.getSkuName()); cartGoods.setSkuName(cartGood.getSkuName());
cartGoods.setSkuName(cartGood.getSkuName()); cartGoods.setSkuName(cartGood.getSkuName());
cartGood.setClassificationId(cartGood.getClassificationId()); cartGoods.setClassificationId(cartGood.getClassificationId());
cartGood.setClassificationName(cartGood.getClassificationName()); cartGoods.setClassificationName(cartGood.getClassificationName());
cartGoods.setActivityType(ActivityTypeEnum.TYPE_61.getCode()); cartGoods.setActivityType(ActivityTypeEnum.TYPE_61.getCode());
cartGoods.setUserId(cartGood.getUserId());
cartGoods.setUserName(cartGood.getUserName());
cartGoods.setOpenId(cartGood.getOpenId());
cartGoods.setPhotoUrl(cartGood.getPhotoUrl());
return cartGoods; return cartGoods;
} }
......
...@@ -24,9 +24,6 @@ public class CollageOrderRequestVo { ...@@ -24,9 +24,6 @@ public class CollageOrderRequestVo {
@NotEmpty(message = "sessionId不能为空") @NotEmpty(message = "sessionId不能为空")
private String sessionId; private String sessionId;
@ApiModelProperty(value = "当前操作人用户ID")
private String currentUserId;
@ApiModelProperty(value = "拼单创建人用户ID") @ApiModelProperty(value = "拼单创建人用户ID")
private String createCollageUserId; private String createCollageUserId;
......
...@@ -36,4 +36,10 @@ public class ShoppingCartClearRequestVo extends BaseRequestVo { ...@@ -36,4 +36,10 @@ public class ShoppingCartClearRequestVo extends BaseRequestVo {
* 拼单发起人userId(拼单) * 拼单发起人userId(拼单)
*/ */
private String createCollageUserId; private String createCollageUserId;
/**
* 收货地址ID、svc卡支付外卖订单必传
*/
private String receiveId;
} }
...@@ -171,7 +171,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -171,7 +171,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
long count = cartGoodsList.stream().filter(c -> c.getSpuId().equals(cartGoods.getSpuId())).count(); long count = cartGoodsList.stream().filter(c -> c.getSpuId().equals(cartGoods.getSpuId())).count();
//购物车内存在同类 //购物车内存在同类
if (count>0) { if (count>0) {
CartGoods find = cartGoodsList.stream().filter(c -> c.getCartGoodsUid().equals(cartGoods.getOriginalGoodsUid())).findFirst().orElseGet(null); CartGoods find = cartGoodsList.stream().filter(c -> c.getCartGoodsUid().equals(cartGoods.getOriginalGoodsUid())).findFirst().orElse(null);
if (null == find) { if (null == find) {
find = cartGoodsList.stream().filter(c -> c.getSpuId().equals(cartGoods.getSpuId())).findFirst().get(); find = cartGoodsList.stream().filter(c -> c.getSpuId().equals(cartGoods.getSpuId())).findFirst().get();
} }
......
...@@ -58,18 +58,19 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -58,18 +58,19 @@ public class CollageOrderServiceImpl implements CollageOrderService {
@Override @Override
public BaseResponse queryCollageOrder(CollageOrderRequestVo request) { public BaseResponse queryCollageOrder(CollageOrderRequestVo request) {
CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request); CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request);
// 查询时需传入拼单创建人的userId,若上送字段为空时,默认查询当前登录人自己的拼单信息 CustomerInfoVo userInfo = this.getUserInfo(request.getSessionId());
String currentUserId = StringUtils.isNotBlank(request.getCurrentUserId()) ? request.getCurrentUserId() : this.getUserIdBySessionId(request.getSessionId()); String currentUserId = userInfo.getMemberId();
// 当前登录人userId
collageOrderDto.setCurrentUserId(currentUserId); collageOrderDto.setCurrentUserId(currentUserId);
// 若拼单发起人ID为空,则默认按当前用户查询 // 若拼单发起人ID为空,则默认按当前用户查询
if (StringUtils.isEmpty(request.getCreateCollageUserId())) {
collageOrderDto.setCreateCollageUserId(currentUserId);
}
BaseResponse<CollageOrder> queryCollageOrderResponse = this.collageOrderBaseService.queryCollageOrder(collageOrderDto); BaseResponse<CollageOrder> queryCollageOrderResponse = this.collageOrderBaseService.queryCollageOrder(collageOrderDto);
CollageOrder collageOrder = queryCollageOrderResponse.getResult(); CollageOrder collageOrder = queryCollageOrderResponse.getResult();
// SDK查询订单返回非成功code或返回结果订单信息为空时,返回前端异常信息 if (null == collageOrder) {
Optional.ofNullable(queryCollageOrderResponse).filter(resp -> (ResponseResult.SUCCESS.getCode().equals(resp.getCode()) && !ObjectUtils.isEmpty(collageOrder))).orElseThrow(() -> new ServiceException(ResponseResult.COLLAGE_NOT_EXIST)); return ResponseUtil.error(ResponseResult.COLLAGE_NOT_EXIST);
}
// 现在改为同时可查询自己发起以及参与的拼单所以查询到拼单信息后,后续查询需要使用拼单hash的三要素信息继续查询 // 现在改为同时可查询自己发起以及参与的拼单所以查询到拼单信息后,后续查询需要使用拼单hash的三要素信息继续查询
collageOrderDto.setPartnerId(collageOrder.getPartnerId()); collageOrderDto.setPartnerId(collageOrder.getPartnerId());
......
...@@ -720,6 +720,10 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -720,6 +720,10 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
*/ */
private void updatePackPrice(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartGoodsDto shoppingCartGoodsDto) { private void updatePackPrice(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartGoodsDto shoppingCartGoodsDto) {
if (shoppingCartGoodsResponseVo != null && shoppingCartGoodsResponseVo.getProducts() != null && shoppingCartGoodsDto != null && shoppingCartGoodsDto.getProducts() != null) { if (shoppingCartGoodsResponseVo != null && shoppingCartGoodsResponseVo.getProducts() != null && shoppingCartGoodsDto != null && shoppingCartGoodsDto.getProducts() != null) {
if (shoppingCartGoodsResponseVo.getNewPackAmount() == null || shoppingCartGoodsResponseVo.getNewPackAmount() == 0) {
// 当整单包装费为0时,不计算购物车行包装费
return;
}
shoppingCartGoodsResponseVo.getProducts().stream().forEach(product -> { shoppingCartGoodsResponseVo.getProducts().stream().forEach(product -> {
shoppingCartGoodsDto.getProducts().stream().forEach(goods -> { shoppingCartGoodsDto.getProducts().stream().forEach(goods -> {
if (goods.getCartGoodsUid().equals(product.getCartGoodsUid())) { if (goods.getCartGoodsUid().equals(product.getCartGoodsUid())) {
......
...@@ -745,6 +745,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -745,6 +745,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setActivityTip(activityTip); shoppingCartGoodsResponseVo.setActivityTip(activityTip);
shoppingCartGoodsResponseVo.setProducts(new ArrayList<>()); shoppingCartGoodsResponseVo.setProducts(new ArrayList<>());
shoppingCartGoodsResponseVo.setProductsCount(0); shoppingCartGoodsResponseVo.setProductsCount(0);
ShoppingCartRelationService shoppingCartRelationService = shoppingCartRelationFactory.cleanAfter(shoppingCartClearRequestVo.getPartnerId());
shoppingCartRelationService.cleanAfter(shoppingCartGoodsResponseVo,shoppingCartClearRequestVo);
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
} }
...@@ -1538,6 +1542,19 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1538,6 +1542,19 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
cartGoods.setPic(productBeanListSpuClass.get(0).getPicture()); cartGoods.setPic(productBeanListSpuClass.get(0).getPicture());
cartGoods.setWeight(productBeanListSpuClass.get(0).getWeight()); cartGoods.setWeight(productBeanListSpuClass.get(0).getWeight());
cartGoods.setUnit(productBeanListSpuClass.get(0).getUnit()); cartGoods.setUnit(productBeanListSpuClass.get(0).getUnit());
boolean stockLimit = false;
if (productBeanListSpuClass.get(0).getType() == ProductType.NOSPEC.getCode()
&& productBeanListSpuClass.get(0).getStockLimit() == 1) {
stockLimit = true;
} else {
for (ProductBeanDTO.SkuProductBean skuProductBean : productBeanListSpuClass.get(0).getSkuList()) {
if (spuId2.equals(skuProductBean.getSkuId()) && skuProductBean.getStockLimit() == 1) {
stockLimit = true;
break;
}
}
}
cartGoods.setStockLimit(stockLimit);
List<String> goodsIds = allCartGoodsList.parallelStream().map(CartGoods::getGoodsId).collect(Collectors.toList()); List<String> goodsIds = allCartGoodsList.parallelStream().map(CartGoods::getGoodsId).collect(Collectors.toList());
boolean hasSpecialGoods = hasSpecialGoods(addShoppingCartGoodsRequestVo.getPartnerId(), addShoppingCartGoodsRequestVo.getShopId(), userId, addShoppingCartGoodsRequestVo.getAppId(), goodsIds, addShoppingCartGoodsRequestVo.getOrderType()); boolean hasSpecialGoods = hasSpecialGoods(addShoppingCartGoodsRequestVo.getPartnerId(), addShoppingCartGoodsRequestVo.getShopId(), userId, addShoppingCartGoodsRequestVo.getAppId(), goodsIds, addShoppingCartGoodsRequestVo.getOrderType());
...@@ -1877,7 +1894,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1877,7 +1894,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return calculationDiscountResult; return calculationDiscountResult;
} }
private Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, String wxappid, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,Integer orderType) { public Long calculateDeliveryAmount(String receiveId, String partnerId, String storeId, String wxappid, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,Integer orderType) {
Long deliveryAmount = 0L; Long deliveryAmount = 0L;
// 如果订单的收获地址为空,且订单是外卖单,返回运费 // 如果订单的收获地址为空,且订单是外卖单,返回运费
// 主要是为了兼容coco不传收获地址,需要获取固定运费的情况 // 主要是为了兼容coco不传收获地址,需要获取固定运费的情况
...@@ -2208,7 +2225,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2208,7 +2225,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
CalculationSharingDiscountRequestDto.CalculationDiscountCoupon coupon = new CalculationSharingDiscountRequestDto.CalculationDiscountCoupon(); CalculationSharingDiscountRequestDto.CalculationDiscountCoupon coupon = new CalculationSharingDiscountRequestDto.CalculationDiscountCoupon();
coupon.setCode(cp.getCouponCode()); coupon.setCode(cp.getCouponCode());
coupon.setActivityCode(cp.getCouponCode()); coupon.setActivityCode(cp.getActivityCode());
coupon.setUseIndex(cp.getIndex() == null ? x + oldCoupons.size(): cp.getIndex() + oldCoupons.size()); coupon.setUseIndex(cp.getIndex() == null ? x + oldCoupons.size(): cp.getIndex() + oldCoupons.size());
oldCoupons.add(coupon); oldCoupons.add(coupon);
} }
......
...@@ -10,6 +10,7 @@ import cn.freemud.entities.dto.shoppingCart.SendPoint; ...@@ -10,6 +10,7 @@ import cn.freemud.entities.dto.shoppingCart.SendPoint;
import cn.freemud.entities.vo.CartGoods; import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo; import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.BizServiceException;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.CommonService; import cn.freemud.service.CommonService;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
...@@ -200,7 +201,7 @@ public class CalculationSharingDiscountService { ...@@ -200,7 +201,7 @@ public class CalculationSharingDiscountService {
// 这个是专门给coco使用的券验证错误的异常,message要抛出去 // 这个是专门给coco使用的券验证错误的异常,message要抛出去
if(sharingDiscountResponseDto != null && StringUtils.equals(sharingDiscountResponseDto.getStatusCode(), ResponseCodeConstant.COCO_RESPONSE_COUPON_ERR_STR)){ if(sharingDiscountResponseDto != null && StringUtils.equals(sharingDiscountResponseDto.getStatusCode(), ResponseCodeConstant.COCO_RESPONSE_COUPON_ERR_STR)){
throw new ServiceException(ResponseResult.COCO_COUPON_VALIDATOR_FAIL,sharingDiscountResponseDto.getMsg()); throw new BizServiceException(ResponseResult.COCO_COUPON_VALIDATOR_FAIL,sharingDiscountResponseDto.getMsg());
} }
// 支付宝华莱士紧急修改代码,当促销返回103错误码时,需要报券不适用于该门店,且清空购物车 // 支付宝华莱士紧急修改代码,当促销返回103错误码时,需要报券不适用于该门店,且清空购物车
......
...@@ -20,4 +20,11 @@ public interface ShoppingCartRelationFactory { ...@@ -20,4 +20,11 @@ public interface ShoppingCartRelationFactory {
*/ */
ShoppingCartRelationService getBuildShoppingCartGoodsResponseService(String partnerId); ShoppingCartRelationService getBuildShoppingCartGoodsResponseService(String partnerId);
/**
* 获取购物车清空后的操作实现
* @param partnerId
* @return
*/
ShoppingCartRelationService cleanAfter(String partnerId);
} }
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
package cn.freemud.service.shoppingCart; package cn.freemud.service.shoppingCart;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto; import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.ShoppingCartClearRequestVo;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo; import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
public interface ShoppingCartRelationService { public interface ShoppingCartRelationService {
...@@ -24,5 +25,10 @@ public interface ShoppingCartRelationService { ...@@ -24,5 +25,10 @@ public interface ShoppingCartRelationService {
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult, CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult,
Integer flag); Integer flag);
/**
* 购物车清空后的扩展操作
*/
void cleanAfter(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartClearRequestVo shoppingCartClearRequestVo);
} }
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
package cn.freemud.service.shoppingCart.impl; package cn.freemud.service.shoppingCart.impl;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto; import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.ShoppingCartClearRequestVo;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo; import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.service.shoppingCart.ShoppingCartRelationService; import cn.freemud.service.shoppingCart.ShoppingCartRelationService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -26,4 +27,9 @@ public class PlatformShoppingCartRelationServiceImpl implements ShoppingCartRela ...@@ -26,4 +27,9 @@ public class PlatformShoppingCartRelationServiceImpl implements ShoppingCartRela
Integer flag) { Integer flag) {
} }
@Override
public void cleanAfter(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartClearRequestVo shoppingCartClearRequestVo) {
}
} }
...@@ -54,4 +54,13 @@ public class ShoppingCartRelationFactoryImpl implements ShoppingCartRelationFact ...@@ -54,4 +54,13 @@ public class ShoppingCartRelationFactoryImpl implements ShoppingCartRelationFact
} }
} }
@Override
public ShoppingCartRelationService cleanAfter(String partnerId) {
if(cocoPartnerId.contains(partnerId)){
return cocoShoppingCartRelationService;
}else{
return platformShoppingCartRelationService;
}
}
} }
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