Commit fe441714 by 王祖波

刷新线索冗余orderId、channelCode

parent 025355b4
......@@ -103,12 +103,23 @@ public class InteractRecordExtendInfoBO implements Serializable {
*/
@Data
public static class ExtendOrderInfo implements Serializable {
/**
* 订单id
*/
private String orderId;
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单渠道
* @see com.gic.enterprise.api.enums.PlatformChannelEnum
*/
private String channelCode;
/**
* 订单创建时间
*/
private Date orderCreateTime;
......
......@@ -8,6 +8,7 @@ import com.gic.business.order.dto.ordermanage.ListOrderItemDTO;
import com.gic.business.order.dto.ordermanage.OrderOutInfoDTO;
import com.gic.business.order.qdto.ordermanage.OrderInfoQDTO;
import com.gic.business.order.service.ordermanage.OrderInfoOutApiService;
import com.gic.enterprise.api.enums.PlatformChannelEnum;
import com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType;
import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO;
import com.gic.haoban.manage.service.pojo.bo.content.context.InteractRecordMessageContext;
......@@ -220,7 +221,9 @@ public class InteractRecordMessageBuilder {
OrderOutInfoDTO orderOutInfoDTO = serviceResponse.getResult();
InteractRecordExtendInfoBO.ExtendOrderInfo extendOrderInfo = new InteractRecordExtendInfoBO.ExtendOrderInfo();
extendOrderInfo.setOrderId(orderOutInfoDTO.getOrderId());
extendOrderInfo.setOrderNumber(orderOutInfoDTO.getOrderNumber());
extendOrderInfo.setChannelCode(PlatformChannelEnum.C_WECHAT_MINI.getChannelCode());
extendOrderInfo.setOrderCreateTime(orderOutInfoDTO.getCreateTime());
extendOrderInfo.setOrderTotalNum(orderOutInfoDTO.getOrderItems().size());
extendOrderInfo.setOrderPay(orderOutInfoDTO.getReceivableAmount());
......@@ -253,7 +256,9 @@ public class InteractRecordMessageBuilder {
return null;
}
InteractRecordExtendInfoBO.ExtendOrderInfo extendOrderInfo = new InteractRecordExtendInfoBO.ExtendOrderInfo();
extendOrderInfo.setOrderId(eorderDTO.getEorderId());
extendOrderInfo.setOrderNumber(eorderDTO.getOrderNo());
extendOrderInfo.setChannelCode(Optional.ofNullable(PlatformChannelEnum.getEnumByOldOrderType(eorderDTO.getOrderType())).orElse(PlatformChannelEnum.C_OTHER).getChannelCode());
extendOrderInfo.setOrderCreateTime(eorderDTO.getOrderCreateTime());
extendOrderInfo.setOrderPay(BigDecimal.valueOf(eorderDTO.getTotalAmount()));
extendOrderInfo.setRealPay(BigDecimal.valueOf(eorderDTO.getPaymentAmount()));
......@@ -301,7 +306,9 @@ public class InteractRecordMessageBuilder {
}
OrderDTO orderDTO = serviceResponse.getResult();
InteractRecordExtendInfoBO.ExtendOrderInfo extendOrderInfo = new InteractRecordExtendInfoBO.ExtendOrderInfo();
extendOrderInfo.setOrderId(orderDTO.getOrderId());
extendOrderInfo.setOrderNumber(orderDTO.getOrderNumber());
extendOrderInfo.setChannelCode(PlatformChannelEnum.C_POS.getChannelCode());
extendOrderInfo.setOrderCreateTime(orderDTO.getOrderTime());
extendOrderInfo.setOrderTotalNum(orderDTO.getItemNum());
extendOrderInfo.setOrderPay(BigDecimal.valueOf(orderDTO.getPaidAmount()));
......
......@@ -81,7 +81,7 @@ public class InteractRecordServiceImpl implements InteractRecordService {
@Override
public Page<InteractRecordBO> queryInteractRecordPage(InteractRecordQO interactRecordQO) {
if (StringUtils.isBlank(interactRecordQO.getClerkId())) {
if (Objects.equals(interactRecordQO.getClerkId(),"-1")) {
log.info("queryInteractRecordPage 参数缺失");
return new Page<>();
}
......
......@@ -2,8 +2,12 @@ import cn.hutool.crypto.digest.MD5;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.business.order.dto.ordermanage.OrderOutInfoDTO;
import com.gic.business.order.qdto.ordermanage.OrderInfoQDTO;
import com.gic.business.order.service.ordermanage.OrderInfoOutApiService;
import com.gic.enterprise.api.constant.EnterpriseServiceEnum;
import com.gic.enterprise.api.dto.enterprise.EnterpriseUsingStatusDTO;
import com.gic.enterprise.api.enums.PlatformChannelEnum;
import com.gic.enterprise.api.service.EnterpriseUseForbidService;
import com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
......@@ -14,21 +18,28 @@ import com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType;
import com.gic.haoban.manage.api.service.content.InteractRecordApiService;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanOwnerLogMapper;
import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO;
import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO;
import com.gic.haoban.manage.service.pojo.bo.content.MemberAttrChangeBO;
import com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO;
import com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO;
import com.gic.haoban.manage.service.service.content.InteractRecordService;
import com.gic.haoban.manage.service.service.content.message.InteractRecordMessageService;
import com.gic.order.api.dto.req.AllChannelOrderSearchReq;
import com.gic.order.api.dto.req.MemberOrderOptional;
import com.gic.order.api.dto.req.OrderFindQDTO;
import com.gic.order.api.dto.resp.OrderInfoResp;
import com.gic.order.api.service.member.MemberOrderReadApiService;
import com.gic.orderecommerce.api.dto.EorderDTO;
import com.gic.orderecommerce.api.service.EcommerceOrderOutputApiService;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
/**
* @Author MUSI
......@@ -48,6 +59,10 @@ public class InteractRecordTest {
InteractRecordApiService interactRecordApiService;
@Autowired
private EnterpriseUseForbidService enterpriseUseForbidService;
@Autowired
private OrderInfoOutApiService orderInfoOutApiService;
@Autowired
private EcommerceOrderOutputApiService ecommerceOrderOutputApiService;
@Test
public void test2222() {
......@@ -116,4 +131,55 @@ public class InteractRecordTest {
memberAttrChangeBO.setOpt(MemberAttrChangeBO.MemberChangeOpt.MINI_APP_AUTHORIZED.getCode());
interactRecordApiService.memberChangeMQ(JSON.toJSONString(memberAttrChangeBO));
}
@Test
public void fixOrderChannelCode() {
InteractRecordQO interactRecordQO = new InteractRecordQO();
interactRecordQO.setPageNum(1);
interactRecordQO.setPageSize(100000);
interactRecordQO.setEventTypeList(Lists.newArrayList(MaterialInteractRecordEventType.ORDER.getCode()));
Page<InteractRecordBO> interactRecordBOPage = interactRecordService.queryInteractRecordPage(interactRecordQO);
List<InteractRecordBO> result = interactRecordBOPage.getResult();
for (InteractRecordBO interactRecordBO : result) {
InteractRecordExtendInfoBO extendInfo = interactRecordBO.getExtendInfo();
if (extendInfo == null) {
continue;
}
List<InteractRecordExtendInfoBO.ExtendOrderInfo> extendOrderInfos = extendInfo.getExtendOrderInfos();
for (InteractRecordExtendInfoBO.ExtendOrderInfo extendOrderInfo : extendOrderInfos) {
OrderInfoQDTO orderInfoQDTO = new OrderInfoQDTO();
String enterpriseId = interactRecordBO.getEnterpriseId();
String orderNumber = extendOrderInfo.getOrderNumber();
orderInfoQDTO.setOrderNumber(orderNumber);
orderInfoQDTO.setEnterpriseId(enterpriseId);
String orderId = "";
String channelCode = "";
ServiceResponse<OrderOutInfoDTO> serviceResponse = orderInfoOutApiService.queryOrderInfo(orderInfoQDTO);
if (serviceResponse.getResult() == null) {
EorderDTO eorderDTO = ecommerceOrderOutputApiService.getEorderByMemberIdAndOrderNumber(memberId, PlatformChannelEnum.C_WEIMOB.getChannelCode(),orderNumber,enterpriseId);
if (eorderDTO == null) {
eorderDTO = ecommerceOrderOutputApiService.getEorderByMemberIdAndOrderNumber(memberId, PlatformChannelEnum.C_BRAND_MALL.getChannelCode(),orderNumber,enterpriseId);
}
if (eorderDTO != null) {
orderId = eorderDTO.getEorderId();
channelCode = eorderDTO.getChannelCode();
}
}else {
orderId = serviceResponse.getResult().getOrderId();
channelCode = PlatformChannelEnum.C_WECHAT_MINI.getChannelCode();
}
if (StringUtils.isAnyBlank(orderId, channelCode)) {
continue;
}
extendOrderInfo.setOrderId(orderId);
extendOrderInfo.setChannelCode(channelCode);
}
extendInfo.setExtendOrderInfos(extendOrderInfos);
InteractRecordBO update = new InteractRecordBO();
update.setId(interactRecordBO.getId());
update.setExtendInfo(extendInfo);
interactRecordService.saveOrUpdateInteractRecord(update);
}
}
}
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