Commit 9dab2b03 by songyinghui

feature: 内容数据部分

parent 1b810b1a
......@@ -28,4 +28,25 @@ public interface InteractRecordApiService {
* @return
*/
ServiceResponse<Void> memberChangeMQ(String params);
/**
* 处理会员线上订单
* @param params
* @return
*/
ServiceResponse<Void> dealMemberOnlineOrder(String params);
/**
* 处理会员线下订单数据
* @param params
* @return
*/
ServiceResponse<Void> dealMemberOffLineOrder(String params);
/**
* 处理会员新增事件
* @param params
* @return
*/
ServiceResponse<Void> dealMemberEvent(String params);
}
......@@ -5,15 +5,19 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.api.constant.EnterpriseServiceEnum;
import com.gic.enterprise.api.dto.enterprise.EnterpriseUsingStatusDTO;
import com.gic.enterprise.api.service.EnterpriseUseForbidService;
import com.gic.redis.data.util.RedisUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
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;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
......@@ -35,6 +39,8 @@ public class MaterialEnterpriseAdaptor {
private String desc;
}
private static final Long cache_hour_sec = 5 * 60L;
@Autowired
EnterpriseUseForbidService enterpriseUseForbidService;
......@@ -58,4 +64,32 @@ public class MaterialEnterpriseAdaptor {
.map(EnterpriseUsingStatusDTO::getEnterpriseId)
.collect(Collectors.toList());
}
/**
* 校验企业是否有内容权限
* @param enterpriseId
* @return
*/
public boolean checkEnterpriseHasContentRight(String enterpriseId) {
String key = "haoban_enterprise_content:" + enterpriseId;
String cache = RedisUtil.getCache(key, String.class);
if (StringUtils.isBlank(cache)) {
cache = "0";
ServiceResponse<List<EnterpriseUsingStatusDTO>> tempServiceResponse = enterpriseUseForbidService.getUseEnterpriseByCode(EnterpriseServiceEnum.CONTENT.getRightMenuCode(), enterpriseId);
if (!tempServiceResponse.isSuccess() || CollectionUtils.isEmpty(tempServiceResponse.getResult())) {
log.info("企业 {} 没有内容权限 {}", enterpriseId, JSON.toJSONString(tempServiceResponse));
RedisUtil.setCache(key, cache, cache_hour_sec, TimeUnit.SECONDS);
return false;
}
EnterpriseUsingStatusDTO enterpriseUsingStatusDTO = tempServiceResponse.getResult().get(0);
if (!Boolean.TRUE.equals(enterpriseUsingStatusDTO.getVaild())) {
log.info("企业 {} 内容权限已失效 {}", enterpriseId, JSON.toJSONString(tempServiceResponse));
RedisUtil.setCache(key, cache, cache_hour_sec, TimeUnit.SECONDS);
return false;
}
cache = "1";
RedisUtil.setCache(key, cache, cache_hour_sec, TimeUnit.SECONDS);
}
return StringUtils.equals(cache, "1");
}
}
......@@ -192,6 +192,9 @@ public class InteractRecordServiceImpl implements InteractRecordService {
@Override
public void memberAuthorized(String memberId, String unionId) {
if (StringUtils.isAnyBlank(memberId, unionId)) {
return;
}
InteractRecordQO interactRecordQO = new InteractRecordQO();
interactRecordQO.setUnionId(unionId);
List<TabHaobanInteractRecord> interactRecords = this.tabHaobanInteractRecordMapper.queryInteractRecordList(interactRecordQO);
......
......@@ -12,6 +12,12 @@ import com.gic.haoban.manage.service.pojo.bo.content.MemberAttrChangeBO;
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.PotentialCustomerService;
import com.gic.haoban.manage.service.service.content.adaptor.MaterialEnterpriseAdaptor;
import com.gic.member.api.dto.event.lifecycle.CreateMemberEventParam;
import com.gic.member.api.dto.info.MemberSummaryInfoDTO;
import com.gic.member.api.dto.info.qo.QueryMemberInfoDTO;
import com.gic.member.api.service.MemberOutApiService;
import com.gic.order.api.dto.OrderSaveNotifyDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -37,6 +43,10 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
private InteractRecordService interactRecordService;
@Autowired
PotentialCustomerService potentialCustomerService;
@Autowired
private MaterialEnterpriseAdaptor materialEnterpriseAdaptor;
@Autowired
MemberOutApiService memberOutApiService;
/**
* 查询互动记录
......@@ -116,4 +126,74 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
}
return ServiceResponse.success();
}
/**
* 处理会员线上订单
*
* @param params
* @return
*/
@Override
public ServiceResponse<Void> dealMemberOnlineOrder(String params) {
return dealMemberOrder(params);
}
private ServiceResponse<Void> dealMemberOrder(String params) {
if (StringUtils.isBlank(params)) {
return ServiceResponse.success();
}
OrderSaveNotifyDTO orderSaveNotifyDTO = JSON.parseObject(params, OrderSaveNotifyDTO.class);
if (orderSaveNotifyDTO.getFirstCreate() == null || orderSaveNotifyDTO.getFirstCreate() != 1) {
log.info("会员订单 非购买事件 {}", params);
return ServiceResponse.success();
}
potentialCustomerService.updateMemberDealFlag(orderSaveNotifyDTO.getEnterpriseId(), orderSaveNotifyDTO.getMemberId());
return ServiceResponse.success();
}
/**
* 处理会员线下订单数据
*
* @param params
* @return
*/
@Override
public ServiceResponse<Void> dealMemberOffLineOrder(String params) {
return dealMemberOrder(params);
}
/**
* 处理会员新增事件
*
* @param params
* @return
*/
@Override
public ServiceResponse<Void> dealMemberEvent(String params) {
if (StringUtils.isBlank(params)) {
return ServiceResponse.success();
}
CreateMemberEventParam createMemberEventParam = JSON.parseObject(params, CreateMemberEventParam.class);
String enterpriseId = createMemberEventParam.getEnterpriseId();
String memberId = createMemberEventParam.getMemberId();
if (!materialEnterpriseAdaptor.checkEnterpriseHasContentRight(enterpriseId)) {
log.info("企业 {} 没有内容权限", enterpriseId);
return ServiceResponse.success();
}
QueryMemberInfoDTO queryMemberInfoDTO = QueryMemberInfoDTO
.queryByMemberId(memberId)
.setMemberBaseInfoDTO(true)
.setMemberPersonalInfoDTO(false);
ServiceResponse<MemberSummaryInfoDTO> serviceResponse = memberOutApiService.queryMemberInfo(queryMemberInfoDTO);
if (!serviceResponse.isSuccess() || serviceResponse.getResult() == null) {
log.info("查询会员信息为空 {}", memberId);
return null;
}
String unionId = serviceResponse.getResult().getMemberBaseInfoDTO().getUnionid();
interactRecordService.memberAuthorized(memberId, unionId);
return ServiceResponse.success();
}
}
......@@ -98,26 +98,26 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
else if (record.value().getTableName().equals(CLERK)) {
logger.info("导购binlog无需监听");
}
else if (StringUtils.startsWith(record.value().getTableName(), tab_gic_eorder)) {
// 处理线上单微盟订单
MemberOrderBo memberOrderBo = new MemberOrderBo();
BeanUtils.copyProperties((MaterialMemberEOrderPojo)pojo, memberOrderBo);
this.dealMemberOrder(memberOrderBo);
// 处理会员订单新增事件
dealMemberEOrder((MaterialMemberEOrderPojo) pojo);
}
else if (StringUtils.startsWith(record.value().getTableName(), tab_gic_order)) {
MemberOrderBo memberOrderBo = new MemberOrderBo();
BeanUtils.copyProperties((MaterialMemberGicOrderPojo)pojo, memberOrderBo);
this.dealMemberOrder(memberOrderBo);
// 处理会员订单新增事件
dealMemberGicOrder((MaterialMemberGicOrderPojo) pojo);
}else if (StringUtils.startsWith(record.value().getTableName(), tab_gic_member)) {
// 会员unionId新增事件
dealMemberUnionIdChange((MaterialMemberUnionIdPoJo) pojo);
}
// else if (StringUtils.startsWith(record.value().getTableName(), tab_gic_eorder)) {
// // 处理线上单微盟订单
// MemberOrderBo memberOrderBo = new MemberOrderBo();
// BeanUtils.copyProperties((MaterialMemberEOrderPojo)pojo, memberOrderBo);
// //this.dealMemberOrder(memberOrderBo);
// // 处理会员订单新增事件
// // dealMemberEOrder((MaterialMemberEOrderPojo) pojo);
// }
// else if (StringUtils.startsWith(record.value().getTableName(), tab_gic_order)) {
//
//// MemberOrderBo memberOrderBo = new MemberOrderBo();
//// BeanUtils.copyProperties((MaterialMemberGicOrderPojo)pojo, memberOrderBo);
// //this.dealMemberOrder(memberOrderBo);
// // 处理会员订单新增事件
// // dealMemberGicOrder((MaterialMemberGicOrderPojo) pojo);
//
// }else if (StringUtils.startsWith(record.value().getTableName(), tab_gic_member)) {
// // 会员unionId新增事件
// //dealMemberUnionIdChange((MaterialMemberUnionIdPoJo) pojo);
// }
}
private BinlogBasePojo binlogChange(GicRecord record) {
......
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