Kaynağa Gözat

//test

release_toaliyun_real
xhxu 4 yıl önce
ebeveyn
işleme
bd87b31627
9 değiştirilmiş dosya ile 194 ekleme ve 4 silme
  1. +7
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgRecordController.java
  2. +6
    -0
      mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java
  3. +21
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderRefundMsg.java
  4. +3
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java
  5. +1
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java
  6. +2
    -3
      mallinkService/src/main/java/com/iformall/service/WxRefundOrderService.java
  7. +29
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  8. +50
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java
  9. +75
    -0
      mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderRefundMsgServiceImpl.java

+ 7
- 0
mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgRecordController.java Dosyayı Görüntüle

@@ -113,6 +113,13 @@ public class WxMsgRecordController extends BaseController {
msg.setTenantId(wxMsgRecord.getTenantId());
msg.updateTenantInfo(tenantEntity);
mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}else if(EnumMsgRecordType.INSIDE_ORDER_REFUND.getCode().equals(wxMsgRecord.getMsgType())){
//内部消息 - 下订单成功
FmInsideOrderRefundMsg msg = (FmInsideOrderRefundMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),FmInsideOrderRefundMsg.class);
msg.setMsgType(wxMsgRecord.getMsgType());
msg.setReceiver(wxMsgRecord.getReceiver());
msg.updateTenantInfo(tenantEntity);
mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}
}
return new ResultData();


+ 6
- 0
mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java Dosyayı Görüntüle

@@ -35,6 +35,8 @@ public class MqBaseConsumer {
@Autowired
private FmInsideCouponVerifyMsgServiceImpl fmInsideCouponVerifyMsgService;
@Autowired
private FmInsideOrderRefundMsgServiceImpl fmInsideOrderRefundMsgService;
@Autowired
private FmInsideCLoginMsgServiceImpl fmInsideCLoginMsgService;
@Autowired
private MqBaseProducer mqBaseProducer;
@@ -91,6 +93,10 @@ public class MqBaseConsumer {
// 内部消息 - 券核销
FmInsideCouponVerifyMsg msg = (FmInsideCouponVerifyMsg)JsonUtil.readValue(message,FmInsideCouponVerifyMsg.class);
fmInsideCouponVerifyMsgService.send(msg);
} else if(EnumMsgRecordType.INSIDE_ORDER_REFUND.getCode().equals(baseMsg.getMsgType())){
//内部消息 - 退款申请成功
FmInsideOrderRefundMsg msg = (FmInsideOrderRefundMsg) JsonUtil.readValue(message,FmInsideOrderRefundMsg.class);
fmInsideOrderRefundMsgService.send(msg);
} else if(EnumMsgRecordType.INSIDE_C_LOGIN.getCode().equals(baseMsg.getMsgType())) {
// 内部消息 - c端登录
FmInsideCLoginMsg msg = (FmInsideCLoginMsg)JsonUtil.readValue(message,FmInsideCLoginMsg.class);


+ 21
- 0
mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderRefundMsg.java Dosyayı Görüntüle

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

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

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class FmInsideOrderRefundMsg 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 = "couponOrderId")
private Long couponOrderId;
@io.swagger.annotations.ApiModelProperty(value = "退款订单ID", name = "orderId")
private Long orderId;

}

+ 3
- 0
mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java Dosyayı Görüntüle

@@ -38,6 +38,9 @@ public enum EnumMsgModel {
COUPON_CARD_SEND(30, "系统发卡"),

INVEST_REMIND(31, "招商预约提醒"),

COUPON_ORDER_SUCCESS(32,"购买成功提醒"),
COUPON_ORDER_REFUND(33,"提交退款提醒"),
;

public static EnumMsgModel getEnum(Integer code) {


+ 1
- 0
mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java Dosyayı Görüntüle

@@ -20,6 +20,7 @@ public enum EnumMsgRecordType {
INSIDE_NOTIFY_REFUND_SUCCESS(104, "微信退款回调"),
COUPON_STOCK(105, "券库存更新"),
CASH_OUT(106,"商户提现"),
INSIDE_ORDER_REFUND(107, "退款提交成功"),
;

public static EnumMsgRecordType getEnum(Integer code) {


+ 2
- 3
mallinkService/src/main/java/com/iformall/service/WxRefundOrderService.java Dosyayı Görüntüle

@@ -2,9 +2,7 @@ package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxAppinfo;
import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.po.WxRefundOrder;
import com.iformall.domain.po.*;
import com.iformall.enums.EnumPayType;
import com.iformall.enums.EnumPayWay;

@@ -100,4 +98,5 @@ public interface WxRefundOrderService {

boolean hasRefundOrder(Long orderId, Integer status);

void actionAfterCouponOrder(WxCouponOrder couponOrder, WxOrder rOrder, WxCoupon coupon, WxCUserBasicInfo basicInfo);
}

+ 29
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Dosyayı Görüntüle

@@ -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.WxMsgRecord;
import com.iformall.domain.vo.*;
import com.iformall.enums.*;
import com.iformall.service.*;
@@ -1865,7 +1866,34 @@ public class WxOrderServiceImpl implements WxOrderService {
} catch (Exception e) {
logger.error("订单发券:" + e.getMessage(),e);
}

//通知用户
try {
sendMsgAfterCouponOrderSuccess(order,coupon,user);
} catch (Exception e) {
logger.error("订单成功通知用户error:" + e.getMessage(),e);
}
}

private void sendMsgAfterCouponOrderSuccess(WxOrder order,WxCoupon coupon, WxCUserBasicInfo user) {
// 发送短信
// if(EnumPayWay.PAY_WAY_TT.getCode().equals(order.getPayVendor())){
logger.info("订单成功短信通知start");
//券名
String name = coupon.getTitle();
//找出用户手机号
String phone = user.getPhone();
Map<String, String> msgReplaceMap = new HashMap();
msgReplaceMap.put("name", name);

WxMsgRecord wxMsgRecord = new WxMsgRecord();
wxMsgRecord.updateTenantInfo(order);
wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode());
wxMsgRecord.setModelType(EnumMsgModel.COUPON_ORDER_SUCCESS.getCode());
wxMsgRecord.setReceiver(phone);
wxMsgRecord.setDynamicContentMap(msgReplaceMap);
mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
logger.info("订单成功短信通知end");
// }
}

@Override


+ 50
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java Dosyayı Görüntüle

@@ -10,9 +10,13 @@ import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
import com.iformall.domain.po.msg.FmInsideOrderRefundMsg;
import com.iformall.domain.po.msg.FmInsideOrderSuccessMsg;
import com.iformall.domain.po.msg.WxMsgRecord;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.*;
import com.iformall.mq.MqBaseProducer;
import com.iformall.pay.WxPay;
import com.iformall.pay.WxPayment;
import com.iformall.pay.WxRefundOrderP;
@@ -92,6 +96,10 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
@Autowired
WxBatchOrderMapper wxBatchOrderMapper;

@Autowired
private MqBaseProducer mqBaseProducer;

private boolean isMerchantOrder(WxOrder wxOrder, Long merchantId) {
if (wxOrder.getType().equals(EnumOrderType.COUPON.getCode())) {
@@ -345,6 +353,14 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
if (refundResult.isSuccess()) {
record.setRefundOrderStatus(EnumRefundStatus.REFUND_REQ_SUCCESS.getCode());
wxRefundOrderMapper.updateById(record);

//通知用户
try {
sendInsideOrderRefundMsg(wxCouponOrder,rOrder);
} catch (Exception e) {
logger.error("订单成功通知用户error:" + e.getMessage(),e);
}

return new ResultData(Result.SUCCESS, "退款订单申请成功", refundResult.getData());
}else {
throw new MallinkException(refundResult.getCode(), refundResult.getMsg());
@@ -352,6 +368,16 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
}

private void sendInsideOrderRefundMsg(WxCouponOrder wxCouponOrder, WxOrder rOrder) {
FmInsideOrderRefundMsg orderRefund = new FmInsideOrderRefundMsg();
orderRefund.setMsgType(EnumMsgRecordType.INSIDE_ORDER_REFUND.getCode());
orderRefund.updateTenantInfo(wxCouponOrder);
orderRefund.setCouponOrderId(wxCouponOrder.getId());
orderRefund.setOrderId(rOrder.getId());
logger.info(">>>>>>>>>>>send sendInsideOrderRefundMsg :"+orderRefund);
mqBaseProducer.sendMessage(orderRefund, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}

@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public ResultData createRefundOrderFromMicroPay(WxAppinfo appInfo, Long orderId, EnumPayType payType, Long bUserId) {
@@ -729,4 +755,28 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
return wxRefundOrderMapper.selectCount(new QueryWrapper(order)) > 0 ? true : false;
}

@Override
public void actionAfterCouponOrder(WxCouponOrder couponOrder, WxOrder rOrder, WxCoupon coupon, WxCUserBasicInfo user) {
// 发送短信
// if(EnumPayWay.PAY_WAY_TT.getCode().equals(couponOrder.getPayVendor())){
logger.info("订单成功短信通知start");
//券名
String name = coupon.getTitle();
//找出用户手机号
String phone = user.getPhone();
Map<String, String> msgReplaceMap = new HashMap();
msgReplaceMap.put("name", name);

WxMsgRecord wxMsgRecord = new WxMsgRecord();
wxMsgRecord.updateTenantInfo(couponOrder);
wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode());
wxMsgRecord.setModelType(EnumMsgModel.COUPON_ORDER_REFUND.getCode());
wxMsgRecord.setReceiver(phone);
wxMsgRecord.setDynamicContentMap(msgReplaceMap);
mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
logger.info("订单成功短信通知end");
// }
}


}

+ 75
- 0
mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderRefundMsgServiceImpl.java Dosyayı Görüntüle

@@ -0,0 +1,75 @@
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.FmInsideOrderRefundMsg;
import com.iformall.domain.po.msg.FmInsideOrderSuccessMsg;
import com.iformall.exception.MallinkException;
import com.iformall.service.*;
import com.iformall.service.msg.MsgSendService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

@Autowired
private WxOrderService orderService;

@Autowired
private WxRefundOrderService refundOrderService;

@Autowired
private WxCUserBasicInfoService userService;

@Autowired
private WxCouponService couponService;

@Autowired
private WxCouponOrderService couponOrderService;

@Autowired
private WxCouponChannelService couponChannelService;


@Override
public void send(BaseMsg baseMsg) throws Exception{
FmInsideOrderRefundMsg msg = (FmInsideOrderRefundMsg)baseMsg;

WxCouponOrder couponOrder = couponOrderService.getById(msg.getCouponOrderId(), msg.getTenantId());
if(couponOrder == null) {
logger.error("卷订单未找到: " + msg.getOrderId());
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "订单未找到" + msg.getOrderId());
}

WxCUserBasicInfo user = userService.getById(couponOrder.getCUserId(),couponOrder.getFinalTenantId());
if(user == null) {
logger.error("用户未找到: " + couponOrder.getCUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "用户未找到" + couponOrder.getCUserId());
}

WxOrder rOrder = orderService.getById(msg.getOrderId(),msg.getTenantId());
if(rOrder == null) {
logger.error("退款订单未找到: " + msg.getOrderId());
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "订单未找到" + msg.getOrderId());
}

WxCoupon coupon = couponService.getById(couponOrder.getCouponId(),couponOrder.getTenantId());
if(coupon == null) {
logger.error("券未找到" + couponOrder.getCouponId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL.getCode(), "券未找到" + couponOrder.getCouponId());
}

// 提交退款后处理
refundOrderService.actionAfterCouponOrder(couponOrder, rOrder, coupon, user);
}
}

Yükleniyor…
İptal
Kaydet