Просмотр исходного кода

//update

release_toaliyun_real
xhxu 4 лет назад
Родитель
Сommit
5e4cf5c052
7 измененных файлов: 224 добавлений и 9 удалений
  1. +100
    -0
      mallinkAdmin/src/main/resources/db/migration/V2022042200001__snapshot.sql
  2. +7
    -0
      mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java
  3. +46
    -2
      mallinkService/src/main/java/com/iformall/domain/po/OrderSnapshot.java
  4. +1
    -1
      mallinkService/src/main/java/com/iformall/service/OrderSnapshotService.java
  5. +64
    -2
      mallinkService/src/main/java/com/iformall/service/impl/OrderSnapshotServiceImpl.java
  6. +5
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  7. +1
    -2
      mallinkService/src/main/resources/mapper/OrderSnapshot.xml

+ 100
- 0
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;

+ 7
- 0
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");


+ 46
- 2
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());

}
}

+ 1
- 1
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);

}

+ 64
- 2
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<Long> couponIdList = new ArrayList<Long>();
couponIdList.add(wxCoupon.getId());
Map<Long, List<WxMerchantVo>> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, wxCoupon,true);

List<WxMerchantVo> 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<Long> longs = JSON.parseArray(wxCoupon.getGiftList(), Long.class);
if(longs != null && longs.size() > 0){
coupon.setIds(longs);
List<WxCoupon> 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 ;
}
}

+ 5
- 2
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());
}

}
}


+ 1
- 2
mallinkService/src/main/resources/mapper/OrderSnapshot.xml Просмотреть файл

@@ -32,7 +32,6 @@
<result column="orig_price" jdbcType="INTEGER" property="origPrice"/>
<result column="unit" jdbcType="INTEGER" property="unit"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="create_date" jdbcType="TIMESTAMP" property="createDate"/>
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/>
<result column="business" jdbcType="INTEGER" property="business"/>
@@ -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
</sql>


Загрузка…
Отмена
Сохранить