فهرست منبع

FIX: 推送微信物流状态

xdd 1 هفته پیش
والد
کامیت
f15269c3c2

+ 5 - 0
fs-admin/src/test/java/com/fs/company/controller/CompanyControllerTest.java

@@ -65,6 +65,11 @@ public class CompanyControllerTest {
     @Autowired
     private ICompanyService companyService;
 
+
+    @Test
+    public void syncExpressToWx(){
+        fsStoreOrderService.syncExpressToWx();
+    }
     @Test
     public void fixLiveCompanyMoney(){
         List<String> orderCodeList = Arrays.asList(

+ 1 - 0
fs-service-system/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -1435,6 +1435,7 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
             if (liveOrderPayment != null) {
                 fsWxExpressTask.setPayCode(liveOrderPayment.getPayCode());
             }
+            fsWxExpressTask.setType(1);
             fsWxExpressTaskMapper.insert(fsWxExpressTask);
 
             // 微信消息通知

+ 3 - 2
fs-service-system/src/main/java/com/fs/store/service/ExpressToWxHolder.java

@@ -17,15 +17,16 @@ public class ExpressToWxHolder {
         ExpressToWxHolder.applicationContext = applicationContext;
     }
 
-    public static ExpressToWxService findBest(Integer type) {
+    public static ExpressToWxService findBest(Integer type,String orderCode) {
         String[] beanNames = applicationContext.getBeanNamesForType(ExpressToWxService.class);
 
         for (String beanName : beanNames) {
             ExpressToWxService handler = (ExpressToWxService) applicationContext.getBean(beanName);
             if (handler.support(type)) {
+                handler.setOrderCode(orderCode);
                 return handler;
             }
         }
-        return null;
+        throw new IllegalArgumentException(String.format(String.format("对应类型 %d 没有被找到!",type)));
     }
 }

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

@@ -290,13 +290,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
               orderKey.setOrderNumberType(2);
 
 
-
               FsUser fsUser = fsUserMapper.selectFsUserById(fsWxExpressTask.getUserId());
 
-              ExpressToWxService service = ExpressToWxHolder.findBest(fsWxExpressTask.getType());
+              ExpressToWxService service = ExpressToWxHolder.findBest(fsWxExpressTask.getType(),fsWxExpressTask.getOrderCode());
               Asserts.notNull(service,"订单类型不被支持!");
-              service.setOrderCode(fsWxExpressTask.getOrderCode());
-
 
 
               orderKey.setTransactionId(service.getTransactionId());
@@ -1165,6 +1162,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 FsStorePayment fsStorePayment = fsStorePayments.get(0);
                 fsWxExpressTask.setPayCode(fsStorePayment.getPayCode());
             }
+            fsWxExpressTask.setType(0);
             fsWxExpressTaskMapper.insert(fsWxExpressTask);
 
             // 微信消息通知

+ 4 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/LiveStreamShopExpressToWxService.java

@@ -18,8 +18,10 @@ import org.springframework.stereotype.Service;
 import javax.annotation.PostConstruct;
 import java.util.List;
 
+import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE;
+
 @Service
-@Scope("SCOPE_PROTOTYPE")
+@Scope(value = SCOPE_PROTOTYPE)
 public class LiveStreamShopExpressToWxService extends ExpressToWxService {
 
     @Autowired
@@ -36,6 +38,7 @@ public class LiveStreamShopExpressToWxService extends ExpressToWxService {
 
     @Override
     public void setOrderCode(String orderCode) {
+        super.setOrderCode(orderCode);
         this.liveOrder = liveOrderMapper.selectLiveOrderByOrderCode(getOrderCode());
         if(ObjectUtil.isNull(this.liveOrder)){
             throw new IllegalArgumentException(String.format("订单%s未找到!", this.getOrderCode()));

+ 4 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/ShopExpressToWxService.java

@@ -17,8 +17,10 @@ import org.springframework.stereotype.Service;
 import javax.annotation.PostConstruct;
 import java.util.List;
 
+import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE;
+
 @Service
-@Scope("SCOPE_PROTOTYPE")
+@Scope(value = SCOPE_PROTOTYPE)
 public class ShopExpressToWxService extends ExpressToWxService {
     @Autowired
     private FsStoreOrderMapper fsStoreOrderMapper;
@@ -31,6 +33,7 @@ public class ShopExpressToWxService extends ExpressToWxService {
 
     @Override
     public void setOrderCode(String orderCode) {
+        super.setOrderCode(orderCode);
         this.fsStoreOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(getOrderCode());
         if(ObjectUtil.isNull(fsStoreOrder)) {
             throw new IllegalArgumentException(String.format("该订单 %s 未找到!",getOrderCode()));

+ 3 - 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,express_company,express_no) " +
-            "VALUES (#{orderCode}, #{userId}, #{data}, #{status}, #{retryCount}, #{maxRetries}, #{requestParams}, #{requestBody}, #{responseBody}, #{errorMessage}, #{createTime}, #{updateTime},#{expressCompany},#{expressNo})")
+    @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,type) " +
+            "VALUES (#{orderCode}, #{userId}, #{data}, #{status}, #{retryCount}, #{maxRetries}, #{requestParams}, #{requestBody}, #{responseBody}, #{errorMessage}, #{createTime}, #{updateTime},#{expressCompany},#{expressNo},#{type})")
     @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
     int insert(FsWxExpressTask task);
 
@@ -46,6 +46,7 @@ public interface FsWxExpressTaskMapper {
             "  <if test='requestBody != null'>request_body = #{requestBody},</if>" +
             "  <if test='responseBody != null'>response_body = #{responseBody},</if>" +
             "  <if test='errorMessage != null'>error_message = #{errorMessage},</if>" +
+            "  <if test='type != null'>type = #{type},</if>" +
             "</set>" +
             "WHERE id = #{id}" +
             "</script>")