From 5e4cf5c05277e2c3959b52725e6cee6b6937c137 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 22 Apr 2022 15:37:22 +0800 Subject: [PATCH] //update --- .../db/migration/V2022042200001__snapshot.sql | 100 ++++++++++++++++++ .../config/BaseMyBatisConfiguration.java | 7 ++ .../com/iformall/domain/po/OrderSnapshot.java | 48 ++++++++- .../service/OrderSnapshotService.java | 2 +- .../impl/OrderSnapshotServiceImpl.java | 66 +++++++++++- .../service/impl/WxPayOrderServiceImpl.java | 7 +- .../main/resources/mapper/OrderSnapshot.xml | 3 +- 7 files changed, 224 insertions(+), 9 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022042200001__snapshot.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022042200001__snapshot.sql b/mallinkAdmin/src/main/resources/db/migration/V2022042200001__snapshot.sql new file mode 100644 index 000000000..99889c04f --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022042200001__snapshot.sql @@ -0,0 +1,100 @@ +create table order_snapshot_0 like order_snapshot; +create table order_snapshot_1 like order_snapshot; +create table order_snapshot_2 like order_snapshot; +create table order_snapshot_3 like order_snapshot; +create table order_snapshot_4 like order_snapshot; +create table order_snapshot_5 like order_snapshot; +create table order_snapshot_6 like order_snapshot; +create table order_snapshot_7 like order_snapshot; +create table order_snapshot_8 like order_snapshot; +create table order_snapshot_9 like order_snapshot; +create table order_snapshot_10 like order_snapshot; +create table order_snapshot_11 like order_snapshot; +create table order_snapshot_12 like order_snapshot; +create table order_snapshot_13 like order_snapshot; +create table order_snapshot_14 like order_snapshot; +create table order_snapshot_15 like order_snapshot; +create table order_snapshot_16 like order_snapshot; +create table order_snapshot_17 like order_snapshot; +create table order_snapshot_18 like order_snapshot; +create table order_snapshot_19 like order_snapshot; +create table order_snapshot_20 like order_snapshot; +create table order_snapshot_21 like order_snapshot; +create table order_snapshot_22 like order_snapshot; +create table order_snapshot_23 like order_snapshot; +create table order_snapshot_24 like order_snapshot; +create table order_snapshot_25 like order_snapshot; +create table order_snapshot_26 like order_snapshot; +create table order_snapshot_27 like order_snapshot; +create table order_snapshot_28 like order_snapshot; +create table order_snapshot_29 like order_snapshot; +create table order_snapshot_30 like order_snapshot; +create table order_snapshot_31 like order_snapshot; +create table order_snapshot_32 like order_snapshot; +create table order_snapshot_33 like order_snapshot; +create table order_snapshot_34 like order_snapshot; +create table order_snapshot_35 like order_snapshot; +create table order_snapshot_36 like order_snapshot; +create table order_snapshot_37 like order_snapshot; +create table order_snapshot_38 like order_snapshot; +create table order_snapshot_39 like order_snapshot; +create table order_snapshot_40 like order_snapshot; +create table order_snapshot_41 like order_snapshot; +create table order_snapshot_42 like order_snapshot; +create table order_snapshot_43 like order_snapshot; +create table order_snapshot_44 like order_snapshot; +create table order_snapshot_45 like order_snapshot; +create table order_snapshot_46 like order_snapshot; +create table order_snapshot_47 like order_snapshot; +create table order_snapshot_48 like order_snapshot; +create table order_snapshot_49 like order_snapshot; +create table order_snapshot_50 like order_snapshot; +create table order_snapshot_51 like order_snapshot; +create table order_snapshot_52 like order_snapshot; +create table order_snapshot_53 like order_snapshot; +create table order_snapshot_54 like order_snapshot; +create table order_snapshot_55 like order_snapshot; +create table order_snapshot_56 like order_snapshot; +create table order_snapshot_57 like order_snapshot; +create table order_snapshot_58 like order_snapshot; +create table order_snapshot_59 like order_snapshot; +create table order_snapshot_60 like order_snapshot; +create table order_snapshot_61 like order_snapshot; +create table order_snapshot_62 like order_snapshot; +create table order_snapshot_63 like order_snapshot; +create table order_snapshot_64 like order_snapshot; +create table order_snapshot_65 like order_snapshot; +create table order_snapshot_66 like order_snapshot; +create table order_snapshot_67 like order_snapshot; +create table order_snapshot_68 like order_snapshot; +create table order_snapshot_69 like order_snapshot; +create table order_snapshot_70 like order_snapshot; +create table order_snapshot_71 like order_snapshot; +create table order_snapshot_72 like order_snapshot; +create table order_snapshot_73 like order_snapshot; +create table order_snapshot_74 like order_snapshot; +create table order_snapshot_75 like order_snapshot; +create table order_snapshot_76 like order_snapshot; +create table order_snapshot_77 like order_snapshot; +create table order_snapshot_78 like order_snapshot; +create table order_snapshot_79 like order_snapshot; +create table order_snapshot_80 like order_snapshot; +create table order_snapshot_81 like order_snapshot; +create table order_snapshot_82 like order_snapshot; +create table order_snapshot_83 like order_snapshot; +create table order_snapshot_84 like order_snapshot; +create table order_snapshot_85 like order_snapshot; +create table order_snapshot_86 like order_snapshot; +create table order_snapshot_87 like order_snapshot; +create table order_snapshot_88 like order_snapshot; +create table order_snapshot_89 like order_snapshot; +create table order_snapshot_90 like order_snapshot; +create table order_snapshot_91 like order_snapshot; +create table order_snapshot_92 like order_snapshot; +create table order_snapshot_93 like order_snapshot; +create table order_snapshot_94 like order_snapshot; +create table order_snapshot_95 like order_snapshot; +create table order_snapshot_96 like order_snapshot; +create table order_snapshot_97 like order_snapshot; +create table order_snapshot_98 like order_snapshot; +create table order_snapshot_99 like order_snapshot; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java index 3d1b84ac1..44711502f 100644 --- a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -151,6 +151,13 @@ public class BaseMyBatisConfiguration { wxOrderSharding.setCount(100); wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); shardingList.add(wxOrderSharding); + + ShardingSphere orderSnapshotSharding = new ShardingSphere(); + orderSnapshotSharding.setColumn("tenant_id"); + orderSnapshotSharding.setTableName("order_snapshot"); + orderSnapshotSharding.setCount(100); + orderSnapshotSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(orderSnapshotSharding); ShardingSphere wxPayOrderSharding = new ShardingSphere(); wxPayOrderSharding.setColumn("tenant_id"); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/OrderSnapshot.java b/mallinkService/src/main/java/com/iformall/domain/po/OrderSnapshot.java index a02672747..462096698 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/OrderSnapshot.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/OrderSnapshot.java @@ -94,8 +94,7 @@ public class OrderSnapshot extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark") private String remark; - @io.swagger.annotations.ApiModelProperty(value="EnumCouponStatus 状态(-1:全部,0:草稿/待生效,1:已生效,2:已失效,3:已作废)",name="status") - private Integer status; + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") private Date createDate; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") @@ -336,5 +335,50 @@ public class OrderSnapshot extends TenantEntity { } return valid_date; } + + public void initByCoupon(WxCoupon c) { + + this.setType(c.getType()); + this.setCoverImg(c.getCoverImg()); + this.setCoverPicture(c.getCoverPicture()); + this.setDetailPicture(c.getDetailPicture()); + this.setTitle(c.getTitle()); + this.setSubTitle(c.getSubTitle()); + this.setItemGroup(c.getItemGroup()); + this.setSalePrice(c.getSalePrice()); + this.setUsePrice(c.getUsePrice()); + this.setPrice(c.getPrice()); + this.setTailPrice(c.getTailPrice()); + this.setOrigPrice(c.getOrigPrice()); + this.setFreightPrice(c.getFreightPrice()); + this.setUnit(c.getUnit()); + this.setUseLimitRule(c.getUseLimitRule()); + this.setUseLimitQuantity(c.getUseLimitQuantity()); + this.setSendType(c.getSendType()); + this.setValidType(c.getValidType()); + this.setValidDays(c.getValidDays()); + this.setValidStartDate(c.getValidStartDate()); + this.setValidEndDate(c.getValidEndDate()); + this.setPickStartDate(c.getPickStartDate()); + this.setPickEndDate(c.getPickEndDate()); + this.setBusiness(c.getBusiness()); + this.setSubBusiness(c.getSubBusiness()); + this.setContentType(c.getContentType()); + this.setDetail(c.getDetail()); + this.setRemark(c.getRemark()); + this.setHtml(c.getHtml()); + this.setSupportTransfer(c.getSupportTransfer()); + this.setSubsidyNum(c.getSubsidyNum()); + this.setSubsidyType(c.getSubsidyType()); + this.setAutoRefund(c.getAutoRefund()); + this.setPressLimitNum(c.getPressLimitNum()); + this.setPressLimitHours(c.getPressLimitHours()); + this.setCreditPrice(c.getCreditPrice()); + this.setCreditRefund(c.getCreditRefund()); + this.setConditions(c.getConditions()); + this.setPasswordSupport(c.getPasswordSupport()); + this.setSourceType(c.getSourceType()); + + } } diff --git a/mallinkService/src/main/java/com/iformall/service/OrderSnapshotService.java b/mallinkService/src/main/java/com/iformall/service/OrderSnapshotService.java index ced9f4586..fcb5dda69 100644 --- a/mallinkService/src/main/java/com/iformall/service/OrderSnapshotService.java +++ b/mallinkService/src/main/java/com/iformall/service/OrderSnapshotService.java @@ -11,6 +11,6 @@ public interface OrderSnapshotService { ResultData getOrderSnapshotByComposeOrderId(TenantEntity tenantEntity,Long composeOrderId); - int saveOrderSnapshot(WxOrder order); + void saveOrderSnapshot(WxOrder order); } 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 e20c61892..40697afda 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/OrderSnapshotServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/OrderSnapshotServiceImpl.java @@ -1,10 +1,17 @@ package com.iformall.service.impl; +import com.alibaba.fastjson.JSON; import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.WxMerchantVo; +import com.iformall.enums.EnumCouponType; +import com.iformall.enums.EnumMerchantStatus; import com.iformall.mapper.OrderSnapshotMapper; +import com.iformall.mapper.WxCouponMapper; +import com.iformall.mapper.WxOrderMapper; import com.iformall.service.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,7 +19,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @@ -23,6 +34,15 @@ public class OrderSnapshotServiceImpl implements OrderSnapshotService { @Autowired OrderSnapshotMapper orderSnapshotMapper; + @Autowired + WxOrderMapper wxOrderMapper; + + @Autowired + WxCouponMapper wxCouponMapper; + + @Autowired + WxMerchantService wxMerchantService; + @Override public ResultData getOrderSnapshotByOrderId(TenantEntity tenantEntity, Long orderId) { OrderSnapshot os = new OrderSnapshot(); @@ -49,13 +69,55 @@ public class OrderSnapshotServiceImpl implements OrderSnapshotService { @Async @Override - public int saveOrderSnapshot(WxOrder order) { + public void saveOrderSnapshot(WxOrder order) { try{ + WxOrder wxOrder = wxOrderMapper.selectById(order.getId(), order.getTenantId()); + if(wxOrder == null){ + logger.error("同步订单快照异常---未找到订单数据"); + return ; + } + WxCoupon wxCoupon = wxCouponMapper.selectById(order.getProductId(),order.getTenantId()); + if(wxCoupon == null){ + logger.error("同步订单快照异常---未找到商品数据"); + return ; + } + OrderSnapshot snapshot = new OrderSnapshot(); + final IdWorker idWorker = IdWorker.get(); + Date now = new Date(); + snapshot.updateTenantInfo(wxCoupon); + snapshot.setId(idWorker.nextId()); + snapshot.setComposeOrderId(wxOrder.getComposeOrderId()); + snapshot.setOrderId(wxOrder.getId()); + snapshot.initByCoupon(wxCoupon); + + List couponIdList = new ArrayList(); + couponIdList.add(wxCoupon.getId()); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, wxCoupon,true); + List merchantList = couponMerchantVoMap.get(wxCoupon.getId()); + if (merchantList != null) { + merchantList = merchantList.stream().filter( + m->m.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())) + .collect(Collectors.toList()); + } + snapshot.setMerchasntList(JSON.toJSONString(merchantList)); + if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())){ + WxCoupon coupon = new WxCoupon(); + coupon.updateTenantInfo(wxCoupon); + List longs = JSON.parseArray(wxCoupon.getGiftList(), Long.class); + if(longs != null && longs.size() > 0){ + coupon.setIds(longs); + List giftList = wxCouponMapper.findList(coupon); + snapshot.setGiftList(JSON.toJSONString(giftList)); + } + } + snapshot.setCreateDate(now); + snapshot.setUpdateDate(now); + orderSnapshotMapper.insert(snapshot); }catch(Exception e){ logger.error("同步订单快照异常"+e.getMessage()); } - return 0; + return ; } } 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 463252397..4e5f2b208 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -935,8 +935,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - //订单快照 - orderSnapshotService.saveOrderSnapshot(order); + try{ + orderSnapshotService.saveOrderSnapshot(order); + }catch(Exception e){ + logger.error("订单快照 error"+e.getMessage()); + } } } diff --git a/mallinkService/src/main/resources/mapper/OrderSnapshot.xml b/mallinkService/src/main/resources/mapper/OrderSnapshot.xml index 1fe1e4a80..781bf33c9 100644 --- a/mallinkService/src/main/resources/mapper/OrderSnapshot.xml +++ b/mallinkService/src/main/resources/mapper/OrderSnapshot.xml @@ -32,7 +32,6 @@ - @@ -59,7 +58,7 @@ `id`,`tenant_id`,`parent_tenant_id`,`order_id`,`compose_order_id`,`type`,`cover_img`,`cover_picture`,`detail_picture`, `title`,`sub_title`,`item_group`,`sale_price`,`freight_price`,`use_price`,`use_limit_rule`,`use_limit_quantity`,`send_type`, `valid_type`,`valid_start_date`,`valid_end_date`,pick_start_date,pick_end_date,`valid_days`,`detail`,`price`,tail_price,orig_price,`unit`, - `remark`,`status`,`create_date`,`update_date`,`business`,`sub_business`,`support_transfer`,`subsidy_num`,`subsidy_type`, + `remark`,`create_date`,`update_date`,`business`,`sub_business`,`support_transfer`,`subsidy_num`,`subsidy_type`, `press_limit_num`, `press_limit_hours`, `auto_refund`,`credit_price`,`credit_refund`, `conditions`,content_type,source_type,password_support,gift_list,merchant_list