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