Explorar el Código

//push

release_toaliyun_real
xhxu hace 4 años
padre
commit
670084f675
Se han modificado 18 ficheros con 291 adiciones y 42 borrados
  1. +1
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java
  2. +9
    -2
      mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java
  3. +24
    -7
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  4. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java
  5. +0
    -9
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  6. +19
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderPushMsg.java
  7. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java
  8. +2
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java
  9. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  10. +33
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  11. +2
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  12. +81
    -0
      mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushMsgServiceImpl.java
  13. +3
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java
  14. +44
    -0
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/EnumTtOrderStatus.java
  15. +53
    -14
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java
  16. +1
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java
  17. +1
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java
  18. +1
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java

+ 1
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java Ver fichero

@@ -188,7 +188,7 @@ public class WxPayOrderController extends BaseController {
if (payOrderId<=0) {
logger.error("/api/pay/updatePayOrder error : payOrderId不能为空: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "payOrderId非法"+payOrderId+"[payOrderIdStr:"+payOrderIdStr+"]");
}
}
payOrder = wxPayOrderService.getById(payOrderId,payOrder.getTenantId());
if (null == payOrder) {
return new ResultData(ErrorCode.PAY_ORDER_ERROR, "未查询到payOrder.");


+ 9
- 2
mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java Ver fichero

@@ -37,6 +37,8 @@ public class MqBaseConsumer {
@Autowired
private FmInsideOrderRefundMsgServiceImpl fmInsideOrderRefundMsgService;
@Autowired
private FmInsideOrderPushMsgServiceImpl fmInsideOrderPushMsgService;
@Autowired
private FmInsideCLoginMsgServiceImpl fmInsideCLoginMsgService;
@Autowired
private MqBaseProducer mqBaseProducer;
@@ -101,7 +103,12 @@ public class MqBaseConsumer {
// 内部消息 - c端登录
FmInsideCLoginMsg msg = (FmInsideCLoginMsg)JsonUtil.readValue(message,FmInsideCLoginMsg.class);
fmInsideCLoginMsgService.send(msg);
}
}
else if(EnumMsgRecordType.INSIDE_ORDER_PUSH.getCode().equals(baseMsg.getMsgType())) {
// 内部消息 - 订单同步
FmInsideOrderPushMsg msg = (FmInsideOrderPushMsg)JsonUtil.readValue(message,FmInsideOrderPushMsg.class);
fmInsideOrderPushMsgService.send(msg);
}
//else if(EnumMsgRecordType.INSIDE_NOTIFY_PAY_SUCCESS.getCode().equals(baseMsg.getMsgType())) {
// 内部消息 - 微信支付通知
//FmInsideNotifyPaySuccessMsg msg = (FmInsideNotifyPaySuccessMsg)JsonUtil.readValue(message,FmInsideNotifyPaySuccessMsg.class);
@@ -111,7 +118,7 @@ public class MqBaseConsumer {
// 内部消息 - 微信退款通知
FmInsideNotifyRefundSuccessMsg msg = (FmInsideNotifyRefundSuccessMsg)JsonUtil.readValue(message,FmInsideNotifyRefundSuccessMsg.class);
fmInsideNotifyRefundSuccessMsgService.send(msg);
}
}
else if(EnumMsgRecordType.CASH_OUT.getCode().equals(baseMsg.getMsgType())) {
// 内部消息 - 商户提现通知
FmInsideCashOutMsg msg = (FmInsideCashOutMsg)JsonUtil.readValue(message,FmInsideCashOutMsg.class);


+ 24
- 7
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java Ver fichero

@@ -6,7 +6,11 @@ import java.util.List;
import java.util.Map;

import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.po.msg.FmInsideOrderPushMsg;
import com.iformall.enums.*;
import com.iformall.mapper.*;
import com.iformall.mq.MqBaseProducer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.aop.framework.AopContext;
@@ -20,13 +24,6 @@ import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.enums.EnumAppType;
import com.iformall.enums.EnumComposeOrder;
import com.iformall.enums.EnumOrderStatus;
import com.iformall.enums.EnumOrderType;
import com.iformall.enums.EnumPayStatus;
import com.iformall.enums.EnumPayWay;
import com.iformall.enums.EnumRefundStatus;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxAppinfoService;
import com.iformall.service.WxOrderService;
@@ -90,6 +87,9 @@ public class OrderExpiringSchedule {
@Autowired
OrderFactory orderFactory;

@Autowired
MqBaseProducer mqBaseProducer;
private List<WxMall> getMalls() {
WxMall wxMall =new WxMall();
@@ -353,6 +353,8 @@ public class OrderExpiringSchedule {
wxOrderMapper.updateById(updateOrder);

logger.info("券订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + new Date());
sendInsideOrderPushMsg(order,order.getComposeOrderId());

}

@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
@@ -464,4 +466,19 @@ public class OrderExpiringSchedule {
}
}

public void sendInsideOrderPushMsg(TenantEntity tenantEntity, Long mainOrderId) {
try{
FmInsideOrderPushMsg orderPush = new FmInsideOrderPushMsg();
orderPush.setDelayTimeLevel(5);
orderPush.setMsgType(EnumMsgRecordType.INSIDE_ORDER_PUSH.getCode());
orderPush.updateTenantInfo(tenantEntity);
orderPush.setBatchOrderId(mainOrderId);
logger.info(">>>>>>>>>>>send sendInsideOrderPushMsg :"+orderPush);
mqBaseProducer.sendMessage(orderPush, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}catch(Exception e){
logger.info(">>>>>>>>>>>send sendInsideOrderPushMsg : error"+e.getMessage());
}

}

}

+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java Ver fichero

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxOrderCouponVo;
import com.iformall.enums.EnumAppPlat;
import com.iformall.utils.Constant;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@@ -40,4 +42,13 @@ public class WxBatchOrder extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value = "订单集合", name = "orders")
private List<WxOrderCouponVo> orders;

public String getWeappOrderPath(EnumAppPlat appPlat){
if(EnumAppPlat.WX.equals(appPlat)){

}else if (EnumAppPlat.TOUTIAO.equals(appPlat)){
return Constant.mainPageUrl + "?type=dd&couponOrderId=" + id;
}
return null;
}

}

+ 0
- 9
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java Ver fichero

@@ -173,13 +173,4 @@ public class WxOrder extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="配送类型 0:默认(无) 1:自提 2:配送",name="shippingType")
private Integer shippingType;


public String getWeappOrderPath(EnumAppPlat appPlat){
if(EnumAppPlat.WX.equals(appPlat)){

}else if (EnumAppPlat.TOUTIAO.equals(appPlat)){
return Constant.mainPageUrl + "?type=cd&couponId=" + productId;
}
return null;
}
}

+ 19
- 0
mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderPushMsg.java Ver fichero

@@ -0,0 +1,19 @@
package com.iformall.domain.po.msg;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class FmInsideOrderPushMsg extends BaseMsg{

@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
private String tenantId;
@io.swagger.annotations.ApiModelProperty(value="父租户id",name="parentTenantId")
private String parentTenantId;
@io.swagger.annotations.ApiModelProperty(value = "", name = "composeOrderId")
private Long batchOrderId;

}

+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java Ver fichero

@@ -100,6 +100,9 @@ public class WxOrderCouponVo extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark")
private String remark;

@io.swagger.annotations.ApiModelProperty(value="内容类型(0:小程序页面类型,1:富文本类型)",name="contentType")
private Integer contentType;

/** 发券商户信息 */
@io.swagger.annotations.ApiModelProperty(value="商户列表",name="merchantVoList")
private List<WxMerchantVo> merchantVoList;
@@ -197,6 +200,7 @@ public class WxOrderCouponVo extends TenantEntity {
this.setValidEndDate(c.getValidEndDate());
this.setPickStartDate(c.getPickStartDate());
this.setPickEndDate(c.getPickEndDate());
this.setContentType(c.getContentType());
if (hasDetail) {
this.setDetail(c.getDetail());
this.setRemark(c.getRemark());


+ 2
- 1
mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java Ver fichero

@@ -7,7 +7,7 @@ public enum EnumMsgRecordType {
SMS(1, "短信"),
SMS_CALLBACK(2, "业务短信"),
EMAIL(3, "邮件"),
SMART_APP(4, "小程序"),//模板消息作废
// SMART_APP(4, "小程序"),//模板消息作废
SMART_APP_TO(44, "小程序"),//订阅消息
PUBLIC(5, "公众号"),
SYSTEM(6, "系统通知"),
@@ -21,6 +21,7 @@ public enum EnumMsgRecordType {
COUPON_STOCK(105, "券库存更新"),
CASH_OUT(106,"商户提现"),
INSIDE_ORDER_REFUND(107, "退款提交成功"),
INSIDE_ORDER_PUSH(108, "订单同步"),
;

public static EnumMsgRecordType getEnum(Integer code) {


+ 2
- 0
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Ver fichero

@@ -243,6 +243,8 @@ public interface WxOrderService {
ResultData composeSaveOrder(boolean allowUnPayOrder,EnumComposeOrder composeOrderType,List<OrderComposeSaveDto> composeOrderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity);

void sendInsideOrderPushMsg(WxComposeOrder composeOrder);

PageInfo<WxOrderCouponVo> listGoodsCAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize);

PageInfo<WxBatchOrder> listBatchOrderAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize);


+ 33
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Ver fichero

@@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.iformall.domain.po.*;
import com.iformall.domain.po.msg.FmInsideOrderPushMsg;
import com.iformall.domain.po.msg.WxMsgRecord;
import com.iformall.domain.vo.*;
import com.iformall.enums.*;
@@ -28,6 +29,7 @@ import com.iformall.service.order.entity.WxComposeChildOrderShare;
import com.iformall.service.order.entity.WxComposeOrder;
import com.iformall.service.order.util.OrderHelper;

import com.iformall.service.pay.PayServiceFactory;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -210,6 +212,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Autowired
OrderFactory orderFactory;

@Autowired
PayServiceFactory payServiceFactory;
@Lazy
@Autowired
@@ -2053,6 +2058,14 @@ public class WxOrderServiceImpl implements WxOrderService {
logger.error("订单状态更新失败, e:" + e.getMessage(),e);
throw new MallinkException(ErrorCode.ORDER_UPDATE_ERR);
}
if(ret == 1){
//订单同步
WxComposeOrder composeOrder = new WxComposeOrder();
composeOrder.updateTenantInfo(oldOrder);
composeOrder.setMainOrderId(oldOrder.getComposeOrderId());
sendInsideOrderPushMsg(composeOrder);
}

return ret;
}

@@ -2562,8 +2575,7 @@ public class WxOrderServiceImpl implements WxOrderService {
throw new MallinkException(ErrorCode.SYS_REPEAT_SUBMIT_EXCEPTION);
}
cUserBasicInfoRedisTemplate.opsForValue().set(key, user, 1000, TimeUnit.MILLISECONDS);

OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrderType.getCode());
WxComposeOrder composeOrder = orderAdapterService.createDBMainOrder(tenantEntity,user, orderSave, payWay);
WxOrder lastOrder = null;
@@ -3051,6 +3063,8 @@ public class WxOrderServiceImpl implements WxOrderService {
WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy();
try {
WxComposeOrder order = proxy.saveOrderForCoupon(tenantEntity,allowUnPayOrder,composeOrderType,wxCUserBasicInfo, composeOrderSaveDto, payWay);
//订单同步消息
sendInsideOrderPushMsg(order);
return new ResultData(order);
} catch (MallinkException e) {
logger.error("saveOrderForCoupon error.",e);
@@ -3066,8 +3080,23 @@ public class WxOrderServiceImpl implements WxOrderService {
logger.error("composeSaveOrder error.",e);
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage());
}

}

@Override
public void sendInsideOrderPushMsg(WxComposeOrder composeOrder) {
try{
FmInsideOrderPushMsg orderPush = new FmInsideOrderPushMsg();
orderPush.setDelayTimeLevel(5);
orderPush.setMsgType(EnumMsgRecordType.INSIDE_ORDER_PUSH.getCode());
orderPush.updateTenantInfo(composeOrder);
orderPush.setBatchOrderId(composeOrder.getMainOrderId());
logger.info(">>>>>>>>>>>send sendInsideOrderPushMsg :"+orderPush);
mqBaseProducer.sendMessage(orderPush, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}catch(Exception e){
logger.info(">>>>>>>>>>>send sendInsideOrderPushMsg : error"+e.getMessage());
}

}

//TODO 待优化重做


+ 2
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java Ver fichero

@@ -172,6 +172,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage());
}
}
//订单同步消息
wxOrderService.sendInsideOrderPushMsg(composeOrder);

}
}


+ 81
- 0
mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushMsgServiceImpl.java Ver fichero

@@ -0,0 +1,81 @@
package com.iformall.service.msg.impl;

import com.iformall.common.ErrorCode;
import com.iformall.domain.po.*;
import com.iformall.domain.po.msg.BaseMsg;
import com.iformall.domain.po.msg.FmInsideOrderPushMsg;
import com.iformall.domain.po.msg.FmInsideOrderRefundMsg;
import com.iformall.enums.EnumPayWay;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.TtCUserMapper;
import com.iformall.mapper.WxBatchOrderMapper;
import com.iformall.mapper.WxCUserMapper;
import com.iformall.mapper.WxPayOrderMapper;
import com.iformall.service.*;
import com.iformall.service.msg.MsgSendService;
import com.iformall.service.pay.PayServiceFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
*
* @author Stormeye Wu
* @date 2019/5/10
*/
@Service
public class FmInsideOrderPushMsgServiceImpl implements MsgSendService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxOrderService orderService;

@Autowired
WxAppinfoService wxAppinfoService;

@Autowired
PayServiceFactory payServiceFactory;

@Autowired
WxPayOrderService wxPayOrderService;

@Autowired
TtCUserMapper ttCUserMapper;


@Override
public void send(BaseMsg baseMsg) throws Exception{
FmInsideOrderPushMsg msg = (FmInsideOrderPushMsg)baseMsg;
WxBatchOrder border = new WxBatchOrder();
border.setTenantId(msg.getTenantId());
border.setParentTenantId(msg.getParentTenantId());
border.setId(msg.getBatchOrderId());
WxBatchOrder batchOrder = orderService.batchOrderDetail(border);
if(batchOrder == null){
logger.error("主订单未找到: " + msg.getBatchOrderId());
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "主订单未找到" + msg.getBatchOrderId());
}
if(EnumPayWay.PAY_WAY_TT.getCode().equals(batchOrder.getPayVendor())){
WxAppinfo appinfo = wxAppinfoService.getCAppInfo(batchOrder,EnumPayWay.PAY_WAY_TT.getPlat());

WxPayOrder orderq = new WxPayOrder();
orderq.setOrderId(batchOrder.getId());
orderq.updateTenantInfo(batchOrder);
WxPayOrder payOrder = wxPayOrderService.getByObj(orderq);
if(payOrder == null){
logger.error("支付订单未找到: " + msg.getBatchOrderId());
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "支付订单未找到" + msg.getBatchOrderId());
}
List<String> openIds = ttCUserMapper.findOpenIdList(batchOrder.getCUserId(),batchOrder.getTenantId());
if(openIds == null || openIds.size() > 1){
logger.error("支付订单找到多个用户 同步失败: " + msg.getBatchOrderId());
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "支付订单找到多个用户" + msg.getBatchOrderId());
}

payServiceFactory.getPayAdapterService(EnumPayWay.PAY_WAY_TT.getCode()).payOrderPush(openIds.get(0),appinfo,batchOrder,payOrder);
}
}
}

+ 3
- 1
mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java Ver fichero

@@ -10,6 +10,7 @@ import com.iformall.service.order.entity.WxComposeOrder;
import com.iformall.service.pay.entity.PayExtraParam;
import com.iformall.service.pay.service.pay.entity.PayAdapterResult;
import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult;
import org.springframework.scheduling.annotation.Async;

public interface PayAdapterService {

@@ -86,7 +87,8 @@ public interface PayAdapterService {
* @return
* @throws Exception
*/
public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception;
@Async
public PayAdapterResult payOrderPush(String openId,WxAppinfo appInfo, WxBatchOrder batchOrder,WxPayOrder payOrder) throws Exception;
/**
* 获取二维码


+ 44
- 0
mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/EnumTtOrderStatus.java Ver fichero

@@ -0,0 +1,44 @@
package com.iformall.service.pay.service.pay.douyin.miniApp;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumTtOrderStatus {

// 0-待付款;1-已支付;2-已取消(限定时间内未付款);3-待退款;4-已退款;5-退款失败

ORDER_STATUS_0(0, "待支付"),
ORDER_STATUS_1(1, "已支付"),
ORDER_STATUS_2(2, "已取消"),
ORDER_STATUS_3(3, "已超时"),
ORDER_STATUS_4(4,"已核销"),//核销状态是整单核销(即一笔订单买了 3 个券,核销是指 3 个券核销的整单)
ORDER_STATUS_5(5, "退款中"),
ORDER_STATUS_6(6, "已退款"),
ORDER_STATUS_8(8, "退款失败"),
ORDER_STATUS_9(9, "已预订"),// 所有预售券类订单开发者必须通过订单同步接口回传已预订状态(order_status=9) 顺序在已核销之前
;
public static EnumTtOrderStatus getEnum(Integer code) {
for (EnumTtOrderStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumTtOrderStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 53
- 14
mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java Ver fichero

@@ -3,6 +3,7 @@ package com.iformall.service.pay.service.pay.douyin.miniApp;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxOrderCouponVo;
import com.iformall.douyin.miniapp.api.TtMaService;
import com.iformall.douyin.pay.DouYinPayHelper;
import com.iformall.douyin.pay.preOrder.CreatePreOrderResult;
@@ -88,31 +89,45 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen
}

@Override
public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception {
public PayAdapterResult payOrderPush(String openId,WxAppinfo appInfo, WxBatchOrder batchOrder,WxPayOrder payOrder) throws Exception {
TtMaService ttappService = maUtil.getTtappService(appInfo);
Map<String,Object> map = new HashMap<>();
// map.put("client_key","");//第三方在开放平台申请的 ClientKey(生活服务订单必传)
map.put("access_token",appInfo.getAccessToken());
// map.put("ext_shop_id","");//生活服务外部商户 id,购买店铺 id (生活服务订单必传)
map.put("app_name","douyin");
map.put("open_id",record.getOpenId());
map.put("open_id",openId);

WxOrderCouponVo wxOrderCouponVo = batchOrder.getOrders().get(0);

Map<String,Object> orderDetail = new HashMap<>();
orderDetail.put("order_id",order.getId().toString());
orderDetail.put("create_time",order.getCreateDate().getTime());
orderDetail.put("status", EnumOrderStatus.getEnum(order.getOrderStatus()).getMessage());
orderDetail.put("total_price",order.getPayment());
orderDetail.put("detail_url",order.getWeappOrderPath(EnumAppPlat.TOUTIAO));
orderDetail.put("order_id",batchOrder.getId().toString());
orderDetail.put("create_time",batchOrder.getCreateDate().getTime());
orderDetail.put("status", getTtOrderStatus(wxOrderCouponVo.getOrderStatus()).getMessage());
orderDetail.put("total_price",batchOrder.getPayment());
orderDetail.put("detail_url",batchOrder.getWeappOrderPath(EnumAppPlat.TOUTIAO));

List<Map> itemList = new ArrayList<>();
Map<String,Object> item = new HashMap<>();
item.put("img",coupon.getCoverImg());
item.put("title",coupon.getTitle());
item.put("sub_title",coupon.getSubTitle());
item.put("price",coupon.getSalePrice());
itemList.add(item);
for (WxOrderCouponVo orderVo:batchOrder.getOrders()) {
Map<String,Object> item = new HashMap<>();
item.put("img",orderVo.getCoverImg());
item.put("title",orderVo.getTitle());
item.put("sub_title",orderVo.getSubTitle());
item.put("price",orderVo.getSalePrice());
itemList.add(item);
}
orderDetail.put("item_list",itemList);

map.put("order_detail", JSON.toJSONString(orderDetail));
map.put("order_type",0);
map.put("update_time", order.getPaymentTime().getTime());
map.put("update_time", wxOrderCouponVo.getUpdateDate().getTime());
// map.put("extra","");//自定义字段,用于关联具体业务场景下的特殊参数
// map.put("scene","");//小程序场景值
// map.put("location","");//小程序场景值
// map.put("launch_from","");//小程序场景值
map.put("order_status", getTtOrderStatus(wxOrderCouponVo.getOrderStatus()).getCode());
map.put("payment_order_no", payOrder.getTransactionId());

try {
String response = ttappService.post(ttappService.ORDER_PUSH, map);
JSONObject jsonObject = JSON.parseObject(response);
@@ -130,6 +145,30 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen
}
}

private EnumTtOrderStatus getTtOrderStatus(Integer code) throws Exception {
if(EnumOrderStatus.getEnum(code).equals(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT)){
return EnumTtOrderStatus.ORDER_STATUS_0;
}
else if(EnumOrderStatus.getEnum(code).equals(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS)){
return EnumTtOrderStatus.ORDER_STATUS_1;
}
else if(EnumOrderStatus.getEnum(code).equals(EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL)){
return EnumTtOrderStatus.ORDER_STATUS_2;
}
else if(EnumOrderStatus.getEnum(code).equals(EnumOrderStatus.ORDER_STATUS_PENDING_REFUND)){
return EnumTtOrderStatus.ORDER_STATUS_5;
}
else if(EnumOrderStatus.getEnum(code).equals(EnumOrderStatus.ORDER_STATUS_REFUND_SUCCESS)){
return EnumTtOrderStatus.ORDER_STATUS_6;
}
else if(EnumOrderStatus.getEnum(code).equals(EnumOrderStatus.ORDER_STATUS_REFUND_FAILD)){
return EnumTtOrderStatus.ORDER_STATUS_8;
}
log.error("订单状态异常 。。。");
throw new Exception("订单状态异常");

}

@Override
public File getQrcode(WxAppinfo appinfo,String pageUrl,int type,String sceneParam) throws Exception{
return super.getQrCode(appinfo, pageUrl, type, sceneParam);


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java Ver fichero

@@ -57,7 +57,7 @@ public class WxH5PayService extends BaseWxPayAdapterService implements CDriving
}

@Override
public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception {
public PayAdapterResult payOrderPush(String openId,WxAppinfo appInfo, WxBatchOrder batchOrder,WxPayOrder payOrder) throws Exception {
return null;
}



+ 1
- 1
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java Ver fichero

@@ -265,7 +265,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen
}

@Override
public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception {
public PayAdapterResult payOrderPush(String openId,WxAppinfo appInfo, WxBatchOrder batchOrder,WxPayOrder payOrder) throws Exception {
return null;
}



+ 1
- 1
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java Ver fichero

@@ -250,7 +250,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement
}

@Override
public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception {
public PayAdapterResult payOrderPush(String openId,WxAppinfo appInfo, WxBatchOrder batchOrder,WxPayOrder payOrder) throws Exception {
return null;
}



Cargando…
Cancelar
Guardar