Browse Source

运费计算封装

xdd 1 week ago
parent
commit
6072460892

+ 1 - 1
deploy.sh

@@ -43,7 +43,7 @@ deploy_jar() {
   scp "$local_jar" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_BASE_DIR/$remote_dir/"
 
   # 在后台启动 JAR 包, 并将输出重定向到 /dev/null
-    ssh "$REMOTE_USER@$REMOTE_HOST" "nohup java -jar $REMOTE_BASE_DIR/$remote_dir/$app_name.jar > $REMOTE_BASE_DIR/$remote_dir/$app_name.log 2>&1 &"
+    ssh "$REMOTE_USER@$REMOTE_HOST" "nohup java -jar -Dfile.encoding=UTF-8 $REMOTE_BASE_DIR/$remote_dir/$app_name.jar > $REMOTE_BASE_DIR/$remote_dir/$app_name.log 2>&1 &"
 
   echo "Deployed $app_name to $REMOTE_HOST:$REMOTE_BASE_DIR/$remote_dir"
 }

+ 9 - 0
fs-admin/src/test/java/com/fs/store/controller/FsStorePaymentControllerTest.java

@@ -8,6 +8,7 @@ import com.fs.store.domain.FsStorePayment;
 import com.fs.store.enums.IcgProcessStatusEnum;
 import com.fs.store.mapper.FsMiniprogramSubNotifyTaskMapper;
 import com.fs.store.service.IFsCouponScheduleService;
+import com.fs.store.service.IFsStorePaymentService;
 import com.fs.task.MiniProgramSubTask;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -38,6 +39,14 @@ public class FsStorePaymentControllerTest {
     @Autowired
     private IFsCouponScheduleService fsCouponScheduleService;
 
+    @Autowired
+    IFsStorePaymentService fsStorePaymentService;
+
+    @Test
+    public void testTestPaymentSync() {
+        fsStorePaymentService.paymentSync();
+    }
+
     @Autowired
     private MiniProgramSubTask miniProgramSubTask;
     @Test

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/mapper/FsStorePaymentMapper.java

@@ -370,6 +370,6 @@ public interface FsStorePaymentMapper
     /**
      * 一个小时状态还没有变化
      */
-    @Select("select * from fs_store_payment where pay_mode='tzbk' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 1 HOUR);")
+    @Select("select * from fs_store_payment where pay_mode='tzbk' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 10 MINUTE)")
     List<FsStorePayment> queryPendingDelayState();
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreConfirmPackageIdOrderParam.java

@@ -8,4 +8,5 @@ import lombok.Setter;
 public class FsStoreConfirmPackageIdOrderParam {
     private Long packageId;
     private Long couponUserId;
+    private Long userAddressId;
 }

+ 19 - 9
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fs.store.service.impl;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.nio.charset.Charset;
 import java.sql.Timestamp;
 import java.text.ParseException;
@@ -1196,7 +1197,13 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Override
     public R confirmPackageOrder(long uid, FsStoreConfirmPackageIdOrderParam param) {
-        FsUserAddress address= userAddressMapper.selectFsUserAddressByDefaultAddress(uid);
+        FsUserAddress address;
+        if(ObjectUtil.isNull(param.getUserAddressId())){
+            address= userAddressMapper.selectFsUserAddressByDefaultAddress(uid);
+        } else {
+            address = userAddressMapper.selectFsUserAddressById(param.getUserAddressId());
+        }
+        Asserts.notNull(address,"用户收货地址不能为空!");
         FsStoreProductPackage storeProductPackage=productPackageService.selectFsStoreProductPackageById(param.getPackageId());
         String uuid = IdUtil.randomUUID();
         BigDecimal totalMoney=storeProductPackage.getPayMoney();
@@ -1219,11 +1226,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         return R.ok().put("orderKey",uuid)
                 .put("address",address)
                 .put("package",storeProductPackage)
-                .put("totalMoney",totalMoney.add(postMoney))
-                .put("postMoney",postMoney);
+                .put("totalMoney",totalMoney.add(postMoney).setScale(2, RoundingMode.HALF_UP))
+                .put("postMoney",postMoney.setScale(2, RoundingMode.HALF_UP));
     }
 
-    private BigDecimal calPostMoney(FsStoreProductPackage storeProductPackage, FsUserAddress address) {
+    public BigDecimal calPostMoney(FsStoreProductPackage storeProductPackage, FsUserAddress address) {
         BigDecimal postMoney = BigDecimal.ZERO;
         // 计算套餐邮费
         if(ObjectUtil.isNotNull(storeProductPackage.getTemplateId())){
@@ -1405,13 +1412,13 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             storeOrder.setStatus(0);
             storeOrder.setOrderCreateType(2);
             storeOrder.setPayType(storeProductPackage.getPayType().toString());
-            storeOrder.setPayPrice(totalMoney);
+            storeOrder.setPayPrice(totalMoney.add(postMoney));
             storeOrder.setIsPackage(1);
             FsStoreProductPackage productPackage=new FsStoreProductPackage();
             productPackage.setTitle(storeProductPackage.getTitle());
             productPackage.setImgUrl(storeProductPackage.getImgUrl());
             productPackage.setDescs(storeProductPackage.getDescs());
-            productPackage.setPayMoney(storeOrder.getPayMoney());
+            productPackage.setPayMoney(storeOrder.getPayMoney().add(postMoney));
             productPackage.setPackageId(storeProductPackage.getPackageId());
             storeOrder.setPackageJson(JSONUtil.toJsonStr(productPackage));
             storeOrder.setPackageId(storeProductPackage.getPackageId());
@@ -1583,6 +1590,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 paymentService.updateFsStorePayment(storePaymentMap);
                 order=fsStoreOrderMapper.selectFsStoreOrderById(storePayment.getOrderId());
 
+                if(order == null){
+                    logger.info("当前订单不存在! 可能为收款类型");
+                    return "";
+                }
                 if(order!=null&&!order.getPaid().equals(0)){
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     return "";
@@ -1634,8 +1645,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
         }
         catch (Exception e){
-            logger.info("payConfirm:"+e.getMessage());
-            logger.info("payConfirm:"+e.getLocalizedMessage());
+            logger.error("payConfirm: {} ",e.getMessage(),e);
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return "";
         }
@@ -3107,7 +3117,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         }
         order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
         order.setUserAddress(ParseUtils.parseIdCard(order.getUserAddress()));
-
         String json=configService.selectConfigByKey("store.config");
         StoreConfig config=JSONUtil.toBean(json,StoreConfig.class);
         Calendar calendar = Calendar.getInstance();
@@ -3116,6 +3125,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         String payLimitTime = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss");
         FsStoreProductPackage productPackage=null;
         if(order.getIsPackage()!=null&&order.getIsPackage()==1){
+
             productPackage= productPackageService.selectFsStoreProductPackageById(order.getPackageId());
         }
         return R.ok().put("order",order).put("productPackage",productPackage).put("payLimitTime",payLimitTime);

+ 18 - 0
fs-service-system/src/test/java/com/fs/store/service/impl/FsStorePaymentServiceImplTest.java

@@ -0,0 +1,18 @@
+package com.fs.store.service.impl;
+
+import com.fs.store.service.IFsStorePaymentService;
+import junit.framework.TestCase;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+
+public class FsStorePaymentServiceImplTest {
+
+    @Autowired
+    IFsStorePaymentService fsStorePaymentService;
+
+    public void testTestPaymentSync() {
+        fsStorePaymentService.paymentSync();
+    }
+}