Commit f88982cd by 周晓航

Merge branch 'master' of gitlab.freemud.com:order-group-application/order-group…

Merge branch 'master' of gitlab.freemud.com:order-group-application/order-group into feature/修复微信模板推送字数限制
parents 888ceba8 d766fdf6
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.1.40-RELEASE</version>
<version>2.1.44-RELEASE</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.3.42.RELEASE</version>
<version>1.3.43.RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -117,3 +117,5 @@
| 2.1.38-RELEASE | 外卖配送自动流转 | 张志恒 | 2021-03-11 |
| 2.1.39-RELEASE | 美业 | 刘鹏飞 | 2021-03-12 |
| 2.1.40-RELEASE | 三方展示活动信息 | 张志恒 | 2021-03-22 |
| 2.1.41-RELEASE | 小助手刷卡支付下单 | 王航航 | 2021-03-31 |
| 2.1.44-RELEASE | 外卖渠道新增美团聚宝盆 | 伍平 | 2021-04-06 |
\ No newline at end of file
......@@ -33,7 +33,7 @@ public enum OrderSourceType {
BDWM("bdwm", "百度外卖", 16),
IPINTUAN("ipintuan", "i拼团", 18),
MEAL("meal", "i围餐", 19),
JUBAOPEN("jbp", "美团聚宝盆", 20),
JUBAOPEN("mtjbp", "美团聚宝盆", 20),
DIANPING("dp", "美团点评", 21),
KOUBEI("koubeiwaimai", "口碑外卖", 22),
MALL("mall", "非码Mall", 23),
......@@ -43,10 +43,10 @@ public enum OrderSourceType {
Y_POS("ypos", "非码云POS", 26),
TIKTOKPAY("tiktokpay","抖音支付", 27),
BEAUTIFUL("beautiful","美业", 28),
ASSISTANT("assistant","非码小助手", 29),
parkingmanual("parkingmanual", "农工商停车手工录单", 98),
PARKING("parking", "农工商停车", 99),
SDG("sdg", "闪电购", 1000);
private String code;
private String desc;
private Integer clientType;
......
......@@ -1898,7 +1898,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
}
//预约单
if(OrderType.RESERVED_EXPRESS.equals(baseQueryOrderRequest.getOrderType())
&& configuration.getDeliveryProcessingBeforeMinute()>0){
&& configuration.getDeliveryProcessingBeforeMinute() != null && configuration.getDeliveryProcessingBeforeMinute()>0){
timeout = QueryDeliveryType.SELF.getCode().equals(baseQueryOrderRequest.getDeliveryType())
//? AutoOrderConfigTime.getTime(configuration.getDeliveryProcessingBeforeMinute().toString())
? configuration.getDeliveryProcessingBeforeMinute()
......
......@@ -46,7 +46,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.1.40-RELEASE</version>
<version>2.1.44-RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -15,6 +15,7 @@ package cn.freemud.adapter;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CustomerScoreConstant;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
......@@ -48,9 +49,11 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
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.AssortmentOpenPlatformPartnerConfigManager;
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;
......@@ -128,6 +131,10 @@ public class OrderAdapter {
private String withOrderBuyCardId;
@Value("${mccafe.universal.coupon.code}")
private String withOrderBuyCouponCode;
@Value("${pay.turnoff.refund}")
private String payTurnoffRefund = "0";
@Value("${pay.turnoff.refund.partnerId}")
private String payTurnoffRefundPartnerId = "0";
/**
* coco商户
......@@ -159,6 +166,9 @@ public class OrderAdapter {
@Autowired
private OrderSdkAdapter orderSdkAdapter;
@Autowired
private AssortmentOpenPlatformPartnerConfigManager assortmentOpenPlatformPartnerConfigManager;
/**
* @param createOrderVo
* @param shoppingCartGoodsDto
......@@ -1419,6 +1429,7 @@ public class OrderAdapter {
responseVo.setProgress(ordersBean.getProgress());
responseVo.setQueueIndex(ordersBean.getQueueIndex());
responseVo.setOrderProgressBarStatus(ordersBean.getOrderProgressBarStatus());
responseVo.setPayTurnoffRefund(getPayTurnoffRefund());
list.add(responseVo);
});
return list;
......@@ -4115,4 +4126,19 @@ public class OrderAdapter {
}
return "下单成功";
}
/**
* 获取是否支持订单退款
*/
public String getPayTurnoffRefund(){
try {
AssortmentOpenPlatformPartnerConfig assortmentOpenPlatformPartnerConfig = assortmentOpenPlatformPartnerConfigManager.selectPartnerConfigByPartnerKey(payTurnoffRefundPartnerId,RedisKeyConstant.PARTNER_PAY_TURNOFF_REFUND,1);
if (null != assortmentOpenPlatformPartnerConfig) {
payTurnoffRefund = assortmentOpenPlatformPartnerConfig.getPartnerValue();
}
}catch (Exception e){
log.error("getPayTurnoffRefund error:{}", e.getMessage());
}
return payTurnoffRefund;
}
}
......@@ -69,6 +69,16 @@ public class RedisKeyConstant {
*/
public final static String KGD_SENDPOINT_ORDERID = "kgd:sendpoint:orderid:";
/**
* 支付是否可以退款前缀
*/
public final static String SAAS_ORDER_PAYMENT_PARTNERKEY_ = "saas:order:payment:partnerkey_";
/**
* 支付是否可以退款后缀
*/
public final static String PARTNER_PAY_TURNOFF_REFUND = "partner_pay_turnoff_refund";
private final static String REDIS_KEY_SEP = ":";
......
......@@ -82,12 +82,18 @@ public class OrderRiderResponseVo {
/**
* 骑手姓名
*/
private String RiderName;
private String riderName;
/**
* 骑手电话
*/
private String RiderPhone;
private String riderPhone;
/**
* 配送类型 1自配送(三方渠道配送、商家店员配送) 2平台配送
*/
private Integer expressType;
@Data
public static class Operation{
private String createTime;
......
......@@ -167,6 +167,11 @@ public class QueryOrderResponseVo {
* 是否展示进度条
*/
private Integer orderProgressBarStatus ;
/**
* 是否支持退款
*/
private String payTurnoffRefund ;
/**
* 申请退款按钮
*/
......
......@@ -924,6 +924,19 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// TODO 记录一下冻结失败的券
}
}
//调用基础服务生成第三方订单号
String downstreamThirdOrderCode = "";
if(OldOrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
//调用基础订单接口更新信息
UpdateDownstreamOrderCodeReq updateDownstreamOrderCodeReq = new UpdateDownstreamOrderCodeReq();
updateDownstreamOrderCodeReq.setOrderCode(orderBean.getOid());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse baseResponse = orderSdkService.updateDownstreamThirdOrderCode(updateDownstreamOrderCodeReq, LogThreadLocal.getTrackingNo());
LinkedHashMap<String, String> linkedHashMap = (LinkedHashMap) baseResponse.getResult();
downstreamThirdOrderCode = linkedHashMap.get("downstreamThirdOrderCode");
}
// 订单失败后 发消息重试 待实现
String takeCode;
String daySeq;
......@@ -950,18 +963,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// 订单支付成功
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccessMCCafe(var1);
//调用基础服务生成第三方订单号
String downstreamThirdOrderCode = "";
if(OldOrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
//调用基础订单接口更新信息
UpdateDownstreamOrderCodeReq updateDownstreamOrderCodeReq = new UpdateDownstreamOrderCodeReq();
updateDownstreamOrderCodeReq.setOrderCode(orderBean.getOid());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse baseResponse = orderSdkService.updateDownstreamThirdOrderCode(updateDownstreamOrderCodeReq, LogThreadLocal.getTrackingNo());
LinkedHashMap<String, String> linkedHashMap = (LinkedHashMap) baseResponse.getResult();
downstreamThirdOrderCode = linkedHashMap.get("downstreamThirdOrderCode");
}
String string2 = JSONObject.toJSONString(payAccessRes);
JSONObject jsonObject2 = JSONObject.parseObject(string2);
payAccessResponse = jsonObject2.toJavaObject(PayAccessResponse.class);
......
......@@ -590,7 +590,7 @@ public class OrderServiceImpl implements Orderservice {
}
//支付回掉成功标记
redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES);
if (message.getSource().equals(PaySuccessSource.OUTSIDE.getSource())) {
if (message.getSource() != null && message.getSource().equals(PaySuccessSource.OUTSIDE.getSource())) {
log.info("调用券码核销==" + message.getTrans_id());
verificationCoupon(message.getTrans_id());
log.info("调用券码结束==" + message.getTrans_id());
......@@ -1349,6 +1349,7 @@ public class OrderServiceImpl implements Orderservice {
responseVo.setStorePhone(deliveryBaseResponse.getData().getStorePhone());
responseVo.setRiderName(deliveryBaseResponse.getData().getRiderName());
responseVo.setRiderPhone(deliveryBaseResponse.getData().getRiderPhone());
responseVo.setExpressType(orderBean.getExpressType());
if (deliveryBaseResponse.getData().getCurrentPoint() != null) {
String[] currentPoint = deliveryBaseResponse.getData().getCurrentPoint().split(",");
responseVo.setRiderLongitude(currentPoint[0]);
......@@ -1421,12 +1422,10 @@ public class OrderServiceImpl implements Orderservice {
if (CollectionUtils.isNotEmpty(queryOrderResponseVo.getProducts())) {
// add by miaohui for 20210325_华莱士紧急上线需求支付有礼须支持套餐内固定可选商品_miaohui start
List<String> skuIds = queryOrderResponseVo.getProducts().stream().map(p -> p.getPid()).collect(Collectors.toList());
ApiLog.info("支付有礼hlsPartnerId套餐参与促销日志", hlsPartnerId, queryOrderResponseVo.getOid());
if (hlsPartnerId != null && hlsPartnerId.contains(partnerId)) {
// 华莱士获取支付有理促销数据时须将套餐商品内固定搭配、可选搭配商品的skuId一同传入
queryOrderResponseVo.getProducts().forEach(productVo -> {
if (CollectionUtils.isNotEmpty(productVo.getSetMealProducts())) {
ApiLog.info("支付有礼productVo.getSetMealProducts()套餐参与促销日志", productVo.getSetMealProducts(), queryOrderResponseVo.getOid());
productVo.getSetMealProducts().forEach(setMealProduct -> {
skuIds.add(setMealProduct.getPid());
});
......@@ -3251,12 +3250,14 @@ public class OrderServiceImpl implements Orderservice {
orderEditRequest.setPayChannelType(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getIndex());
}
//混合支付项
if (CollectionUtils.isNotEmpty(orderPayResponse.getPayItem()) && orderPayResponse.getPayItem().size()==2) {
if (CollectionUtils.isNotEmpty(orderPayResponse.getPayItem())) {
orderEditRequest.setOrderPayItem(orderPayResponse.getPayItem());
if(orderPayResponse.getPayItem().size()==2){
orderEditRequest.setPayChannel(PayChannelType.COMB.getEbcode());
orderEditRequest.setPayChannelName(PayChannelType.COMB.getName());
orderEditRequest.setPayChannelType(PayChannelType.COMB.getIndex());
}
}
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderEdit(orderEditRequest);
if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS, baseOrderResponse.getErrcode())) {
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
......@@ -3798,7 +3799,7 @@ public class OrderServiceImpl implements Orderservice {
String ebCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), channel, storeId);
OrderPayResponse orderPayResponse = new OrderPayResponse();
;
if (StringUtils.isBlank(ebCode)) {
orderPayResponse.setMsg("请先联系相关人员配置商户对应的支付渠道");
return orderPayResponse;
......@@ -3979,6 +3980,7 @@ public class OrderServiceImpl implements Orderservice {
log.info("payment timeout callback for refund orderDto={}", JSON.toJSONString(orderBean));
Integer abState = 4;
String noPay = "8200404";
//4 表示订单已经退款了
if (abState.equals(orderBean.getAbnormalState())) {
log.info("payment timeout callback for refund is exist");
return;
......@@ -4007,7 +4009,7 @@ public class OrderServiceImpl implements Orderservice {
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款失败");
}
sdkUpdateAbnormalState.setPartnerId(orderBean.getCompanyId());
sdkUpdateAbnormalState.setAbnormalState(4);
sdkUpdateAbnormalState.setAbnormalState(4);//
sdkUpdateAbnormalState.setOrderCode(orderBean.getOid());
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
......
package cn.freemud.service.impl;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.service.adapter.OrderManagerAdapter;
import cn.freemud.management.thirdparty.MulitiPaymentClient;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.delivery.ThirdDeliveryServiceImpl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformConfig;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformConfigManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager;
import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
import com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest;
import com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse;
import org.apache.commons.lang.StringUtils;
import org.hibernate.validator.HibernateValidator;
import org.hibernate.validator.HibernateValidatorConfiguration;
import org.junit.Test;
......@@ -37,7 +45,7 @@ import java.util.Set;
public class MallOrderServiceImplTest {
@Autowired
private ThirdDeliveryServiceImpl thirdDeliveryServiceImpl;
private AssortmentOpenPlatformPartnerConfigManager assortmentOpenPlatformPartnerConfigManager;
// @Autowired
// private MallOrderServiceImpl mallOrderService;
......@@ -106,8 +114,15 @@ public class MallOrderServiceImplTest {
@Test
public void test() {
thirdDeliveryServiceImpl.sendException("19828644895966012600001","异常单子测试","2021-01-22 00:00:00","");
String payTurnoffRefund = "0";
try {
AssortmentOpenPlatformPartnerConfig assortmentOpenPlatformPartnerConfig = assortmentOpenPlatformPartnerConfigManager.selectPartnerConfigByPartnerKey("0",RedisKeyConstant.PARTNER_PAY_TURNOFF_REFUND,1);
if (null != assortmentOpenPlatformPartnerConfig) {
payTurnoffRefund = assortmentOpenPlatformPartnerConfig.getPartnerValue();
}
}catch (Exception e){
}
System.out.println(payTurnoffRefund);
}
}
......@@ -65,7 +65,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.1.40-RELEASE</version>
<version>2.1.44-RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
......
package cn.freemud.management.enums;
public enum OrderSource {
BDWM("bdwm", "百度外卖"),
JDWM("jdwm", "京东到家"),
MTWM("mtwm", "美团外卖"),
BDWM("bdwm", "百度外卖"),//16
JDWM("jdwm", "京东到家"),//10
MTWM("mtwm", "美团外卖"),//11
SDG("sdg", "闪电购"),
ELEME("eleme", "饿了么外卖"),
FMWD("fmwd", "非码微店"),
ELEME("eleme", "饿了么外卖"),//8
FMWD("fmwd", "非码微店"),//25
MALL("mall", "非码Mall"),
SAAS("saas", "saas点餐"),
ALIPAY("alipay", "支付宝"),
EBAI("ebwm", "饿百外卖"),
KOUBEI("koubeiwaimai", "口碑外卖"),
DPZHCT("dpzhct", "美团点评智慧餐厅");
EBAI("ebwm", "饿百外卖"),//9
KOUBEI("koubeiwaimai", "口碑外卖"),//22
DPZHCT("dpzhct", "美团点评智慧餐厅");//24
private String source;
private String sourceName;
......
......@@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 根据渠道获取渠道操作实体类
*/
......@@ -20,19 +22,26 @@ public class OrderBeanFactory {
@Value("${mccafe.partner.id}")
private String macCafePartnerId;
@Value("#{'${o2o.orderClient}'.split(',')}")
private List<String> o2oOrderClients;
@Autowired
private ApplicationContext applicationContext;
public OrderManagerService getOrderManagerService(QueryOrdersResponse.DataBean.OrderBean orderBean){
String source = orderBean.getSource();
// String source = orderBean.getSource();
String orderClient = orderBean.getOrderClient();
String companyId = orderBean.getCompanyId();
if (macCafePartnerId.equals(companyId)){
return applicationContext.getBean(McCafeMangerServiceImpl.class);
}
if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source)
|| OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source)
|| OrderSource.FMWD.getSource().equals(source) || OrderSource.EBAI.getSource().equals(source)
|| OrderSource.KOUBEI.getSource().equals(source) || OrderSource.DPZHCT.getSource().equals(source)){
// if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source)
// || OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source)
// || OrderSource.FMWD.getSource().equals(source) || OrderSource.EBAI.getSource().equals(source)
// || OrderSource.KOUBEI.getSource().equals(source) || OrderSource.DPZHCT.getSource().equals(source)){
// return applicationContext.getBean(WaimaiOrderMangerServiceImpl.class);
// }
if (o2oOrderClients.contains(orderClient)){
return applicationContext.getBean(WaimaiOrderMangerServiceImpl.class);
}
return applicationContext.getBean(SaasOrderMangerServiceImpl.class);
......
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.3.42.RELEASE</version>
<version>1.3.43.RELEASE</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -74,3 +74,4 @@
| 1.3.40.RELEASE | 外卖配送自动流转 | 李小二 | 2021-03-11 |
| 1.3.41.RELEASE | 美业 | 刘鹏飞 | 2021-03-12 |
| 1.3.42.RELEASE | 三方展示活动信息 | 张志恒 | 2021-03-22 |
| 1.3.43.RELEASE | 小助手刷卡支付 | 王航航 | 2021-03-31 |
\ No newline at end of file
......@@ -38,6 +38,7 @@ public enum OrderClientType {
FMWD(25, "非码微店"),
TIKTOKPAY(27, "抖音小程序"),
BEAUTIFUL(28, "美业"),
ASSISTANT(29, "非码小助手"),
PARKING(99 , "农工商停车"),
;
......
......@@ -16,21 +16,18 @@ import cn.freemud.aop.LogIgnore;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.demo.controller.ShoppingCartDemoController;
import cn.freemud.demo.entities.dto.goods.add.AddGoodsRequestDTO;
import cn.freemud.entities.dto.GetMemberInfoRequestDto;
import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.coupon.CouponAvailableRequestVo;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.OpenStoreIappWxappConfigService;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.ShoppingCartNewService;
import cn.freemud.service.impl.ShoppingCartMallServiceImpl;
import cn.freemud.service.impl.ShoppingCartMealServiceImpl;
import cn.freemud.service.impl.ShoppingCartNewServiceImpl;
import cn.freemud.service.impl.ShoppingCartToolsServiceImpl;
import cn.freemud.utils.BeanUtil;
import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
......@@ -38,10 +35,9 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import ma.glasnost.orika.MapperFacade;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
......@@ -245,7 +241,15 @@ public class ShoppingCartController {
*/
@PostMapping(value = "/premiumExchange")
@LogIgnore(excludeStatusCodes = {ResponseCodeConstant.RESPONSE_SUCCESS_STR},logMessage = "/premiumExchange")
public BaseResponse premiumExchange(@LogParams @RequestBody PremiumExchangeRequestVo request) {
public BaseResponse premiumExchange(@LogParams @RequestBody @Validated PremiumExchangeRequestVo request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(request);
}
/**
* 券码查询购物车商品信息(平台结算页可用券列表用)
*/
@PostMapping(value = "/getCartInfoByUser")
@LogIgnore(excludeStatusCodes = {ResponseCodeConstant.RESPONSE_SUCCESS_STR},logMessage = "/getCartInfoByUser")
public BaseResponse getCartInfoByUser(@LogParams @RequestBody @Validated CouponAvailableRequestVo request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).getCartInfoByUser(request);
}
}
......@@ -12,15 +12,15 @@ public class PremiumExchangeRequestVo {
@ApiModelProperty(value="版本号", name="version", example="1", required = false)
private String version;
@NotEmpty(message = "partnerId不能为空")
@NotNull(message = "partnerId不能为空")
@ApiModelProperty(value="商户号", name="partnerId", example="1864", required = true)
private String partnerId;
@NotEmpty(message = "shopId不能为空")
@NotNull(message = "shopId不能为空")
@ApiModelProperty(value="门店ID", name="shopId", example="007", required = true)
private String shopId;
@NotEmpty(message = "用户会话sessionId不能为空")
@NotNull(message = "用户会话sessionId不能为空")
@ApiModelProperty(value="sessionId", name="sessionId", example="1234", required = true)
private String sessionId;
......
package cn.freemud.entities.vo.coupon;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities.vo.coupon Product
* @Description: TDO 描述....
* @author: family
* @date: 2020/6/30
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CartProduct {
/**
* 商品id
*/
private String productId;
/**
* 总原价金额(包括主商品+可选搭配+加料商品)
*/
private Long originalTotalAmount;
/**
* 总实付金额(包括主商品+可选搭配+加料商品)
*/
private Long realAmount;
//总优惠金额(不包括赠品优惠金额和套餐优惠金额)
private Long discountAmount;
/**
* 主商品数量
*/
private Integer quantity;
//使用的商品券号
private String couponCode;
}
package cn.freemud.entities.vo.coupon;
import cn.freemud.entities.vo.CartGoods;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020-10-26 13:59:32
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
public class CouponAvailableCartInfo {
//渠道id
private String providerId;
//商户号
private String merchantId;
//门店id(校验门店限制)
private String storeId;
//组织机构id列表(校验渠道限制)
private List<String> channelIdList;
//组织机构code列表(校验渠道限制)
private List<String> channelCodeList;
//已使用券列表
private List<String> couponCodes;
/**
* 总原价金额(包括主商品+可选搭配+加料商品)
*/
private Long originalTotalAmount;
/**
* 总实付金额(包括主商品+可选搭配+加料商品)
*/
private Long realAmount;
//总优惠金额(不包括赠品优惠金额和套餐优惠金额)
private Long discountAmount;
//购物车商品列表
private List<CartProduct> productList;
}
package cn.freemud.entities.vo.coupon;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: QueryCartInfoRequestVo
* @Package cn.freemud.entities.vo
* @Description: 简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020/9/11 10:35
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponAvailableRequestVo {
@NotNull(message = "门店id不可为空")
private String storeId;
@ApiModelProperty(value = "sessionId",required = true)
@NotNull(message = "用户sessionId不可为空")
private String sessionId;
@ApiModelProperty(value = "menuType",notes = "菜单类型 saas(开个店自提)、saasdelivery(开个店外卖)",required = true)
@NotNull(message ="菜单类型不可为空")
private String menuType ;
@ApiModelProperty(value = "订单类型 1到店自取 2外卖")
@NotNull(message = "订单类型不可为空")
private Integer orderType;
@ApiModelProperty(value = "收货地址id",notes = "svc卡支付外卖订单必传")
private String receiveId;
}
\ No newline at end of file
......@@ -34,6 +34,7 @@ public enum ActivityTypeEnum {
TYPE_3(3, "代金券"),
TYPE_31(31, "折扣券"),
TYPE_32(32, "商品券"),
TYPE_33(33, "换购券"),
TYPE_37(37, "月享卡种子券"),
TYPE_5(5, "整单满金额折"),
TYPE_51(51, "每满金额折"),
......@@ -57,6 +58,7 @@ public enum ActivityTypeEnum {
TYPE_200(200, "X元Y件"),
TYPE_PACKAGE(900, "包装费"),
TYPE_DELIVERY(901, "配送费"),
TYPE_310(310, "套餐活动优惠"),
TYPE_320(320, "会员价商品优惠"),
TYPE_221(221, "集点");
......
......@@ -36,6 +36,8 @@ import cn.freemud.entities.dto.user.GetSessionUserInfoDto;
import cn.freemud.entities.dto.user.GetUserScoreUseDetailRequest;
import cn.freemud.entities.dto.user.GetUserScoreUserDetailResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.coupon.CouponAvailableCartInfo;
import cn.freemud.entities.vo.coupon.CouponAvailableRequestVo;
import cn.freemud.enums.*;
import cn.freemud.interceptor.BizServiceException;
import cn.freemud.interceptor.ServiceException;
......@@ -55,7 +57,6 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.constant.FMStatusCode;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
......@@ -81,11 +82,9 @@ import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseServi
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import com.google.common.collect.Lists;
import javafx.util.Pair;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import ma.glasnost.orika.MapperFacade;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -2863,4 +2862,47 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
}
}
/**
* 券码查询购物车商品信息(平台用)
* @param requestVo
* @return
*/
public BaseResponse<CouponAvailableCartInfo> getCartInfoByUser(CouponAvailableRequestVo requestVo){
// 获取用户信息
CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(requestVo.getSessionId());
String userId = assortmentCustomerInfoVo.getMemberId();
String partnerId = assortmentCustomerInfoVo.getPartnerId();
String appId = assortmentCustomerInfoVo.getAppId();
String storeId = requestVo.getStoreId();
String menuType = requestVo.getMenuType();
Integer orderType = requestVo.getOrderType();
CouponAvailableCartInfo couponAvailableCartInfo;
List<String> orgCodes = commonService.getOrgCodes(partnerId, storeId);
// 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCartForCoupon(partnerId, requestVo.getStoreId(), userId, "", shoppingCartBaseService);
if (grayPush(partnerId,storeId,"2")) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType
, partnerId
, storeId
, userId
, appId
, orderType
, assortmentCustomerInfoVo.isMemberPaid()
, cartGoodsList
, new ArrayList<>() //券
, null //加价购商品
, 0L
, null);
couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfoSharing(partnerId,storeId,discountResult,orgCodes);
}else {
// 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,assortmentCustomerInfoVo.getWxAppId(),orderType,assortmentCustomerInfoVo.isMemberPaid(),cartGoodsList,new ArrayList<>(),null,null,0L);
couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfo(partnerId,storeId,calculationDiscountResult,orgCodes);
}
return ResponseUtil.success(couponAvailableCartInfo);
}
}
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