|
|
|
@@ -8,16 +8,20 @@ import com.iformall.enums.EnumComposeOrder; |
|
|
|
import com.iformall.enums.EnumPayWay; |
|
|
|
import com.iformall.exception.MallinkException; |
|
|
|
import com.iformall.mapper.TtCUserMapper; |
|
|
|
import com.iformall.mapper.TtOrderPushErrorMapper; |
|
|
|
import com.iformall.mapper.WxPayOrderMapper; |
|
|
|
import com.iformall.service.*; |
|
|
|
import com.iformall.service.msg.MsgSendService; |
|
|
|
import com.iformall.service.pay.PayServiceFactory; |
|
|
|
import com.iformall.service.pay.service.pay.entity.PayAdapterResult; |
|
|
|
import com.iformall.utils.DateUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
/** |
|
|
|
@@ -47,6 +51,15 @@ public class FmInsideOrderPushMsgServiceImpl implements MsgSendService { |
|
|
|
@Autowired |
|
|
|
WxPayOrderMapper wxPayOrderMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
TtOrderPushErrorMapper ttOrderPushErrorMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private String fmExceptionEmails; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private MailService mailService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void send(BaseMsg baseMsg) throws Exception{ |
|
|
|
@@ -70,7 +83,28 @@ public class FmInsideOrderPushMsgServiceImpl implements MsgSendService { |
|
|
|
&& EnumComposeOrder.SINGLE.getCode().equals(batchOrder.getOrderType()) |
|
|
|
&& batchOrder.getOrders().size() == 1){ |
|
|
|
WxAppinfo appinfo = wxAppinfoService.getCAppInfo(batchOrder,EnumPayWay.PAY_WAY_TT.getPlat()); |
|
|
|
payOrderPush(appinfo,batchOrder); |
|
|
|
try{ |
|
|
|
payOrderPush(appinfo,batchOrder); |
|
|
|
}catch(Exception e){ |
|
|
|
logger.error("订单同步异常batchOrderId"+batchOrder.getId()+"{}"+e.getMessage()); |
|
|
|
String[] receivers = fmExceptionEmails.split(","); |
|
|
|
StringBuilder sb = new StringBuilder(); |
|
|
|
sb.append(DateUtils.date2String(new Date())); |
|
|
|
sb.append("\n"); |
|
|
|
sb.append(e.getMessage()); |
|
|
|
sb.append("\n"); |
|
|
|
sb.append("batchOrderId="+batchOrder.getId()); |
|
|
|
//发送邮件 |
|
|
|
mailService.sendSimpleMail(receivers, "订单同步异常", sb.toString()); |
|
|
|
|
|
|
|
TtOrderPushError pushError = new TtOrderPushError(); |
|
|
|
pushError.setId(batchOrder.getId()); |
|
|
|
pushError.updateTenantInfo(batchOrder); |
|
|
|
pushError.setErrMsg(e.getMessage()); |
|
|
|
saveOrUpdate(pushError); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// WxOrderCouponVo wxOrderCouponVo = batchOrder.getOrders().get(0); |
|
|
|
// if(EnumPayType.PAY_PAYMENT.getCode().equals(wxOrderCouponVo.getPaymentType())){ |
|
|
|
@@ -101,6 +135,20 @@ public class FmInsideOrderPushMsgServiceImpl implements MsgSendService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void saveOrUpdate(TtOrderPushError pushError){ |
|
|
|
Date now = new Date(); |
|
|
|
TtOrderPushError pushError1 = ttOrderPushErrorMapper.selectById(pushError.getId()); |
|
|
|
if(pushError1 != null){ |
|
|
|
pushError1.setErrMsg(pushError.getErrMsg()); |
|
|
|
pushError1.setUpdateDate(now); |
|
|
|
ttOrderPushErrorMapper.updateById(pushError1); |
|
|
|
}else{ |
|
|
|
pushError.setCreateDate(now); |
|
|
|
pushError.setUpdateDate(now); |
|
|
|
ttOrderPushErrorMapper.insert(pushError); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void payOrderPush(WxAppinfo appinfo, WxBatchOrder batchOrder) throws Exception{ |
|
|
|
WxPayOrder orderq = new WxPayOrder(); |
|
|
|
@@ -121,6 +169,12 @@ public class FmInsideOrderPushMsgServiceImpl implements MsgSendService { |
|
|
|
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "支付订单找到多个用户" + batchOrder.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
payServiceFactory.getPayAdapterService(EnumPayWay.PAY_WAY_TT.getCode()).payOrderPush(openIds.get(0),appinfo,batchOrder,payOrder); |
|
|
|
PayAdapterResult payAdapterResult = payServiceFactory.getPayAdapterService(EnumPayWay.PAY_WAY_TT.getCode()).payOrderPush(openIds.get(0), appinfo, batchOrder, payOrder); |
|
|
|
|
|
|
|
if(payAdapterResult.isSuccess()){ |
|
|
|
ttOrderPushErrorMapper.deleteById(batchOrder.getId()); |
|
|
|
}else{ |
|
|
|
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(), payAdapterResult.getMsg() + batchOrder.getId()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |