TRX 1 vuosi sitten
vanhempi
commit
28b8b54489
17 muutettua tiedostoa jossa 157 lisäystä ja 39 poistoa
  1. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/base/OidModel.java
  2. 24 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/PayChannelConfigModel.java
  3. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/ProjectExcelTemplateParam.java
  4. 1 13
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/ProjectOpenAPIController.java
  5. 23 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/paySetting/ProjectChannelController.java
  6. 8 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/paySetting/UnionFrictionlessSettingController.java
  7. 5 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/PayChannelConfigDao.java
  8. 1 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/ProjectExcelTemplateDao.java
  9. 0 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/impl/ProjectExcelTemplateDaoImpl.java
  10. 4 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/paySetting/PayChannelConfig.java
  11. 4 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/paySetting/UnionFrictionlessSetting.java
  12. 26 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/base/CommonService.java
  13. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/OpenAPIRegisterService.java
  14. 6 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/OrgPayAccountService.java
  15. 48 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectChannelConfigService.java
  16. 1 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/UnionFrictionlessSettingService.java
  17. 3 15
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectExcelTemplateService.java

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/base/OidModel.java

@@ -13,7 +13,7 @@ import java.io.Serializable;
 @Data
 public class OidModel implements Serializable {
 
-    @Schema(description = "构oid、项目oid")
+    @Schema(description = "构oid、项目oid")
     @NotEmpty
     private String oid;
 

+ 24 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/PayChannelConfigModel.java

@@ -1,12 +1,18 @@
 package com.zhongshu.card.client.model.projectAbout;
 
 import com.github.microservice.types.payment.PaymentChannelType;
+import com.github.microservice.types.payment.PaymentType;
+import com.github.microservice.types.payment.PaymentTypeModel;
 import com.zhongshu.card.client.model.base.SuperModel;
+import com.zhongshu.card.client.type.DataState;
 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;
+
 /**
  * 项目的 支付渠道配置模型
  *
@@ -35,4 +41,22 @@ public class PayChannelConfigModel extends SuperModel {
 
     @Schema(description = "汇率说明")
     private String rateMark;
+
+    @Schema(description = "数据状态")
+    private DataState state;
+
+    private String stateStr;
+
+    public String getStateStr() {
+        if (state != null) {
+            return state.getRemark();
+        }
+        return "";
+    }
+
+    /**
+     * 可用的对应支付渠道
+     */
+    private List<PaymentTypeModel> canUseAblePaymentTypes = new ArrayList<>();
+
 }

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/ProjectExcelTemplateParam.java

@@ -24,7 +24,7 @@ public class ProjectExcelTemplateParam {
     private String id;
 
     @NotEmpty
-    @Schema(description = "项目id")
+    @Schema(description = "项目id", hidden = true)
     private String projectOid;
 
     @NotEmpty

+ 1 - 13
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/ProjectOpenAPIController.java

@@ -1,25 +1,13 @@
 package com.zhongshu.card.server.core.controller.openAPI;
 
-import com.github.microservice.auth.security.annotations.ResourceAuth;
-import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.net.ResultContent;
-import com.zhongshu.card.client.model.base.IDParam;
 import com.zhongshu.card.client.model.project.ProjectSaveParam;
 import com.zhongshu.card.client.model.school.BookInfoAddParam;
 import com.zhongshu.card.client.model.school.BookInfoModel;
-import com.zhongshu.card.client.model.school.BookInfoSearch;
 import com.zhongshu.card.client.service.school.BookInfoService;
-import com.zhongshu.card.client.service.school.NoticeInfoService;
-import com.zhongshu.card.client.type.OrganizationUserType;
-import com.zhongshu.card.server.core.service.user.RoleServiceImpl;
-import io.swagger.v3.oas.annotations.Hidden;
 import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.web.PageableDefault;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -48,7 +36,7 @@ public class ProjectOpenAPIController {
     @Operation(summary = "项目保存", description = "项目保存")
     @RequestMapping(value = "saveProjectInfo", method = {RequestMethod.POST})
     public ResultContent saveProjectInfo(@RequestBody @Valid ProjectSaveParam param) {
-        return ResultContent.buildSuccess();
+        return ResultContent.buildSuccess(param);
     }
 
 }

+ 23 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/paySetting/ProjectChannelController.java

@@ -10,6 +10,7 @@ import com.zhongshu.card.client.model.projectAbout.PayChannelConfigModel;
 import com.zhongshu.card.client.model.projectAbout.PayChannelConfigParam;
 import com.zhongshu.card.client.model.projectAbout.PayChannelConfigSearch;
 import com.zhongshu.card.client.service.feign.ProjectPaySettingService;
+import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.server.core.service.paySetting.ProjectChannelConfigService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -31,7 +32,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/project/projectChannel")
-@Tag(name = "项目-支付设置")
+@Tag(name = "支付管理-支付产品")
 public class ProjectChannelController {
 
     @Autowired
@@ -68,6 +69,27 @@ public class ProjectChannelController {
         return projectChannelConfigService.getDetail(param.getId());
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "启用", description = "启用")
+    @RequestMapping(value = "enableData", method = {RequestMethod.POST})
+    public ResultContent enableData(@RequestBody IDParam param) {
+        return projectChannelConfigService.changeState(param.getId(), DataState.Enable);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "禁用", description = "禁用")
+    @RequestMapping(value = "disableData", method = {RequestMethod.POST})
+    public ResultContent disableData(@RequestBody IDParam param) {
+        return projectChannelConfigService.changeState(param.getId(), DataState.Enable);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到所有可用的支付产品", description = "得到所有可用的支付产品")
+    @RequestMapping(value = "getPlatFormAllPay", method = {RequestMethod.POST})
+    public ResultContent getPlatFormAllPay() {
+        return projectChannelConfigService.getPlatFormAllPay();
+    }
+
     //------------------------------feign start -----------------------
     @Operation(hidden = true, summary = "根据小程序appId得到配置", description = "根据小程序appId得到配置")
     @RequestMapping(value = "manager/getProjectWxPayConfig", method = {RequestMethod.POST})

+ 8 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/paySetting/UnionFrictionlessSettingController.java

@@ -4,6 +4,7 @@ import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.base.IDParam;
+import com.zhongshu.card.client.model.base.ProjectOidParam;
 import com.zhongshu.card.client.model.feign.ProjectWxPayParam;
 import com.zhongshu.card.client.model.paySetting.paySetting.UnionFrictionlessSettingParam;
 import com.zhongshu.card.client.model.paySetting.paySetting.WxPayConfigModel;
@@ -60,6 +61,13 @@ public class UnionFrictionlessSettingController {
         return unionFrictionlessSettingService.deleteInfo(param.getId());
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到项目所有的无感支付配置", description = "得到项目所有的无感支付配置")
+    @RequestMapping(value = "getProjectSecretFree", method = {RequestMethod.POST})
+    public ResultContent getProjectSecretFree(
+            @RequestBody @Valid ProjectOidParam param) {
+        return unionFrictionlessSettingService.getProjectSecretFree(param.getProjectOid());
+    }
 
     //------------------------------feign start -----------------------
     @Operation(hidden = true, summary = "根据小程序appId得到配置", description = "根据小程序appId得到配置")

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

@@ -2,9 +2,12 @@ package com.zhongshu.card.server.core.dao.projectAbout;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.github.microservice.types.payment.PaymentChannelType;
+import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.server.core.dao.projectAbout.extend.PayChannelConfigDaoExtend;
 import com.zhongshu.card.server.core.domain.paySetting.PayChannelConfig;
 
+import java.util.List;
+
 /**
  * 项目关联的 支付配置
  */
@@ -14,4 +17,6 @@ public interface PayChannelConfigDao extends MongoDao<PayChannelConfig>, PayChan
 
     PayChannelConfig findTopByProjectOidAndPaymentChannelType(String projectOid, PaymentChannelType paymentChannelType);
 
+    List<PayChannelConfig> findByState(DataState state);
+
 }

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

@@ -12,6 +12,5 @@ public interface ProjectExcelTemplateDao extends MongoDao<ProjectExcelTemplate>,
 
     ProjectExcelTemplate findTopById(String id);
 
-    ProjectExcelTemplate findTopByProjectOidAndMark(String projectOid, String mark);
-
+    ProjectExcelTemplate findTopByMark(String mark);
 }

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

@@ -37,10 +37,6 @@ public class ProjectExcelTemplateDaoImpl extends BaseImpl implements ProjectExce
     public Page<ProjectExcelTemplate> page(Pageable pageable, ProjectExcelTemplateSearch param) {
         Criteria criteria = buildCriteriaNotOid(param);
 
-        if (ObjectUtils.isNotEmpty(param.getProjectOid())) {
-            criteria.and("projectOid").is(param.getProjectOid());
-        }
-
         if (StringUtils.isNotEmpty(param.getMark())) {
             criteria.and("mark").is(param.getMark());
         }

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

@@ -1,6 +1,7 @@
 package com.zhongshu.card.server.core.domain.paySetting;
 
 import com.github.microservice.types.payment.PaymentChannelType;
+import com.zhongshu.card.client.type.DataState;
 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;
@@ -44,4 +45,7 @@ public class PayChannelConfig extends SuperMain {
 
     @Schema(description = "汇率说明")
     private String rateMark;
+
+    @Schema(description = "数据状态")
+    private DataState state = DataState.Enable;
 }

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

@@ -1,5 +1,6 @@
 package com.zhongshu.card.server.core.domain.paySetting;
 
+import com.github.microservice.types.payment.PaymentChannelType;
 import com.github.microservice.types.payment.PaymentType;
 import com.zhongshu.card.client.model.paySetting.payConfig.FrictionlessUnionConfig;
 import com.zhongshu.card.client.model.paySetting.payConfig.FrictionlessWeChatConfig;
@@ -41,6 +42,9 @@ public class UnionFrictionlessSetting extends SuperMain {
     @Schema(description = "具体的支付方式")
     private PaymentType paymentType;
 
+    @Schema(description = "支付渠道类型")
+    private PaymentChannelType paymentChannelType;
+
     //----------------------------业务信息 start-----------------
 
     @Schema(description = "银联的无感支付 参数配置")

+ 26 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/base/CommonService.java

@@ -10,6 +10,9 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.Base64;
 import java.util.Map;
 
 /**
@@ -76,4 +79,27 @@ public class CommonService {
         return updateResult.getUpsertedId();
     }
 
+    /**
+     * 得到 resources 目录下文件的 base64字符串
+     *
+     * @param filePath
+     * @return
+     */
+    public String getResourceFileBase64(String filePath) {
+        String base64 = "";
+        String path = Thread.currentThread().getContextClassLoader().getResource("").getPath() + filePath;
+        try {
+            File file = new File(path);
+            FileInputStream fileInputStream = new FileInputStream(file);
+            byte[] fileBytes = new byte[(int) file.length()];
+            fileInputStream.read(fileBytes);
+            fileInputStream.close();
+
+            base64 = Base64.getEncoder().encodeToString(fileBytes);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return base64;
+    }
+
 }

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/OpenAPIRegisterService.java

@@ -36,7 +36,7 @@ public class OpenAPIRegisterService {
         List<OpenApiInfo> openAPIS = OpenAPIScan.scanAPI(str, "一卡通");
         RefreshApiParam param = new RefreshApiParam();
         param.setServerName(serviceId.toLowerCase());
-        param.setPredicateArgs("/openApi/**");
+        param.setPredicateArgs("/openAPI/**");
         param.setOpenApiInfo(openAPIS);
 
         ResultContent content = restTemplate.postForObject("http://openapiserver/openapi/manager/api/refresh", param, ResultContent.class);

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

@@ -59,6 +59,11 @@ public class OrgPayAccountService extends SuperService {
                 conf = laKaLaCollectionConf;
             }
 
+            if (conf == null) {
+                log.error("支付产品配置信息为空");
+                return ResultContent.buildFail("支付产品配置信息为空");
+            }
+
             AccountModel model = new AccountModel();
             model.setDisable(Boolean.FALSE);
             model.setProductChannelType(productChannelType);
@@ -85,7 +90,7 @@ public class OrgPayAccountService extends SuperService {
     }
 
     /**
-     * 查询构 支付账号
+     * 查询构 支付账号
      *
      * @param oid         机构oid
      * @param paymentType 支付方式

+ 48 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectChannelConfigService.java

@@ -4,9 +4,12 @@ import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
 import com.github.microservice.types.payment.PaymentChannelType;
+import com.github.microservice.types.payment.PaymentType;
+import com.github.microservice.types.payment.PaymentTypeModel;
 import com.zhongshu.card.client.model.projectAbout.PayChannelConfigModel;
 import com.zhongshu.card.client.model.projectAbout.PayChannelConfigParam;
 import com.zhongshu.card.client.model.projectAbout.PayChannelConfigSearch;
+import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.projectAbout.PayChannelConfigDao;
 import com.zhongshu.card.server.core.domain.org.Organization;
@@ -20,6 +23,10 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 项目的 支付配置
  *
@@ -109,6 +116,8 @@ public class ProjectChannelConfigService extends SuperService {
         if (ObjectUtils.isEmpty(entity)) {
             return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
         }
+        // 判断是否可以删除
+
         payChannelConfigDao.delete(entity);
         return ResultContent.buildSuccess();
     }
@@ -139,11 +148,50 @@ public class ProjectChannelConfigService extends SuperService {
         return entity;
     }
 
+    public ResultContent changeState(String id, DataState state) {
+        PayChannelConfig entity = payChannelConfigDao.findTopById(id);
+        if (ObjectUtils.isEmpty(entity)) {
+            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
+        }
+        entity.setState(state);
+        payChannelConfigDao.save(entity);
+        return ResultContent.buildSuccess();
+    }
+
+    /**
+     * 所有可用的支付产品
+     *
+     * @return
+     */
+    public ResultContent getPlatFormAllPay() {
+        List<PayChannelConfigModel> models = new ArrayList<>();
+        // 得到平台可用的支付渠道
+        List<PayChannelConfig> list = payChannelConfigDao.findByState(DataState.Enable);
+        if (ObjectUtils.isNotEmpty(list)) {
+            models = list.stream().map(it -> {
+                PayChannelConfigModel model = new PayChannelConfigModel();
+                return model;
+            }).collect(Collectors.toList());
+        }
+        return ResultContent.buildSuccess(models);
+    }
+
     public PayChannelConfigModel toModel(PayChannelConfig entity) {
         PayChannelConfigModel model = null;
         if (ObjectUtils.isNotEmpty(entity)) {
             model = new PayChannelConfigModel();
             BeanUtils.copyProperties(entity, model);
+
+            // 可用的支付渠道
+            List<PaymentTypeModel> canUseAblePaymentTypes = new ArrayList<>();
+            for (PaymentType paymentType : PaymentType.values()) {
+                if (paymentType.getChannelType() != null && entity.getPaymentChannelType() == paymentType.getChannelType()) {
+                    PaymentTypeModel typeModel = new PaymentTypeModel();
+                    typeModel.setPaymentType(paymentType);
+                    canUseAblePaymentTypes.add(typeModel);
+                }
+            }
+            model.setCanUseAblePaymentTypes(canUseAblePaymentTypes);
         }
         return model;
     }

+ 1 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/UnionFrictionlessSettingService.java

@@ -86,6 +86,7 @@ public class UnionFrictionlessSettingService extends SuperService {
         entity.setProjectName(projectInfo.getName());
         entity.setProjectCode(projectInfo.getCode());
         entity.setOid(projectOid);
+        entity.setPaymentChannelType(payChannelConfig.getPaymentChannelType());
 
         BeanUtils.copyProperties(param, entity);
         unionFrictionlessSettingDao.save(entity);

+ 3 - 15
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectExcelTemplateService.java

@@ -46,14 +46,9 @@ public class ProjectExcelTemplateService extends SuperService {
      * @return
      */
     public ResultContent saveProjectExcelTemplate(ProjectExcelTemplateParam param) {
-        String projectOid = param.getProjectOid();
-        Organization projectInfo = organizationDao.findTopByOid(projectOid);
-        if (ObjectUtils.isEmpty(projectInfo)) {
-            return ResultContent.buildFail(String.format("项目oid不存在:%s", projectOid));
-        }
         String mark = param.getMark();
         ProjectExcelTemplate entity = null;
-        ProjectExcelTemplate nameTemp = projectExcelTemplateDao.findTopByProjectOidAndMark(projectOid, mark);
+        ProjectExcelTemplate nameTemp = projectExcelTemplateDao.findTopByMark(mark);
         if (ObjectUtils.isNotEmpty(param.getId())) {
             entity = projectExcelTemplateDao.findTopById(param.getId());
             if (ObjectUtils.isEmpty(entity)) {
@@ -73,14 +68,8 @@ public class ProjectExcelTemplateService extends SuperService {
             initEntityNoOid(entity);
         }
         BeanUtils.copyProperties(param, entity);
-        entity.setProjectInfo(projectInfo);
-        entity.setProjectName(projectInfo.getName());
-        entity.setProjectCode(projectInfo.getCode());
-
-        entity.setOid(projectOid);
-        entity.setAboutOid(projectOid);
-        entity.setAboutAuthType(projectInfo.getAuthType());
         projectExcelTemplateDao.save(entity);
+
         return ResultContent.buildSuccess();
     }
 
@@ -92,7 +81,6 @@ public class ProjectExcelTemplateService extends SuperService {
      * @return
      */
     public ResultContent<Page<ProjectExcelTemplateModel>> page(ProjectExcelTemplateSearch param, Pageable pageable) {
-        initSearchParamCheckProjectOid(param);
         Page<ProjectExcelTemplate> page = projectExcelTemplateDao.page(pageable, param);
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }
@@ -115,7 +103,7 @@ public class ProjectExcelTemplateService extends SuperService {
     }
 
     public ResultContent<ProjectExcelTemplateModel> getDetailByMark(ProjectExcelTemplateQuery param) {
-        ProjectExcelTemplate entity = projectExcelTemplateDao.findTopByProjectOidAndMark(param.getProjectOid(), param.getMark());
+        ProjectExcelTemplate entity = projectExcelTemplateDao.findTopByMark(param.getMark());
         if (ObjectUtils.isEmpty(entity)) {
             if (param.getIsInit() != null && param.getIsInit()) {
                 ProjectExcelTemplateParam param1 = new ProjectExcelTemplateParam();