Explorar o código

Merge remote-tracking branch 'origin/master'

wujiefeng hai 1 ano
pai
achega
c04a026b92

+ 21 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectPaySettingServiceImpl.java

@@ -508,8 +508,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
 
         OrgWithdrawalModel model = new OrgWithdrawalModel();
         //1. 查询提现账号信息
-        OrgPayConfigModel orgPayConfigModel = getOrgPayConfig(
-                param.getProjectOid(), param.getOid(), param.getPaymentType(), Boolean.FALSE);
+        OrgPayConfigModel orgPayConfigModel = getOrgPayConfig(param.getProjectOid(), param.getOid(), param.getPaymentType(), Boolean.FALSE);
         model.setOrgPayConfigModel(orgPayConfigModel);
 
         // 查询项目的提现限制
@@ -847,7 +846,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
     }
 
     /**
-     * 初始结构支付账户
+     * 初始机构支付账户 (支付中心)
      *
      * @param entity
      * @return
@@ -947,6 +946,25 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 判断结构是否注册 支付类型
+     *
+     * @param projectOid
+     * @param oid
+     * @param paymentType
+     * @return
+     */
+    public ResultContent judgeOrgSupport(String projectOid, String oid, PaymentType paymentType) {
+        ProjectOrgPaySettingInfo entity = projectPaySettingInfoDao.findTopByBelongOigAndProjectOidAndChannelType(oid, projectOid, paymentType);
+        if (ObjectUtils.isEmpty(entity)) {
+            return ResultContent.buildFail(String.format("不支持%s", paymentType.getRemark()));
+        }
+        if (entity.getState() == null || entity.getState() != DataState.Enable) {
+            return ResultContent.buildFail(String.format("%s未启用", paymentType.getRemark()));
+        }
+        return ResultContent.buildSuccess();
+    }
+
     public ProjectPaySettingModel toModel(ProjectPaySetting entity) {
         ProjectPaySettingModel model = null;
         if (ObjectUtils.isNotEmpty(entity)) {

+ 20 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/OrderService.java

@@ -9,10 +9,13 @@ import com.zhongshu.card.client.model.payment.CreateOrderParam;
 import com.zhongshu.card.server.core.dao.devices.DeviceInfoDao;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
 import com.zhongshu.card.server.core.domain.devices.DeviceProduct;
+import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
 import com.zhongshu.card.server.core.domain.payment.ExpenseFlow;
 import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.devices.DeviceInfoServiceImpl;
 import com.zhongshu.card.server.core.service.devices.deviceProduct.DeviceProductBindDeviceService;
+import com.zhongshu.card.server.core.service.paySetting.ProjectPaySettingServiceImpl;
 import com.zhongshu.card.server.core.util.CommonUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
@@ -39,6 +42,12 @@ public class OrderService extends SuperService {
     @Autowired
     private ExpenseFlowServiceImpl expenseFlowService;
 
+    @Autowired
+    private DeviceInfoServiceImpl deviceInfoService;
+
+    @Autowired
+    private ProjectPaySettingServiceImpl projectPaySettingService;
+
     /**
      * 小程序扫 设备码 下单 (微信)
      *
@@ -67,6 +76,17 @@ public class OrderService extends SuperService {
             return ResultContent.buildFail("消费金额不能为空");
         }
 
+        // 判断设备关联的机构是配置微信支付
+        Organization organization = deviceInfoService.getDeviceReceiveOrganization(deviceInfo);
+        if (ObjectUtils.isEmpty(organization)) {
+            return ResultContent.buildFail("设备未绑定收款机构,下单失败");
+        }
+        // 判断机构是否支持 该支付类型
+        ResultContent resultContent = projectPaySettingService.judgeOrgSupport(deviceInfo.getProjectOid(), organization.getOid(), PaymentType.WeChatPay);
+        if (resultContent.isFailed()) {
+            return ResultContent.buildFail(resultContent.getMsg());
+        }
+
         String mqttDataId = CommonUtil.UUID();
         ExpenseFlow expenseFlow = expenseFlowService.init(mqttDataId);
         if (ObjectUtils.isEmpty(expenseFlow)) {