Commit c589ac17 by xiangkun.gu

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

parents 241ac0cb 8cd22272
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();
}
/**
* 生成0元支付fmId
*/
@ApiAnnotation(logMessage = "生成0元支付fmId")
@GetMapping("/generateZeroPayFmId")
public BaseResponse generateZeroPayFmId() {
String fmId = payService.generateZeroPayFmId();
return ResponseUtil.success(fmId);
}
/**
* 现金支付,设置轮循队列
*/
@ApiAnnotation(logMessage = "现金支付,设置轮循队列")
@PostMapping("/putRoundRobin")
public BaseResponse putRoundRobin(@Validated @LogParams @RequestBody PutRoundRobinVo putRoundRobinVo) {
payService.putRoundRobin(putRoundRobinVo);
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 PutRoundRobinVo {
private String partnerId;
private String storeId;
private String fmId;
private String orderCode;
private Byte index;
private String ebCode;
}
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);
}
} }
...@@ -3755,4 +3755,28 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3755,4 +3755,28 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(userLoginInfoDto); return ResponseUtil.success(userLoginInfoDto);
} }
/**
* 发送支付成功模板消息
*
*/
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);
}
} }
...@@ -19,6 +19,7 @@ import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto; ...@@ -19,6 +19,7 @@ import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto; import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto;
import cn.freemud.entities.vo.CreateOrderResponseVo; import cn.freemud.entities.vo.CreateOrderResponseVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage; import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.PutRoundRobinVo;
import cn.freemud.entities.vo.order.CreateOrderUnionPayCardVo; import cn.freemud.entities.vo.order.CreateOrderUnionPayCardVo;
import cn.freemud.entities.vo.order.PlugInParameter; import cn.freemud.entities.vo.order.PlugInParameter;
import cn.freemud.enums.PayChannel; import cn.freemud.enums.PayChannel;
...@@ -472,6 +473,10 @@ public class PayServiceImpl { ...@@ -472,6 +473,10 @@ public class PayServiceImpl {
return principalName; return principalName;
} }
public String getPayConfig(String partnerId, String appId) {
return this.getPaymentPrincipalName(partnerId, appId);
}
/** /**
* 电子风味卡支付 * 电子风味卡支付
...@@ -1140,6 +1145,14 @@ public class PayServiceImpl { ...@@ -1140,6 +1145,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);
}
/** /**
* 获取混合支付是否开启 * 获取混合支付是否开启
...@@ -1492,4 +1505,19 @@ public class PayServiceImpl { ...@@ -1492,4 +1505,19 @@ public class PayServiceImpl {
return checkSvcAmountResponse; return checkSvcAmountResponse;
} }
public String generateZeroPayFmId() {
String fmId = "SPAY" + ValidationCode.getRandomUuid();
return fmId;
}
public void putRoundRobin(PutRoundRobinVo putRoundRobinVo) {
//加入轮训队列
this.putDelMq(putRoundRobinVo.getPartnerId(),
putRoundRobinVo.getStoreId(),
putRoundRobinVo.getFmId(),
putRoundRobinVo.getOrderCode(),
(int) putRoundRobinVo.getIndex());
}
} }
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