Commit 1f100022 by xiangkun.gu

Merge remote-tracking branch 'origin/applet/2022-02-11-暴露创建订单业务相关接口' into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents 3cf339bf ae35e3cf
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.OrderTackCodeFactory;
import cn.freemud.manager.OrderTackCodeManager;
import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.business.impl.OrderBusinessServiceImpl;
import cn.freemud.service.impl.OrderServiceImpl;
import cn.freemud.service.impl.PayServiceImpl;
import cn.freemud.utils.ResponseUtil;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 暴露订单相关的业务接口,提供给applet项目
*/
@RestController
@RequestMapping("/order/exposure")
public class ExposureOrderController {
@Autowired
private PayServiceImpl payService;
@Autowired
private OrderTackCodeManager orderTackCodeManager;
@Autowired
private OrderBusinessServiceImpl orderBusinessService;
@Autowired
private OrderServiceImpl orderService;
/**
* 创建支付单,查询支付配置
*/
@ApiAnnotation(logMessage = "创建支付单,查询支付配置")
@PostMapping("/getPayConfig")
public BaseResponse<String> getPayConfig(@Validated @LogParams @RequestBody GetPayConfigVo getPayConfigVo) {
String payConfig = payService.getPayConfig(getPayConfigVo.getPartnerId(), getPayConfigVo.getAppId());
return ResponseUtil.success(payConfig);
}
/**
* 创建支付单,查询超时时间
*/
@ApiAnnotation(logMessage = "创建支付单,查询超时时间")
@PostMapping("/getPayTimeout")
public BaseResponse<String> getPayTimeout(@Validated @LogParams @RequestBody GetPayTimeoutVo getPayTimeoutVo) {
String partnerPayOvertime = payService.getPartnerPayOvertime(getPayTimeoutVo.getPartnerId());
return ResponseUtil.success(partnerPayOvertime);
}
/**
* 创建支付单,查询payCode
*/
@ApiAnnotation(logMessage = "创建支付单,查询payCode")
@PostMapping("/getPayCodeByChanel")
public BaseResponse<String> getPayCodeByChanel(@Validated @LogParams @RequestBody GetPayCodeByChanelVo getPayCodeByChanelVo) {
String payCodeByCondition = payService.getPayCodeByCondition(getPayCodeByChanelVo.getAppId(), getPayCodeByChanelVo.getStoreId(), getPayCodeByChanelVo.getChannel());
return ResponseUtil.success(payCodeByCondition);
}
/**
* 创建订单,死信队列
*/
@ApiAnnotation(logMessage = "创建订单,死信队列")
@PostMapping("/deadLetterQueue")
public BaseResponse deadLetterQueue(@Validated @LogParams @RequestBody PutDeadLetterVo putDeadLetterVo) {
payService.putDelMq(putDeadLetterVo.getPartnerId(), putDeadLetterVo.getStoreId(), putDeadLetterVo.getFmId(), putDeadLetterVo.getOrderId(), putDeadLetterVo.getPayChanelType());
return ResponseUtil.success();
}
/**
* 生成取餐码
*/
@ApiAnnotation(logMessage = "生成取餐码")
@PostMapping("/generateTackCode")
public BaseResponse<String> generateTackCode(@Validated @LogParams @RequestBody GenerateTackCodeVo generateTackCodeVo) {
String tackCode = orderTackCodeManager.generateTackCode(generateTackCodeVo.getOrderType(),
generateTackCodeVo.getPartnerId(),
generateTackCodeVo.getStoreId(),
null,
OrderTackCodeFactory.getByOrderClient(generateTackCodeVo.getOrderClient()).getGenerateTackCodeFunc());
return ResponseUtil.success(tackCode);
}
/**
* 从支付成功开始计时,超时未接单的时间(单位:分钟)
*/
@ApiAnnotation(logMessage = "获取超时时间")
@PostMapping("/paySuccessTimeout")
public BaseResponse<Integer> generateTackCode(@Validated @LogParams @RequestBody GetPaySuccessTimeoutVo getPaySuccessTimeoutVo) {
Integer tackCode = orderBusinessService.getPaySuccessTimeout(getPaySuccessTimeoutVo.getPartnerId(),
getPaySuccessTimeoutVo.getStoreId(),
getPaySuccessTimeoutVo.getOrderType());
return ResponseUtil.success(tackCode);
}
/**
* 发送支付成功模板消息
*/
@ApiAnnotation(logMessage = "发送支付成功模板消息")
@PostMapping("/sendPayTemplateMessage")
public BaseResponse sendPayTemplateMessage(@Validated @LogParams @RequestBody SendPaySuccessMessageVo sendPaySuccessMessageVo) {
orderService.sendMessageByNewApp(sendPaySuccessMessageVo);
return ResponseUtil.success();
}
}
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class GenerateTackCodeVo {
private Integer orderType;
private String orderClient;
private String partnerId;
private String storeId;
}
package cn.freemud.entities.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class GetPayCodeByChanelVo {
@NotBlank(message = "小程序id不能为空")
private String appId;
@NotBlank(message = "门店id不能为空")
private String storeId;
private String channel;
}
package cn.freemud.entities.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class GetPayConfigVo {
@NotBlank(message = "商户号不能为空")
private String partnerId;
@NotBlank(message = "小程序id不能为空")
private String appId;
}
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class GetPaySuccessTimeoutVo {
private Integer orderType;
private String partnerId;
private String storeId;
}
package cn.freemud.entities.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class GetPayTimeoutVo {
@NotBlank(message = "商户号不能为空")
private String partnerId;
}
package cn.freemud.entities.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class PutDeadLetterVo {
@NotBlank(message = "商户号不能为空")
private String partnerId;
@NotBlank(message = "门店id不能为空")
private String storeId;
@NotBlank(message = "fmId不能为空")
private String fmId;
@NotBlank(message = "订单号不能为空")
private String orderId;
private Integer payChanelType;
}
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class SendPaySuccessMessageVo {
private String partnerId;
private String address;
private String storeName;
private String orderCode;
private Integer orderType;
private String otherCode;
private String extInfo;
private Long amount;
/**
* 期望送达时间
*/
private Long gmtExpect;
/**
* 创建时间 时间戳
*/
private Long gmtCreate;
/**
* 日订单序号
*/
private Integer daySeq;
}
...@@ -569,4 +569,12 @@ public class OrderBusinessServiceImpl implements OrderBusinessService { ...@@ -569,4 +569,12 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
return userScoreRequest; return userScoreRequest;
} }
public Integer getPaySuccessTimeout(String partnerId, String storeId, Integer orderType) {
ConfirmOrderRequest confirmOrderRequest = new ConfirmOrderRequest();
confirmOrderRequest.setPartnerId(partnerId);
confirmOrderRequest.setStoreId(storeId);
confirmOrderRequest.setOrderType(orderType);
return this.getPaySuccessTimeout(confirmOrderRequest, null);
}
} }
...@@ -3752,4 +3752,28 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3752,4 +3752,28 @@ public class OrderServiceImpl implements Orderservice {
return newSendPaySuccessNoticeMessage(); return newSendPaySuccessNoticeMessage();
} }
/**
* 发送支付成功模板消息
*
*/
public void sendMessageByNewApp(SendPaySuccessMessageVo sendPaySuccessMessageVo) {
OrderBeanV1 orderBean = new OrderBeanV1();
orderBean.setCompanyId(sendPaySuccessMessageVo.getPartnerId());
orderBean.setAddress(sendPaySuccessMessageVo.getAddress());
orderBean.setDaySeq(sendPaySuccessMessageVo.getDaySeq());
orderBean.setGmtExpect(sendPaySuccessMessageVo.getGmtExpect());
orderBean.setShopName(sendPaySuccessMessageVo.getStoreName());
orderBean.setGmtCreate(sendPaySuccessMessageVo.getGmtCreate());
orderBean.setOid(sendPaySuccessMessageVo.getOrderCode());
orderBean.setOrderType(sendPaySuccessMessageVo.getOrderType());
orderBean.setOtherCode(sendPaySuccessMessageVo.getOtherCode());
orderBean.setAmount(sendPaySuccessMessageVo.getAmount());
OrderExtInfoDto extInfoDto = JSON.parseObject(sendPaySuccessMessageVo.getExtInfo(), OrderExtInfoDto.class);
extInfoDto.setAppid(extInfoDto.getAppid());
extInfoDto.setOpenid(extInfoDto.getOpenid());
extInfoDto.setPrepayId(extInfoDto.getPrepayId());
orderBean.setExtInfo(JSON.toJSONString(extInfoDto));
this.sendPaySuccessMessage(orderBean);
}
} }
...@@ -472,6 +472,10 @@ public class PayServiceImpl { ...@@ -472,6 +472,10 @@ public class PayServiceImpl {
return principalName; return principalName;
} }
public String getPayConfig(String partnerId, String appId) {
return this.getPaymentPrincipalName(partnerId, appId);
}
/** /**
* 电子风味卡支付 * 电子风味卡支付
...@@ -1140,6 +1144,14 @@ public class PayServiceImpl { ...@@ -1140,6 +1144,14 @@ public class PayServiceImpl {
return ""; return "";
} }
public String getPayCodeByCondition(String wxAppid, String storeId, String channel) {
if (channel != null) {
return this.getPayCodeByChanel(wxAppid, channel, storeId);
}
return this.getPayCodeByChanel(wxAppid, storeId);
}
/** /**
* 获取混合支付是否开启 * 获取混合支付是否开启
......
...@@ -2343,6 +2343,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2343,6 +2343,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if (Objects.isNull(availableStocks)) { if (Objects.isNull(availableStocks)) {
return; return;
} }
// 商品服务 返回null 或者 qty=null 表示不限制库存
List<GetProductStockResponseDto.DataBean> result = availableStocks.getResult(); List<GetProductStockResponseDto.DataBean> result = availableStocks.getResult();
if (CollectionUtils.isEmpty(result) || Objects.isNull(result.get(0).getQty())) { if (CollectionUtils.isEmpty(result) || Objects.isNull(result.get(0).getQty())) {
return; return;
......
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