Commit 96e57f9a by xiongjiangtao

触达日志

parent e57978e4
package com.gic.haoban.manage.api.dto.anaylsis;
import java.io.Serializable;
/**
* @author shangfeng
* @date 2024-08-29 09:55:06
*/
public class ClerkShareGoodsLogDTO implements Serializable {
private static final long serialVersionUID = 903792260439296719L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 成员id
*/
private String staffId;
/**
* 素材分享类型
* @see com.gic.haoban.manage.api.enums.content.ClerkShareMaterialType
*/
private Integer shareType;
/**
* 业务id
*/
private String bizId;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private Integer bizType;
/**
* 门店id
*/
private String storeId;
/**
* 外部联系人id
*/
private String externalUserId;
/**
* 会员id
*/
private String memberId;
/**
* 额外数据
*/
private String extend;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public Integer getShareType() {
return shareType;
}
public void setShareType(Integer shareType) {
this.shareType = shareType;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getExternalUserId() {
return externalUserId;
}
public void setExternalUserId(String externalUserId) {
this.externalUserId = externalUserId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getExtend() {
return extend;
}
public void setExtend(String extend) {
this.extend = extend;
}
}
package com.gic.haoban.manage.api.service.content; package com.gic.haoban.manage.api.service.content;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.anaylsis.ClerkShareGoodsLogDTO;
import com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO; import com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO;
import java.util.List; import java.util.List;
...@@ -25,8 +26,8 @@ public interface MaterialShareLogApiService { ...@@ -25,8 +26,8 @@ public interface MaterialShareLogApiService {
/** /**
* 保存导购分享记录 * 保存导购分享记录
* *
* @param clerkShareMaterialLogDTOList * @param clerkShareGoodsLogDTOList
* @return * @return
*/ */
ServiceResponse<Long> saveClerkShareRecommendLog(List<ClerkShareMaterialLogDTO> clerkShareMaterialLogDTOList); ServiceResponse<Long> saveClerkShareRecommendLog(List<ClerkShareGoodsLogDTO> clerkShareGoodsLogDTOList);
} }
package com.gic.haoban.manage.service.pojo.bo.anaylsis;
import java.util.Date;
/**
* @author shangfeng
* @date 2024-08-29 10:03:10
*/
public class ProTriggerCustomerDetailBO {
private Long id;
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 业务id
*/
private String bizId;
/**
* 业务类型 2商品
*/
private Integer bizType;
/**
* 导购id
*/
private String clerkId;
/**
* 成员id
*/
private String staffId;
/**
* 门店id
*/
private String storeId;
/**
* 渠道类型 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材;6 潜客推荐
*/
private Integer channelType;
/**
* 触达客户标识 外部联系人id
*/
private String customerId;
/**
* 会员id
*/
private String memberId;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 0正常; 1删除
*/
private Integer deleteFlag;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public Integer getChannelType() {
return channelType;
}
public void setChannelType(Integer channelType) {
this.channelType = channelType;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
package com.gic.haoban.manage.service.service.content; package com.gic.haoban.manage.service.service.content;
import com.gic.haoban.manage.service.pojo.bo.anaylsis.ProTriggerCustomerDetailBO;
import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO; import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO;
import com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO; import com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO;
...@@ -24,7 +25,13 @@ public interface TriggerCustomerDetailService { ...@@ -24,7 +25,13 @@ public interface TriggerCustomerDetailService {
* 批量保存 * 批量保存
* @param triggerCustomerDetailBos * @param triggerCustomerDetailBos
*/ */
void batchSave(List<TriggerCustomerDetailBO> triggerCustomerDetailBos, String tableName); void batchSave(List<TriggerCustomerDetailBO> triggerCustomerDetailBos);
/**
* 批量保存
* @param triggerCustomerDetailBos
*/
void batchSaveGoodsShare(List<ProTriggerCustomerDetailBO> triggerCustomerDetailBos);
/** /**
......
...@@ -351,7 +351,7 @@ public class GroupMessageServiceImpl implements GroupMessageService { ...@@ -351,7 +351,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
List<TriggerCustomerDetailBO> customerDetailBos = userIds.stream() List<TriggerCustomerDetailBO> customerDetailBos = userIds.stream()
.map(item -> this.convertCustomerDetailLog(clerkShareLogBo, item)) .map(item -> this.convertCustomerDetailLog(clerkShareLogBo, item))
.collect(Collectors.toList()); .collect(Collectors.toList());
triggerCustomerDetailService.batchSave(customerDetailBos,"tab_haoban_trigger_customer_detail"); triggerCustomerDetailService.batchSave(customerDetailBos);
} }
} }
} }
...@@ -562,7 +562,7 @@ public class GroupMessageServiceImpl implements GroupMessageService { ...@@ -562,7 +562,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
.stream() .stream()
.map(item -> this.convertCustomerDetailLog(clerkShareLogBO, item.getExternalUserId())) .map(item -> this.convertCustomerDetailLog(clerkShareLogBO, item.getExternalUserId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
triggerCustomerDetailService.batchSave(customerDetailBos,"tab_haoban_trigger_customer_detail"); triggerCustomerDetailService.batchSave(customerDetailBos);
} }
} }
...@@ -583,7 +583,7 @@ public class GroupMessageServiceImpl implements GroupMessageService { ...@@ -583,7 +583,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
.stream() .stream()
.map(item -> this.convertCustomerDetailLog(clerkShareLogBO, item.getUserId())) .map(item -> this.convertCustomerDetailLog(clerkShareLogBO, item.getUserId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
triggerCustomerDetailService.batchSave(customerDetailBos,"tab_haoban_trigger_customer_detail"); triggerCustomerDetailService.batchSave(customerDetailBos);
} }
} }
......
...@@ -13,6 +13,7 @@ import com.gic.haoban.common.utils.DateUtil; ...@@ -13,6 +13,7 @@ import com.gic.haoban.common.utils.DateUtil;
import com.gic.haoban.manage.service.dao.mapper.content.TabHaobanTriggerCustomerDetailMapper; import com.gic.haoban.manage.service.dao.mapper.content.TabHaobanTriggerCustomerDetailMapper;
import com.gic.haoban.manage.service.dao.mapper.content.holo.HoloDataSource; import com.gic.haoban.manage.service.dao.mapper.content.holo.HoloDataSource;
import com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail; import com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail;
import com.gic.haoban.manage.service.pojo.bo.anaylsis.ProTriggerCustomerDetailBO;
import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO; import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO;
import com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO; import com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO;
import com.gic.haoban.manage.service.service.content.TriggerCustomerDetailService; import com.gic.haoban.manage.service.service.content.TriggerCustomerDetailService;
...@@ -57,7 +58,7 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe ...@@ -57,7 +58,7 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe
* @param triggerCustomerDetailBos * @param triggerCustomerDetailBos
*/ */
@Override @Override
public void batchSave(List<TriggerCustomerDetailBO> triggerCustomerDetailBos, String tableName) { public void batchSave(List<TriggerCustomerDetailBO> triggerCustomerDetailBos) {
if (CollectionUtils.isEmpty(triggerCustomerDetailBos)) { if (CollectionUtils.isEmpty(triggerCustomerDetailBos)) {
log.info("无客户触达日志 >>>> "); log.info("无客户触达日志 >>>> ");
return; return;
...@@ -82,7 +83,41 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe ...@@ -82,7 +83,41 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe
log.error("数仓数据源链接异常, 请检查!!!!{}", JSON.toJSONString(triggerCustomerDetailBos)); log.error("数仓数据源链接异常, 请检查!!!!{}", JSON.toJSONString(triggerCustomerDetailBos));
return; return;
} }
TableSchema tableSchema = client.getTableSchema(tableName); TableSchema tableSchema = client.getTableSchema("tab_haoban_trigger_customer_detail");
SerializeConfig serializeConfig = new SerializeConfig();
serializeConfig.setPropertyNamingStrategy(PropertyNamingStrategy.SnakeCase);
// id, enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id, staff_id,store_id, channel_type, customer_id, create_time, update_time, delete_flag
List<Put> puts = triggerCustomerDetailBos
.stream()
.map(item -> {
Put temp = new Put(tableSchema);
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(item, serializeConfig));
for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
temp.setObject(entry.getKey(), entry.getValue());
}
// 时间戳格式不行
temp.setObject("create_time", DateUtil.dateToStr(item.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
temp.setObject("update_time", DateUtil.dateToStr(item.getUpdateTime(), "yyyy-MM-dd HH:mm:ss"));
return temp;
})
.collect(Collectors.toList());
client.put(puts);
log.info("客户触达写数据组完成 >>>>>");
} catch (Exception ex) {
log.info("数据组写入异常 {}", JSON.toJSONString(triggerCustomerDetailBos), ex);
}
}
@Override
public void batchSaveGoodsShare(List<ProTriggerCustomerDetailBO> triggerCustomerDetailBos) {
try {
HoloClient client = holoDataSource.getClient();
if (client == null) {
log.error("数仓数据源链接异常, 请检查!!!!{}", JSON.toJSONString(triggerCustomerDetailBos));
return;
}
TableSchema tableSchema = client.getTableSchema("tab_pro_trigger_customer_detail");
SerializeConfig serializeConfig = new SerializeConfig(); SerializeConfig serializeConfig = new SerializeConfig();
serializeConfig.setPropertyNamingStrategy(PropertyNamingStrategy.SnakeCase); serializeConfig.setPropertyNamingStrategy(PropertyNamingStrategy.SnakeCase);
......
...@@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSON; ...@@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.UniqueIdUtils; import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.api.dto.anaylsis.ClerkShareGoodsLogDTO;
import com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO; import com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO;
import com.gic.haoban.manage.api.dto.content.log.TriggerCustomerDetailLogDTO; import com.gic.haoban.manage.api.dto.content.log.TriggerCustomerDetailLogDTO;
import com.gic.haoban.manage.api.enums.content.ClerkShareMaterialType; import com.gic.haoban.manage.api.enums.content.ClerkShareMaterialType;
import com.gic.haoban.manage.api.service.content.MaterialShareLogApiService; import com.gic.haoban.manage.api.service.content.MaterialShareLogApiService;
import com.gic.haoban.manage.service.pojo.bo.anaylsis.ProTriggerCustomerDetailBO;
import com.gic.haoban.manage.service.pojo.bo.content.ClerkShareLogBO; import com.gic.haoban.manage.service.pojo.bo.content.ClerkShareLogBO;
import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO; import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO;
import com.gic.haoban.manage.service.service.content.ClerkShareLogService; import com.gic.haoban.manage.service.service.content.ClerkShareLogService;
...@@ -37,6 +39,7 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic ...@@ -37,6 +39,7 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic
/** /**
* 导购分享素材 客户触达日志 * 导购分享素材 客户触达日志
*
* @see com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService#handlerTriggerCustomerDetailLog(String) * @see com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService#handlerTriggerCustomerDetailLog(String)
*/ */
private static final String SHARE_MATERIAL_DETAIL_LOG = "handlerTriggerCustomerDetailLog"; private static final String SHARE_MATERIAL_DETAIL_LOG = "handlerTriggerCustomerDetailLog";
...@@ -69,14 +72,14 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic ...@@ -69,14 +72,14 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic
temp.setCreateTime(new Date()); temp.setCreateTime(new Date());
temp.setUpdateTime(new Date()); temp.setUpdateTime(new Date());
temp.setDeleteFlag(0); temp.setDeleteFlag(0);
triggerCustomerDetailService.batchSave(Collections.singletonList(temp),"tab_haoban_trigger_customer_detail"); triggerCustomerDetailService.batchSave(Collections.singletonList(temp));
return ServiceResponse.success(temp.getId()); return ServiceResponse.success(temp.getId());
} }
ClerkShareLogBO clerkShareLogBO = new ClerkShareLogBO(); ClerkShareLogBO clerkShareLogBO = new ClerkShareLogBO();
BeanUtils.copyProperties(clerkShareMaterialLogDTO, clerkShareLogBO); BeanUtils.copyProperties(clerkShareMaterialLogDTO, clerkShareLogBO);
Long logId = clerkShareLogService.saveClerkShareLog(clerkShareLogBO); Long logId = clerkShareLogService.saveClerkShareLog(clerkShareLogBO);
if (logId != null && ClerkShareMaterialType.SHARE_PYQ.getCode().equals(clerkShareLogBO.getShareType())){ if (logId != null && ClerkShareMaterialType.SHARE_PYQ.getCode().equals(clerkShareLogBO.getShareType())) {
// MQ 通知处理导购分享日志 // MQ 通知处理导购分享日志
TriggerCustomerDetailLogDTO triggerCustomerDetailLog = new TriggerCustomerDetailLogDTO(); TriggerCustomerDetailLogDTO triggerCustomerDetailLog = new TriggerCustomerDetailLogDTO();
triggerCustomerDetailLog.setEnterpriseId(clerkShareLogBO.getEnterpriseId()); triggerCustomerDetailLog.setEnterpriseId(clerkShareLogBO.getEnterpriseId());
...@@ -85,10 +88,10 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic ...@@ -85,10 +88,10 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic
TriggerCustomerDetailLogDTO.SharePYQ sharePYQ = new TriggerCustomerDetailLogDTO.SharePYQ(); TriggerCustomerDetailLogDTO.SharePYQ sharePYQ = new TriggerCustomerDetailLogDTO.SharePYQ();
sharePYQ.setShareLogId(logId); sharePYQ.setShareLogId(logId);
triggerCustomerDetailLog.setSharePYQ(sharePYQ); triggerCustomerDetailLog.setSharePYQ(sharePYQ);
try{ try {
log.info("分享朋友圈日志 MQ {}", JSON.toJSONString(triggerCustomerDetailLog)); log.info("分享朋友圈日志 MQ {}", JSON.toJSONString(triggerCustomerDetailLog));
GICMQClientUtil.getClientInstance().sendMessage(SHARE_MATERIAL_DETAIL_LOG, JSON.toJSONString(triggerCustomerDetailLog), 60); GICMQClientUtil.getClientInstance().sendMessage(SHARE_MATERIAL_DETAIL_LOG, JSON.toJSONString(triggerCustomerDetailLog), 60);
}catch (Exception ex){ } catch (Exception ex) {
log.warn("客户分享素材 触达日志MQ异常 {}", JSON.toJSONString(triggerCustomerDetailLog), ex); log.warn("客户分享素材 触达日志MQ异常 {}", JSON.toJSONString(triggerCustomerDetailLog), ex);
} }
} }
...@@ -96,25 +99,26 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic ...@@ -96,25 +99,26 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic
} }
@Override @Override
public ServiceResponse<Long> saveClerkShareRecommendLog(List<ClerkShareMaterialLogDTO> clerkShareMaterialLogDTOList) { public ServiceResponse<Long> saveClerkShareRecommendLog(List<ClerkShareGoodsLogDTO> clerkShareGoodsLogDTOList) {
List<TriggerCustomerDetailBO> list = clerkShareMaterialLogDTOList.stream().map(clerkShareMaterialLogDTO -> { List<ProTriggerCustomerDetailBO> list = clerkShareGoodsLogDTOList.stream().map(clerkShareGoodsLogDTO -> {
TriggerCustomerDetailBO temp = new TriggerCustomerDetailBO(); ProTriggerCustomerDetailBO temp = new ProTriggerCustomerDetailBO();
temp.setId(UniqueIdUtils.uniqueLong()); temp.setId(UniqueIdUtils.uniqueLong());
temp.setEnterpriseId(clerkShareMaterialLogDTO.getEnterpriseId()); temp.setEnterpriseId(clerkShareGoodsLogDTO.getEnterpriseId());
temp.setWxEnterpriseId(clerkShareMaterialLogDTO.getWxEnterpriseId()); temp.setWxEnterpriseId(clerkShareGoodsLogDTO.getWxEnterpriseId());
temp.setBizId(clerkShareMaterialLogDTO.getBizId()); temp.setBizId(clerkShareGoodsLogDTO.getBizId());
temp.setBizType(clerkShareMaterialLogDTO.getBizType()); temp.setBizType(clerkShareGoodsLogDTO.getBizType());
temp.setClerkId(clerkShareMaterialLogDTO.getClerkId()); temp.setClerkId(clerkShareGoodsLogDTO.getClerkId());
temp.setStaffId(clerkShareMaterialLogDTO.getStaffId()); temp.setStaffId(clerkShareGoodsLogDTO.getStaffId());
temp.setStoreId(clerkShareMaterialLogDTO.getStoreId()); temp.setStoreId(clerkShareGoodsLogDTO.getStoreId());
temp.setChannelType(clerkShareMaterialLogDTO.getShareType()); temp.setChannelType(clerkShareGoodsLogDTO.getShareType());
temp.setCustomerId(clerkShareMaterialLogDTO.getExternalUserId()); temp.setCustomerId(clerkShareGoodsLogDTO.getExternalUserId());
temp.setMemberId(clerkShareGoodsLogDTO.getMemberId());
temp.setCreateTime(new Date()); temp.setCreateTime(new Date());
temp.setUpdateTime(new Date()); temp.setUpdateTime(new Date());
temp.setDeleteFlag(0); temp.setDeleteFlag(0);
return temp; return temp;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
triggerCustomerDetailService.batchSave(list,"tab_pro_trigger_customer_detail"); triggerCustomerDetailService.batchSaveGoodsShare(list);
return ServiceResponse.success(); return ServiceResponse.success();
} }
} }
...@@ -87,10 +87,10 @@ public class PotentialCustomerServiceTest { ...@@ -87,10 +87,10 @@ public class PotentialCustomerServiceTest {
triggerCustomerDetailBO.setUpdateTime(new Date()); triggerCustomerDetailBO.setUpdateTime(new Date());
triggerCustomerDetailBO.setDeleteFlag(1); triggerCustomerDetailBO.setDeleteFlag(1);
triggerCustomerDetailBO.setId(UniqueIdUtils.uniqueLong()); triggerCustomerDetailBO.setId(UniqueIdUtils.uniqueLong());
triggerCustomerDetailService.batchSave(Collections.singletonList(triggerCustomerDetailBO),"tab_haoban_trigger_customer_detail"); triggerCustomerDetailService.batchSave(Collections.singletonList(triggerCustomerDetailBO));
triggerCustomerDetailBO.setId(UniqueIdUtils.uniqueLong()); triggerCustomerDetailBO.setId(UniqueIdUtils.uniqueLong());
triggerCustomerDetailBO.setBizId("musidanxieru091211"); triggerCustomerDetailBO.setBizId("musidanxieru091211");
triggerCustomerDetailService.batchSave(Collections.singletonList(triggerCustomerDetailBO),"tab_haoban_trigger_customer_detail"); triggerCustomerDetailService.batchSave(Collections.singletonList(triggerCustomerDetailBO));
long time = new Date().getTime(); long time = new Date().getTime();
System.out.println((int)time); System.out.println((int)time);
......
...@@ -11,6 +11,7 @@ import com.gic.content.api.dto.material.ProductInfoDTO; ...@@ -11,6 +11,7 @@ import com.gic.content.api.dto.material.ProductInfoDTO;
import com.gic.content.api.qdto.material.ContentMaterialLandingPageQDTO; import com.gic.content.api.qdto.material.ContentMaterialLandingPageQDTO;
import com.gic.content.api.qdto.share.MaterialLinkShareQDTO; import com.gic.content.api.qdto.share.MaterialLinkShareQDTO;
import com.gic.content.api.service.ContentMaterialShareApiService; import com.gic.content.api.service.ContentMaterialShareApiService;
import com.gic.haoban.manage.api.dto.anaylsis.ClerkShareGoodsLogDTO;
import com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO; import com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO;
import com.gic.haoban.manage.api.enums.content.ShareBizType; import com.gic.haoban.manage.api.enums.content.ShareBizType;
import com.gic.haoban.manage.api.service.content.MaterialShareLogApiService; import com.gic.haoban.manage.api.service.content.MaterialShareLogApiService;
...@@ -89,36 +90,38 @@ public class ClerkMaterialShareController { ...@@ -89,36 +90,38 @@ public class ClerkMaterialShareController {
* @return * @return
*/ */
@RequestMapping(path = "/clerk/share/recomend/log", method = RequestMethod.POST) @RequestMapping(path = "/clerk/share/recomend/log", method = RequestMethod.POST)
public RestResponse<Long> clerkShareRecommendLog(@RequestBody RecommendShareLogQO recommendShareLogQO) { public RestResponse<Void> clerkShareRecommendLog(@RequestBody RecommendShareLogQO recommendShareLogQO) {
if (CollectionUtils.isEmpty(recommendShareLogQO.getGoodsIdList()) if (CollectionUtils.isEmpty(recommendShareLogQO.getGoodsIdList())
|| CollectionUtils.isEmpty(recommendShareLogQO.getExternalUserIdList()) || CollectionUtils.isEmpty(recommendShareLogQO.getMemberInfoList())
|| StringUtils.isBlank(recommendShareLogQO.getClerkId())) { || StringUtils.isBlank(recommendShareLogQO.getClerkId())) {
log.info("参数缺失 {}", JSON.toJSONString(recommendShareLogQO)); log.info("参数缺失 {}", JSON.toJSONString(recommendShareLogQO));
return RestResponse.failure("-1", "参数异常"); return RestResponse.failure("-1", "参数异常");
} }
log.info("saveClerkShareMaterialLog 保存导购分享推荐商品日志 clerkId:{}, recommendShareLogQO{}", recommendShareLogQO.getClerkId(), JSON.toJSONString(recommendShareLogQO)); log.info("saveClerkShareMaterialLog 保存导购分享推荐商品日志 clerkId:{}, recommendShareLogQO{}", recommendShareLogQO.getClerkId(), JSON.toJSONString(recommendShareLogQO));
List<ClerkShareMaterialLogDTO> list = Lists.newArrayList(); List<ClerkShareGoodsLogDTO> list = Lists.newArrayList();
List<String> memberIdList = Lists.newArrayList();
List<String> goodsIdList = recommendShareLogQO.getGoodsIdList(); List<String> goodsIdList = recommendShareLogQO.getGoodsIdList();
List<String> externalUserIdList = recommendShareLogQO.getExternalUserIdList(); List<RecommendShareLogQO.MemberInfo> externalUserIdList = recommendShareLogQO.getMemberInfoList();
for (String externalUserId : externalUserIdList) { for (RecommendShareLogQO.MemberInfo memberInfo : externalUserIdList) {
for (String goodsId : goodsIdList) { for (String goodsId : goodsIdList) {
ClerkShareMaterialLogDTO temp = new ClerkShareMaterialLogDTO(); ClerkShareGoodsLogDTO temp = new ClerkShareGoodsLogDTO();
temp.setEnterpriseId(recommendShareLogQO.getEnterpriseId()); temp.setEnterpriseId(recommendShareLogQO.getEnterpriseId());
temp.setWxEnterpriseId(recommendShareLogQO.getWxEnterpriseId()); temp.setWxEnterpriseId(recommendShareLogQO.getWxEnterpriseId());
temp.setClerkId(recommendShareLogQO.getClerkId()); temp.setClerkId(recommendShareLogQO.getClerkId());
temp.setExternalUserId(externalUserId); temp.setExternalUserId(memberInfo.getExternalUserId());
temp.setMemberId(memberInfo.getMemberId());
if(StringUtils.isNotEmpty(memberInfo.getMemberId())){
memberIdList.add(memberInfo.getMemberId());
}
temp.setBizId(goodsId); temp.setBizId(goodsId);
temp.setBizType(ShareBizType.GOODS.getCode()); temp.setBizType(ShareBizType.GOODS.getCode());
temp.setStoreId(recommendShareLogQO.getStoreId()); temp.setStoreId(recommendShareLogQO.getStoreId());
temp.setExternalUserId(recommendShareLogQO.getExternalUserId());
temp.setExtend(recommendShareLogQO.getExtend()); temp.setExtend(recommendShareLogQO.getExtend());
list.add(temp); list.add(temp);
} }
//会员推荐时间
} }
ServiceResponse<Long> serviceResponse = materialShareLogApiService.saveClerkShareRecommendLog(list); ServiceResponse<Long> serviceResponse = materialShareLogApiService.saveClerkShareRecommendLog(list);
...@@ -127,8 +130,12 @@ public class ClerkMaterialShareController { ...@@ -127,8 +130,12 @@ public class ClerkMaterialShareController {
return RestResponse.failure("-701", "系统异常"); return RestResponse.failure("-701", "系统异常");
} }
//更新会员推荐时间更新 //更新会员推荐时间更新
if(CollectionUtils.isNotEmpty(memberIdList)){
}
return RestResponse.successResult(serviceResponse.getResult()); return RestResponse.successResult();
} }
......
...@@ -42,14 +42,9 @@ public class RecommendShareLogQO implements Serializable { ...@@ -42,14 +42,9 @@ public class RecommendShareLogQO implements Serializable {
private String staffId; private String staffId;
/** /**
* 外部联系人id集合 * 会员信息
*/ */
private List<String> externalUserIdList; private List<MemberInfo> memberInfoList;
/**
* 会员id集合
*/
private List<String> memberIdList;
/** /**
* 微信unionId * 微信unionId
...@@ -57,15 +52,35 @@ public class RecommendShareLogQO implements Serializable { ...@@ -57,15 +52,35 @@ public class RecommendShareLogQO implements Serializable {
private String unionId; private String unionId;
/** /**
* 外部联系人id
*/
private String externalUserId;
/**
* 额外数据 * 额外数据
*/ */
private String extend; private String extend;
public static class MemberInfo implements Serializable {
private static final long serialVersionUID = -6888489586106817983L;
private String memberId;
private String externalUserId;
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getExternalUserId() {
return externalUserId;
}
public void setExternalUserId(String externalUserId) {
this.externalUserId = externalUserId;
}
}
public String getEnterpriseId() { public String getEnterpriseId() {
return enterpriseId; return enterpriseId;
} }
...@@ -114,20 +129,12 @@ public class RecommendShareLogQO implements Serializable { ...@@ -114,20 +129,12 @@ public class RecommendShareLogQO implements Serializable {
this.staffId = staffId; this.staffId = staffId;
} }
public List<String> getExternalUserIdList() { public List<MemberInfo> getMemberInfoList() {
return externalUserIdList; return memberInfoList;
} }
public void setExternalUserIdList(List<String> externalUserIdList) { public void setMemberInfoList(List<MemberInfo> memberInfoList) {
this.externalUserIdList = externalUserIdList; this.memberInfoList = memberInfoList;
}
public List<String> getMemberIdList() {
return memberIdList;
}
public void setMemberIdList(List<String> memberIdList) {
this.memberIdList = memberIdList;
} }
public String getUnionId() { public String getUnionId() {
...@@ -138,14 +145,6 @@ public class RecommendShareLogQO implements Serializable { ...@@ -138,14 +145,6 @@ public class RecommendShareLogQO implements Serializable {
this.unionId = unionId; this.unionId = unionId;
} }
public String getExternalUserId() {
return externalUserId;
}
public void setExternalUserId(String externalUserId) {
this.externalUserId = externalUserId;
}
public String getExtend() { public String getExtend() {
return extend; return extend;
} }
......
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