From fff652414d7dbbb9b0d196e7bcd9173f65151428 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 27 Apr 2022 14:14:02 +0800 Subject: [PATCH] //update --- .../controller/WxUserGrantController.java | 9 ++++-- .../java/com/iformall/mq/MqBaseConsumer.java | 9 ++++++ .../po/msg/FmInsideBasicUserPushMsg.java | 15 +++++++++ .../com/iformall/enums/EnumMsgRecordType.java | 1 - .../service/MallCooUserInfoService.java | 3 +- .../service/cuser/BasicCUserService.java | 8 +++-- .../impl/MallCooUserInfoServiceImpl.java | 29 ++++++++++++----- .../impl/OrderSnapshotServiceImpl.java | 1 - .../service/impl/WxOrderServiceImpl.java | 11 +++++++ .../service/impl/WxPayOrderServiceImpl.java | 5 --- .../FmInsideBasicUserPushMsgServiceImpl.java | 32 +++++++++++++++++++ 11 files changed, 103 insertions(+), 20 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideBasicUserPushMsg.java create mode 100644 mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideBasicUserPushMsgServiceImpl.java diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index d30a016f6..7474ec3c9 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -696,8 +696,13 @@ public class WxUserGrantController extends BaseController { record.setUpdChild(true); wxCUserBasicInfoService.update(record); - //推送猫酷 - mallCooUserInfoService.pullByMobile(tenantEntity, record); + try{ + //推送猫酷 + mallCooUserInfoService.pullByMobileMsg(tenantEntity, record.getId()); + }catch(Exception e){ + logger.error("发送同步会员消息异常"); + } + wxScoreRulesService.addScore(tenantEntity,EnumScoreType.COMPLETE_INFO, record); //增加积分 diff --git a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java index d89f7a805..28fb57791 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java @@ -55,6 +55,9 @@ public class MqBaseConsumer { @Autowired private FmInsideProductPushMsgServiceImpl fmInsideProductPushMsgServiceImpl; + + @Autowired + private FmInsideBasicUserPushMsgServiceImpl fmInsideBasicUserPushMsgServiceImpl; @@ -140,6 +143,12 @@ public class MqBaseConsumer { fmInsideProductPushMsgServiceImpl.send(msg); } + else if(EnumMsgRecordType.MALL_COO_USER_PUSH.getCode().equals(baseMsg.getMsgType())) { + // 内部消息 - 同步会员 + FmInsideBasicUserPushMsg msg = (FmInsideBasicUserPushMsg)JsonUtil.readValue(message,FmInsideBasicUserPushMsg.class); + fmInsideBasicUserPushMsgServiceImpl.send(msg); + } + }catch (Throwable e){ log.error("consum received error: ", e); /** diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideBasicUserPushMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideBasicUserPushMsg.java new file mode 100644 index 000000000..7aeccb6e2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideBasicUserPushMsg.java @@ -0,0 +1,15 @@ +package com.iformall.domain.po.msg; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class FmInsideBasicUserPushMsg extends BaseMsg{ + + @io.swagger.annotations.ApiModelProperty(value = "会员Id", name = "basicUserId") + private Long basicUserId; + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java index 8ac778b73..0188072e3 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java @@ -25,7 +25,6 @@ public enum EnumMsgRecordType { INSIDE_PRODUCT_PUSH(109, "商品状态或库存同步"), MALL_COO_USER_PUSH(110, "猫酷同步会员"), - ORDER_SNAPSHOT_PUSH(111, "订单快照"), ; public static EnumMsgRecordType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/service/MallCooUserInfoService.java b/mallinkService/src/main/java/com/iformall/service/MallCooUserInfoService.java index e018b29d4..a824b45e8 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallCooUserInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/MallCooUserInfoService.java @@ -26,7 +26,8 @@ public interface MallCooUserInfoService { MallCooUserInfo getByPhone(String phone,String finalTenantId); - void pullByMobile(TenantEntity tenantEntity, WxCUserBasicInfo basicInfo); + void pullByMobile(TenantEntity tenantEntity, Long basicUserId); + void pullByMobileMsg(TenantEntity tenantEntity, Long id); } diff --git a/mallinkService/src/main/java/com/iformall/service/cuser/BasicCUserService.java b/mallinkService/src/main/java/com/iformall/service/cuser/BasicCUserService.java index f7b897540..21bd24c27 100644 --- a/mallinkService/src/main/java/com/iformall/service/cuser/BasicCUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/cuser/BasicCUserService.java @@ -159,8 +159,12 @@ public class BasicCUserService { // 外部注券 memCouponFromDspService.couponOrderFromDsp(tenantEntity, userPhone); - //推送猫酷 - mallCooUserInfoService.pullByMobile(tenantEntity, basicInfo); + try{ + //推送猫酷 + mallCooUserInfoService.pullByMobileMsg(tenantEntity, basicInfo.getId()); + }catch(Exception e){ + logger.error("发送同步会员消息异常"); + } return basicInfo.getId(); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallCooUserInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallCooUserInfoServiceImpl.java index 5010edba6..6e9a1859d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallCooUserInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MallCooUserInfoServiceImpl.java @@ -1,21 +1,21 @@ package com.iformall.service.impl; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; -import com.iformall.enums.EnumThirdPartyConfigType; +import com.iformall.domain.po.msg.FmInsideBasicUserPushMsg; +import com.iformall.enums.*; import com.iformall.mallcoo.MallcooHelper; import com.iformall.mallcoo.McUserInfo; import com.iformall.mapper.*; +import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.Date; @@ -34,6 +34,9 @@ public class MallCooUserInfoServiceImpl implements MallCooUserInfoService { @Autowired WxThirdPartyConfigMapper wxThirdPartyConfigMapper; + @Autowired + private MqBaseProducer mqBaseProducer; + @Override public PageInfo listAsPage(MallCooUserInfo record, Integer pageIndex, Integer pageSize) { @@ -54,18 +57,18 @@ public class MallCooUserInfoServiceImpl implements MallCooUserInfoService { return mallCooUserInfoMapper.selectOne(new QueryWrapper<>(userInfo)); } - @Async @Override - public void pullByMobile(TenantEntity tenantEntity, WxCUserBasicInfo basicInfo) { + public void pullByMobile(TenantEntity tenantEntity, Long basicUserId) { try{ WxThirdPartyConfig config = getThirdPartyConfig(tenantEntity); if(config == null){ logger.error("未找到猫酷配置信息"); return; } - if(StringUtils.isBlank(basicInfo.getPhone())){ - basicInfo = wxCUserBasicInfoMapper.selectById(basicInfo.getId(),basicInfo.getFinalTenantId()); - + WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(basicUserId, tenantEntity.getFinalTenantId()); + if(null == basicInfo){ + logger.error("未找到会员信息"+basicUserId); + return; } MallCooUserInfo mallCooUserInfo = this.getByPhone(basicInfo.getPhone(), basicInfo.getFinalTenantId()); if(mallCooUserInfo == null){ @@ -109,6 +112,16 @@ public class MallCooUserInfoServiceImpl implements MallCooUserInfoService { } + @Override + public void pullByMobileMsg(TenantEntity tenantEntity, Long id) { + FmInsideBasicUserPushMsg basicUserPushMsg = new FmInsideBasicUserPushMsg(); + basicUserPushMsg.setMsgType(EnumMsgRecordType.MALL_COO_USER_PUSH.getCode()); + basicUserPushMsg.updateTenantInfo(tenantEntity); + basicUserPushMsg.setBasicUserId(id); + logger.info(">>>>>>>>>>>send pullByMobileMsg :"+basicUserPushMsg); + mqBaseProducer.sendMessage(basicUserPushMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + private WxThirdPartyConfig getThirdPartyConfig(TenantEntity tenantEntity){ WxThirdPartyConfig configQ = new WxThirdPartyConfig(); configQ.updateTenantInfo(tenantEntity); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/OrderSnapshotServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/OrderSnapshotServiceImpl.java index 5a5d3ab5e..0dfb5f48d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/OrderSnapshotServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/OrderSnapshotServiceImpl.java @@ -67,7 +67,6 @@ public class OrderSnapshotServiceImpl implements OrderSnapshotService { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到订单数据"); } - @Async @Override public void saveOrderSnapshot(WxOrder order) { try{ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 627444e5c..5dec4d529 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -213,6 +213,9 @@ public class WxOrderServiceImpl implements WxOrderService { @Lazy @Autowired private WxMsgService wxMsgService; + + @Autowired + private OrderSnapshotService orderSnapshotService; @Override public PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { @@ -2064,6 +2067,8 @@ public class WxOrderServiceImpl implements WxOrderService { * @param user */ public void actionAfterCouponOrderSuccess(WxOrder order, WxCoupon coupon, WxCUserBasicInfo user) { + + if(EnumCouponType.COUPON_GIFT.getCode().equals(coupon.getType())){ WxCouponOrder couponOrderQ = new WxCouponOrder(); couponOrderQ.setOrderId(order.getId()); @@ -2078,7 +2083,13 @@ public class WxOrderServiceImpl implements WxOrderService { logger.error("系统券包核销异常:" + e.getMessage(),e); } } + } + //订单快照 + try { + orderSnapshotService.saveOrderSnapshot(order); + } catch (Exception e) { + logger.error("订单快照error:" + e.getMessage(),e); } /// TODO 晚上会定时打一下tag wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,order,null); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 4e5f2b208..48dcdb4ba 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -935,11 +935,6 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - try{ - orderSnapshotService.saveOrderSnapshot(order); - }catch(Exception e){ - logger.error("订单快照 error"+e.getMessage()); - } } } diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideBasicUserPushMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideBasicUserPushMsgServiceImpl.java new file mode 100644 index 000000000..e063e6dd9 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideBasicUserPushMsgServiceImpl.java @@ -0,0 +1,32 @@ +package com.iformall.service.msg.impl; + +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.FmInsideBasicUserPushMsg; +import com.iformall.service.MallCooUserInfoService; +import com.iformall.service.msg.MsgSendService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * + * @author Stormeye Wu + * @date 2019/5/10 + */ +@Service +public class FmInsideBasicUserPushMsgServiceImpl implements MsgSendService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private MallCooUserInfoService mallCooUserInfoService; + + @Override + public void send(BaseMsg baseMsg) throws Exception{ + FmInsideBasicUserPushMsg msg = (FmInsideBasicUserPushMsg)baseMsg; + + mallCooUserInfoService.pullByMobile(msg.getTenantInfo(),msg.getBasicUserId()); + + } +}