TRX il y a 1 an
Parent
commit
c22a914bf0

+ 6 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/PayConfigField.java

@@ -3,6 +3,7 @@ package com.zhongshu.card.client.model.paySetting.paySetting;
 import com.github.microservice.types.payment.PayFieldType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -15,6 +16,7 @@ import lombok.NoArgsConstructor;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
+@Builder
 public class PayConfigField {
 
     @Schema(description = "字段名称,如:名称,appId")
@@ -23,7 +25,7 @@ public class PayConfigField {
     @Schema(description = "字段类型,如:Str, File")
     private PayFieldType type;
 
-    @Schema(description = "对应的后端字段")
+    @Schema(description = "对应的后端字段,如:name、appId")
     private String key;
 
     @Schema(description = "是否必须")
@@ -31,4 +33,7 @@ public class PayConfigField {
 
     @Schema(description = "备注")
     private String remark;
+
+    @Schema(description = "最大长度")
+    private Integer maxLength = 500;
 }

+ 25 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/ProjectPaySettingAllModel.java

@@ -0,0 +1,25 @@
+package com.zhongshu.card.client.model.paySetting.paySetting;
+
+import com.github.microservice.types.payment.PaymentType;
+import com.zhongshu.card.client.model.projectAbout.PayChannelConfigModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/7/26
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectPaySettingAllModel extends ProjectPaySettingModel {
+
+    @Schema(description = "字段")
+    private List<PayConfigField> fields = new ArrayList<>();
+
+}

+ 0 - 4
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/PayChannelConfigParam.java

@@ -6,14 +6,10 @@ import com.zhongshu.card.client.model.base.SuperParam;
 import com.zhongshu.card.client.type.DataState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * 项目的 支付渠道配置模型
  *

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

@@ -2,6 +2,7 @@ package com.zhongshu.card.server.core.service.paySetting;
 
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.net.ResultMessage;
+import com.github.microservice.types.payment.PayFieldType;
 import com.github.microservice.types.payment.PaymentType;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfig;
@@ -114,8 +115,14 @@ public class ProjectPaySettingServiceImpl extends SuperService {
             configModel = new WxPayConfigModel();
         }
         BeanUtils.copyProperties(param, configModel);
-        configModel.setPrivateKeyStr(AesUtils.turnMultipartFileToString(param.getPrivateKeyFile()));
-
+        String privateKeyStr = AesUtils.turnMultipartFileToString(param.getPrivateKeyFile());
+        if (StringUtils.isNotEmpty(privateKeyStr)) {
+            configModel.setPrivateKeyStr(privateKeyStr);
+        }
+        configModel.setPrivateKeyType("str");
+        if (StringUtils.isNotEmpty(configModel.getPrivateKeyStr())) {
+            return ResultContent.buildFail("证书文件为空");
+        }
         return saveProjectPaySetting(param.getProjectOid(), PaymentType.WeChat, configModel);
     }
 
@@ -129,6 +136,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         WxPayConfigModel model = null;
         ProjectPaySetting paySetting = getProjectPaySetting(projectOid, PaymentType.WeChat);
         if (ObjectUtils.isNotEmpty(paySetting)) {
+
             model = (WxPayConfigModel) paySetting.getPayConfig();
         }
         return ResultContent.buildSuccess(model);
@@ -265,6 +273,21 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         return model;
     }
 
+    public ProjectPaySettingModel toAllModel(ProjectPaySetting entity) {
+        ProjectPaySettingAllModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new ProjectPaySettingAllModel();
+            BeanUtils.copyProperties(entity, model);
+            // 关联的支付产品信息
+            model.setPayChannelConfigModel(projectChannelConfigService.getProjectPayChannelModel(entity.getChannelType()));
+
+            if (entity.getChannelType() == PaymentType.WeChat) {
+                model.setFields(getWxConfig());
+            }
+        }
+        return model;
+    }
+
     /**
      * 检查项目是否支持 指定的付款方式
      *
@@ -294,4 +317,16 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 得到微信支付需要的字段
+     *
+     * @return
+     */
+    public List<PayConfigField> getWxConfig() {
+        List<PayConfigField> fields = new ArrayList<>(4);
+        PayConfigField.builder().name("").key("").type(PayFieldType.Str).isMust(Boolean.TRUE).build();
+
+
+        return fields;
+    }
 }