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

同步订单数据表,增加机具的循环第一台机具字段

mac 2 лет назад
Родитель
Сommit
21f0c5d069

+ 6 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsMachine.java

@@ -294,6 +294,12 @@ public class KxsMachine extends Model<KxsMachine> implements Serializable {
     @Schema(description = "扫码交易额")
     private BigDecimal scanQrTrade;
 
+    /**
+     * 溯源机具和兑换券
+     */
+    @Schema(description = "溯源机具和兑换券")
+    private String sourcePosSn;
+
 
 }
 

+ 28 - 4
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsShopOrder.java

@@ -27,8 +27,8 @@ public class KxsShopOrder extends Model<KxsShopOrder> implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    
-    
+
+
     /**
      * 主键ID
      */
@@ -141,14 +141,14 @@ public class KxsShopOrder extends Model<KxsShopOrder> implements Serializable {
      * 快递单号
      */
     @Schema(description = "快递单号")
-    private String expressageSn;
+    private String erpSn;
 
 
     /**
      * 快递公司
      */
     @Schema(description = "快递公司")
-    private String expressageName;
+    private String erpName;
 
 
     /**
@@ -164,6 +164,18 @@ public class KxsShopOrder extends Model<KxsShopOrder> implements Serializable {
     @Schema(description = "退款状态 0未申请 1已申请 2申请通过 3申请驳回")
     private Integer returnStatus;
 
+    /**
+     * 操作人
+     */
+    @Schema(description = "操作人")
+    private String updateBy;
+
+    /**
+     * 退货原因
+     */
+    @Schema(description = "退货原因")
+    private String returnReason;
+
 
     /**
      * 申请退款时间
@@ -172,6 +184,18 @@ public class KxsShopOrder extends Model<KxsShopOrder> implements Serializable {
     private LocalDateTime returnTime;
 
 
+    /**
+     * 退款金额
+     */
+    @Schema(description = "退款金额")
+    private BigDecimal returnPrice;
+
+    /**
+     * 顶级创客ID
+     */
+    @Schema(description = "顶级创客ID")
+    private Integer topUserId;
+
     /**
      * 订单金额
      */

+ 1 - 1
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsMachineMapper.xml

@@ -39,7 +39,7 @@
         <result column="credit_trade" property="creditTrade"/>
         <result column="debit_card_trade" property="debitCardTrade"/>
         <result column="scan_qr_trade" property="scanQrTrade"/>
-
+        <result column="source_pos_sn" property="sourcePosSn"/>
     </resultMap>
     <select id="machineStoreList" resultType="com.kxs.product.api.vo.kxsapp.machine.MachineStoreListVO">
         select create_time, pos_sn from kxs_machine

+ 5 - 2
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsShopOrderMapper.xml

@@ -18,8 +18,10 @@
         <result column="consignee" property="consignee"/>
         <result column="phone" property="phone"/>
         <result column="address" property="address"/>
-        <result column="expressage_sn" property="expressageSn"/>
-        <result column="expressage_name" property="expressageName"/>
+        <result column="erp_name" property="erpName"/>
+        <result column="erp_sn" property="erpSn"/>
+        <result column="return_reason" property="returnReason"/>
+        <result column="return_price" property="returnPrice"/>
         <result column="status" property="status"/>
         <result column="return_status" property="returnStatus"/>
         <result column="return_time" property="returnTime"/>
@@ -28,6 +30,7 @@
         <result column="trade_no" property="tradeNo"/>
         <result column="warehouse_id" property="warehouseId"/>
         <result column="order_type" property="orderType"/>
+        <result column="top_user_id" property="topUserId"/>
 
     </resultMap>
     <!-- kxs app 订单列表分页 map -->

+ 9 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsMachineServiceImpl.java

@@ -3,6 +3,7 @@ package com.kxs.transfer.api.service.product.impl;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.StrUtil;
 import com.aliyun.dts.subscribe.clients.record.OperationType;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -197,6 +198,14 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                     machine.setIsFirst(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     lambda.set(KxsMachine::getIsFirst, Integer.valueOf(validFieldDataMap.get(field).toString()));
                     break;
+                case "SourcePosSn":
+                    if(validFieldDataMap.get(field) != null ){
+                        machine.setSourcePosSn(validFieldDataMap.get(field).toString());
+                        lambda.set(KxsMachine::getSourcePosSn, validFieldDataMap.get(field).toString());
+                    }else{
+                        lambda.set(KxsMachine::getSourcePosSn, null);
+                    }
+                    break;
                 case "LeaderUserId":
                     machine.setLeaderId(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     lambda.set(KxsMachine::getLeaderId, Integer.valueOf(validFieldDataMap.get(field).toString()));

+ 228 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsShopOrderService.java

@@ -1,13 +1,27 @@
 package com.kxs.transfer.api.service.product.impl;
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.util.StrUtil;
+import com.aliyun.dts.subscribe.clients.record.OperationType;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.product.api.model.KxsShopGoods;
 import com.kxs.product.api.model.KxsShopOrder;
+import com.kxs.product.api.model.KxsShopOrderInfo;
+import com.kxs.system.api.model.KxsMorningLog;
+import com.kxs.system.api.model.KxsSchoolMenu;
 import com.kxs.transfer.api.mapper.product.KxsShopOrderInfoMapper;
 import com.kxs.transfer.api.mapper.product.KxsShopOrderMapper;
 import com.kxs.transfer.api.model.table.DMLData;
+import com.kxs.transfer.api.model.table.FieldData;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 商城订单表(KxsShopOrder)表服务实现类
  *
@@ -21,11 +35,225 @@ public class KxsShopOrderService extends ServiceImpl<KxsShopOrderMapper, KxsShop
     private final KxsShopOrderInfoMapper kxsShopOrderInfoMapper;
 
     public void changeData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+
+        if(fieldDataMap.get("Sort") == null){
+            return;
+        }
+        if(fieldDataMap.get("Sort").getValue() == null){
+            return;
+        }
+        int sort = Integer.parseInt(fieldDataMap.get("Sort").getValue().toString());
+        if(sort != 0){
+            return;
+        }
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsShopOrder order = new KxsShopOrder();
+        order.setId(id);
+
+        OperationType operation = dmlData.getOperation();
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
 
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "TopUserId":
+                    order.setTopUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "UserId":
+                    order.setUserId(Long.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "OrderNo":
+                    order.setOrderSn(validFieldDataMap.get(field).toString());
+                    break;
+                case "DeliveryType":
+                    int deliveryType = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    order.setGetMode(deliveryType == 1 ? 1 : 0);
+                    break;
+                case "PayMode":
+                    int payType = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    if(payType == 3){
+                        order.setPayType(0);
+                    } else if (payType == 4){
+                        order.setPayType(3);
+                    }else {
+                        order.setPayType(payType);
+                    }
+                    break;
+                case "PayDate":
+                    order.setPayTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "SendDate":
+                    order.setSendTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "Remark":
+                    order.setRemark(validFieldDataMap.get(field).toString());
+                    break;
+                case "RealName":
+                    order.setConsignee(validFieldDataMap.get(field).toString());
+                    break;
+                case "Mobile":
+                    order.setPhone(validFieldDataMap.get(field).toString());
+                    break;
+                case "Address":
+                    order.setAddress(validFieldDataMap.get(field).toString());
+                    break;
+                case "ErpCode":
+                    order.setErpSn(validFieldDataMap.get(field).toString());
+                    break;
+                case "ErpName":
+                    order.setErpName(validFieldDataMap.get(field).toString());
+                    break;
+                case "RefundReason":
+                    order.setReturnReason(validFieldDataMap.get(field).toString());
+                    break;
+                case "UpdateMan":
+                    order.setUpdateBy(validFieldDataMap.get(field).toString());
+                    break;
+                case "TotalPrice":
+                    order.setTotalPrice(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    order.setPayPrice(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "RefundActAmount":
+                    order.setReturnPrice(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "TradeNo":
+                    order.setTradeNo(validFieldDataMap.get(field).toString());
+                    break;
+                case "StoreId":
+                    order.setWarehouseId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "Status":
+                    int status = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    if(status == -1){
+                        order.setStatus(4);
+                    } else if (status == 2) {
+                        order.setStatus(3);
+                    } else if (status == 4) {
+                        order.setReturnStatus(2);
+                        order.setStatus(2);
+                    }else {
+                        order.setStatus(status);
+                    }
+                    break;
+                case "RefundStatus":
+                    int returnStatus = Integer.valueOf(validFieldDataMap.get(field).toString());
+                    if(returnStatus == 1){
+                        order.setReturnStatus(2);
+                    }else{
+                        order.setReturnStatus(0);
+                    }
+                    break;
+                case "CreateDate":
+                    order.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    order.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+        if(operation.equals(OperationType.UPDATE)){
+            // 更新数据
+            baseMapper.updateById(order);
+        }
+        if(operation.equals(OperationType.INSERT)){
+            KxsShopOrder kxsShopOrder = baseMapper.selectById(id);
+            if (kxsShopOrder != null){
+                baseMapper.updateById(order);
+            }else{
+                // 插入数据
+                baseMapper.insert(order);
+            }
+        }
     }
 
     public void changeInfoData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsShopOrderInfo orderInfo = new KxsShopOrderInfo();
+        orderInfo.setId(id);
+
+        OperationType operation = dmlData.getOperation();
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
+        for (String field : changeFieldList) {
 
+            switch (field) {
+                case "ProductId":
+                    orderInfo.setGoodsId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "OrderId":
+                    orderInfo.setOrderId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ProductName":
+                    orderInfo.setGoodsName(validFieldDataMap.get(field).toString());
+                    break;
+                case "ProductCount":
+                    orderInfo.setNumber(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ProductPhoto":
+                    orderInfo.setPicUrl(validFieldDataMap.get(field).toString());
+                    break;
+                case "NormDetail":
+                    if(validFieldDataMap.get(field) == null){
+                        orderInfo.setSpecifications("默认");
+                    }else{
+                        orderInfo.setSpecifications(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "NormId":
+                    if(validFieldDataMap.get(field) == null){
+                        orderInfo.setSkuId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    }else{
+                        orderInfo.setSkuId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    }
+                    break;
+                case "ProductPrice":
+                    orderInfo.setGoodsPrice(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "CreateDate":
+                    orderInfo.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    orderInfo.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+        if(StrUtil.isEmpty(orderInfo.getSpecifications())){
+            orderInfo.setSpecifications("默认");
+        }
+        if(operation.equals(OperationType.UPDATE)){
+            // 更新数据
+            kxsShopOrderInfoMapper.updateById(orderInfo);
+        }
+        if(operation.equals(OperationType.INSERT)){
+            KxsShopOrderInfo kxsShopOrderInfo = kxsShopOrderInfoMapper.selectById(id);
+            if (kxsShopOrderInfo != null){
+                kxsShopOrderInfoMapper.updateById(orderInfo);
+            }else{
+                // 插入数据
+                kxsShopOrderInfoMapper.insert(orderInfo);
+            }
+        }
     }
 }
 

+ 17 - 0
kxs-transfer/src/main/resources/import.txt

@@ -283,6 +283,23 @@ FROM StoreChangeHistory a
 left join PosMachinesTwo m on a.SnNo = m.PosSn
 where m.id is not null
 
+--商城订单表
+SELECT  a.Id as id, a.UserId as user_id, a.CreateDate as create_time, a.UpdateDate as update_time,
+a.OrderNo as order_sn, case a.DeliveryType when 1 then 1 when 2 then 0 else 0 end get_mode, case a.PayMode when 1 then 1 when 3 then 0 when 2 then 2 when 4 then 3 end  pay_type,
+PayDate as pay_time, SendDate as send_time, a.Remark as remark, RealName as consignee, Mobile as phone, Address as address, ErpCode as erp_sn, ErpName as erp_name,
+case when a.Status = -1 then 4 when a.Status = 0 then 0 when a.Status = 1 then 1 when a.Status = 2 then 3 when a.Status = 3 then 2 when a.Status = 4 then 2 end  status,
+TotalPrice as total_price, TradeNo as trade_no, TotalPrice as pay_price, StoreId as warehouse_id, TopUserId as top_user_id,
+RefundReason as return_reason, UpdateMan as update_by, RefundActAmount as  return_price, case when a.`Status` = 4 then 2  when a.RefundStatus = 1 then 2 else 0 end  return_status
+FROM Orders a
+where a.Sort = 0
+ORDER BY a.CreateDate desc limit 1000
+
+-- 订单详情表
+SELECT  a.Id as id, a.UserId as user_id, a.CreateDate as create_time, a.UpdateDate as update_time,
+OrderId as order_id, ProductId as goods_id, ProductName as goods_name, ProductPrice as goods_price, ProductCount as number, ProductPhoto as pic_url, ifnull(NormDetail, '默认') as specifications, ifnull(NormId, 0) as sku_id
+FROM OrderProduct a
+limit 1000
+