Commit 191eaec9 by 王祖波

互动记录

parent a01456b9
package com.gic.haoban.manage.api.dto.content;
import java.util.Date;
/**
* Created by wangzubo on 2025/3/15.
*/
public class MemberLastInteractDTO {
/**
* 会员id
*/
private String memberId;
/**
* 最新访问时间
*/
private Date lastAccessTime;
// Getters and Setters
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Date getLastAccessTime() {
return lastAccessTime;
}
public void setLastAccessTime(Date lastAccessTime) {
this.lastAccessTime = lastAccessTime;
}
}
......@@ -14,6 +14,10 @@ public class InteractRecordInfoDTO implements Serializable {
private static final long serialVersionUID = -170525928535773136L;
/**
* 会员id
*/
private String memberId;
/**
* 互动记录id
*/
private Long interactRecordId;
......@@ -78,6 +82,14 @@ public class InteractRecordInfoDTO implements Serializable {
*/
private InteractRecordExtendInfoDTO extendInfo;
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Long getInteractRecordId() {
return interactRecordId;
}
......
......@@ -2,9 +2,14 @@ package com.gic.haoban.manage.api.service.content;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.content.MemberLastInteractDTO;
import com.gic.haoban.manage.api.dto.qdto.content.InteractRecordQDTO;
import com.gic.haoban.manage.api.enums.content.InteractRecordInfoDTO;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author MUSI
* @Date 2023/3/29 12:45 PM
......@@ -22,6 +27,24 @@ public interface InteractRecordApiService {
ServiceResponse<Page<InteractRecordInfoDTO>> queryInteractRecordList(InteractRecordQDTO interactRecordQDTO);
/**
* 查询会员对应时间后最新的互动记录
* @param enterpriseId
* @param clerkId
* @param list
* @return
*/
ServiceResponse<Map<String,InteractRecordInfoDTO>> mapInteractRecord(String enterpriseId, String clerkId, List<MemberLastInteractDTO> list);
/**
* 查询对应时间后会员最新的互动记录
* @param clerkId
* @param lastAccessTime
* @return
*/
ServiceResponse<List<MemberLastInteractDTO>> queryMemberIdsByTime(String clerkId, Date lastAccessTime);
/**
* 处理member信息变化的MQ
* routeName: memberIdChangeNotify
* @param params
......
......@@ -5,11 +5,9 @@ import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO;
import com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO;
import com.gic.haoban.manage.service.pojo.bo.potential.MemberLastInteractBO;
import com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 互动记录明细(TabHaobanInteractRecord)表服务接口
......@@ -85,7 +83,7 @@ public interface InteractRecordService {
* @param list
* @return
*/
Map<String,InteractRecordBO> mapInteractRecord(String enterpriseId, String clerkId, List<MemberLastInteractBO> list);
List<InteractRecordBO> lastInteractRecord(String enterpriseId, String clerkId, List<MemberLastInteractBO> list);
/**
* 查询对应时间后会员最新的互动记录
......
......@@ -262,9 +262,9 @@ public class InteractRecordServiceImpl implements InteractRecordService {
}
@Override
public Map<String, InteractRecordBO> mapInteractRecord(String enterpriseId, String clerkId, List<MemberLastInteractBO> list) {
public List<InteractRecordBO> lastInteractRecord(String enterpriseId, String clerkId, List<MemberLastInteractBO> list) {
if (CollectionUtils.isEmpty(list)) {
return new HashMap<>();
return new ArrayList<>();
}
List<TabHaobanInteractRecord> records = tabHaobanInteractRecordMapper.selectLastByMemberIds(clerkId, list);
List<InteractRecordBO> recordBOList = records.stream()
......@@ -277,10 +277,7 @@ public class InteractRecordServiceImpl implements InteractRecordService {
return temp;
})
.collect(Collectors.toList());
Map<String, InteractRecordBO> map = recordBOList.stream()
.collect(Collectors.toMap(InteractRecordBO::getMemberId, Function.identity(),
(e, x) -> e));
return map;
return recordBOList;
}
@Override
......
......@@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.manage.api.dto.content.MemberLastInteractDTO;
import com.gic.haoban.manage.api.dto.qdto.content.InteractRecordQDTO;
import com.gic.haoban.manage.api.enums.content.InteractRecordExtendInfoDTO;
import com.gic.haoban.manage.api.enums.content.InteractRecordInfoDTO;
......@@ -12,6 +14,7 @@ import com.gic.haoban.manage.api.service.content.InteractRecordApiService;
import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO;
import com.gic.haoban.manage.service.pojo.bo.content.MemberAttrChangeBO;
import com.gic.haoban.manage.service.pojo.bo.content.binlog.MemberOrderBo;
import com.gic.haoban.manage.service.pojo.bo.potential.MemberLastInteractBO;
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.PotentialCustomerService;
......@@ -35,7 +38,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -82,20 +87,7 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
// 组装扩展信息
List<InteractRecordInfoDTO> recordInfos = pageResult.getResult()
.stream()
.map(item -> {
InteractRecordInfoDTO temp = new InteractRecordInfoDTO();
BeanUtils.copyProperties(item, temp);
if (item.getLastAccessTime() != null) {
temp.setCreateTime(item.getLastAccessTime());
}
temp.setInteractRecordId(item.getId());
if (item.getExtendInfo() != null) {
InteractRecordExtendInfoDTO extendInfo = new InteractRecordExtendInfoDTO();
BeanUtils.copyProperties(item.getExtendInfo(), extendInfo);
temp.setExtendInfo(extendInfo);
}
return temp;
})
.map(this::getInteractRecordInfoDTO)
.collect(Collectors.toList());
result.setTotalCount(pageResult.getTotalCount());
result.setResult(recordInfos);
......@@ -104,6 +96,40 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
return ServiceResponse.success(result);
}
private InteractRecordInfoDTO getInteractRecordInfoDTO(InteractRecordBO item) {
InteractRecordInfoDTO temp = new InteractRecordInfoDTO();
BeanUtils.copyProperties(item, temp);
if (item.getLastAccessTime() != null) {
temp.setCreateTime(item.getLastAccessTime());
}
temp.setInteractRecordId(item.getId());
if (item.getExtendInfo() != null) {
InteractRecordExtendInfoDTO extendInfo = new InteractRecordExtendInfoDTO();
BeanUtils.copyProperties(item.getExtendInfo(), extendInfo);
temp.setExtendInfo(extendInfo);
}
return temp;
}
@Override
public ServiceResponse<Map<String, InteractRecordInfoDTO>> mapInteractRecord(String enterpriseId, String clerkId, List<MemberLastInteractDTO> list) {
List<InteractRecordBO> recordBOS = interactRecordService.lastInteractRecord(enterpriseId, clerkId, EntityUtil.changeEntityListByJSON(MemberLastInteractBO.class, list));
List<InteractRecordInfoDTO> recordInfos = recordBOS
.stream()
.map(this::getInteractRecordInfoDTO)
.collect(Collectors.toList());
Map<String, InteractRecordInfoDTO> map = recordInfos.stream().collect(Collectors.toMap(InteractRecordInfoDTO::getMemberId,
v -> v, (e, x) -> e));
return ServiceResponse.success(map);
}
@Override
public ServiceResponse<List<MemberLastInteractDTO>> queryMemberIdsByTime(String clerkId, Date lastAccessTime) {
List<MemberLastInteractBO> list = interactRecordService.queryMemberIdsByTime(clerkId, lastAccessTime);
List<MemberLastInteractDTO> dtoList = EntityUtil.changeEntityListByJSON(MemberLastInteractDTO.class, list);
return ServiceResponse.success(dtoList);
}
/**
* 处理member信息变化的MQ
*
......
......@@ -102,8 +102,8 @@ public class ContactTest {
memberLastInteractBO.setMemberId(memberId);
memberLastInteractBO.setLastAccessTime(new Date("2024/01/01 00:00:00"));
list.add(memberLastInteractBO);
Map<String, InteractRecordBO> map = interactRecordService.mapInteractRecord(eid, "26efaa8144e14f60b2f4d48ffe9f708c", list);
System.out.println(JSON.toJSONString(map));
List<InteractRecordBO> res = interactRecordService.lastInteractRecord(eid, "26efaa8144e14f60b2f4d48ffe9f708c", list);
System.out.println(JSON.toJSONString(res));
}
@Test
......
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