Commit 0872f0ff by songyinghui

feat:客户触达明细增加门店id

parent c56a7264
......@@ -50,6 +50,11 @@ public class ClerkShareMaterialLogDTO implements Serializable {
*/
private Integer bizType;
/**
* 门店id
*/
private String storeId;
public String getEnterpriseId() {
return enterpriseId;
}
......@@ -105,4 +110,12 @@ public class ClerkShareMaterialLogDTO implements Serializable {
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
package com.gic.haoban.manage.service.entity.content;
import java.util.Date;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 导购分享记录(TabHaobanClerkShareLog)实体类
......@@ -9,6 +11,7 @@ import java.io.Serializable;
* @author makejava
* @since 2023-03-18 20:54:23
*/
@Data
public class TabHaobanClerkShareLog implements Serializable {
private static final long serialVersionUID = -18857713225396709L;
......@@ -31,6 +34,11 @@ public class TabHaobanClerkShareLog implements Serializable {
* 成员id
*/
private String staffId;
/**
* 门店id
*/
private String storeId;
/**
* 分享类型 1分享朋友圈; 2 群发给客户; 3 群发到群
*/
......@@ -55,94 +63,5 @@ public class TabHaobanClerkShareLog implements Serializable {
* 更新时间
*/
private Date updateTime;
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 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 Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
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 String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
}
......@@ -39,6 +39,12 @@ public class TabHaobanTriggerCustomerDetail implements Serializable {
* 成员id
*/
private String staffId;
/**
* 门店id
*/
private String storeId;
/**
* 渠道类型 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
*/
......@@ -156,5 +162,13 @@ public class TabHaobanTriggerCustomerDetail implements Serializable {
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
......@@ -54,6 +54,8 @@ public class ClerkShareLogBO {
*/
private Date createTime;
private String storeId;
public String getEnterpriseId() {
return enterpriseId;
}
......@@ -125,4 +127,12 @@ public class ClerkShareLogBO {
public void setId(Long id) {
this.id = id;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
......@@ -38,6 +38,11 @@ public class TriggerCustomerDetailBO implements Serializable {
* 成员id
*/
private String staffId;
/**
* 门店id
*/
private String storeId;
/**
* 渠道类型 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
*/
......@@ -155,5 +160,13 @@ public class TriggerCustomerDetailBO implements Serializable {
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
......@@ -87,15 +87,19 @@ public class MaterialDataAdaptor {
if (org.apache.commons.lang3.StringUtils.isNotBlank(clerkId)) {
inlineParams.put("clerkId", clerkId);
}
inlineParams.put("enterprsieId", enterpriseId);
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("bizDate", bizDate);
inlineParams.put("storeId", storeId);
inlineParams.put("orderByField", "storeId asc");
Map<String, Object> result = this.doHttp(JSON.toJSONString(params), apolloKey);
if (result.get("data") == null) {
return null;
}
List<JSONObject> jsonObjects = JSON.parseArray(JSON.toJSONString(result.get("data")), JSONObject.class);
if (CollectionUtils.isEmpty(jsonObjects)) {
return null;
}
JSONObject jsonObject = jsonObjects.get(0);
int useMatlNum = jsonObject.getIntValue("useMatlNum");
BigDecimal convSalesAmt = Optional.ofNullable(jsonObject.getBigDecimal("convSalesAmt")).orElse(BigDecimal.ZERO);
......@@ -138,15 +142,14 @@ public class MaterialDataAdaptor {
}
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("bizDate", bizDate);
inlineParams.put("orderByField", "clerkId asc");
if (CollectionUtils.isNotEmpty(storeIds)) {
inlineParams.put("storeId", StringUtils.join(storeIds, ","));
}
Map<String, Object> result = this.doHttp(JSON.toJSONString(params), apolloKey);
if (result.get("data") == null) {
return null;
}
List<JSONObject> jsonObjects = JSON.parseArray(JSON.toJSONString(result.get("data")), JSONObject.class);
if (CollectionUtils.isEmpty(jsonObjects)) {
return null;
......
......@@ -489,6 +489,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
temp.setBizType(clerkShareLogBO.getBizType());
temp.setClerkId(clerkShareLogBO.getClerkId());
temp.setStaffId(clerkShareLogBO.getStaffId());
temp.setStoreId(clerkShareLogBO.getStoreId());
temp.setChannelType(clerkShareLogBO.getShareType());
temp.setCustomerId(externalUserId);
temp.setCreateTime(new Date());
......
package com.gic.haoban.manage.service.service.content.message;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.listener.MessageListener;
import org.springframework.stereotype.Component;
/**
* @Author MUSI
* @Date 2023/4/5 9:49 PM
* @Description
* @Version
**/
@Slf4j
public class InteractRecordMessageListener implements MessageListener<String, String> {
/**
* Invoked with data from kafka.
*
* @param data the data to be processed.
*/
@Override
public void onMessage(ConsumerRecord<String, String> data) {
}
}
......@@ -11,4 +11,5 @@
<import resource="classpath:jdbc-haoban-manage-service.xml" />
<!-- <import resource="classpath*:jdbc-haoban-manage-service-sharding.xml" />-->
<import resource="classpath*:log-record-init.xml" />
<import resource="classpath*:kafka-setting-data.xml" />
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:apollo="http://www.ctrip.com/schema/apollo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.ctrip.com/schema/apollo
http://www.ctrip.com/schema/apollo.xsd">
<apollo:config/>
<bean id="consumerProperties-data" class="java.util.HashMap">
<constructor-arg>
<map>
<entry key="bootstrap.servers" value="${kafka.service}"/>
<entry key="group.id" value="haoban-3-sync"/>
<entry key="key.deserializer"
value="org.apache.kafka.common.serialization.StringDeserializer"/>
<entry key="value.deserializer"
value="org.apache.kafka.common.serialization.StringDeserializer"/>
</map>
</constructor-arg>
</bean>
<!-- 2.创建consumerFactory bean -->
<bean id="consumerFactoryData"
class="org.springframework.kafka.core.DefaultKafkaConsumerFactory">
<constructor-arg>
<ref bean="consumerProperties-data"/>
</constructor-arg>
</bean>
<!-- 3.定义消费实现类 -->
<bean id="interactRecordMessageListener" class="com.gic.haoban.manage.service.service.content.message.InteractRecordMessageListener"/>
<!-- 4.消费者容器配置信息 -->
<bean id="containerPropertiesData" class="org.springframework.kafka.listener.config.ContainerProperties">
<!-- topic -->
<constructor-arg name="topics">
<list>
<!-- <value>${interact_record_topic}</value>-->
<value>cms_mbr_bury_point</value>
</list>
</constructor-arg>
<property name="messageListener" ref="interactRecordMessageListener"/>
</bean>
<!-- 5.消费者并发消息监听容器,执行doStart()方法 -->
<bean id="messageListenerContainerData" class="org.springframework.kafka.listener.ConcurrentMessageListenerContainer"
init-method="doStart">
<constructor-arg ref="consumerFactoryData"/>
<constructor-arg ref="containerPropertiesData"/>
<property name="concurrency" value="3"/>
</bean>
</beans>
\ No newline at end of file
......@@ -9,6 +9,7 @@
<result property="wxEnterpriseId" column="wx_enterprise_id" jdbcType="VARCHAR"/>
<result property="clerkId" column="clerk_id" jdbcType="VARCHAR"/>
<result property="staffId" column="staff_id" jdbcType="VARCHAR"/>
<result property="storeId" column="store_id" jdbcType="VARCHAR" />
<result property="shareType" column="share_type" jdbcType="INTEGER"/>
<result property="bizId" column="biz_id" jdbcType="VARCHAR"/>
<result property="bizType" column="biz_type" jdbcType="INTEGER"/>
......@@ -19,7 +20,7 @@
<sql id="baseSql">
id
, enterprise_id, wx_enterprise_id, clerk_id, staff_id, share_type, biz_id, biz_type, delete_flag, create_time, update_time
, enterprise_id, wx_enterprise_id, clerk_id, staff_id, store_id, share_type, biz_id, biz_type, delete_flag, create_time, update_time
</sql>
<!--查询单个-->
<select id="queryById" resultMap="TabHaobanClerkShareLogMap">
......@@ -28,6 +29,7 @@
wx_enterprise_id,
clerk_id,
staff_id,
store_id,
share_type,
biz_id,
biz_type,
......@@ -41,7 +43,7 @@
<!--查询指定行数据-->
<select id="queryWithCondition" resultMap="TabHaobanClerkShareLogMap">
select
id, enterprise_id, wx_enterprise_id, clerk_id, staff_id, share_type, biz_id, biz_type, delete_flag, create_time,
id, enterprise_id, wx_enterprise_id, clerk_id, staff_id, store_id, share_type, biz_id, biz_type, delete_flag, create_time,
update_time
from tab_haoban_clerk_share_log
<where>
......@@ -107,10 +109,10 @@
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into tab_haoban_clerk_share_log(id, enterprise_id, wx_enterprise_id, clerk_id, staff_id, share_type,
insert into tab_haoban_clerk_share_log(id, enterprise_id, wx_enterprise_id, clerk_id, staff_id, store_id, share_type,
biz_id, biz_type,
delete_flag, create_time, update_time)
values (#{id}, #{enterpriseId}, #{wxEnterpriseId}, #{clerkId}, #{staffId}, #{shareType}, #{bizId}, #{bizType},
values (#{id}, #{enterpriseId}, #{wxEnterpriseId}, #{clerkId}, #{staffId}, #{storeId}, #{shareType}, #{bizId}, #{bizType},
#{deleteFlag},
#{createTime}, #{updateTime})
</insert>
......
......@@ -11,6 +11,7 @@
<result property="bizType" column="biz_type" jdbcType="INTEGER"/>
<result property="clerkId" column="clerk_id" jdbcType="VARCHAR"/>
<result property="staffId" column="staff_id" jdbcType="VARCHAR"/>
<result property="storeId" column="store_id" jdbcType="VARCHAR"/>
<result property="channelType" column="channel_type" jdbcType="INTEGER"/>
<result property="customerId" column="customer_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
......@@ -25,6 +26,7 @@
biz_type,
clerk_id,
staff_id,
store_id,
channel_type,
customer_id,
create_time,
......@@ -34,18 +36,7 @@
<!--查询单个-->
<select id="queryById" resultMap="TabHaobanTriggerCustomerDetailMap">
select id,
enterprise_id,
wx_enterprise_id,
biz_id,
biz_type,
clerk_id,
staff_id,
channel_type,
customer_id,
create_time,
update_time,
delete_flag
select <include refid="baseSql"/>
from tab_haoban_trigger_customer_detail
where id = #{id}
</select>
......@@ -125,29 +116,35 @@
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into tab_haoban_trigger_customer_detail(enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id, staff_id,
insert into tab_haoban_trigger_customer_detail(enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id,
staff_id,
channel_type, customer_id, create_time, update_time, delete_flag)
values (#{enterpriseId}, #{wxEnterpriseId}, #{bizId}, #{bizType}, #{clerkId}, #{staffId}, #{channelType}, #{customerId},
values (#{enterpriseId}, #{wxEnterpriseId}, #{bizId}, #{bizType}, #{clerkId}, #{staffId}, #{channelType},
#{customerId},
#{createTime}, #{updateTime}, #{deleteFlag})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into tab_haoban_trigger_customer_detail(id, enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id, staff_id,
insert into tab_haoban_trigger_customer_detail(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)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.id}, #{entity.enterpriseId}, #{entity.wxEnterpriseId}, #{entity.bizId}, #{entity.bizType}, #{entity.clerkId}, #{entity.staffId},
(#{entity.id}, #{entity.enterpriseId}, #{entity.wxEnterpriseId}, #{entity.bizId}, #{entity.bizType},
#{entity.clerkId}, #{entity.staffId}, #{entity.storeId},
#{entity.channelType}, #{entity.customerId}, #{entity.createTime}, #{entity.updateTime},
#{entity.deleteFlag})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into tab_haoban_trigger_customer_detail(enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id, staff_id,
insert into tab_haoban_trigger_customer_detail(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)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.enterpriseId}, #{entity.wxEnterpriseId}, #{entity.bizId}, #{entity.bizType}, #{entity.clerkId}, #{entity.staffId},
(#{entity.enterpriseId}, #{entity.wxEnterpriseId}, #{entity.bizId}, #{entity.bizType}, #{entity.clerkId},
#{entity.staffId}, #{entity.storeId},
#{entity.channelType}, #{entity.customerId}, #{entity.createTime}, #{entity.updateTime},
#{entity.deleteFlag})
</foreach>
......@@ -157,6 +154,7 @@
biz_type = values(biz_type),
clerk_id = values(clerk_id),
staff_id = values(staff_id),
store_id = values(store_id),
channel_type = values(channel_type),
customer_id = values(customer_id),
create_time = values(create_time),
......
......@@ -101,7 +101,7 @@ public class MaterialReportServiceTest {
@Test
public void queryData(){
MaterialDataAdaptor.MaterialDataResult materialDataResult = materialDataAdaptor.queryAreaReportData(eid, clerkId, Collections.singletonList(storeId), MaterialReportType.MONTH.getCode());
MaterialDataAdaptor.MaterialDataResult materialDataResult = materialDataAdaptor.queryClerkReportData(eid, clerkId, storeId, MaterialReportType.MONTH.getCode());
System.out.println(JSON.toJSONString(materialDataResult));
}
}
......@@ -64,6 +64,7 @@ public class ClerkMaterialShareController {
temp.setShareType(materialShareLogQo.getShareType());
temp.setBizId(materialShareLogQo.getContentMaterialId() + "");
temp.setBizType(ShareBizType.MATERIAL.getCode());
temp.setStoreId(materialShareLogQo.getStoreId());
ServiceResponse<Long> serviceResponse = materialShareLogApiService.saveClerkShareMaterialLog(temp);
if (serviceResponse.isSuccess()) {
......
......@@ -16,7 +16,6 @@ import com.gic.haoban.manage.web.vo.content.statistics.report.MaterialPersonalUs
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Collections;
......@@ -36,8 +35,6 @@ import java.util.stream.Collectors;
@Component
public class MaterialDataAdaptor {
@Autowired
private ClerkStoreAdaptor clerkStoreAdaptor;
/**
* 素材首页数据统计
......@@ -99,7 +96,7 @@ public class MaterialDataAdaptor {
Map<String, Object> inlineParams = new HashMap<>();
params.put("inFields", inlineParams);
inlineParams.put("enterprsieId", enterpriseId);
inlineParams.put("enterpriseId", enterpriseId);
if (CollectionUtil.isNotEmpty(storeIds)) {
inlineParams.put("storeId", StringUtils.join(storeIds, ","));
}
......@@ -125,7 +122,7 @@ public class MaterialDataAdaptor {
Map<String, Object> inlineParams = new HashMap<>();
params.put("inFields", inlineParams);
inlineParams.put("enterprsieId", enterpriseId);
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("fixedDateDiff", fixedDateDiff);
if (CollectionUtil.isNotEmpty(storeIds)) {
inlineParams.put("storeId", StringUtils.join(storeIds, ","));
......@@ -154,7 +151,7 @@ public class MaterialDataAdaptor {
params.put("pageNo", pageNo);
params.put("pageSize", pageSize);
params.put("inFields", inlineParams);
inlineParams.put("enterprsieId", enterpriseId);
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("fixedDateDiff", fixedDateDiff);
if (StringUtils.isNotBlank(orderField)) {
String orderStr = new Integer(1).equals(order) ? " asc " : " desc ";
......@@ -192,7 +189,7 @@ public class MaterialDataAdaptor {
params.put("pageSize", pageSize);
params.put("inFields", inlineParams);
inlineParams.put("enterprsieId", enterpriseId);
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("fixedDateDiff", fixedDateDiff);
if (StringUtils.isNotBlank(orderField)) {
String orderStr = new Integer(1).equals(order) ? " asc " : " desc ";
......@@ -358,7 +355,7 @@ public class MaterialDataAdaptor {
DateTime startTime = null;
DateTime endTime = null;
int bizDate = 0;
String apolloKey = MATERIAL_STORE_WEEK_DATA;
String apolloKey = MATERIAL_AREA_WEEK_DATA;
if (MaterialReportType.WEEK.getCode().equals(reportType)) {
// 周报
startTime = DateUtil.beginOfWeek(DateUtil.lastWeek());
......@@ -368,7 +365,7 @@ public class MaterialDataAdaptor {
startTime = DateUtil.beginOfMonth(DateUtil.lastWeek());
endTime = DateUtil.endOfMonth(DateUtil.lastWeek());
bizDate = DateUtil.month(DateUtil.lastMonth());
apolloKey = MATERIAL_STORE_MONTH_DATA;
apolloKey = MATERIAL_AREA_MONTH_DATA;
}
Map<String, Object> params = new HashMap<>();
Map<String, Object> inlineParams = new HashMap<>();
......
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