Commit bbd43db4 by songyinghui

feature: 微盟订单

parent f075a34a
...@@ -3,6 +3,8 @@ package com.gic.haoban.manage.service.pojo.bo.content.binlog; ...@@ -3,6 +3,8 @@ package com.gic.haoban.manage.service.pojo.bo.content.binlog;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import com.gic.haoban.manage.service.pojo.BinlogBasePojo; import com.gic.haoban.manage.service.pojo.BinlogBasePojo;
import java.util.Date;
/** /**
* @Author MUSI * @Author MUSI
* @Date 2023/4/6 7:19 PM * @Date 2023/4/6 7:19 PM
...@@ -40,6 +42,12 @@ public class MaterialMemberEOrderPojo extends BinlogBasePojo { ...@@ -40,6 +42,12 @@ public class MaterialMemberEOrderPojo extends BinlogBasePojo {
private String channelCode; private String channelCode;
/** /**
* 下单时间
*/
@JSONField(name = "order_create_time")
private Date orderTime;
/**
* 表名 * 表名
*/ */
private String tableName; private String tableName;
...@@ -99,4 +107,12 @@ public class MaterialMemberEOrderPojo extends BinlogBasePojo { ...@@ -99,4 +107,12 @@ public class MaterialMemberEOrderPojo extends BinlogBasePojo {
public void setChannelCode(String channelCode) { public void setChannelCode(String channelCode) {
this.channelCode = channelCode; this.channelCode = channelCode;
} }
public Date getOrderTime() {
return orderTime;
}
public void setOrderTime(Date orderTime) {
this.orderTime = orderTime;
}
} }
...@@ -3,6 +3,8 @@ package com.gic.haoban.manage.service.pojo.bo.content.binlog; ...@@ -3,6 +3,8 @@ package com.gic.haoban.manage.service.pojo.bo.content.binlog;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import com.gic.haoban.manage.service.pojo.BinlogBasePojo; import com.gic.haoban.manage.service.pojo.BinlogBasePojo;
import java.util.Date;
/** /**
* @Author MUSI * @Author MUSI
* @Date 2023/4/6 7:19 PM * @Date 2023/4/6 7:19 PM
...@@ -39,6 +41,12 @@ public class MaterialMemberGicOrderPojo extends BinlogBasePojo { ...@@ -39,6 +41,12 @@ public class MaterialMemberGicOrderPojo extends BinlogBasePojo {
private String channelCode; private String channelCode;
/** /**
* 下单时间
*/
@JSONField(name = "order_time")
private Date orderTime;
/**
* 表名 * 表名
*/ */
private String tableName; private String tableName;
...@@ -98,4 +106,12 @@ public class MaterialMemberGicOrderPojo extends BinlogBasePojo { ...@@ -98,4 +106,12 @@ public class MaterialMemberGicOrderPojo extends BinlogBasePojo {
public void setChannelCode(String channelCode) { public void setChannelCode(String channelCode) {
this.channelCode = channelCode; this.channelCode = channelCode;
} }
public Date getOrderTime() {
return orderTime;
}
public void setOrderTime(Date orderTime) {
this.orderTime = orderTime;
}
} }
package com.gic.haoban.manage.service.pojo.bo.content.binlog; package com.gic.haoban.manage.service.pojo.bo.content.binlog;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @Author MUSI * @Author MUSI
...@@ -34,10 +35,21 @@ public class MemberOrderBo implements Serializable { ...@@ -34,10 +35,21 @@ public class MemberOrderBo implements Serializable {
private String channelCode; private String channelCode;
/** /**
* 下单时间
*/
private Date orderTime;
/**
* 表名 * 表名
*/ */
private String tableName; private String tableName;
/***
* 消费次数
*/
private Integer times;
public Integer getOrderStatus() { public Integer getOrderStatus() {
return orderStatus; return orderStatus;
} }
...@@ -93,4 +105,20 @@ public class MemberOrderBo implements Serializable { ...@@ -93,4 +105,20 @@ public class MemberOrderBo implements Serializable {
public void setTableName(String tableName) { public void setTableName(String tableName) {
this.tableName = tableName; this.tableName = tableName;
} }
public Date getOrderTime() {
return orderTime;
}
public void setOrderTime(Date orderTime) {
this.orderTime = orderTime;
}
public Integer getTimes() {
return times;
}
public void setTimes(Integer times) {
this.times = times;
}
} }
package com.gic.haoban.manage.service.pojo.bo.content.holo;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author MUSI
* @Date 2023/12/6 6:05 PM
* @Description
* @Version
**/
public class MemberOrderHoloBo implements Serializable {
private String orderId;
private String enterpriseId;
private String memberId;
private String orderNumber;
private String oorderNumber;
/**
* 实付金额 含运费
*/
private BigDecimal paidAmount;
/**
*
*/
private BigDecimal payAmount;
/**
* 付款时间
*/
private String payTime;
/**
* 订单创建时间
*/
private String receiptsDate;
/**
* 渠道
*/
private String channelCode;
/**
* 导购id
*/
private String clerkId;
/**
* 导购名称
*/
private String clerkName;
/**
* 导购名称
*/
private String clerkCode;
private String storeCode;
private String storeId;
private String storeName;
/**
* 商品数量
*/
private Integer productCount;
private Integer contentMaterialId;
/**
* 分享导购id
*/
private String shareClerkId;
/**
* 分享门店id
*/
private String shareStoreId;
private String createTime;
private String updateTime;
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public String getOorderNumber() {
return oorderNumber;
}
public void setOorderNumber(String oorderNumber) {
this.oorderNumber = oorderNumber;
}
public BigDecimal getPaidAmount() {
return paidAmount;
}
public void setPaidAmount(BigDecimal paidAmount) {
this.paidAmount = paidAmount;
}
public BigDecimal getPayAmount() {
return payAmount;
}
public void setPayAmount(BigDecimal payAmount) {
this.payAmount = payAmount;
}
public String getPayTime() {
return payTime;
}
public void setPayTime(String payTime) {
this.payTime = payTime;
}
public String getReceiptsDate() {
return receiptsDate;
}
public void setReceiptsDate(String receiptsDate) {
this.receiptsDate = receiptsDate;
}
public String getChannelCode() {
return channelCode;
}
public void setChannelCode(String channelCode) {
this.channelCode = channelCode;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public Integer getProductCount() {
return productCount;
}
public void setProductCount(Integer productCount) {
this.productCount = productCount;
}
public Integer getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(Integer contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
public String getShareClerkId() {
return shareClerkId;
}
public void setShareClerkId(String shareClerkId) {
this.shareClerkId = shareClerkId;
}
public String getShareStoreId() {
return shareStoreId;
}
public void setShareStoreId(String shareStoreId) {
this.shareStoreId = shareStoreId;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.service.service.content.adaptor; package com.gic.haoban.manage.service.service.content.adaptor;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.DataApiUtils; import com.gic.commons.util.DataApiUtils;
import com.gic.commons.util.DateUtil;
import com.gic.haoban.manage.api.enums.content.MaterialReportType; import com.gic.haoban.manage.api.enums.content.MaterialReportType;
import com.gic.haoban.manage.service.util.DataTargetHttpUtils; import com.gic.haoban.manage.service.util.DataTargetHttpUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -12,12 +12,14 @@ import lombok.Data; ...@@ -12,12 +12,14 @@ import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
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.commons.lang3.time.DateUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -64,6 +66,13 @@ public class MaterialDataAdaptor { ...@@ -64,6 +66,13 @@ public class MaterialDataAdaptor {
} }
@Data
@AllArgsConstructor
public static class MaterialBizInfo {
private String clerkId;
private String bizId;
}
/** /**
* 查询导购/店长的数据 * 查询导购/店长的数据
* @param enterpriseId * @param enterpriseId
...@@ -170,4 +179,38 @@ public class MaterialDataAdaptor { ...@@ -170,4 +179,38 @@ public class MaterialDataAdaptor {
} }
return Collections.emptyMap(); return Collections.emptyMap();
} }
/**
* 查询素材信息
* @param enterpriseId
* @param memberId
* @param orderTime
* @param goodsCode
* @return
*/
public MaterialBizInfo queryMaterialBizInfo(String enterpriseId, String memberId, Date orderTime, String goodsCode) {
JSONObject params = new JSONObject();
params.put("enterpriseId", enterpriseId);
params.put("memberId", memberId);
params.put("conv_flag", 1);
try {
params.put("orderCreateTime", DateUtil.formatString(orderTime, DateUtil.FORMAT_DATETIME_19));
if (StringUtils.isNotBlank(goodsCode)) {
params.put("conv_flag", 2);
params.put("goodsCode", goodsCode);
}
Map<String, Object> res = DataApiUtils.http(params.toJSONString(), "data_cms_matl_conv_rel");
List<JSONObject> dataList = DataApiUtils.getDataList(res);
if (CollectionUtils.isEmpty(dataList)) {
return null;
}
JSONObject jsonObject = dataList.get(0);
return new MaterialBizInfo(jsonObject.getString("clerkId"), jsonObject.getString("contentMaterialId"));
}catch (Exception ex) {
log.info("查询会员素材信息异常 {}", params.toJSONString(), ex);
}
return null;
}
} }
...@@ -10,11 +10,13 @@ import com.gic.business.order.qdto.ordermanage.OrderInfoQDTO; ...@@ -10,11 +10,13 @@ import com.gic.business.order.qdto.ordermanage.OrderInfoQDTO;
import com.gic.business.order.service.ordermanage.OrderInfoOutApiService; import com.gic.business.order.service.ordermanage.OrderInfoOutApiService;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType; import com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType;
import com.gic.haoban.manage.api.enums.content.ShareBizType;
import com.gic.haoban.manage.api.service.content.MallOrderStatusChangeApiService; import com.gic.haoban.manage.api.service.content.MallOrderStatusChangeApiService;
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.OrderEventMqBO; import com.gic.haoban.manage.service.pojo.bo.content.OrderEventMqBO;
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.content.message.InteractRecordMessageBO; import com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO;
import com.gic.haoban.manage.service.service.content.adaptor.MaterialDataAdaptor;
import com.gic.haoban.manage.service.service.content.message.InteractRecordMessageService; import com.gic.haoban.manage.service.service.content.message.InteractRecordMessageService;
import com.gic.haoban.manage.service.task.KafkaMessageServiceImpl; import com.gic.haoban.manage.service.task.KafkaMessageServiceImpl;
import com.gic.order.api.dto.OrderDTO; import com.gic.order.api.dto.OrderDTO;
...@@ -26,6 +28,8 @@ import org.apache.commons.lang3.StringUtils; ...@@ -26,6 +28,8 @@ import org.apache.commons.lang3.StringUtils;
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.Date;
/** /**
* @Author MUSI * @Author MUSI
* @Date 2023/4/6 5:28 PM * @Date 2023/4/6 5:28 PM
...@@ -41,6 +45,8 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang ...@@ -41,6 +45,8 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang
OrderInfoOutApiService orderInfoOutApiService; OrderInfoOutApiService orderInfoOutApiService;
@Autowired @Autowired
InteractRecordMessageService interactRecordMessageService; InteractRecordMessageService interactRecordMessageService;
@Autowired
private MaterialDataAdaptor materialDataAdaptor;
...@@ -168,10 +174,35 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang ...@@ -168,10 +174,35 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang
String memberId = memberOrderBo.getMemberId(); String memberId = memberOrderBo.getMemberId();
String orderId = memberOrderBo.getOrderId(); String orderId = memberOrderBo.getOrderId();
String orderNumber = memberOrderBo.getOrderNumber(); String orderNumber = memberOrderBo.getOrderNumber();
Date orderTime = memberOrderBo.getOrderTime();
InteractRecordMessageBO interactRecordMessageBO = new InteractRecordMessageBO(); InteractRecordMessageBO interactRecordMessageBO = new InteractRecordMessageBO();
interactRecordMessageBO.setEnterpriseId(enterpriseId); interactRecordMessageBO.setEnterpriseId(enterpriseId);
interactRecordMessageBO.setMemberId(memberId); interactRecordMessageBO.setMemberId(memberId);
// todo 根据会员商品信息查询数据组 获取导购id、素材id MaterialDataAdaptor.MaterialBizInfo materialBizInfo = materialDataAdaptor.queryMaterialBizInfo(enterpriseId, memberId, orderTime, null);
if (materialBizInfo == null) {
if (memberOrderBo.getTimes() == null) {
memberOrderBo.setTimes(1);
}
if (memberOrderBo.getTimes() > 60) {
log.info("订单消费次数已经超出60次, 不再处理 {}", params);
return ServiceResponse.success();
}
memberOrderBo.setTimes(memberOrderBo.getTimes() + 1);
try {
log.info("发送微盟订单处理消息 {}", "dealweimoOrder");
/**
* @see com.gic.haoban.manage.api.service.content.MallOrderStatusChangeApiService#dealWeimoOrder(String)
*/
GICMQClientUtil.getClientInstance().sendMessage("dealWeimoOrder", JSON.toJSONString(memberOrderBo), 60);
}catch (Exception ex) {
log.info("处理会员订单异常 ", ex);
}
return ServiceResponse.success();
}
interactRecordMessageBO.setClerkId(materialBizInfo.getClerkId());
interactRecordMessageBO.setMaterialId(materialBizInfo.getBizId());
interactRecordMessageBO.setBizType(ShareBizType.MATERIAL.getCode());
interactRecordMessageBO.setEventType(MaterialInteractRecordEventType.ORDER.getCode()); interactRecordMessageBO.setEventType(MaterialInteractRecordEventType.ORDER.getCode());
interactRecordMessageBO.setDurationTime(0); interactRecordMessageBO.setDurationTime(0);
interactRecordMessageBO.setLastAccessTime(System.currentTimeMillis()); interactRecordMessageBO.setLastAccessTime(System.currentTimeMillis());
......
...@@ -307,16 +307,20 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor ...@@ -307,16 +307,20 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
private void dealMemberOrder(MemberOrderBo memberOrderBo) { private void dealMemberOrder(MemberOrderBo memberOrderBo) {
logger.info("会员订单数据 {}", JSON.toJSONString(memberOrderBo)); logger.info("销售线索处理会员订单数据 {}", JSON.toJSONString(memberOrderBo));
if (!StringUtils.equalsIgnoreCase(memberOrderBo.getChannelCode(), MemberOrderBo.weimo)) { if (!StringUtils.equalsIgnoreCase(memberOrderBo.getChannelCode(), MemberOrderBo.weimo)) {
return; return;
} }
if (memberOrderBo.getOrderStatus() == null || memberOrderBo.getOrderStatus() != 1) {
logger.info("会员订单 非购买事件 {}", JSON.toJSONString(memberOrderBo));
return;
}
try { try {
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)
*/ */
GICMQClientUtil.getClientInstance().sendMessage("dealweimoOrder", JSON.toJSONString(memberOrderBo)); GICMQClientUtil.getClientInstance().sendMessage("dealWeimoOrder", JSON.toJSONString(memberOrderBo));
}catch (Exception ex) { }catch (Exception ex) {
logger.info("处理会员订单异常 ", 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