Commit e2dc6fff by 刘鹏飞

Merge remote-tracking branch 'remotes/origin/master' into feature/coco-payGift-刘鹏飞

parents f2481fd0 a38d1d14
...@@ -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.1.3-RELEASE</version> <version>2.1.5-RELEASE</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.3.19.RELEASE</version> <version>1.3.20.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -82,3 +82,5 @@ ...@@ -82,3 +82,5 @@
| 2.0.16.RELEASE | 麦咖啡问题修复 | 徐康 | 2020-11-09 | | 2.0.16.RELEASE | 麦咖啡问题修复 | 徐康 | 2020-11-09 |
| 2.1.2.RELEASE | 活动扣减库存 | 缪晖 | 2020-11-11 | | 2.1.2.RELEASE | 活动扣减库存 | 缪晖 | 2020-11-11 |
| 2.1.3-RELEASE | 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 | | 2.1.3-RELEASE | 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 |
| 2.1.4-RELEASE | 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 |
| 2.1.5-RELEASE | 麦咖啡权益卡金额入机 | 徐康 | 2020-11-23 |
\ No newline at end of file
...@@ -493,6 +493,7 @@ public class OrderSdkAdapter { ...@@ -493,6 +493,7 @@ public class OrderSdkAdapter {
//1=订单,2=订单商品,3=售后单 //1=订单,2=订单商品,3=售后单
orderCostCreateReq.setBillType(1); orderCostCreateReq.setBillType(1);
orderCostCreateReq.setProductId(accountRequest.getProductId()); orderCostCreateReq.setProductId(accountRequest.getProductId());
orderCostCreateReq.setNote(accountRequest.getNote());
orderCostCreateReqs.add(orderCostCreateReq); orderCostCreateReqs.add(orderCostCreateReq);
} else { } else {
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq(); OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
...@@ -1324,6 +1325,9 @@ public class OrderSdkAdapter { ...@@ -1324,6 +1325,9 @@ public class OrderSdkAdapter {
case "MEMBER_PRICE_DISCOUNT": case "MEMBER_PRICE_DISCOUNT":
type=220; type=220;
break; break;
case "GATHER_SPOT":
type=221;
break;
default: default:
break; break;
} }
......
...@@ -42,6 +42,7 @@ public enum OldOrderAccountType { ...@@ -42,6 +42,7 @@ public enum OldOrderAccountType {
NEW_USER_DISCOUNT(101, "新用户立减", "NEW_USER_DISCOUNT"), NEW_USER_DISCOUNT(101, "新用户立减", "NEW_USER_DISCOUNT"),
PRICE_DEDUCTION_COUPON(103, "抵价券", "PRICE_DEDUCTION_COUPON"), PRICE_DEDUCTION_COUPON(103, "抵价券", "PRICE_DEDUCTION_COUPON"),
TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"), TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"),
GATHER_SPOT(221, "集点活动","GATHER_SPOT"),
MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT"); MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT");
private Integer code; private Integer code;
......
...@@ -39,6 +39,7 @@ public enum QueryOrderAccountType { ...@@ -39,6 +39,7 @@ public enum QueryOrderAccountType {
ONLINE_PAY("ONLINE_PAY", "线上支付"), ONLINE_PAY("ONLINE_PAY", "线上支付"),
FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"), FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"),
OFFLINE_PAY("OFFLINE_PAY", "线下支付"), OFFLINE_PAY("OFFLINE_PAY", "线下支付"),
GATHER_SPOT("GATHER_SPOT", "集点活动"),
MEMBER_PRICE_DISCOUNT("MEMBER_PRICE_DISCOUNT","会员价优惠"), MEMBER_PRICE_DISCOUNT("MEMBER_PRICE_DISCOUNT","会员价优惠"),
MCCAFE_MONTH_CARD("MCCAFE_MONTH_CARD","麦咖啡月卡"), MCCAFE_MONTH_CARD("MCCAFE_MONTH_CARD","麦咖啡月卡"),
WITH_ORDER_BUY_COUPON_FEE("WITH_ORDER_BUY_COUPON_FEE", "随单买月卡"), WITH_ORDER_BUY_COUPON_FEE("WITH_ORDER_BUY_COUPON_FEE", "随单买月卡"),
......
...@@ -40,6 +40,8 @@ public class CreateOrderAccountRequest extends BaseConfig { ...@@ -40,6 +40,8 @@ public class CreateOrderAccountRequest extends BaseConfig {
*/ */
private String addInfo; private String addInfo;
private String note;
private String productId; private String productId;
private Integer discountQty; private Integer discountQty;
......
...@@ -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.1.3-RELEASE</version> <version>2.1.5-RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>storecenter-sdk</artifactId> <artifactId>storecenter-sdk</artifactId>
<version>3.1.9.RELEASE</version> <version>3.2.1.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
......
...@@ -185,7 +185,7 @@ public class DeliveryAdapter { ...@@ -185,7 +185,7 @@ public class DeliveryAdapter {
if (CollectionUtils.isNotEmpty(order.getProductList())) { if (CollectionUtils.isNotEmpty(order.getProductList())) {
order.getProductList().forEach(productList -> { order.getProductList().forEach(productList -> {
ProductInfo deliveryProductInfo = new ProductInfo(); ProductInfo deliveryProductInfo = new ProductInfo();
deliveryProductInfo.setProductCode(productList.getProductId()); deliveryProductInfo.setProductCode(productList.getProductId().substring(4));
String productName = StringUtils.isBlank(productList.getSpecificationName()) ? productList.getProductName() : productList.getSpecificationName(); String productName = StringUtils.isBlank(productList.getSpecificationName()) ? productList.getProductName() : productList.getSpecificationName();
OrderProductAddInfoDto extInfo = JSON.parseObject(productList.getExtInfo(), OrderProductAddInfoDto.class); OrderProductAddInfoDto extInfo = JSON.parseObject(productList.getExtInfo(), OrderProductAddInfoDto.class);
if(CollectionUtils.isNotEmpty(extInfo.getSpecialAttrs())) { if(CollectionUtils.isNotEmpty(extInfo.getSpecialAttrs())) {
...@@ -221,7 +221,7 @@ public class DeliveryAdapter { ...@@ -221,7 +221,7 @@ public class DeliveryAdapter {
if(CollectionUtils.isNotEmpty(productList.getComboProduct())) { if(CollectionUtils.isNotEmpty(productList.getComboProduct())) {
productList.getComboProduct().forEach(comboProduct -> { productList.getComboProduct().forEach(comboProduct -> {
ProductInfo deliveryComboProductInfo = new ProductInfo(); ProductInfo deliveryComboProductInfo = new ProductInfo();
deliveryComboProductInfo.setProductCode(comboProduct.getProductId()); deliveryComboProductInfo.setProductCode(comboProduct.getProductId().length()>4?comboProduct.getProductId().substring(4):comboProduct.getProductId());
String productNameCombo = StringUtils.isBlank(comboProduct.getSpecificationName()) ? comboProduct.getProductName() : comboProduct.getSpecificationName(); String productNameCombo = StringUtils.isBlank(comboProduct.getSpecificationName()) ? comboProduct.getProductName() : comboProduct.getSpecificationName();
OrderProductAddInfoDto extInfoCombo = JSON.parseObject(comboProduct.getExtInfo(), OrderProductAddInfoDto.class); OrderProductAddInfoDto extInfoCombo = JSON.parseObject(comboProduct.getExtInfo(), OrderProductAddInfoDto.class);
if(CollectionUtils.isNotEmpty(extInfoCombo.getSpecialAttrs())) { if(CollectionUtils.isNotEmpty(extInfoCombo.getSpecialAttrs())) {
...@@ -251,7 +251,7 @@ public class DeliveryAdapter { ...@@ -251,7 +251,7 @@ public class DeliveryAdapter {
deliveryComboProductInfo.setTaxId(StringUtils.isNotEmpty(orderComboProductAddInfoDto.getTaxId()) ? orderComboProductAddInfoDto.getTaxId() : "10"); deliveryComboProductInfo.setTaxId(StringUtils.isNotEmpty(orderComboProductAddInfoDto.getTaxId()) ? orderComboProductAddInfoDto.getTaxId() : "10");
deliveryComboProductInfo.setTaxRate(orderComboProductAddInfoDto.getTax() > 0 ? orderComboProductAddInfoDto.getTax() : 6); deliveryComboProductInfo.setTaxRate(orderComboProductAddInfoDto.getTax() > 0 ? orderComboProductAddInfoDto.getTax() : 6);
deliveryComboProductInfo.setParentCode(Long.valueOf(comboProduct.getParentProductId().replace("_", ""))); deliveryComboProductInfo.setParentCode(Long.valueOf(comboProduct.getParentProductId().replace("_", "").substring(4)));
deliveryProductInfo.setProductCode(deliveryComboProductInfo.getParentCode()+""); deliveryProductInfo.setProductCode(deliveryComboProductInfo.getParentCode()+"");
if(CollectionUtils.isNotEmpty(comboProduct.getMaterialProduct())) { if(CollectionUtils.isNotEmpty(comboProduct.getMaterialProduct())) {
......
...@@ -79,6 +79,7 @@ import org.springframework.data.redis.core.RedisTemplate; ...@@ -79,6 +79,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException; import java.security.spec.InvalidKeySpecException;
...@@ -182,6 +183,7 @@ public class OrderAdapter { ...@@ -182,6 +183,7 @@ public class OrderAdapter {
} }
} }
createOrderDto.setProducts(products); createOrderDto.setProducts(products);
boolean hasDeliveryMonthCard = false;
for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) { for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId(activityDiscountsDto.getActivityCode()) .accountId(activityDiscountsDto.getActivityCode())
...@@ -198,6 +200,9 @@ public class OrderAdapter { ...@@ -198,6 +200,9 @@ public class OrderAdapter {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId()); jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
} else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) { } else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("customerCode", activityDiscountsDto.getTenderId()); jsonObject.put("customerCode", activityDiscountsDto.getTenderId());
if(null != activityDiscountsDto.getExtendType() && activityDiscountsDto.getExtendType() == 2) {
hasDeliveryMonthCard = true;
}
} }
if(null != activityDiscountsDto.getExtendType()) { if(null != activityDiscountsDto.getExtendType()) {
jsonObject.put("extendType", activityDiscountsDto.getExtendType()); jsonObject.put("extendType", activityDiscountsDto.getExtendType());
...@@ -216,6 +221,9 @@ public class OrderAdapter { ...@@ -216,6 +221,9 @@ public class OrderAdapter {
.sequence(orderAccountIndex++) .sequence(orderAccountIndex++)
.actualPrice(discountDeliveryAmount) .actualPrice(discountDeliveryAmount)
.build(); .build();
if(hasDeliveryMonthCard && StringUtils.isNotBlank(storeResponseDto.getBenefitCardDiscountAmount())) {
createOrderAccountDto.setNote((Integer.parseInt(storeResponseDto.getBenefitCardDiscountAmount())*100)+"");
}
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
if (packageAmount > 0) { if (packageAmount > 0) {
...@@ -1109,6 +1117,10 @@ public class OrderAdapter { ...@@ -1109,6 +1117,10 @@ public class OrderAdapter {
responseVo.setPayStatusDesc(Optional.ofNullable(PayStatus.getByCode(ordersBean.getPayStatus())) responseVo.setPayStatusDesc(Optional.ofNullable(PayStatus.getByCode(ordersBean.getPayStatus()))
.map(PayStatus::getDesc).orElse("")); .map(PayStatus::getDesc).orElse(""));
responseVo.setPayVoucher(orderExtInfoDto != null ? orderExtInfoDto.getPayTransId() : ""); 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.setPayCreateTime(orderExtInfoDto != null ? orderExtInfoDto.getPayDate() : "");
responseVo.setPayChannel(ordersBean.getPayChannel()); responseVo.setPayChannel(ordersBean.getPayChannel());
if (StringUtils.isNotBlank(ordersBean.getPayChannel())) { if (StringUtils.isNotBlank(ordersBean.getPayChannel())) {
...@@ -1156,7 +1168,7 @@ public class OrderAdapter { ...@@ -1156,7 +1168,7 @@ public class OrderAdapter {
if (CollectionUtils.isNotEmpty(ordersBean.getRefundList())) { if (CollectionUtils.isNotEmpty(ordersBean.getRefundList())) {
responseVo.setRefundTips(orderViewStatusDto.getRefundStatusText()); responseVo.setRefundTips(orderViewStatusDto.getRefundStatusText());
} }
if(OrderStatus.COMPLETE.getCode().equals(ordersBean.getStatus())) { 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.setCompleteTime(DateUtil.convert2String(new Date(ordersBean.getGmtCompleteTime()), "yyyy-MM-dd HH:mm:ss"));
} }
responseVo.setTakeMealFlows(getTakeMealFlows(ordersBean)); responseVo.setTakeMealFlows(getTakeMealFlows(ordersBean));
...@@ -2480,6 +2492,9 @@ public class OrderAdapter { ...@@ -2480,6 +2492,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_23.getCode().equals(activityType)){ if (ActivityTypeEnum.TYPE_23.getCode().equals(activityType)){
return OldOrderAccountType.SUPER_PURCHASE; return OldOrderAccountType.SUPER_PURCHASE;
} }
if (ActivityTypeEnum.TYPE_221.getCode().equals(activityType)){
return OldOrderAccountType.GATHER_SPOT;
}
return OldOrderAccountType.BUYM_SENDN; return OldOrderAccountType.BUYM_SENDN;
} }
......
...@@ -203,6 +203,10 @@ public class QueryOrderResponseVo { ...@@ -203,6 +203,10 @@ public class QueryOrderResponseVo {
*/ */
private String payVoucher; private String payVoucher;
/** /**
* 付款单号条形码
*/
private String payVoucherBarCode;
/**
* 退款状态 enum refundStatus * 退款状态 enum refundStatus
*/ */
private Integer refundStatus; private Integer refundStatus;
......
...@@ -54,6 +54,7 @@ public enum ActivityTypeEnum { ...@@ -54,6 +54,7 @@ public enum ActivityTypeEnum {
TYPE_PACKAGE(900, "包装费"), TYPE_PACKAGE(900, "包装费"),
TYPE_DELIVERY(901, "配送费"), TYPE_DELIVERY(901, "配送费"),
TYPE_211(211, "套餐优惠"), TYPE_211(211, "套餐优惠"),
TYPE_221(221, "集点活动"),
TYPE_320(320, "会员价优惠"); TYPE_320(320, "会员价优惠");
private Integer code; private Integer code;
......
...@@ -557,12 +557,21 @@ public class CheckMCCafeOrder { ...@@ -557,12 +557,21 @@ public class CheckMCCafeOrder {
throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD); throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD);
} }
List<MCCafeCouponVo> mcCafeCouponVos = new ArrayList<>(); List<MCCafeCouponVo> mcCafeCouponVos = new ArrayList<>();
Map<String, String> mcCafeUsedCoupon = new HashMap<>();
if(CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getActivityDiscountsDtos())) { if(CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getActivityDiscountsDtos())) {
shoppingCartGoodsDto.getActivityDiscountsDtos().forEach(o-> { shoppingCartGoodsDto.getActivityDiscountsDtos().forEach(o-> {
if(ActivityTypeEnum.TYPE_3.getCode().equals(o.getActivityType()) || ActivityTypeEnum.TYPE_32.getCode().equals(o.getActivityType()) if(ActivityTypeEnum.TYPE_3.getCode().equals(o.getActivityType()) || ActivityTypeEnum.TYPE_32.getCode().equals(o.getActivityType())
|| ActivityTypeEnum.TYPE_34.getCode().equals(o.getActivityType()) || ActivityTypeEnum.TYPE_35.getCode().equals(o.getActivityType())) { || ActivityTypeEnum.TYPE_34.getCode().equals(o.getActivityType()) || ActivityTypeEnum.TYPE_35.getCode().equals(o.getActivityType())) {
mcCafeCouponVos.add(new MCCafeCouponVo(o.getActivityCode())); mcCafeCouponVos.add(new MCCafeCouponVo(o.getActivityCode()));
} }
if(ActivityTypeEnum.TYPE_32.getCode().equals(o.getActivityType()) && null != o.getExtendType()
&& (0 == o.getExtendType() || 3 == o.getExtendType() || 4 == o.getExtendType() || 5 == o.getExtendType())) {
if(StringUtils.isNotBlank(mcCafeUsedCoupon.get(o.getActivityCode()))) {
throw new ServiceException(ResponseResult.COUPON_SHOP_NOTSUPPORT, o.getActivityName() + "不可以重复使用");
} else {
mcCafeUsedCoupon.put(o.getActivityCode(), o.getActivityName());
}
}
}); });
} }
if(CollectionUtils.isNotEmpty(mcCafeCouponVos)) { if(CollectionUtils.isNotEmpty(mcCafeCouponVos)) {
......
...@@ -175,7 +175,21 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -175,7 +175,21 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){ if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
return baseResponse; return baseResponse;
} }
// 添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
// 锁定秒数从apollo获取,如果apollo没有设置,默认5秒
String createOrderKey = CREATE_ORDER_KEY + assortmentCustomerInfoVo.getMemberId();
try {
Long expire = Long.valueOf(createOrderKeyExpire);
if(!LockUtils.lock(redisCache.getRedisTemplate(),createOrderKey,expire)){
return ResponseUtil.error(ResponseResult.ORDER_NOT_CREATE_ERROR);
}
return mcCafeOrderService.createMCCafeOrder(createOrderVo); return mcCafeOrderService.createMCCafeOrder(createOrderVo);
} catch (Exception e) {
throw e;
} finally {
//LockUtils.unlock(redisCache.getRedisTemplate(),createOrderKey);
}
} }
@Override @Override
......
...@@ -446,16 +446,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -446,16 +446,7 @@ public class OrderServiceImpl implements Orderservice {
if (orderBean.getGmtExpect() != null && orderBean.getGmtExpect() != 0) { if (orderBean.getGmtExpect() != null && orderBean.getGmtExpect() != 0) {
var1.setExpectTime(DateUtil.convert2String(new Date(orderBean.getGmtExpect()), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)); var1.setExpectTime(DateUtil.convert2String(new Date(orderBean.getGmtExpect()), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
} }
/*
ShoppingCartGoodsDto.SendPoint value = (ShoppingCartGoodsDto.SendPoint)redisCache.getValue(RedisKeyConstant.KGD_SENDPOINT_ORDERID + var1.getOrderId());
if (value != null){
var1.setSendPointActivityCode(value.getActivityCode());
var1.setSendPointEndTime(value.getEndTime());
var1.setSendPointMaxNum(value.getMaxNum());
var1.setSendPointSendPoint(value.getSendPoint());
var1.setSendPointValidityDateDays(value.getValidityDateDays());
}
*/
// 订单支付成功 // 订单支付成功
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccess(var1); com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccess(var1);
String string2 = JSONObject.toJSONString(payAccessRes); String string2 = JSONObject.toJSONString(payAccessRes);
...@@ -526,6 +517,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -526,6 +517,9 @@ public class OrderServiceImpl implements Orderservice {
} }
//支付回掉成功标记 //支付回掉成功标记
redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES); redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES);
log.info("调用券码核销==" + message.getTrans_id());
verificationCoupon(message.getTrans_id());
log.info("调用券码结束=="+ message.getTrans_id());
return sendPaySuccessNoticeMessage(); return sendPaySuccessNoticeMessage();
} }
...@@ -602,9 +596,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -602,9 +596,6 @@ public class OrderServiceImpl implements Orderservice {
if (jsonObject.containsKey("code")) { if (jsonObject.containsKey("code")) {
Integer code = (Integer) jsonObject.get("code"); Integer code = (Integer) jsonObject.get("code");
if (Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_0, code) || Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, code)) { if (Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_0, code) || Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, code)) {
log.info("调用券码核销=="+newMessage.getTransId());
verificationCoupon(newMessage.getTransId());
log.info("调用券码结束=="+newMessage.getTransId());
return newSendPaySuccessNoticeMessage(); return newSendPaySuccessNoticeMessage();
} else { } else {
return newSendPayFaileMessage(); return newSendPayFaileMessage();
......
...@@ -14,7 +14,7 @@ public class DateUtils { ...@@ -14,7 +14,7 @@ public class DateUtils {
if (date == null ){ if (date == null ){
return null; return null;
} }
String[] week={"(周一)","(周二)","(周三)","(周四)","(周五)","(周六)","(周日)"}; String[] week={"(周日)","(周一)","(周二)","(周三)","(周四)","(周五)","(周六)"};
Calendar calendar =Calendar.getInstance(); Calendar calendar =Calendar.getInstance();
calendar.setTime(date); calendar.setTime(date);
int w = calendar.get(Calendar.DAY_OF_WEEK) -1 ; int w = calendar.get(Calendar.DAY_OF_WEEK) -1 ;
......
...@@ -122,7 +122,12 @@ public class OrderManagerAdapter { ...@@ -122,7 +122,12 @@ public class OrderManagerAdapter {
//查询订单 //查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId()); QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验 //订单接单参数校验
BaseResponse verifyResponse = orderVerifyHandle.orderRejectVerify(orderBean, request); BaseResponse verifyResponse;
if (!macCafePartnerId.equals(orderBean.getCompanyId())) {
verifyResponse = orderVerifyHandle.orderRejectVerify(orderBean, request);
} else {
verifyResponse = orderVerifyHandle.mcCafeOrderRejectVerify(orderBean, request);
}
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) { if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse); return handleResponse(request,orderBean,verifyResponse);
} }
......
...@@ -19,6 +19,7 @@ import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter; ...@@ -19,6 +19,7 @@ import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant; import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.message.enums.OrderType; import com.freemud.sdk.api.assortment.message.enums.OrderType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType; import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.enums.RefundStatus; import com.freemud.sdk.api.assortment.order.enums.RefundStatus;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest; import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse; import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
...@@ -216,6 +217,40 @@ public class OrderVerifyHandle { ...@@ -216,6 +217,40 @@ public class OrderVerifyHandle {
} }
/** /**
* 拒单
*
* @param orderBean
* @param request
* @return
*/
public BaseResponse mcCafeOrderRejectVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
Integer status = orderBean.getStatus();
//判断订单是否已经被拒单
if (OrderStatus.REFUSE.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_REPETITION, getOrderManagerResponse(orderBean));
}
//判断订单是否已经取消
if (OrderStatus.CANCEL.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED, getOrderManagerResponse(orderBean));
}
//判断订单是否在配送中
if (OrderStatus.DISTRIBUTION.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_DELIVERY, getOrderManagerResponse(orderBean));
}
//判断订单是否已送达
if (OrderStatus.COMPLETE.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_COMPLETE, getOrderManagerResponse(orderBean));
}
if (!OrderStatus.TAKE_ORDER.getCode().equals(status) && !OldOrderType.TAKE_OUT.getCode().equals(orderBean.getOrderType())) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_NOT_NEW, getOrderManagerResponse(orderBean));
}
return ResponseUtil.success();
}
/**
* 同意退款 * 同意退款
* *
* @param orderBean * @param orderBean
......
...@@ -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.3.19.RELEASE</version> <version>1.3.20.RELEASE</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -52,4 +52,5 @@ ...@@ -52,4 +52,5 @@
| 1.3.16.RELEASE | 麦咖啡多规格 | 徐康 | 2020-10-09 | | 1.3.16.RELEASE | 麦咖啡多规格 | 徐康 | 2020-10-09 |
| 1.3.17.RELEASE | 集点推送改造 | 梁崇福 | 2020-10-28 | | 1.3.17.RELEASE | 集点推送改造 | 梁崇福 | 2020-10-28 |
| 1.3.18.RELEASE | 麦咖啡加料 | 徐康 | 2020-10-30 | | 1.3.18.RELEASE | 麦咖啡加料 | 徐康 | 2020-10-30 |
| 1.3.20.RELEASE | 麦咖啡权益卡金额入机 | 徐康 | 2020-11-23 |
...@@ -25,7 +25,9 @@ public enum ShoppingCartPromotionEnum { ...@@ -25,7 +25,9 @@ public enum ShoppingCartPromotionEnum {
TwoN_DISCOUNT(9, "twoNDiscountService"), TwoN_DISCOUNT(9, "twoNDiscountService"),
BUY_GIFTS(10, "buyAndGiftsPromotionService"), BUY_GIFTS(10, "buyAndGiftsPromotionService"),
MEMBER_DISCOUNT(11, "memberDiscountService"), MEMBER_DISCOUNT(11, "memberDiscountService"),
Material(12, "MaterialPromotionService"); Material(12, "MaterialPromotionService"),
// 集点活动类
GATHER_SPOT(13, "gatherSpotPromotionService");
private Integer type; private Integer type;
private String msgType; private String msgType;
......
package cn.freemud.service.impl;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.UserLoginInfoDto;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.IPromotionService;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* All rights Reserved, Designed By www.freemud.cn
* 集点活动
*
* @version V1.0
* @Title: BuyAndGiftsPromotionService
* @Package cn.freemud.service.impl
* @Description:
* @author: pengfei.liu
* @date: 2020/11/16
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service("gatherSpotPromotionService")
public class GatherSpotPromotionService implements IPromotionService {
/**
* 集点活动只有赠送的点数,没有优惠金额<br/>
* 优惠金额不做处理
* @param couponPromotionVO
* @param activityQueryDto
* @param calculationDiscountResult
* @param cartGoodsList
* @param shoppingCartGoodsResponseVo
* @param userLoginInfoDto
* @param shoppingCartInfoRequestVo
*/
@Override
public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto,
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult,
List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,
UserLoginInfoDto userLoginInfoDto, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
return;
}
/**
* 活动类型-TYPE_221筛选出集点活动
* 集点活动没有优惠金额,所以促销金额设置为0
* @param shoppingCartGoodsResponseVo
* @param calculationDiscountResult
* @param shoppingCartGoodsDto
* @param premiumExchangeActivity
* @param shoppingCartInfoRequestVo
*/
@Override
public void updateShoppingCartGoodsApportion(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto, CreateOrderVo.PremiumExchangeActivity premiumExchangeActivity, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())) {
return;
}
// 活动类型-TYPE_221筛选出集点活动
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> gatherSpots = calculationDiscountResult.getDiscounts().stream().filter(activityPrompt -> null != activityPrompt.getType() && ActivityTypeEnum.TYPE_221.getCode().intValue() == activityPrompt.getType().intValue()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(gatherSpots)) {
return;
}
// 其他活动已经计算出来的促销活动
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount gatherSpot : gatherSpots) {
//设置优惠活动
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(gatherSpot.getActivityCode());
activityDiscountsDto.setActivityName(gatherSpot.getActivityName());
activityDiscountsDto.setActivityType(gatherSpot.getType());
activityDiscountsDto.setDiscountAmount(0);
activityDiscountsDtos.add(activityDiscountsDto);
}
shoppingCartGoodsDto.setActivityDiscountsDtos(activityDiscountsDtos);
}
}
...@@ -1385,6 +1385,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1385,6 +1385,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BuyAndGiftsPromotionService buyAndGiftsPromotionService = (BuyAndGiftsPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.BUY_GIFTS); BuyAndGiftsPromotionService buyAndGiftsPromotionService = (BuyAndGiftsPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.BUY_GIFTS);
buyAndGiftsPromotionService.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo); buyAndGiftsPromotionService.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo);
// 集点活动
GatherSpotPromotionService gatherSpotPromotionService = (GatherSpotPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.GATHER_SPOT);
gatherSpotPromotionService.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo);
/** /**
* 设置加料商品行记录 * 设置加料商品行记录
*/ */
...@@ -1857,7 +1861,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1857,7 +1861,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
public boolean grayPush(String partnerId, String storeId, String version) { public boolean grayPush(String partnerId, String storeId, String version) {
if (StringUtils.isBlank(sharing)) return false; if (StringUtils.isBlank(sharing)) return false;
CalculateCenter center = JSON.parseObject(sharing, CalculateCenter.class); CalculateCenter center = JSON.parseObject(sharing, CalculateCenter.class);
Boolean enable = false; Boolean enable = false;
if (!center.getEnable()) return false; if (!center.getEnable()) return false;
...@@ -1866,21 +1869,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1866,21 +1869,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
enable = true; enable = true;
break; break;
case 1: { case 1: {
if (StringUtils.isBlank(center.getPartnerId())) { //商户+门店级别
enable = false; String real = partnerId.concat(storeId);
} else { if (Arrays.asList(center.getGrayList().split(",")).contains(real)) {
if (Arrays.asList(center.getPartnerId().split(",")).contains(partnerId)) {
enable = true; enable = true;
} else {
enable = false;
} }
if (Arrays.asList(center.getStoreId().split(",")).contains(storeId)) { //商户级别
else if (Arrays.asList(center.getGrayList().split(",")).contains(partnerId)) {
enable = true; enable = true;
} else {
enable = false;
}
} }
break;
} }
} }
if (center.getEnable() && enable) { if (center.getEnable() && enable) {
......
...@@ -22,12 +22,7 @@ public class CalculateCenter { ...@@ -22,12 +22,7 @@ public class CalculateCenter {
/** /**
* 商户 * 商户
*/ */
private String partnerId; private String grayList;
/**
* 门店
*/
private String storeId;
/** /**
* 是否启用新的算价中心 * 是否启用新的算价中心
......
...@@ -202,6 +202,7 @@ public class CalculationSharingDiscountService { ...@@ -202,6 +202,7 @@ public class CalculationSharingDiscountService {
} }
} }
/** /**
* 实物商品 * 实物商品
* @param calculationDiscountGoodsList * @param calculationDiscountGoodsList
...@@ -209,11 +210,18 @@ public class CalculationSharingDiscountService { ...@@ -209,11 +210,18 @@ public class CalculationSharingDiscountService {
*/ */
private void setCommonDiscountGoods(List<CalculationSharingDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList private void setCommonDiscountGoods(List<CalculationSharingDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList
, CartGoods cartGoods) { , CartGoods cartGoods) {
CalculationSharingDiscountRequestDto.CalculationDiscountGoods calculationDiscountGoods = new CalculationSharingDiscountRequestDto.CalculationDiscountGoods(); CalculationSharingDiscountRequestDto.CalculationDiscountGoods calculationDiscountGoods = new CalculationSharingDiscountRequestDto.CalculationDiscountGoods();
calculationDiscountGoods.setGoodsId(cartGoods.getGoodsId()); calculationDiscountGoods.setGoodsId(cartGoods.getGoodsId());
calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid()); calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid());
calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty()); calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty());
//if (cartGoods.getGoodsType().equals(GoodsTypeEnum.SET_MEAL_GOODS))
if (CollectionUtils.isNotEmpty(cartGoods.getProductGroupList()) || CollectionUtils.isNotEmpty(cartGoods.getProductComboList())) {
calculationDiscountGoods.setOriginalPrice(cartGoods.getFinalPrice()!=null ? cartGoods.getFinalPrice() : cartGoods.getOriginalPrice());
}
else {
calculationDiscountGoods.setOriginalPrice(cartGoods.getOriginalPrice()); calculationDiscountGoods.setOriginalPrice(cartGoods.getOriginalPrice());
}
calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount()); calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount());
calculationDiscountGoods.setSpuId(cartGoods.getSpuId()); calculationDiscountGoods.setSpuId(cartGoods.getSpuId());
//商品加料 //商品加料
......
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