Commit c49632a3 by songyinghui

feature: 会员订单写入数据组

parent 157125fb
...@@ -60,4 +60,12 @@ public interface QywxGroupMsgTaskApiService { ...@@ -60,4 +60,12 @@ public interface QywxGroupMsgTaskApiService {
* @return * @return
*/ */
ServiceResponse<Void> potentialCustomerJob(String params); ServiceResponse<Void> potentialCustomerJob(String params);
/**
* 记录会员订单为数组
* 当前只处理了微盟
* @param params
* @return
*/
ServiceResponse<Void> recordMemberOrderForData(String params);
} }
package com.gic.haoban.manage.service.pojo.bo.content.message;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/11/30 5:38 PM
* @Description
* @Version
**/
public class OrderConvertBo implements Serializable {
private String enterpriseId;
private String clerkId;
private String memberId;
private String bizId;
/**
* 实付
*/
private Double payAmount;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public Double getPayAmount() {
return payAmount;
}
public void setPayAmount(Double payAmount) {
this.payAmount = payAmount;
}
}
...@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.out.impl.content.task; ...@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.out.impl.content.task;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.Week; import cn.hutool.core.date.Week;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.PropertyNamingStrategy;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.hologres.client.HoloClient;
import com.alibaba.hologres.client.Put;
import com.alibaba.hologres.client.model.TableSchema;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil; import com.gic.commons.util.DateUtil;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
...@@ -11,15 +17,24 @@ import com.gic.haoban.manage.api.dto.content.report.MaterialReportDTO; ...@@ -11,15 +17,24 @@ import com.gic.haoban.manage.api.dto.content.report.MaterialReportDTO;
import com.gic.haoban.manage.api.enums.content.MaterialReportType; import com.gic.haoban.manage.api.enums.content.MaterialReportType;
import com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType; import com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType;
import com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService; import com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService;
import com.gic.haoban.manage.service.dao.mapper.content.holo.HoloDataSource;
import com.gic.haoban.manage.service.pojo.bo.content.GroupMessageInfoBo; import com.gic.haoban.manage.service.pojo.bo.content.GroupMessageInfoBo;
import com.gic.haoban.manage.service.pojo.bo.content.binlog.MemberOrderBo;
import com.gic.haoban.manage.service.pojo.bo.content.context.PotentialCustomerNotifyContext; import com.gic.haoban.manage.service.pojo.bo.content.context.PotentialCustomerNotifyContext;
import com.gic.haoban.manage.service.pojo.bo.content.message.OrderConvertBo;
import com.gic.haoban.manage.service.service.StaffService; import com.gic.haoban.manage.service.service.StaffService;
import com.gic.haoban.manage.service.service.WxEnterpriseService; import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.content.GroupMessageService; import com.gic.haoban.manage.service.service.content.GroupMessageService;
import com.gic.haoban.manage.service.service.content.MaterialReportService; import com.gic.haoban.manage.service.service.content.MaterialReportService;
import com.gic.haoban.manage.service.service.content.PotentialCustomerService; import com.gic.haoban.manage.service.service.content.PotentialCustomerService;
import com.gic.haoban.manage.service.service.content.adaptor.MaterialEnterpriseAdaptor; import com.gic.haoban.manage.service.service.content.adaptor.MaterialEnterpriseAdaptor;
import com.gic.haoban.manage.service.task.KafkaMessageServiceImpl;
import com.gic.haoban.manage.service.task.RouterConstant; import com.gic.haoban.manage.service.task.RouterConstant;
import com.gic.order.api.dto.OrderDTO;
import com.gic.order.api.dto.req.MemberOrderOptional;
import com.gic.order.api.service.member.MemberOrderReadApiService;
import com.gic.orderecommerce.api.dto.EorderDTO;
import com.gic.orderecommerce.api.service.EcommerceOrderOutputApiService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.Now; import org.apache.poi.ss.formula.functions.Now;
...@@ -28,9 +43,12 @@ import org.slf4j.LoggerFactory; ...@@ -28,9 +43,12 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @Author MUSI * @Author MUSI
...@@ -53,6 +71,13 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic ...@@ -53,6 +71,13 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic
@Autowired @Autowired
private PotentialCustomerService potentialCustomerService; private PotentialCustomerService potentialCustomerService;
@Autowired
private EcommerceOrderOutputApiService ecommerceOrderOutputApiService;
@Autowired
private MemberOrderReadApiService memberOrderReadApiService;
@Autowired
private HoloDataSource holoDataSource;
@Override @Override
public ServiceResponse<Void> groupMsgTaskJob(String params) { public ServiceResponse<Void> groupMsgTaskJob(String params) {
log.info("执行触达客户定时任务 {}", DateUtil.datetimeToString(new Date())); log.info("执行触达客户定时任务 {}", DateUtil.datetimeToString(new Date()));
...@@ -271,4 +296,65 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic ...@@ -271,4 +296,65 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic
DateTime temp = cn.hutool.core.date.DateUtil.offsetSecond(now, -(hour_sec)); DateTime temp = cn.hutool.core.date.DateUtil.offsetSecond(now, -(hour_sec));
return cn.hutool.core.date.DateUtil.hour(temp, true) < 8; return cn.hutool.core.date.DateUtil.hour(temp, true) < 8;
} }
/**
* 记录会员订单为数组
*
* @param params
* @return
*/
@Override
public ServiceResponse<Void> recordMemberOrderForData(String params) {
// 冗余订单数据到基础侧
MemberOrderBo memberOrderBo = JSON.parseObject(params, MemberOrderBo.class);
if (memberOrderBo == null) {
return ServiceResponse.success();
}
// 订单纬度
// enterprise_id, clerk_id, store_id, pay_amount, biz_id,
// 订单项纬度
if (KafkaMessageServiceImpl.tab_gic_eorder.equals(memberOrderBo.getTableName())) {
EorderDTO eorderDTO = ecommerceOrderOutputApiService.getEorderWholeByMemberIdAndOrderId(memberOrderBo.getMemberId(), memberOrderBo.getOrderId());
}
if (KafkaMessageServiceImpl.tab_gic_order.equals(memberOrderBo.getTableName())) {
ServiceResponse<OrderDTO> serviceResponse = memberOrderReadApiService.queryById(memberOrderBo.getEnterpriseId(),
memberOrderBo.getMemberId(), memberOrderBo.getOrderId(), MemberOrderOptional.item());
}
List<OrderConvertBo> orderConvertBos = new ArrayList<>();
try {
HoloClient client = holoDataSource.getClient();
if (client == null) {
log.error("recordMemberOrderForData 数仓数据源链接异常, 请检查!!!!{}", JSON.toJSONString(orderConvertBos));
return ServiceResponse.success();
}
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 = orderConvertBos
.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", com.gic.haoban.common.utils.DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp.setObject("update_time", com.gic.haoban.common.utils.DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
return temp;
})
.collect(Collectors.toList());
client.put(puts);
log.info("recordMemberOrderForData 会员订单数据组写入完成 >>>>>");
}catch (Exception ex) {
log.info("recordMemberOrderForData 数据组写入异常 {}", JSON.toJSONString(orderConvertBos), ex);
}
return ServiceResponse.success();
}
} }
...@@ -11,6 +11,7 @@ import com.gic.dubbo.entity.ProviderLocalTag; ...@@ -11,6 +11,7 @@ import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.haoban.manage.api.dto.FlushStoreMqDTO; import com.gic.haoban.manage.api.dto.FlushStoreMqDTO;
import com.gic.haoban.manage.api.enums.ChannelCodeEnum; import com.gic.haoban.manage.api.enums.ChannelCodeEnum;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService; import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService;
import com.gic.haoban.manage.service.pojo.BinlogBasePojo; import com.gic.haoban.manage.service.pojo.BinlogBasePojo;
import com.gic.haoban.manage.service.pojo.ClerkSyncPojo; import com.gic.haoban.manage.service.pojo.ClerkSyncPojo;
import com.gic.haoban.manage.service.pojo.GroupSyncPojo; import com.gic.haoban.manage.service.pojo.GroupSyncPojo;
...@@ -306,11 +307,11 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor ...@@ -306,11 +307,11 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
private void dealMemberOrder(MemberOrderBo memberOrderBo) { private void dealMemberOrder(MemberOrderBo memberOrderBo) {
logger.info("会员订单数据 {}", JSON.toJSONString(memberOrderBo));
if (!StringUtils.equalsIgnoreCase(memberOrderBo.getChannelCode(), MemberOrderBo.weimo)) {
return;
}
try { try {
logger.info("会员订单数据 {}", JSON.toJSONString(memberOrderBo));
if (!StringUtils.equalsIgnoreCase(memberOrderBo.getChannelCode(), MemberOrderBo.weimo)) {
return;
}
logger.info("发送微盟订单处理消息 {}", "dealweimoOrder"); logger.info("发送微盟订单处理消息 {}", "dealweimoOrder");
/** /**
* @see com.gic.haoban.manage.api.service.content.MallOrderStatusChangeApiService#dealWeimoOrder(String) * @see com.gic.haoban.manage.api.service.content.MallOrderStatusChangeApiService#dealWeimoOrder(String)
...@@ -319,5 +320,15 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor ...@@ -319,5 +320,15 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
}catch (Exception ex) { }catch (Exception ex) {
logger.info("处理会员订单异常 ", ex); logger.info("处理会员订单异常 ", ex);
} }
try {
logger.info("发送微盟订单处理消息 {}", "recordMemberOrderForData");
/**
* @see QywxGroupMsgTaskApiService#recordMemberOrderForData(String)
*/
GICMQClientUtil.getClientInstance().sendMessage("recordMemberOrderForData", JSON.toJSONString(memberOrderBo));
}catch (Exception ex) {
logger.info("处理会员订单异常 ", ex);
}
} }
} }
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