Commit cff3e46d by 王祖波

Merge branch 'feature-content202505' into developer

parents 7cc1dc80 121169fd
......@@ -50,6 +50,11 @@ public class InteractRecordQDTO extends BasePageInfo {
private Integer filterNull;
/**
* 排序字段
*/
private String orderBy;
/**
* 开始时间-创建时间
*/
private Date startTime;
......@@ -116,6 +121,14 @@ public class InteractRecordQDTO extends BasePageInfo {
this.filterNull = filterNull;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public Date getStartTime() {
return startTime;
}
......
......@@ -49,6 +49,11 @@ public class InteractRecordInfoDTO implements Serializable {
private Date createTime;
/**
* 真正的创建时间 createTime可能会变成最新更新时间)
*/
private Date recordCreateTime;
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 0其他
*/
private Integer channelSource;
......@@ -164,6 +169,14 @@ public class InteractRecordInfoDTO implements Serializable {
this.createTime = createTime;
}
public Date getRecordCreateTime() {
return recordCreateTime;
}
public void setRecordCreateTime(Date recordCreateTime) {
this.recordCreateTime = recordCreateTime;
}
public Integer getEventType() {
return eventType;
}
......
......@@ -53,6 +53,11 @@ public class InteractRecordQO extends BasePageInfo {
private Integer filterNull;
/**
* 排序字段
*/
private String orderBy;
/**
* 线索来源
* @see com.gic.haoban.manage.api.enums.content.InteractRecordChannelSourceType
*/
......
......@@ -153,6 +153,7 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
if (item.getLastAccessTime() != null) {
temp.setCreateTime(item.getLastAccessTime());
}
temp.setRecordCreateTime(item.getCreateTime());
temp.setInteractRecordId(item.getId());
if (item.getExtendInfo() != null) {
InteractRecordExtendInfoDTO extendInfo = new InteractRecordExtendInfoDTO();
......
......@@ -329,7 +329,12 @@
</foreach>
</if>
</where>
order by last_access_time desc, id desc
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy} DESC,id DESC
</if>
<if test="orderBy == null or orderBy == ''">
ORDER BY last_access_time DESC, id DESC
</if>
</select>
<select id="staticsClerkInteractRecordNew" resultType="com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO">
......
......@@ -24,6 +24,7 @@ import com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessa
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.OrderDTO;
import com.gic.order.api.dto.req.AllChannelOrderSearchReq;
import com.gic.order.api.dto.req.MemberOrderOptional;
import com.gic.order.api.dto.req.OrderFindQDTO;
......@@ -40,6 +41,9 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
/**
* @Author MUSI
......@@ -63,6 +67,8 @@ public class InteractRecordTest {
private OrderInfoOutApiService orderInfoOutApiService;
@Autowired
private EcommerceOrderOutputApiService ecommerceOrderOutputApiService;
@Autowired
private MemberOrderReadApiService memberOrderReadApiService;
@Test
public void test2222() {
......@@ -133,8 +139,10 @@ public class InteractRecordTest {
}
@Test
public void fixOrderChannelCode() {
public void fixOrderChannelCode() throws Exception{
ExecutorService executorService = Executors.newFixedThreadPool(10);
InteractRecordQO interactRecordQO = new InteractRecordQO();
interactRecordQO.setEnterpriseId("ff8080817af2def7017b146da4d212c4");
interactRecordQO.setPageNum(1);
interactRecordQO.setPageSize(100000);
interactRecordQO.setStartTime(new Date("2020/01/01"));
......@@ -143,46 +151,56 @@ public class InteractRecordTest {
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) {
executorService.execute(()->{
InteractRecordExtendInfoBO extendInfo = interactRecordBO.getExtendInfo();
if (extendInfo == null) {
return;
}
List<InteractRecordExtendInfoBO.ExtendOrderInfo> extendOrderInfos = extendInfo.getExtendOrderInfos();
for (InteractRecordExtendInfoBO.ExtendOrderInfo extendOrderInfo : extendOrderInfos) {
OrderInfoQDTO orderInfoQDTO = new OrderInfoQDTO();
String enterpriseId = interactRecordBO.getEnterpriseId();
String orderNumber = extendOrderInfo.getOrderNumber();
String memberId = interactRecordBO.getMemberId();
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.getOrderChannelCodeOld(),orderNumber,enterpriseId);
if (eorderDTO == null) {
eorderDTO = ecommerceOrderOutputApiService.getEorderByMemberIdAndOrderNumber(memberId, PlatformChannelEnum.C_BRAND_MALL.getOrderChannelCodeOld(),orderNumber,enterpriseId);
OrderInfoQDTO orderInfoQDTO = new OrderInfoQDTO();
String enterpriseId = interactRecordBO.getEnterpriseId();
String orderNumber = extendOrderInfo.getOrderNumber();
String memberId = interactRecordBO.getMemberId();
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.getOrderChannelCodeOld(),orderNumber,enterpriseId);
if (eorderDTO == null) {
eorderDTO = ecommerceOrderOutputApiService.getEorderByMemberIdAndOrderNumber(memberId, PlatformChannelEnum.C_BRAND_MALL.getOrderChannelCodeOld(),orderNumber,enterpriseId);
}
if (eorderDTO == null) {
ServiceResponse<OrderDTO> ipos = memberOrderReadApiService.queryByChannelOrderId(enterpriseId, memberId, "weimob", orderNumber);
OrderDTO result1 = ipos.getResult();
if (result1 != null) {
orderId = result1.getOrderId();
channelCode = PlatformChannelEnum.C_POS.getChannelCode();
}
}else {
orderId = eorderDTO.getEorderId();
channelCode = PlatformChannelEnum.getEnumByChannelCodeOrder(eorderDTO.getChannelCode()).getChannelCode();
}
}else {
orderId = serviceResponse.getResult().getOrderId();
channelCode = PlatformChannelEnum.C_WECHAT_MINI.getChannelCode();
}
if (eorderDTO != null) {
orderId = eorderDTO.getEorderId();
channelCode = PlatformChannelEnum.getEnumByChannelCodeOrder(eorderDTO.getChannelCode()).getChannelCode();
if (StringUtils.isAnyBlank(orderId, channelCode)) {
continue;
}
}else {
orderId = serviceResponse.getResult().getOrderId();
channelCode = PlatformChannelEnum.C_WECHAT_MINI.getChannelCode();
}
if (StringUtils.isAnyBlank(orderId, channelCode)) {
continue;
extendOrderInfo.setOrderId(orderId);
extendOrderInfo.setChannelCode(channelCode);
}
extendOrderInfo.setOrderId(orderId);
extendOrderInfo.setChannelCode(channelCode);
}
extendInfo.setExtendOrderInfos(extendOrderInfos);
InteractRecordBO update = new InteractRecordBO();
update.setId(interactRecordBO.getId());
update.setExtendInfo(extendInfo);
interactRecordService.saveOrUpdateInteractRecord(update);
extendInfo.setExtendOrderInfos(extendOrderInfos);
InteractRecordBO update = new InteractRecordBO();
update.setId(interactRecordBO.getId());
update.setExtendInfo(extendInfo);
interactRecordService.saveOrUpdateInteractRecord(update);
});
}
executorService.awaitTermination(10, TimeUnit.HOURS);
}
}
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