Bladeren bron

更新!

TRX 1 jaar geleden
bovenliggende
commit
5c411b949c

+ 4 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/PayShareListModel.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.client.model.paySetting.paySetting;
 
+import com.github.microservice.types.payment.PaymentType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -22,6 +23,9 @@ public class PayShareListModel {
     @Schema(description = "项目ID")
     private String projectOid;
 
+    @Schema(description = "支付渠道")
+    private PaymentType paymentType;
+
     @Schema(description = "规则名称")
     private String name;
 

+ 4 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/PayShareListParam.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.client.model.paySetting.paySetting;
 
+import com.github.microservice.types.payment.PaymentType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotEmpty;
 import lombok.AllArgsConstructor;
@@ -24,6 +25,9 @@ public class PayShareListParam {
     @NotEmpty
     private String projectOid;
 
+    @Schema(description = "支付渠道")
+    private PaymentType paymentType;
+
     @Schema(description = "规则名称")
     @NotEmpty
     private String name;

+ 5 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/paySetting/ProjectMainPaySettingController.java

@@ -65,8 +65,11 @@ public class ProjectMainPaySettingController {
     @Operation(summary = "得到项目的灵活分账规则列表", description = "得到项目的灵活分账规则列表")
     @RequestMapping(value = "getPayShareList", method = {RequestMethod.POST})
     public ResultContent<List<PayShareListModel>> getPayShareList(
-            @RequestBody @Valid ProjectOidParam param) {
-        return projectMainPaySettingService.getPayShareList(param.getProjectOid());
+            @RequestBody @Valid PaymentTypeParam param) {
+        if (param.getPaymentType() == null) {
+            return ResultContent.buildFail("paymentType不能为空");
+        }
+        return projectMainPaySettingService.getPayShareList(param.getProjectOid(), param.getPaymentType());
     }
 
     @ResourceAuth(value = "user", type = AuthType.User)

+ 2 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/PayShareListDao.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.server.core.dao.projectAbout;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.github.microservice.types.payment.PaymentType;
 import com.zhongshu.card.server.core.domain.paySetting.PayShareList;
 
 import java.util.List;
@@ -14,6 +15,6 @@ public interface PayShareListDao extends MongoDao<PayShareList> {
 
     PayShareList findTopByProjectOidAndName(String projectOid, String name);
 
-    List<PayShareList> findByProjectOidOrderBySortAsc(String projectOid);
+    List<PayShareList> findByProjectOidAndPaymentTypeOrderBySortAsc(String projectOid, PaymentType paymentType);
 
 }

+ 4 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/ProjectMainPaySettingDao.java

@@ -4,10 +4,14 @@ import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.github.microservice.types.payment.PaymentType;
 import com.zhongshu.card.server.core.dao.projectAbout.extend.ProjectMainPaySettingDaoExtend;
 import com.zhongshu.card.server.core.domain.paySetting.ProjectMainPaySetting;
+import com.zhongshu.card.server.core.domain.paySetting.ProjectOrgPaySettingInfo;
 
 public interface ProjectMainPaySettingDao extends MongoDao<ProjectMainPaySetting>, ProjectMainPaySettingDaoExtend {
 
     ProjectMainPaySetting findTopById(String id);
 
     ProjectMainPaySetting findTopByProjectOidAndChannelType(String projectOid, PaymentType channelType);
+
+    Integer countByPaySettingInfo(ProjectOrgPaySettingInfo paySettingInfo);
+
 }

+ 4 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/paySetting/PayShareList.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.server.core.domain.paySetting;
 
+import com.github.microservice.types.payment.PaymentType;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import com.zhongshu.card.server.core.domain.org.Organization;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -38,6 +39,9 @@ public class PayShareList extends SuperMain {
     @Schema(description = "关联数据ID")
     private String aboutDataId;
 
+    @Schema(description = "支付渠道")
+    private PaymentType paymentType;
+
     //-----------------------------业务 start----------------------
 
     @Schema(description = "规则名称")

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

@@ -151,6 +151,9 @@ public class ProjectMainPaySettingService extends SuperService {
         if (StringUtils.isEmpty(param.getProjectOid())) {
             return ResultContent.buildFail("projectOid不能为空");
         }
+        if (param.getPaymentType() == null) {
+            return ResultContent.buildFail("paymentType不能为空");
+        }
         Organization projectInfo = organizationDao.findTopByOid(param.getProjectOid());
         PayShareList entity = null;
         PayShareList nameTemp = payShareListDao.findTopByProjectOidAndName(param.getProjectOid(), param.getName());
@@ -201,8 +204,8 @@ public class ProjectMainPaySettingService extends SuperService {
         return ResultContent.buildSuccess();
     }
 
-    public ResultContent<List<PayShareListModel>> getPayShareList(String projectOid) {
-        List<PayShareList> list = payShareListDao.findByProjectOidOrderBySortAsc(projectOid);
+    public ResultContent<List<PayShareListModel>> getPayShareList(String projectOid, PaymentType paymentType) {
+        List<PayShareList> list = payShareListDao.findByProjectOidAndPaymentTypeOrderBySortAsc(projectOid, paymentType);
         List<PayShareListModel> models = new ArrayList<>();
         if (ObjectUtils.isNotEmpty(list)) {
             models = list.stream().map(this::toModel).collect(Collectors.toUnmodifiableList());
@@ -227,7 +230,7 @@ public class ProjectMainPaySettingService extends SuperService {
 
     public PayShareListModel toModel(PayShareList entity) {
         PayShareListModel model = null;
-        if (ObjectUtils.isEmpty(entity)) {
+        if (ObjectUtils.isNotEmpty(entity)) {
             model = new PayShareListModel();
             BeanUtils.copyProperties(entity, model);
         }

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

@@ -105,7 +105,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
 
         ProjectPaySetting projectPaySetting = projectPaySettingDao.findTopByProjectOidAndChannelType(projectOid, paymentType);
         if (ObjectUtils.isNotEmpty(projectPaySetting)) {
-            return ResultContent.buildFail(String.format("%s已存在", paymentType.name()));
+            return ResultContent.buildFail(String.format("%s已存在", paymentType.getRemark()));
         }
         projectPaySetting = new ProjectPaySetting();
         initEntityNoCheckOid(projectPaySetting);
@@ -141,9 +141,12 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         if (ObjectUtils.isEmpty(paySetting)) {
             return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
         }
+        // 判断是否可以删除
+        if (paySetting.getState() != null && paySetting.getState() == DataState.Enable) {
+            return ResultContent.buildFail(String.format("%s已启用,不能删除!", paySetting.getChannelType().getRemark()));
+        }
         projectPaySettingDao.delete(paySetting);
-        // 编辑账户不可用
-
+        // 维护支付中心的账户信息
         return ResultContent.buildSuccess();
     }
 
@@ -207,6 +210,11 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         if (ObjectUtils.isEmpty(entity)) {
             return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
         }
+        // 判断是否可以删除
+        int total = projectMainPaySettingDao.countByPaySettingInfo(entity);
+        if (total > 0) {
+            return ResultContent.buildFail("该账户已被项目引用,不能删除!");
+        }
         projectPaySettingInfoDao.delete(entity);
         initChangeDefault(null, entity.getBelongOig(), entity.getProjectOid(), entity.getChannelType());
         return ResultContent.buildSuccess();
@@ -514,9 +522,8 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         fields.add(PayConfigField.builder().name("协议模板id").key("planId").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
         fields.add(PayConfigField.builder().name("密钥").key("notifySecret").type(PayFieldType.Str).isMust(Boolean.TRUE).build());
 
-        fields.add(PayConfigField.builder().name("商户微信小程序AppId").key("mchntWxMpAppId").type(PayFieldType.Str).isMust(Boolean.TRUE).build());
-        fields.add(PayConfigField.builder().name("无感支付签约结果通知地址").key("notifyUrl").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(500).build());
-        fields.add(PayConfigField.builder().name("支付结果通知地址").key("payNotifyUrl").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(500).build());
+//        fields.add(PayConfigField.builder().name("商户微信小程序AppId").key("mchntWxMpAppId").type(PayFieldType.Str).isMust(Boolean.TRUE).build());
+        fields.add(PayConfigField.builder().name("通知地址").key("notifyUrl").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(500).build());
 
         return fields;
     }
@@ -626,8 +633,17 @@ public class ProjectPaySettingServiceImpl extends SuperService {
                 accountModel.setProductChannelType(PayProductChannelType.ChinaumsSenseless);
 
                 FrictionlessUnionConfigModel model = (FrictionlessUnionConfigModel) entity.getPayConfig();
+                // 支付中心
                 ChinaumsSenselessConf appConf = new ChinaumsSenselessConf();
                 appConf.setAppId(model.getAppId());
+                appConf.setAppKey(model.getAppKey());
+                appConf.setOrderNoPrefix(model.getOrderStart());
+                appConf.setMchId(model.getMchId());
+                appConf.setTerminalNo(model.getTid());
+                appConf.setPlanId(model.getPlanId());
+                appConf.setSecretKey(model.getNotifySecret());
+                appConf.setNotifyUrl(model.getNotifyUrl());
+
                 accountModel.setConf(appConf);
             }
 
@@ -643,7 +659,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
                 // 查看平台支付产品状态
                 PayChannelConfig channelConfig = payChannelConfigDao.findTopByPaymentType(paymentType);
                 if (ObjectUtils.isNotEmpty(channelConfig)) {
-                    if (channelConfig.getState() == null || channelConfig.getState() != DataState.Enable) {
+                    if (channelConfig.getState() != null && channelConfig.getState() == DataState.Enable) {
                         disable = Boolean.FALSE;
                     } else {
                         remark = "平台支付产品未启用";
@@ -672,7 +688,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         accountModel.setRemark(remark);
         com.github.microservice.pay.client.ret.ResultContent<Void> resultContent = payProductAccountService.upsert(accountModel);
         if (resultContent.getState() == ResultState.Success) {
-            log.info("更新支付产品账户成功...");
+            log.info("更新支付产品账户成功... disable {}", disable);
             orgPayAccountService.saveProjectAccount(projectOid, paymentType, accountModel.getProductChannelType());
         } else {
             log.error("更新支付产品账户出错: {}", resultContent.getMsg());