‘linchangsheng’ 11 месяцев назад
Родитель
Сommit
ef3ba647ec

+ 15 - 50
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/PayOrderLogic.java

@@ -106,6 +106,9 @@ public class PayOrderLogic {
     @Autowired
     WorkerSettlementManualService workerSettlementManualService;
 
+    @Autowired
+    AdminWebsitService adminWebsitService;
+
     public Page<WebsitNormCharge> pageCharge(String name, String categoryId, String orderId,Integer pageNum, Integer pageSize) {
         CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
         Page<WebsitNormCharge> list = websitNormChargeService.lambdaQuery()
@@ -172,8 +175,7 @@ public class PayOrderLogic {
 
         BigDecimal totalAmount = new BigDecimal("0");
         BigDecimal workerAmount = new BigDecimal("0");
-        BigDecimal websitAmount = new BigDecimal("0");
-        BigDecimal websitProceAmount = new BigDecimal("0");
+
         BigDecimal workerProceAmount = new BigDecimal("0");
         BigDecimal manualAmount = new BigDecimal("0");
 
@@ -193,18 +195,12 @@ public class PayOrderLogic {
 
             totalAmount = totalAmount.add(workerOrderItem.getTotalAmount());
             workerAmount = workerAmount.add(workerOrderItem.getWorkerAmount());
-            websitAmount = websitAmount.add(workerOrderItem.getWebsitAmount());
-            websitProceAmount = websitProceAmount.add(workerOrderItem.getWebsitProceAmount());
+
             workerProceAmount = workerProceAmount.add(workerOrderItem.getWorkerProceAmount());
             manualAmount = manualAmount.add(Objects.isNull(workerOrderItem.getManualAmount()) ? BigDecimal.ZERO : workerOrderItem.getManualAmount());
             num = num.add(workerOrderItem.getNum());
         }
 
-        if (websitProceAmount.doubleValue() > 0.01) {
-            workerOrderBuy.setWebsitProceAmount(websitProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
-        }else {
-            workerOrderBuy.setWebsitProceAmount(Convert.toBigDecimal("0.01"));
-        }
 
         if (workerProceAmount.doubleValue() > 0.01) {
             workerOrderBuy.setWorkerProceAmount(workerProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
@@ -212,11 +208,9 @@ public class PayOrderLogic {
             workerOrderBuy.setWorkerProceAmount(Convert.toBigDecimal("0.01"));
         }
         workerOrderBuy.setWorkerProceAmount(workerProceAmount);
-        workerOrderBuy.setWebsitProceAmount(websitProceAmount);
-        workerOrderBuy.setCommissionAmount(workerProceAmount.add(websitProceAmount));
+        workerOrderBuy.setCommissionAmount(workerProceAmount);
         workerOrderBuy.setTotalAmount(totalAmount);
         workerOrderBuy.setWorkerAmount(workerAmount);
-        workerOrderBuy.setWebsitAmount(websitAmount);
         workerOrderBuy.setManualAmount(manualAmount);
 
         workerOrderBuy.setNum(num);
@@ -245,33 +239,18 @@ public class PayOrderLogic {
         workerOrderItem.setUnit(websitGoods.getGoodsSalesUnit());
         if (websitGoods.getNormType().equals("M")) {
             workerOrderItem.setChargeType("ACC");
-            if (workerOrderItem.getSettlementType().equals("OWN")) {
-                workerOrderItem.setWebsitAmount(websitGoods.getSelfWebsitAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
-                workerOrderItem.setWorkerAmount(websitGoods.getSelfWorkerAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
-            }else {
-                workerOrderItem.setWebsitAmount(websitGoods.getOutWebsitAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
-                workerOrderItem.setWorkerAmount(websitGoods.getOutWorkerAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
-            }
+
+            workerOrderItem.setWorkerAmount(websitGoods.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
+
         }else {
             workerOrderItem.setChargeType("SERV");
 
-                workerOrderItem.setWebsitAmount(workerOrderItem.getNormAmount().multiply(websitGoods.getSelfWebsitAmount().multiply(Convert.toBigDecimal("0.01")))
-                        .multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
-
-                workerOrderItem.setWorkerAmount(workerOrderItem.getNormAmount().multiply(websitGoods.getSelfWorkerAmount().multiply(Convert.toBigDecimal("0.01")))
-                        .multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
+            workerOrderItem.setWorkerAmount(websitGoods.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
 
         }
 
-        BigDecimal websitProceAmount = workerOrderItem.getWebsitAmount().multiply(Convert.toBigDecimal("0.006"));
         BigDecimal workerProceAmount = workerOrderItem.getWorkerAmount().multiply(Convert.toBigDecimal("0.006"));
 
-        if (websitProceAmount.doubleValue() > 0.01) {
-            workerOrderItem.setWebsitProceAmount(websitProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
-
-        }else {
-            workerOrderItem.setWebsitProceAmount(Convert.toBigDecimal("0.01"));
-        }
 
         if (workerProceAmount.doubleValue() > 0.01) {
             workerOrderItem.setWorkerProceAmount(workerProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
@@ -281,12 +260,7 @@ public class PayOrderLogic {
         }
 
         workerOrderItem.setWorkerAmount(workerOrderItem.getWorkerAmount().subtract(workerOrderItem.getWorkerProceAmount()));
-        workerOrderItem.setWebsitAmount(workerOrderItem.getWebsitAmount().subtract(workerOrderItem.getWebsitProceAmount()));
 
-        if (workerOrderItem.getWebsitAmount().doubleValue() < 0){
-            workerOrderItem.setWebsitProceAmount(Convert.toBigDecimal("0"));
-            workerOrderItem.setWebsitAmount(Convert.toBigDecimal("0"));
-        }
 
         if (workerOrderItem.getWorkerAmount().doubleValue() < 0){
             workerOrderItem.setWorkerProceAmount(Convert.toBigDecimal("0"));
@@ -309,23 +283,17 @@ public class PayOrderLogic {
         }
         if (workerOrderItem.getSettlementType().equals("OWN")) {
             workerOrderItem.setWebsitAmount(websitNormCharge.getSelfWebsitAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
-            workerOrderItem.setWorkerAmount(websitNormCharge.getSelfWorkerAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
+
         }else {
             workerOrderItem.setWebsitAmount(websitNormCharge.getOutWebsitAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
             workerOrderItem.setWorkerAmount(websitNormCharge.getOutWorkerAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
         }
 
+        workerOrderItem.setWorkerAmount(workerOrderItem.getTotalAmount());
+
 
-        BigDecimal websitProceAmount = workerOrderItem.getWebsitAmount().multiply(Convert.toBigDecimal("0.006"));
         BigDecimal workerProceAmount = workerOrderItem.getWorkerAmount().multiply(Convert.toBigDecimal("0.006"));
 
-        if (websitProceAmount.doubleValue() > 0.01) {
-            workerOrderItem.setWebsitProceAmount(websitProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
-        }else if (workerOrderItem.getWorkerAmount().doubleValue() < 0.01){
-            workerOrderItem.setWebsitProceAmount(Convert.toBigDecimal("0"));
-        }else {
-            workerOrderItem.setWebsitProceAmount(Convert.toBigDecimal("0.01"));
-        }
 
         if (workerProceAmount.doubleValue() > 0.01) {
             workerOrderItem.setWorkerProceAmount(workerProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
@@ -335,12 +303,7 @@ public class PayOrderLogic {
         }
 
         workerOrderItem.setWorkerAmount(workerOrderItem.getWorkerAmount().subtract(workerOrderItem.getWorkerProceAmount()));
-        workerOrderItem.setWebsitAmount(workerOrderItem.getWebsitAmount().subtract(workerOrderItem.getWebsitProceAmount()));
 
-        if (workerOrderItem.getWebsitAmount().doubleValue() < 0){
-            workerOrderItem.setWebsitProceAmount(Convert.toBigDecimal("0"));
-            workerOrderItem.setWebsitAmount(Convert.toBigDecimal("0"));
-        }
 
         if (workerOrderItem.getWorkerAmount().doubleValue() < 0){
             workerOrderItem.setWorkerProceAmount(Convert.toBigDecimal("0"));
@@ -365,6 +328,8 @@ public class PayOrderLogic {
         CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
         WorkerOrder workerOrder = workerOrderService.getById(orderId);
 
+        AdminWebsit adminWebsit = adminWebsitService.getById(workerOrder.getWebsitId());
+
         if (!workerOrder.getPayStatus().equals("WAIT")){
             throw new RemoteServiceException("订单已取消支付");
         }

+ 32 - 0
mall-server-api/src/main/java/com/gree/mall/manager/config/wx/WxConfiguration.java

@@ -8,6 +8,8 @@ import com.github.binarywang.wxpay.service.WxPayService;
 import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
 import com.google.common.collect.Maps;
 import com.gree.mall.manager.plus.entity.AdminCompanyWechat;
+import com.gree.mall.manager.plus.entity.AdminCompanyWechatPayConfig;
+import com.gree.mall.manager.plus.service.AdminCompanyWechatPayConfigService;
 import com.gree.mall.manager.plus.service.AdminCompanyWechatService;
 import com.gree.mall.manager.utils.RedisUtil;
 import me.chanjar.weixin.mp.api.WxMpService;
@@ -39,6 +41,12 @@ public class WxConfiguration {
     //小程序微信支付服务 key = companyWechatId
     public static Map<String,WxPayService> wxSubPayServices = Maps.newConcurrentMap();
 
+
+    //微信配置支付服务 key = companyWechatId
+    public static Map<String,WxPayService> wxPayWebsitServices = Maps.newConcurrentMap();
+    //小程序配置微信支付服务 key = companyWechatId
+    public static Map<String,WxPayService> wxSubPayWebsitServices = Maps.newConcurrentMap();
+
     //微信公众号
     public static Map<String, WxMpService> wxMpServices = Maps.newConcurrentMap();
     //发货模板  key = companyWechatId
@@ -54,11 +62,35 @@ public class WxConfiguration {
     AdminCompanyWechatService AdminCompanyWechatService;
 
 
+    @Autowired
+    AdminCompanyWechatPayConfigService adminCompanyWechatPayConfigService;
+
+
     @PostConstruct
     public void initWxServices() {
         //查询企业微信配置
         List<AdminCompanyWechat> list = AdminCompanyWechatService.list();
+        List<AdminCompanyWechatPayConfig> adminCompanyWechatPayConfigs = adminCompanyWechatPayConfigService.list();
         reloadWxConfig(list);
+        reloadWxWebsitConfig(adminCompanyWechatPayConfigs);
+    }
+
+    private void reloadWxWebsitConfig(List<AdminCompanyWechatPayConfig> list) {
+
+        for (AdminCompanyWechatPayConfig adminCompanyWechatPayConfig : list) {
+            if(StringUtils.isBlank(adminCompanyWechatPayConfig.getMchId()) || StringUtils.isBlank(adminCompanyWechatPayConfig.getSubAppId())){
+                continue;
+            }
+/*            //初始化企业微信服务
+            //initCpService(companyWechat,redisUtil);
+            //初始化微信支付服务
+            initWxPayService(adminCompanyWechatPayConfig,notifyUrl);
+            initWxSubPayService(adminCompanyWechatPayConfig,notifyUrl);
+            //初始化微信小程序服务
+            initWxMaService(adminCompanyWechatPayConfig,redisUtil);
+            //初始化微信公众号服务
+            initWxMpService(adminCompanyWechatPayConfig,redisUtil);*/
+        }
     }
 
     public void reloadWxConfig(List<AdminCompanyWechat> list){

+ 2 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/common/CommonLogic.java

@@ -152,9 +152,10 @@ public class CommonLogic {
         }
 
         AdminUserDeptRela adminUserDeptRela = adminUserDeptRelaService.lambdaQuery().eq(AdminUserDeptRela::getAdminUserId, adminUser.getAdminUserId()).last("limit 1").one();
-        adminUserCom.setAdminDept(adminDeptService.getById(adminUserDeptRela.getAdminDeptId()));
+
 
         if (adminUserDeptRela != null){
+            adminUserCom.setAdminDept(adminDeptService.getById(adminUserDeptRela.getAdminDeptId()));
             List<AdminDeptWebsit> adminDeptWebsitList = adminDeptWebsitService.lambdaQuery().eq(AdminDeptWebsit::getAdminDeptId, adminUserDeptRela.getAdminDeptId()).list();
             List<String> collect = adminDeptWebsitList.stream().map(AdminDeptWebsit::getWebsitId).collect(Collectors.toList());
             if (!CollectionUtils.isEmpty(adminUserCom.getAdminWebsitIds())) {