瀏覽代碼

update:货到付款自定义金额

ct 13 小時之前
父節點
當前提交
092786d1d5

+ 7 - 1
fs-admin/src/main/java/com/fs/store/controller/FsStoreOrderController.java

@@ -431,8 +431,14 @@ public class FsStoreOrderController extends BaseController {
     @PreAuthorize("@ss.hasPermi('store:storeOrder:updateErpOrder')")
     @PostMapping("/updateErpOrder")
     public R updateErpOrder(@Validated @RequestBody FsStoreOrderExpressEditParam param) {
-        IErpOrderService erpOrderService = getErpService();
         FsStoreOrder order = fsStoreOrderService.selectFsStoreOrderById(param.getOrderId());
+        FsErpConfig erpConfig = configUtil.getErpConfig();
+        List<Long> noErpCompany = erpConfig.getNoErpCompany();
+        if (noErpCompany.contains(order.getCompanyId())) {
+            logger.info("订单:{},相关公司不推送erp", order.getOrderCode());
+            return R.ok("订单:"+ order.getOrderCode()+"相关公司不推送erp");
+        }
+        IErpOrderService erpOrderService = getErpService();
         ErpOrderQueryRequert request = new ErpOrderQueryRequert();
         request.setCode(order.getExtendOrderId());
         ErpOrderQueryResponse response = erpOrderService.getOrder(request);

+ 5 - 2
fs-company-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -193,8 +193,11 @@ public class StoreOrderController extends AppBaseController
 
     @ApiOperation("改价")
     @GetMapping("/updateSalseOrderMoney")
-    public R updateSalseOrderMoney( @RequestParam("createOrderKey")String createOrderKey, @RequestParam("money") BigDecimal money, HttpServletRequest request){
-        return fsStoreOrderService.updateSalseOrderMoney(createOrderKey,money);
+    public R updateSalseOrderMoney( @RequestParam("createOrderKey")String createOrderKey,
+                                    @RequestParam("money") BigDecimal money,
+                                    @RequestParam(value = "payAmount",required = false) BigDecimal payAmount,
+                                    HttpServletRequest request){
+        return fsStoreOrderService.updateSalseOrderMoney(createOrderKey,money,payAmount);
     }
 
 

+ 4 - 0
fs-service-system/src/main/java/com/fs/his/config/FsErpConfig.java

@@ -2,8 +2,12 @@ package com.fs.his.config;
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class FsErpConfig {
+    //不推送erp的公司id
+    List<Long> noErpCompany;
     //erp接口
     Integer erpOpen;//是否开启ERP
     Integer erpType;//1:管易 2:旺店通 3:金博

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/config/StoreConfig.java

@@ -13,6 +13,7 @@ public class StoreConfig implements Serializable {
     private BigDecimal serviceFee;//服务费
     private Integer salesPriceRate;//成本售价比例
     private Integer payRate;//支付比例
+    private Integer payAmount;//货到付款自定义金额
     private Integer unPayTime;//未支付订单自动取消时间
     private Integer tuiMoneyRate;//公司佣金比例 支付金额-(订单金额*rate%)
     private Integer createMoneyRate;//公司制单金额最低比例

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

@@ -161,7 +161,7 @@ public interface IFsStoreOrderService
 
     R addUserCart(long userId, String createOrderKey);
 
-    R updateSalseOrderMoney(String createOrderKey, BigDecimal money);
+    R updateSalseOrderMoney(String createOrderKey, BigDecimal money,BigDecimal payAmount);
 
     Integer selectFsStoreOrderCountByType(Long companyId, long userId, int type);
 

+ 42 - 7
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -73,6 +73,7 @@ import com.github.binarywang.wxpay.config.WxPayConfig;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.WxPayService;
 import lombok.Synchronized;
+import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.aop.framework.AopContext;
@@ -98,6 +99,7 @@ import static com.fs.store.constants.StoreConstants.DELIVERY;
  */
 @Service
 @EnableAspectJAutoProxy(proxyTargetClass = true,exposeProxy = true)
+@Slf4j
 public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 {
 
@@ -570,6 +572,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             Long prescribe = carts.stream().filter(item -> item.getProductType()!=null&&item.getProductType()==2).count();
             if(prescribe>0){
                 storeOrder.setIsPrescribe(1);
+            } else {
+                storeOrder.setIsPrescribe(0);
             }
             Integer flag=fsStoreOrderMapper.insertFsStoreOrder(storeOrder);
             if (flag==0) {
@@ -651,10 +655,15 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String payLimitTime = format.format(calendar.getTime() );
             //删除推荐订单KEY
-            if(StringUtils.isNotEmpty(param.getCreateOrderKey())){
-                redisCache.deleteObject("createOrderKey:"+param.getCreateOrderKey());
-                redisCache.deleteObject("orderCarts:" +param.getCreateOrderKey());
-                redisCache.deleteObject("createOrderMoney:" +param.getCreateOrderKey());
+            String createOrderKey = param.getCreateOrderKey();
+            if(StringUtils.isNotEmpty(createOrderKey)){
+                redisCache.deleteObject("createOrderKey:"+ createOrderKey);
+                redisCache.deleteObject("orderCarts:" + createOrderKey);
+                redisCache.deleteObject("createOrderMoney:" + createOrderKey);
+                //货到付款自定义金额 key改为id存储
+                BigDecimal amount=redisCache.getCacheObject("createOrderAmount:"+createOrderKey);
+                redisCache.deleteObject("createOrderAmount:" + createOrderKey);
+                redisCache.setCacheObject("orderAmount:"+storeOrder.getId(), amount, 24, TimeUnit.HOURS);//物流代收自定义金额
             }
             return R.ok().put("order", storeOrder).put("payLimitTime",payLimitTime);
         }
@@ -1143,6 +1152,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             Long prescribe = carts.stream().filter(item -> item.getProductType()!=null&&item.getProductType()==2).count();
             if(prescribe>0){
                 storeOrder.setIsPrescribe(1);
+            } else {
+                storeOrder.setIsPrescribe(0);
             }
             Integer flag=fsStoreOrderMapper.insertFsStoreOrder(storeOrder);
             if (flag==0) {
@@ -1349,8 +1360,14 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Override
     public void createOmsOrder(Long orderId) throws ParseException {
-        IErpOrderService erpOrderService = getErpService();
         FsStoreOrder order=fsStoreOrderMapper.selectFsStoreOrderById(orderId);
+        FsErpConfig erpConfig = configUtil.getErpConfig();
+        List<Long> noErpCompany = erpConfig.getNoErpCompany();
+        if (noErpCompany.contains(order.getCompanyId())) {
+            log.info("订单:{},相关公司不推送erp", order.getOrderCode());
+            return;
+        }
+        IErpOrderService erpOrderService = getErpService();
         if(!StringUtils.isEmpty(order.getExtendOrderId())&&order.getStatus()!=1){
             return;
         }
@@ -1852,8 +1869,14 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Override
     public R updateExpress(FsStoreOrderExpressEditParam param) {
-        IErpOrderService erpOrderService = getErpService();
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderById(param.getOrderId());
+        FsErpConfig erpConfig = configUtil.getErpConfig();
+        List<Long> noErpCompany = erpConfig.getNoErpCompany();
+        if (noErpCompany.contains(order.getCompanyId())) {
+            logger.info("订单:{},相关公司不推送erp", order.getOrderCode());
+            return R.ok("订单:"+ order.getOrderCode()+"相关公司不推送erp");
+        }
+        IErpOrderService erpOrderService = getErpService();
         if(order.getStatus()!=1){
             return R.error("只有待发货状态可以同步");
         }
@@ -1999,7 +2022,18 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     }
 
     @Override
-    public R updateSalseOrderMoney(String createOrderKey, BigDecimal money) {
+    public R updateSalseOrderMoney(String createOrderKey, BigDecimal money,BigDecimal payAmount) {
+        //货到付款自定义金额
+        if (payAmount==null){
+            String configJson=configService.selectConfigByKey("store.config");
+            StoreConfig config=JSONUtil.toBean(configJson,StoreConfig.class);
+            Integer amount = config.getPayAmount();
+            if (amount!=null){
+                payAmount = new BigDecimal(amount);
+            }
+        }
+
+
         if(money==null){
             return R.error("请输入价格");
         }
@@ -2027,6 +2061,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
         }
         redisCache.setCacheObject("createOrderMoney:"+createOrderKey, money, 24, TimeUnit.HOURS);
+        redisCache.setCacheObject("createOrderAmount:"+createOrderKey, payAmount, 24, TimeUnit.HOURS);//物流代收自定义金额
         return R.ok();
     }
 

+ 6 - 2
fs-user-app/src/main/java/com/fs/app/controller/CompanyOrderController.java

@@ -78,12 +78,16 @@ public class CompanyOrderController extends  AppBaseController {
 
     @ApiOperation("改价")
     @GetMapping("/updateSalseOrderMoney")
-    public R updateSalseOrderMoney(@RequestParam("token")String token,@RequestParam("createOrderKey")String createOrderKey, @RequestParam("money") BigDecimal money, HttpServletRequest request){
+    public R updateSalseOrderMoney(@RequestParam("token")String token,
+                                   @RequestParam("createOrderKey")String createOrderKey,
+                                   @RequestParam("money") BigDecimal money,
+                                   @RequestParam(value = "payAmount",required = false) BigDecimal payAmount,
+                                   HttpServletRequest request){
         Long userId=redisCache.getCacheObject("company-user-token:"+token);
         if(userId==null){
             return R.error(403,"用户失效");
         }
-        return orderService.updateSalseOrderMoney(createOrderKey,money);
+        return orderService.updateSalseOrderMoney(createOrderKey,money,payAmount);
     }
 
 

+ 7 - 1
fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -469,7 +469,13 @@ public class StoreOrderController extends  AppBaseController {
                     //货到付款
                     order.setPayType("3");
                     order.setPayDelivery(order.getPayPrice() );
-                    order.setPayMoney(BigDecimal.ZERO);
+//                    order.setPayMoney(BigDecimal.ZERO);
+                    BigDecimal amount=redisCache.getCacheObject("orderAmount:"+order.getId());
+                    BigDecimal payMoney = BigDecimal.ZERO;
+                    if (amount != null){
+                        payMoney=amount;
+                    }
+                    order.setPayMoney(payMoney);
                 }
                 orderService.updateFsStoreOrder(order);
             }