Commit 824053fb by hanghang.wang

Merge branch 'feature/20210107_蜜雪新增APP购买虚拟商品(券)业务_wanghanghang' into develop

# Conflicts:
#	assortment-ordercenter-sdk/pom.xml
#	assortment-ordercenter-sdk/readme.md
#	order-application-service/pom.xml
#	order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
#	order-application-service/src/main/resources/application.properties
parents 14e19ed4 d561ac3e
......@@ -153,3 +153,7 @@
| 2.1.15-RELEASE | 集点三期添加商户号 | 张志恒 | 2020-12-29 |
| 2.2.29-SNAPSHOT | 麦咖啡新增商品类型 | 徐康 | 2021-01-06 |
| 2.2.30-SNAPSHOT | 新增prospective_amount | 徐康 | 2021-01-07 |
| 2.1.16-RELEASE | 停车场订单添加排序字段 | 张志恒 | 2021-01-06 |
| 2.1.17-RELEASE | 增加配送类型字段 | 王航航 | 2021-01-06 |
| 2.1.18-RELEASE | 添加美团点评渠道 | 梁崇福 | 2021-01-07 |
| 2.2.31-SNAPSHOT | 新增订单商品extInfo内部类对象 | 王航航 | 2021-01-11 |
\ No newline at end of file
......@@ -610,6 +610,11 @@ public class QueryOrdersResponse {
public List<ProductBean> materialProduct;
/**
* 商品拓展字段extInfo转换对象接收
*/
public List<ProductExtInfo> productExtInfo;
/**
* 购物车行uid
*/
private String cartGoodsUid;
......@@ -658,6 +663,21 @@ public class QueryOrdersResponse {
private String productId;
}
@NoArgsConstructor
@Data
public static class ProductExtInfo {
//券活动编号
private String activityCode;
//数量
private Integer num;
//券活动名称
private String activityName;
}
}
@NoArgsConstructor
......
......@@ -46,7 +46,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.29-SNAPSHOT</version>
<version>2.2.31-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -28,6 +28,7 @@ import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -98,7 +99,7 @@ public class OrderController {
*/
@ApiAnnotation(logMessage = "appCreateOrder")
@PostMapping("/app/create")
public BaseResponse appCreateOrder(@Validated @LogParams @RequestBody AppCreateOrderVo createOrderVo) {
public BaseResponse appCreateOrder(@Validated @LogParams @RequestBody AppCreateOrderVo createOrderVo, BindingResult bindingResult) {
return orderAdapterService.appCreateOrder(createOrderVo);
}
......
......@@ -76,4 +76,18 @@ public class AppCreateOrderVo {
* 下单渠道 版本号
*/
private String version;
//20210107蜜雪新增APP购买虚拟商品(券)业务--》》新增以下字段 bizType skuId --wanghanghang
/**
* 代表蜜雪APP买虚拟商品(买券)业务标识
*/
private Integer bizType;
/**
* 此字段只针对蜜雪冰城APP下单购买虚拟券时使用,其他商品请入参orderProducts字段
*/
private String skuId;
}
......@@ -6,6 +6,10 @@ import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.Min;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
......
package cn.freemud.enums;
public enum BizTypeEnum {
APP_COUPON(6, "APP买券"),
APP_PRO(1, "未知(目前暂不支持),后续可能预留给正常商品");
private Integer bizType;
private String desc;
BizTypeEnum(Integer bizType, String desc) {
this.bizType = bizType;
this.desc = desc;
}
public static cn.freemud.enums.BizTypeEnum getByCode(Integer code) {
for (cn.freemud.enums.BizTypeEnum payType : values()) {
if (payType.getBizType().equals(code)) {
return payType;
}
}
return null;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
\ No newline at end of file
......@@ -23,10 +23,14 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.couponcenter.online.domain.ActiveDetailVO;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest;
import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest;
import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse;
......@@ -34,28 +38,32 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQuer
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductInfoRequest;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest;
import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryInfoResponse;
import com.freemud.application.sdk.api.productcenter.response.product.GetProductInfosResponse;
import com.freemud.application.sdk.api.productcenter.service.MenuService;
import com.freemud.application.sdk.api.productcenter.service.ProductService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest;
import com.freemud.sdk.api.assortment.order.request.order.QueryRelatedOrderByCodeRequest;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryRelatedOrderByCodeResp;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -81,6 +89,13 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired
private StoreCenterService storeCenterService;
@Autowired
private OrderSdkService orderSdkService;
@Autowired
private OrderSdkAdapter orderSdkAdapter;
@Autowired
private SellCouponOrderServiceImpl sellCouponOrderService;
/**
* 不支持会员卡
*/
......@@ -151,53 +166,74 @@ public class AppOrderServiceImpl implements AppOrderService {
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
@Override
public BaseResponse createOrder(AppCreateOrderVo createOrderReq,AssortmentCustomerInfoVo customerInfo) {
public BaseResponse createOrder(AppCreateOrderVo createOrderReq, AssortmentCustomerInfoVo customerInfo) {
String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = createOrderReq.getPartnerId();
String shopId = createOrderReq.getShopId();
// 获取门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId,null);
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId, null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder.checkOrderByStore(storeResponse.getBizVO());
/**蜜雪新增需求-->APP可以购买虚拟商品券业务逻辑**/
QueryOrdersResponse.DataBean.OrderBean orderBean = new QueryOrdersResponse.DataBean.OrderBean();
if (createOrderReq.getBizType() != null && BizTypeEnum.APP_COUPON.getBizType().equals(createOrderReq.getBizType())) {
//20200107提取虚拟商品券效验方法---》校验虚拟商品,如果正常则返回创建订单对象
BaseResponse createOrderRequestResponse =
sellCouponOrderService.checkOrderCoupon(customerInfo,storeResponse,trackingNo,createOrderReq.getMenuType(), Integer.valueOf(createOrderReq.getBizType()), partnerId, shopId, createOrderReq.getSkuId(), null);
if (createOrderRequestResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderRequestResponse.getCode()) || createOrderRequestResponse.getResult() == null) {
return createOrderRequestResponse;
}
CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult();
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(orderInfoReqsBaseResponse);
if (createOrderResponse == null || createOrderResponse.getErrcode() != 100) {
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
}
orderBean = createOrderResponse.getData();
}else{
/**APP创建实体商品业务逻辑**/
// 查商品服务确定金额
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrderProduct(partnerId,shopId,createOrderReq.getOrderProducts(),
createOrderReq.getMenuType(),createOrderReq.getReachStoreType());
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrderProduct(partnerId, shopId, createOrderReq.getOrderProducts(),
createOrderReq.getMenuType(), createOrderReq.getReachStoreType());
CreateOrderVo createOrderVo = new CreateOrderVo();
BeanUtil.convertBean(createOrderReq,createOrderVo);
BeanUtil.convertBean(createOrderReq, createOrderVo);
createOrderVo.setStoreName(storeResponse.getBizVO().getStoreName());
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满 足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, customerInfo, storeResponse.getBizVO(), shoppingCartGoodsDto, trackingNo);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto extInfo = orderservice.getExtInfo(customerInfo, storeResponse.getBizVO(), pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//创建订单
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponse.getBizVO(), shoppingCartGoodsDto, customerInfo);
if(createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null ) {
if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto)createOrderOperateDtoResponse.getResult();
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
BaseResponse baseResponse = this.updateOrderExtInfo(createOrderOperateDto.getProductOrderBean(), extInfo, trackingNo);
if(baseResponse != null) {
if (baseResponse != null) {
return baseResponse;
}
orderBean = createOrderOperateDto.getProductOrderBean();
}
//返回没创建预支付的结果
CreateOrderResponseVo responseVo = orderAdapter.convent2CreateFatherSonOrderNoPayResponseVo(createOrderOperateDto.getProductOrderBean());
CreateOrderResponseVo responseVo = orderAdapter.convent2CreateFatherSonOrderNoPayResponseVo(orderBean);
return ResponseUtil.success(responseVo);
}
private void checkOrderBefore(CreatePrepayVo createPrepayVo, QueryOrdersResponse.DataBean.OrderBean orderBean) {
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus()) || !OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
throw new ServiceException(ResponseResult.ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT);
}
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
if(extInfo == null || StringUtils.isBlank(extInfo.getSessionId()) || !extInfo.getSessionId().equals(createPrepayVo.getSessionId())) {
if (extInfo == null || StringUtils.isBlank(extInfo.getSessionId()) || !extInfo.getSessionId().equals(createPrepayVo.getSessionId())) {
throw new ServiceException(ResponseResult.ORDER_OWNER_ERROR);
}
}
......@@ -218,19 +254,19 @@ public class AppOrderServiceImpl implements AppOrderService {
return null;
}
private CreateOrderOperateDto getCreateOrderOperateDto(String orderId){
private CreateOrderOperateDto getCreateOrderOperateDto(String orderId) {
QueryRelatedOrderByCodeRequest baseQueryOrderRequest = new QueryRelatedOrderByCodeRequest();
baseQueryOrderRequest.setOrderCode(orderId);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryRelatedOrderByCodeResp queryOrderByIdResponse = orderCenterSdkService.queryRelatedOrderByCode(baseQueryOrderRequest);
if(queryOrderByIdResponse == null || CollectionUtils.isEmpty(queryOrderByIdResponse.getOrderBeanList())) {
if (queryOrderByIdResponse == null || CollectionUtils.isEmpty(queryOrderByIdResponse.getOrderBeanList())) {
throw new ServiceException(ResponseResult.ORDER_QUERYORDER_ERROR);
}
List<QueryOrdersResponse.DataBean.OrderBean> orderBeanList = queryOrderByIdResponse.getOrderBeanList();
long totalAmount = 0;
QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne = new QueryOrdersResponse.DataBean.OrderBean();
QueryOrdersResponse.DataBean.OrderBean productBeanListOne = new QueryOrdersResponse.DataBean.OrderBean();
if(1 == orderBeanList.size()) {
if (1 == orderBeanList.size()) {
fatherBeanListOne = orderBeanList.get(0);
productBeanListOne = orderBeanList.get(0);
totalAmount = orderBeanList.get(0).getAmount();
......@@ -289,7 +325,7 @@ public class AppOrderServiceImpl implements AppOrderService {
* 查询商品信息
*/
public ShoppingCartGoodsDto checkOrderProduct(String partnerId, String shopId, List<OrderProductVo> orderProducts,
String menuType,Integer reachStoreType) {
String menuType, Integer reachStoreType) {
ShoppingCartGoodsDto shoppingCartGoodsDto = new ShoppingCartGoodsDto();
......@@ -355,7 +391,7 @@ public class AppOrderServiceImpl implements AppOrderService {
cartGoodsDetailDto.setUnit(productBeanDTO.getUnit());
List<ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(op.getExtra())){
if (CollectionUtils.isNotEmpty(op.getExtra())) {
for (OrderProductExtraVo orderProductExtraVo : op.getExtra()) {
ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra cartGoodsExtra = new ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra();
cartGoodsExtra.setAttributeId(orderProductExtraVo.getAttributeId());
......@@ -403,7 +439,7 @@ public class AppOrderServiceImpl implements AppOrderService {
cartGoodsDetailDto.setUnit(productBeanDTO.getUnit());
List<ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(op.getExtra())){
if (CollectionUtils.isNotEmpty(op.getExtra())) {
for (OrderProductExtraVo orderProductExtraVo : op.getExtra()) {
ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra cartGoodsExtra = new ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra();
cartGoodsExtra.setAttributeId(orderProductExtraVo.getAttributeId());
......@@ -420,9 +456,10 @@ public class AppOrderServiceImpl implements AppOrderService {
}
if(StringUtils.isNotBlank(cartGoodsDetailDto.getSpuId()))
if (StringUtils.isNotBlank(cartGoodsDetailDto.getSpuId())) {
products.add(cartGoodsDetailDto);
}
}
shoppingCartGoodsDto.setProducts(products);
......@@ -431,7 +468,7 @@ public class AppOrderServiceImpl implements AppOrderService {
shoppingCartGoodsDto.setTotalAmount(totalAmount);
// shoppingCartGoodsDto.setTotalDiscountAmount(0L);
//堂食无包装费
if(reachStoreType != null && reachStoreType != 5){
if (reachStoreType != null && reachStoreType != 5) {
shoppingCartGoodsDto.setPackageAmount(packageAmount);
}
//积分抵扣
......
......@@ -6,10 +6,7 @@ import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.AppCreateOrderVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
......@@ -34,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
......@@ -95,6 +93,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
private SellCouponOrderServiceImpl sellCouponOrderService;
@Value("${saas.autoRefund.client}")
private String autoRefundClient;
@Override
public BaseResponse createOrderNew(CreateOrderVo createOrderVo) {
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId());
......@@ -103,7 +102,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
}
// 扩展字段中存储 sessionKey
createOrderVo.setSessionKey(assortmentCustomerInfoVo.getSessionKey());
if(IappIdType.WC_XCX.getCode().equals(assortmentCustomerInfoVo.getIappId())){ //i围餐
if (IappIdType.WC_XCX.getCode().equals(assortmentCustomerInfoVo.getIappId())) { //i围餐
BaseResponse baseResponse = null;
CreateReserveOrderVo createReserveOrderVo = new CreateReserveOrderVo();
createReserveOrderVo.setCarVer(createOrderVo.getCarVer());
......@@ -113,8 +112,10 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
createReserveOrderVo.setCouponCode(createOrderVo.getCouponCode());
createReserveOrderVo.setUseCustomerScore(createOrderVo.getUseCustomerScore());
createReserveOrderVo.setCardCode(createOrderVo.getCardCode());
if(createOrderVo.getOperation() == null) throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR);
switch (createOrderVo.getOperation()){
if (createOrderVo.getOperation() == null) {
throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR);
}
switch (createOrderVo.getOperation()) {
case 2:// 开台
baseResponse = encircleOrderService.createReserveOrder(createOrderVo);
break;
......@@ -133,7 +134,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
/**
* 商城订单
*/
if(OrderChannelType.SAASMALL.getCode().equals(createOrderVo.getChannelType())) {
if (OrderChannelType.SAASMALL.getCode().equals(createOrderVo.getChannelType())) {
return mallOrderService.createOrder(createOrderVo);
}
......@@ -146,7 +147,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
......@@ -155,7 +156,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
String createOrderKey = CREATE_ORDER_KEY + assortmentCustomerInfoVo.getMemberId();
try {
Long expire = Long.valueOf(createOrderKeyExpire);
if(!LockUtils.lock(redisCache.getRedisTemplate(),createOrderKey,expire)){
if (!LockUtils.lock(redisCache.getRedisTemplate(), createOrderKey, expire)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_CREATE_ERROR);
}
return orderService.createOrderNew(createOrderVo);
......@@ -173,7 +174,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
if(!mcCafePartnerId.equals(assortmentCustomerInfoVo.getPartnerId())) {
if (!mcCafePartnerId.equals(assortmentCustomerInfoVo.getPartnerId())) {
return ResponseUtil.error(ResponseResult.LOGIN_STORE_ERROR);
}
// 扩展字段中存储 sessionKey
......@@ -181,7 +182,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
......@@ -190,7 +191,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
String createOrderKey = CREATE_ORDER_KEY + assortmentCustomerInfoVo.getMemberId();
try {
Long expire = Long.valueOf(createOrderKeyExpire);
if(!LockUtils.lock(redisCache.getRedisTemplate(),createOrderKey,expire)){
if (!LockUtils.lock(redisCache.getRedisTemplate(), createOrderKey, expire)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_CREATE_ERROR);
}
return mcCafeOrderService.createMCCafeOrder(createOrderVo);
......@@ -210,17 +211,17 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createPrepay(createPrepayVo);
}
throw new UnsupportedOperationException("暂不支持渠道:"+assortmentCustomerInfoVo.getChannel());
throw new UnsupportedOperationException("暂不支持渠道:" + assortmentCustomerInfoVo.getChannel());
}
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message) {
if (StringUtils.isEmpty(message.getTrans_id())){
if (StringUtils.isEmpty(message.getTrans_id())) {
return orderAdapter.newSendPayFaileMessage();
}
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String paySuccessKey = PAY_SUCCESS_KEY + message.getTrans_id();
if(!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)){
if (!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)) {
return orderAdapter.newSendPayFaileMessage();
}
try {
......@@ -236,12 +237,12 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
log.error("paySuccessCallback_queryOrderById_faild, trackingNo:{},PaysuccessNoticeMessage:{}", LogTreadLocal.getTrackingNo(), gson.toJson(message));
return gson.toJson(message);
}
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());//todo
// 混合支付失败,取消订单
if (!message.getResult_code().equals(ResponseCodeConstant.RESPONSE_SUCCESS)) {
return orderService.cannelComPayOrder(confirmOrderDto, orderBean);
}
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return orderAdapter.sendPaySuccessNoticeMessage();
}
Integer client = OrderSourceType.getClientByCode(orderBean.getSource());
......@@ -259,21 +260,24 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
/*
* 微商城处理
*/
if(OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) {
if (OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) {
return mallOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/*
* app订单处理
*/
if(OrderSourceType.APP.getCode().equals(orderBean.getSource())) {
if (OrderSourceType.APP.getCode().equals(orderBean.getSource())) {
if(orderBean.getBizType() == 6){
return sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
return appOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
//买券虚拟订单
if(orderBean.getBizType() == 6) {
if (orderBean.getBizType() == 6) {
return sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
//麦咖啡订单处理
if(mcCafePartnerId.equals(orderBean.getCompanyId())) {
if (mcCafePartnerId.equals(orderBean.getCompanyId())) {
return mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/*
......@@ -292,7 +296,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
public String mcCafePaySuccessCallback(PaysuccessNoticeMessage message) {
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String paySuccessKey = PAY_SUCCESS_KEY + message.getTrans_id();
if(!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)){
if (!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)) {
return orderAdapter.newSendPayFaileMessage();
}
try {
......@@ -309,7 +313,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
return gson.toJson(message);
}
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return orderAdapter.sendPaySuccessNoticeMessage();
}
/**
......@@ -324,34 +328,64 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
}
}
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
@Override
public BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo) {
//蜜雪业务新增APP购买虚拟券,此处判断分支->蜜雪买券逻辑走平台买券逻辑20210108 向下还存在发起支付分之判断 wanghanghang
// if("6".equals(createOrderVo.getBizType())){
// SellCouponCreateOrderVo sellCouponCreateOrderVo = conversionObjByAppCreateOrderVo(createOrderVo);
// return sellCouponOrderService.createOrder(sellCouponCreateOrderVo);
// }
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId());
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createOrder(createOrderVo,assortmentCustomerInfoVo);
}
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING);
// if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createOrder(createOrderVo, assortmentCustomerInfoVo);
// }
// return ResponseUtil.error(ResponseResult.PARAMETER_MISSING);
}
/**
* 20210107 wanghanghang
* 蜜雪业务新增APP购买虚拟券,此处在APP下单时,调用平台买券业务进行对象转换
*
* @param createOrderVo
* @return
*/
// private SellCouponCreateOrderVo conversionObjByAppCreateOrderVo(AppCreateOrderVo createOrderVo) {
// SellCouponCreateOrderVo sellCouponCreateOrderVo = new SellCouponCreateOrderVo();
// sellCouponCreateOrderVo.setBizType(createOrderVo.getBizType() + "");
// sellCouponCreateOrderVo.setSessionId(createOrderVo.getSessionId());
// sellCouponCreateOrderVo.setShopId(createOrderVo.getShopId());
// //获取商品集合里的虚拟商品skuid
// //sellCouponCreateOrderVo.setSkuId(createOrderVo.getOrderProducts().get(0).getSkuId());
// sellCouponCreateOrderVo.setSkuId(createOrderVo.getSkuId());
// sellCouponCreateOrderVo.setCardCode(null);
// sellCouponCreateOrderVo.setMenuType(createOrderVo.getMenuType());
// sellCouponCreateOrderVo.setChannel("");
// sellCouponCreateOrderVo.setVersion(createOrderVo.getVersion());
// return sellCouponCreateOrderVo;
// }
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo){
if(StringUtils.isEmpty(createOrderVo.getSessionId())){
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR);
}
if(StringUtils.isEmpty(createOrderVo.getShopId())){
if (StringUtils.isEmpty(createOrderVo.getShopId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR);
}
if(createOrderVo.getOrderType() == null){
if (createOrderVo.getOrderType() == null) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR);
}
return ResponseUtil.success();
......
......@@ -1502,6 +1502,13 @@ public class OrderServiceImpl implements Orderservice {
joinPayGift(sessionId, queryOrderResponseVo, partnerId,null);
}
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = response.getData().getProductList();
if(productList!=null && productList.size()>0){
productList.stream().forEach(productBean -> {
gson.fromJson(productBean.getExtInfo(), OrderExtInfoDto.class);
});
}
buildQueryOrderResponseVo(queryOrderResponseVo, response, partnerId);
......
......@@ -5,6 +5,7 @@ import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CommonRedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.Active;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
......@@ -149,44 +150,50 @@ public class SellCouponOrderServiceImpl {
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder.checkOrderByStore(storeResponseDto);
GetProductInfoRequest request = new GetProductInfoRequest();
request.setChannel(requestVo.getMenuType());
request.setPartnerId(partnerId);
request.setProductInfoType(2);
request.setShopId(storeId);
request.setProductIds(Lists.newArrayList(requestVo.getSkuId()));
//获取商品(里面的活动)
com.freemud.application.sdk.api.base.BaseResponse<GetProductInfosResponse> productInfosByIds = menuService.getProductInfosByIds(request, trackingNo);
if(!SUCCESS.equals(productInfosByIds.getCode()) || productInfosByIds.getData() == null || CollectionUtils.isEmpty(productInfosByIds.getData().getProducts())){
return ResponseUtil.error(ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getCode(),ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getMessage());
}
List<GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType> productBindingCoupons = productInfosByIds.getData().getProducts().get(0).getProductBindingCouponTypes();
if(CollectionUtils.isEmpty(productBindingCoupons)){
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
List<String> activityCodes = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBindingCoupons){
activityCodes.add(productBindingCouponType.getActivityCode());
}
// GetProductInfoRequest request = new GetProductInfoRequest();
// request.setChannel(requestVo.getMenuType());
// request.setPartnerId(partnerId);
// request.setProductInfoType(2);
// request.setShopId(storeId);
// request.setProductIds(Lists.newArrayList(requestVo.getSkuId()));
// //获取商品(里面的活动)
// com.freemud.application.sdk.api.base.BaseResponse<GetProductInfosResponse> productInfosByIds = menuService.getProductInfosByIds(request, trackingNo);
// if(!SUCCESS.equals(productInfosByIds.getCode()) || productInfosByIds.getData() == null || CollectionUtils.isEmpty(productInfosByIds.getData().getProducts())){
// return ResponseUtil.error(ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getCode(),ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getMessage());
// }
// List<GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType> productBindingCoupons = productInfosByIds.getData().getProducts().get(0).getProductBindingCouponTypes();
// if(CollectionUtils.isEmpty(productBindingCoupons)){
// return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
// }
//
// List<String> activityCodes = new ArrayList<>();
// for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBindingCoupons){
// activityCodes.add(productBindingCouponType.getActivityCode());
// }
//
// List<ActiveDetailVO> activeDetailVOS = batchQueryActivityInfo(partnerId, activityCodes, trackingNo);
// if(CollectionUtils.isEmpty(activeDetailVOS) || activityCodes.size() != activeDetailVOS.size()){
// return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
// }
// Date now = new Date();
// for (ActiveDetailVO activeDetailVO : activeDetailVOS){
// if(activeDetailVO.getEffectiveEndTime() != null && activeDetailVO.getEffectiveEndTime().before(now)){
// return ResponseUtil.error(ResponseResult.COUPON_INVAILD);
// }
// }
BaseResponse createOrderRequestResponse = checkOrderCoupon(userLoginInfoDto, storeResponse, trackingNo, requestVo.getMenuType(), Integer.valueOf(requestVo.getBizType()), partnerId, storeId, requestVo.getSkuId(),requestVo.getCardCode());
if (createOrderRequestResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderRequestResponse.getCode()) || createOrderRequestResponse.getResult() == null) {
return createOrderRequestResponse;
}
CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult();
List<ActiveDetailVO> activeDetailVOS = batchQueryActivityInfo(partnerId, activityCodes, trackingNo);
if(CollectionUtils.isEmpty(activeDetailVOS) || activityCodes.size() != activeDetailVOS.size()){
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
Date now = new Date();
for (ActiveDetailVO activeDetailVO : activeDetailVOS){
if(activeDetailVO.getEffectiveEndTime() != null && activeDetailVO.getEffectiveEndTime().before(now)){
return ResponseUtil.error(ResponseResult.COUPON_INVAILD);
}
}
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(requestVo,userLoginInfoDto,productInfosByIds.getData(),activeDetailVOS,storeResponse.getBizVO());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(orderInfoReqsBaseResponse);
if(createOrderResponse == null || createOrderResponse.getErrcode() != 100){
if (createOrderResponse == null || createOrderResponse.getErrcode() != 100) {
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
}
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = new CreatePrepayRequestDto();
createPrepayRequestDto.setPartnerId(partnerId);
......@@ -232,15 +239,75 @@ public class SellCouponOrderServiceImpl {
}
public BaseResponse ngsCouponOrderCreate(NgsSellCouponCreateOrderVo requestVo){
/**
* 效验虚拟商品活动信息
* @param userLoginInfoDto
* @param storeResponse
* @param trackingNo
* @param menuType
* @param bizType
* @param partnerId
* @param storeId
* @param skuId
* @param cardCode
* @return
*/
public BaseResponse checkOrderCoupon(AssortmentCustomerInfoVo userLoginInfoDto,
StoreResponse storeResponse,
String trackingNo,
String menuType,
Integer bizType,
String partnerId,
String storeId,
String skuId,String cardCode) {
GetProductInfoRequest request = new GetProductInfoRequest();
request.setChannel(menuType);
request.setPartnerId(partnerId);
request.setProductInfoType(2);
request.setShopId(storeId);
request.setProductIds(Lists.newArrayList(skuId));
//获取商品(里面的活动)
com.freemud.application.sdk.api.base.BaseResponse<GetProductInfosResponse> productInfosByIds = menuService.getProductInfosByIds(request, trackingNo);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(productInfosByIds.getCode()) || productInfosByIds.getData() == null || CollectionUtils.isEmpty(productInfosByIds.getData().getProducts())) {
return ResponseUtil.error(ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getCode(), ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getMessage());
}
//效验商品券是否有效
List<GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType> productBindingCoupons = productInfosByIds.getData().getProducts().get(0).getProductBindingCouponTypes();
if (CollectionUtils.isEmpty(productBindingCoupons)) {
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
List<String> activityCodes = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBindingCoupons) {
activityCodes.add(productBindingCouponType.getActivityCode());
}
//批量查询活动详情
List<ActiveDetailVO> activeDetailVOS = batchQueryActivityInfo(partnerId, activityCodes, trackingNo);
if (CollectionUtils.isEmpty(activeDetailVOS) || activityCodes.size() != activeDetailVOS.size()) {
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
//优惠券是否失效
Date now = new Date();
for (ActiveDetailVO activeDetailVO : activeDetailVOS) {
if (activeDetailVO.getEffectiveEndTime() != null && activeDetailVO.getEffectiveEndTime().before(now)) {
return ResponseUtil.error(ResponseResult.COUPON_INVAILD);
}
}
//转换CreateOrderRequest对象
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(userLoginInfoDto,
productInfosByIds.getData(),
activeDetailVOS,
storeResponse.getBizVO(),storeId,cardCode,skuId,menuType,bizType);
return ResponseUtil.success(createOrderRequest);
}
public BaseResponse ngsCouponOrderCreate(NgsSellCouponCreateOrderVo requestVo){
// 查询用户信息、校验svc卡
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.getMemberNew(requestVo.getSessionId());
String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = userLoginInfoDto.getPartnerId();
// 构建创建订单入参
CreateOrderRequest createOrderRequest = ngsConvent2NEWCreateOrderRequest(requestVo,userLoginInfoDto);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
......@@ -248,8 +315,6 @@ public class SellCouponOrderServiceImpl {
if(createOrderResponse == null || createOrderResponse.getErrcode() != 100){
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
}
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = new CreatePrepayRequestDto();
createPrepayRequestDto.setPartnerId(partnerId);
......@@ -262,11 +327,9 @@ public class SellCouponOrderServiceImpl {
createPrepayRequestDto.setProductOrderBean(createOrderResponse.getData());
createPrepayRequestDto.setTotalAmount(createOrderRequest.getSettlementAmount());
createPrepayRequestDto.setCardAmount(0);
OrderExtInfoDto orderExtInfoDto = new OrderExtInfoDto();
String deliveryHoursDayStart = "";
String deliveryHoursDayEnd = "";
orderExtInfoDto.setDeliveryHoursDayStart(deliveryHoursDayStart);
orderExtInfoDto.setDeliveryHoursDayEnd(deliveryHoursDayEnd);
orderExtInfoDto.setOpenid(userLoginInfoDto.getOpenId());
......@@ -398,9 +461,27 @@ public class SellCouponOrderServiceImpl {
return appKey;
}
private CreateOrderRequest convent2NEWCreateOrderRequest(SellCouponCreateOrderVo requestVo,AssortmentCustomerInfoVo userLoginInfoDto,
/**
* 转换对象,从购买优惠券业务提出重写
* @param userLoginInfoDto
* @param productInfosResponse
* @param activeDetailVOS
* @param storeInfo
* @param shopId
* @param cardCode
* @param skuId
* @param channel
* @param bizType
* @return
*/
private CreateOrderRequest convent2NEWCreateOrderRequest(AssortmentCustomerInfoVo userLoginInfoDto,
GetProductInfosResponse productInfosResponse,List<ActiveDetailVO> activeDetailVOS,
StoreResponse.BizVO storeInfo){
StoreResponse.BizVO storeInfo,
String shopId,
String cardCode,
String skuId,
String channel,
Integer bizType){
CreateOrderRequest request = new CreateOrderRequest();
Integer orderClient = OrderClientType.SAAS.getIndex();
if(UserLoginChannelEnum.ALIPAY.getCode().equals(userLoginInfoDto.getChannel())){
......@@ -410,16 +491,16 @@ public class SellCouponOrderServiceImpl {
orderClient = OrderClientType.APP.getIndex();
}
//抖音小程序
if("5".equalsIgnoreCase(requestVo.getChannel())) {
if("5".equalsIgnoreCase(channel)) {
request.setPayChannel(PayChannelType.TIKTOKPAY.getIndex().toString());
orderClient = OrderClientType.TIKTOKPAY.getIndex();
}
String partnerId = userLoginInfoDto.getPartnerId();
request.setOrderClient(orderClient);
request.setPartnerId(partnerId);
request.setStoreId(requestVo.getShopId());
request.setStoreId(shopId);
//买券虚拟订单
request.setBizType(6);
request.setBizType(bizType == null ? 6 : bizType);
//1:线上支付 2:线下支付
request.setPayType(1);
request.setUserId(userLoginInfoDto.getMemberId());
......@@ -428,7 +509,7 @@ public class SellCouponOrderServiceImpl {
request.setThirdStoreId(storeInfo.getThirdPartCode());
request.setOrderState(1);
request.setPayState(1);
if(StringUtils.isNotBlank(requestVo.getCardCode())){
if(StringUtils.isNotBlank(cardCode)){
request.setPayChannel("10102");
request.setPayChannelName("储值卡支付");
}
......@@ -447,8 +528,8 @@ public class SellCouponOrderServiceImpl {
orderItemCreateReq.setProductPrice(productBean.getOriginalPrice());
orderItemCreateReq.setSettlementPrice(productBean.getFinalPrice());
orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setProductId(requestVo.getSkuId());
orderItemCreateReq.setProductSpec(requestVo.getSkuId());
orderItemCreateReq.setProductId(skuId);
orderItemCreateReq.setProductSpec(skuId);
orderItemCreateReq.setProductName(productBean.getName());
orderItemCreateReq.setProductSpecName(productBean.getName());
orderItemCreateReq.setProductPicUrl(productBean.getPicture());
......@@ -498,10 +579,10 @@ public class SellCouponOrderServiceImpl {
request.setOrderExtended(orderAdapter.saveStoreInfo(storeInfo));
request.setOperator(userLoginInfoDto.getNickName());
request.setAppId(userLoginInfoDto.getWxAppId());
if("5".equalsIgnoreCase(requestVo.getChannel().toString())){
if("5".equalsIgnoreCase(channel)){
request.setPayChannelType(PayChannelType.TIKTOKPAY.getIndex());
}
request.setPayChannel(requestVo.getChannel());
request.setPayChannel(channel);
return request;
}
......
......@@ -221,7 +221,7 @@ structure.connectTimeOut = 10000
structure.readTimeOut = 10000
structure.baseUrl = http://10.20.10.213:9140
structure.appName = message-center
saas.assistantserviceclient.feign.url = 助手服务
saas.assistantserviceclient.feign.url = С���ַ���
member.pay.callback.notifyUrl = http://118.89.173.227:9213/customer/payment/memberPaymentCallback
customer.service.url = https://saastestapi.sandload.cn/customer-service
......@@ -261,7 +261,7 @@ management.endpoints.web.exposure.include = prometheus,info,health
management.metrics.tags.application = ${spring.application.name}
eureka.instance.metadataMap.group = open-store
# 版本号,根据发布进行变化
# �汾�ţ����ݷ������б仯
eureka.instance.metadataMap.version = 1.9.10
......
......@@ -13,14 +13,72 @@
package cn.freemud.utils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class QrCodeUtilTest {
@Test
public void createQrCodeTest() throws Exception {
String imageString = QrCodeUtil.createQrCode("1243456", 200, "PNG");
System.out.println(imageString);
public void qq() {
// String imageString = QrCodeUtil.createQrCode("1243456", 200, "PNG");
// System.out.println(imageString);
aa a1 = new aa();
List<aa> list = new ArrayList<>();
for (int i = 0;i<4 ;i++){
a1.setA("1" + i);
a1.setB("1"+ i);
a1.setC("1"+ i);
list.add(a1);
}
String astr = list.toString();
Gson gson = new Gson();
List<aa> goods = gson.fromJson(astr,
new TypeToken<List<aa>>() {
}.getType());
System.out.println(goods);
}
public class aa {
String a;
String b;
String c;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
}
}
\ No newline at end of file
package cn.freemud;
import cn.freemud.utils.QrCodeUtilTest;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.Test;
import java.io.File;
......@@ -9,9 +12,7 @@ import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.net.URL;
import java.net.URLDecoder;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.*;
public class AllTests {
......@@ -125,6 +126,65 @@ public class AllTests {
}
@Test
public void qq (){
// String imageString = QrCodeUtil.createQrCode("1243456", 200, "PNG");
// System.out.println(imageString);
aa a1 = new aa();
List<aa> list = new ArrayList<>();
for (int i = 0;i<4 ;i++){
a1.setA("1" + i);
a1.setB("1"+ i);
a1.setC("1"+ i);
list.add(a1);
}
String astr = list.toString();
Gson gson = new Gson();
List<aa> goods = gson.fromJson(astr,
new TypeToken<List<aa>>() {
}.getType());
System.out.println(goods);
}
public class aa {
String a;
String b;
String c;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
}
/**
* 以文件的形式来获取包下的所有Class
*
......
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