Quellcode durchsuchen

同步物流到微信

xdd vor 2 Tagen
Ursprung
Commit
daffde5d90

+ 0 - 23
fs-admin/src/main/java/com/fs/task/StoreTask.java

@@ -450,7 +450,6 @@ public class StoreTask {
     @QuartzRunnable(name = "发货任务")
     public void updateExpress() {
         List<FsStoreOrder> list = fsStoreOrderMapper.selectUpdateExpress();
-        List<FsWxExpressTask> tasks = new ArrayList<>();
 
         for (FsStoreOrder order : list) {
             ErpOrderQueryRequert request = new ErpOrderQueryRequert();
@@ -473,33 +472,11 @@ public class StoreTask {
                             }
                         }
 
-                        FsWxExpressTask fsWxExpressTask = new FsWxExpressTask();
-                        fsWxExpressTask.setUserId(order.getUserId());
-                        fsWxExpressTask.setStatus(0);
-                        fsWxExpressTask.setRetryCount(0);
-                        fsWxExpressTask.setCreateTime(LocalDateTime.now());
-                        fsWxExpressTask.setUpdateTime(LocalDateTime.now());
-                        fsWxExpressTask.setOrderCode(order.getOrderCode());
-
-                        List<FsStorePayment> fsStorePayments = fsStorePaymentService.selectFsStorePaymentByOrderIdNew(order.getId());
-                        if(CollectionUtils.isNotEmpty(fsStorePayments)){
-                            FsStorePayment fsStorePayment = fsStorePayments.get(0);
-                            fsWxExpressTask.setPayCode(fsStorePayment.getPayCode());
-                        }
-
-                        tasks.add(fsWxExpressTask);
-
                     }
                 }
             }
         }
 
-
-        if(CollectionUtils.isNotEmpty(tasks)){
-            fsWxExpressTaskMapper.insertBatch(tasks);
-        }
-
-
     }
 
 

+ 57 - 2
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -59,6 +59,7 @@ import com.fs.huifuPay.service.HuiFuService;
 import com.fs.pay.pay.domain.CreateWxOrderResult;
 import com.fs.pay.pay.domain.RefundResult;
 import com.fs.pay.pay.dto.OrderQueryDTO;
+import com.fs.pay.pay.dto.RefundDTO;
 import com.fs.pay.pay.dto.WxJspayDTO;
 import com.fs.pay.pay.service.PayService;
 import com.fs.pay.pay.util.PayUtil;
@@ -282,6 +283,14 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
 
             FsUser fsUser = fsUserCacheService.selectFsUserById(fsWxExpressTask.getUserId());
+            FsStoreOrder fsStoreOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(fsWxExpressTask.getOrderCode());
+            String userPhone = "";
+            String orderGoodsInfo = "商品";
+            if(fsStoreOrder != null){
+                userPhone = fsStoreOrder.getUserPhone();
+                orderGoodsInfo = getOrderGoodsInfo(fsStoreOrder);
+            }
+
             Payer payer = new Payer();
             if(StringUtils.isNotBlank(fsUser.getMaOpenId())){
                 payer.setOpenid(fsUser.getMaOpenId());
@@ -292,7 +301,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             request.setLogisticsType(1);
             request.setDeliveryMode(1);
 
-            request.setShippingList(Collections.singletonList(ShippingItem.builder().itemDesc("商品").build()));
+            request.setShippingList(Collections.singletonList(ShippingItem.builder()
+                    .itemDesc(orderGoodsInfo)
+                            .expressCompany(fsWxExpressTask.getExpressCompany())
+                            .trackingNo(fsWxExpressTask.getExpressNo())
+                            .contact(Contact.builder().consignorContact(userPhone).build())
+                    .build()));
 
             OffsetDateTime now = OffsetDateTime.now();
             DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
@@ -315,6 +329,31 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     }
 
+    /**
+     * 获取订单商品信息
+     * @return
+     */
+    private String getOrderGoodsInfo(FsStoreOrder order){
+        StringBuilder title = new StringBuilder();
+        // 如果是套餐
+        if(ObjectUtil.equal(order.getIsPackage(),1)){
+            String packageJson = order.getPackageJson();
+            JSONObject jsonObject = JSON.parseObject(packageJson);
+            title = new StringBuilder(jsonObject.getString("title"));
+        } else {
+            String itemJson = order.getItemJson();
+            com.alibaba.fastjson.JSONArray arrays = JSON.parseArray(itemJson);
+            for(int i=0;i<arrays.size();i++){
+                JSONObject jsonObject = arrays.getJSONObject(i);
+                String jsonInfo = jsonObject.getString("jsonInfo");
+                JSONObject jsonObject1 = JSON.parseObject(jsonInfo);
+                String productName = jsonObject1.getString("productName");
+                title.append(productName).append("\n");
+            }
+        }
+        return title.toString();
+    }
+
     /**
      * 查询订单
      *
@@ -1038,7 +1077,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 if(payments!=null){
                     for(FsStorePayment payment:payments){
                         //易宝退款
-                        com.fs.pay.pay.dto.RefundDTO refundDTO = new com.fs.pay.pay.dto.RefundDTO();
+                        RefundDTO refundDTO = new RefundDTO();
                         refundDTO.setRefundMoney(payment.getPayMoney().toString());
                         refundDTO.setLowRefundNo("refund-"+payment.getPayCode());
                         refundDTO.setUpOrderId(payment.getTradeNo());
@@ -1112,6 +1151,22 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 fsStoreDeliversMapper.insert(fsStoreDeliver);
             }
 
+            FsWxExpressTask fsWxExpressTask = new FsWxExpressTask();
+            fsWxExpressTask.setUserId(order.getUserId());
+            fsWxExpressTask.setStatus(0);
+            fsWxExpressTask.setRetryCount(0);
+            fsWxExpressTask.setCreateTime(LocalDateTime.now());
+            fsWxExpressTask.setUpdateTime(LocalDateTime.now());
+            fsWxExpressTask.setOrderCode(order.getOrderCode());
+            fsWxExpressTask.setExpressCompany(express.getCode());
+            fsWxExpressTask.setExpressNo(deliveryId);
+
+            List<FsStorePayment> fsStorePayments = fsStorePaymentService.selectFsStorePaymentByOrderIdNew(order.getId());
+            if(CollectionUtils.isNotEmpty(fsStorePayments)){
+                FsStorePayment fsStorePayment = fsStorePayments.get(0);
+                fsWxExpressTask.setPayCode(fsStorePayment.getPayCode());
+            }
+            fsWxExpressTaskMapper.insert(fsWxExpressTask);
 
             // 微信消息通知
             TemplateBean templateBean = TemplateBean.builder()

+ 11 - 0
fs-service-system/src/main/java/com/fs/wx/domain/FsWxExpressTask.java

@@ -82,4 +82,15 @@ public class FsWxExpressTask {
      * 最后更新时间
      */
     private LocalDateTime updateTime; // 使用LocalDateTime对应timestamp
+
+
+    /**
+     * 快递公司
+     */
+    private String expressCompany;
+
+    /**
+     * 快递编号
+     */
+    private String expressNo;
 }

+ 2 - 2
fs-service-system/src/main/java/com/fs/wx/mapper/FsWxExpressTaskMapper.java

@@ -23,8 +23,8 @@ public interface FsWxExpressTaskMapper {
      * @param task 任务实体
      * @return 影响行数
      */
-    @Insert("INSERT INTO fs_wx_express_task (order_code, user_id, data, status, retry_count, max_retries, request_params, request_body, response_body, error_message, create_time, update_time) " +
-            "VALUES (#{orderCode}, #{userId}, #{data}::json, #{status}, #{retryCount}, #{maxRetries}, #{requestParams}, #{requestBody}, #{responseBody}, #{errorMessage}, #{createTime}, #{updateTime})")
+    @Insert("INSERT INTO fs_wx_express_task (order_code, user_id, data, status, retry_count, max_retries, request_params, request_body, response_body, error_message, create_time, update_time,express_company,express_no) " +
+            "VALUES (#{orderCode}, #{userId}, #{data}, #{status}, #{retryCount}, #{maxRetries}, #{requestParams}, #{requestBody}, #{responseBody}, #{errorMessage}, #{createTime}, #{updateTime},#{expressCompany},#{expressNo})")
     @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
     int insert(FsWxExpressTask task);