TRX 1 рік тому
батько
коміт
76e300c12f
18 змінених файлів з 473 додано та 42 видалено
  1. 25 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/config/CommonConfigModel.java
  2. 29 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/config/CommonConfigParam.java
  3. 25 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/config/CommonConfigSearch.java
  4. 1 2
      FullCardClient/src/main/java/com/zhongshu/card/client/model/orgModel/ProjectBindOrgModel.java
  5. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/PayShareListModel.java
  6. 7 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/PayShareListParam.java
  7. 56 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/ProjectMainPaySettingModel.java
  8. 53 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/config/CommonCofigController.java
  9. 39 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/paySetting/ProjectMainPaySettingController.java
  10. 16 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/config/CommonConfigDao.java
  11. 6 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/PayShareListDao.java
  12. 1 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/ProjectOrgPaySettingInfoDao.java
  13. 32 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/config/CommonConfig.java
  14. 59 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/config/CommonConfigService.java
  15. 116 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectMainPaySettingService.java
  16. 6 11
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectPaySettingServiceImpl.java
  17. 0 15
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/ExpenseFlowServiceImpl.java
  18. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/PayShareListService.java

+ 25 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/config/CommonConfigModel.java

@@ -0,0 +1,25 @@
+package com.zhongshu.card.client.model.config;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.HashMap;
+
+/**
+ * @author TRX
+ * @date 2024/11/5
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CommonConfigModel {
+
+    @Schema(description = "存储值key")
+    private String key;
+
+    @Schema(description = "数据")
+    private HashMap<String, Object> data = new HashMap<>();
+
+}

+ 29 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/config/CommonConfigParam.java

@@ -0,0 +1,29 @@
+package com.zhongshu.card.client.model.config;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.HashMap;
+
+/**
+ * @author TRX
+ * @date 2024/11/5
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CommonConfigParam {
+
+    @Schema(description = "项目oid")
+    @NotEmpty
+    private String projectOid;
+
+    @Schema(description = "存储值key", hidden = true)
+    private String key;
+
+    @Schema(description = "数据")
+    private HashMap<String, Object> data = new HashMap<>();
+}

+ 25 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/config/CommonConfigSearch.java

@@ -0,0 +1,25 @@
+package com.zhongshu.card.client.model.config;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/11/5
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CommonConfigSearch {
+
+    @Schema(description = "项目oid")
+    @NotEmpty
+    private String projectOid;
+
+    @Schema(description = "存储值key", hidden = true)
+    private String key;
+
+}

+ 1 - 2
FullCardClient/src/main/java/com/zhongshu/card/client/model/orgModel/ProjectBindOrgModel.java

@@ -1,10 +1,9 @@
 package com.zhongshu.card.client.model.orgModel;
 
 import com.zhongshu.card.client.model.base.SuperModel;
-import com.zhongshu.card.client.model.org.OrganizationMiniModel;
 import com.zhongshu.card.client.model.org.OrganizationRelationModel;
 import com.zhongshu.card.client.model.org.UserCountSimpleModel;
-import com.zhongshu.card.client.model.projectAbout.PayShareListModel;
+import com.zhongshu.card.client.model.paySetting.paySetting.PayShareListModel;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.client.type.OrganizationRelationType;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/PayShareListModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/PayShareListModel.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.projectAbout;
+package com.zhongshu.card.client.model.paySetting.paySetting;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 7 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/projectAbout/PayShareListParam.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/PayShareListParam.java

@@ -1,6 +1,7 @@
-package com.zhongshu.card.client.model.projectAbout;
+package com.zhongshu.card.client.model.paySetting.paySetting;
 
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -20,9 +21,11 @@ public class PayShareListParam {
     private String id;
 
     @Schema(description = "项目ID")
+    @NotEmpty
     private String projectOid;
 
     @Schema(description = "规则名称")
+    @NotEmpty
     private String name;
 
     @Schema(description = "项目分账比例,0-100")
@@ -33,4 +36,7 @@ public class PayShareListParam {
 
     @Schema(description = "")
     private String remark;
+
+    @Schema(description = "排序")
+    private Long sort = 1l;
 }

+ 56 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/ProjectMainPaySettingModel.java

@@ -1,10 +1,20 @@
 package com.zhongshu.card.client.model.paySetting.paySetting;
 
+import com.github.microservice.types.payment.PaymentChannelType;
+import com.github.microservice.types.payment.PaymentType;
+import com.zhongshu.card.client.type.paySetting.RegularType;
+import com.zhongshu.card.client.type.paySetting.SettlementRulesType;
+import com.zhongshu.card.client.type.paySetting.WithdrawType;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotEmpty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
+
 /**
  * @author TRX
  * @date 2024/11/5
@@ -20,5 +30,51 @@ public class ProjectMainPaySettingModel {
     @Schema(description = "选择的机构主支付配置数据id")
     private String paySettingInfoName;
 
+    @Schema(description = "所属机构oid")
+    private String belongOig;
+
+    @Schema(description = "所属机构名称")
+    private String belongOrgName;
+
+    @Schema(description = "项目的支付渠道设置:微信支付、银联支付")
+    private PaymentType channelType;
+
+    @Schema(description = "支付产品")
+    private PaymentChannelType paymentChannelType;
+
+    //----------------------- 结算规则 start -----------------
+
+    @Schema(description = "结算规则")
+    private SettlementRulesType settlementRulesType;
+
+    //---------------D+N结算 设置
+    @Schema(description = "天数,>= 1")
+    @Min(value = 1)
+    @Max(value = 100)
+    private Integer days;
+
+    //---------------定期结算 设置
+
+    @Schema(description = "定期类型")
+    private RegularType regularType;
+
+    @Schema(description = "当前的时间,如:12:30")
+    @NotEmpty
+    private String timeStr;
+
+    //----------------------------提现规则 start --------------
+
+    @Schema(description = "提现规则类型")
+    private WithdrawType withdrawType;
+
+    //---------------------------分账规则配置 start ------------
+    @Schema(description = "最小分账金额, 单位分")
+    private Long minSharing = 0L;
+
+    @Schema(description = "全局项目分账比例,0-100")
+    private BigDecimal projectScale = BigDecimal.ZERO;
+
+    @Schema(description = "全局机构分账比例,0-100")
+    private BigDecimal orgScale = BigDecimal.ZERO;
 
 }

+ 53 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/config/CommonCofigController.java

@@ -0,0 +1,53 @@
+package com.zhongshu.card.server.core.controller.config;
+
+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.config.CommonConfigParam;
+import com.zhongshu.card.client.model.config.CommonConfigSearch;
+import com.zhongshu.card.client.model.devices.*;
+import com.zhongshu.card.client.service.school.DeviceInfoService;
+import com.zhongshu.card.server.core.service.config.CommonConfigService;
+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.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/6/5
+ */
+@RestController
+@RequestMapping("/commonConfig")
+@Tag(name = "用户关联个性化设置")
+public class CommonCofigController {
+
+    @Autowired
+    private CommonConfigService commonConfigService;
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "支付统计页面--保存", description = "支付统计页面--保存")
+    @RequestMapping(value = "savePayPanelConfig", method = {RequestMethod.POST})
+    public ResultContent savePayPanelConfig(@RequestBody @Valid CommonConfigParam param) {
+        param.setKey("payPanel");
+        return this.commonConfigService.saveUserConfig(param);
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "支付统计页面--得到", description = "支付统计页面--得到")
+    @RequestMapping(value = "getPayPanelConfig", method = {RequestMethod.POST})
+    public ResultContent getPayPanelConfig(@RequestBody @Valid CommonConfigSearch param) {
+        param.setKey("payPanel");
+        return this.commonConfigService.getUserConfig(param);
+    }
+
+}

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

@@ -3,8 +3,9 @@ package com.zhongshu.card.server.core.controller.paySetting;
 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.paySetting.paySetting.PayConfigFieldModel;
-import com.zhongshu.card.client.model.paySetting.paySetting.ProjectMainPaySettingParam;
+import com.zhongshu.card.client.model.base.IDParam;
+import com.zhongshu.card.client.model.base.ProjectOidParam;
+import com.zhongshu.card.client.model.paySetting.paySetting.*;
 import com.zhongshu.card.server.core.service.paySetting.ProjectMainPaySettingService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -14,6 +15,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.Valid;
+import java.util.List;
+
 /**
  * 项目的配置
  *
@@ -31,10 +35,41 @@ public class ProjectMainPaySettingController {
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "保存项目配置", description = "保存项目配置")
     @RequestMapping(value = "saveMainPaySetting", method = {RequestMethod.POST})
-    public ResultContent<PayConfigFieldModel> saveMainPaySetting(
-            @RequestBody ProjectMainPaySettingParam param) {
+    public ResultContent saveMainPaySetting(
+            @RequestBody @Valid ProjectMainPaySettingParam param) {
         return projectMainPaySettingService.saveMainPaySetting(param);
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到项目配置", description = "得到项目配置")
+    @RequestMapping(value = "getMainPaySetting", method = {RequestMethod.POST})
+    public ResultContent<ProjectMainPaySettingModel> getMainPaySetting(
+            @RequestBody ProjectOidParam param) {
+        return projectMainPaySettingService.getMainPaySetting(param.getProjectOid());
+    }
+
+    //------------------------------灵活分账规则 start ------------------------
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "保存项目的灵活分账规则", description = "保存项目的灵活分账规则")
+    @RequestMapping(value = "savePayShareList", method = {RequestMethod.POST})
+    public ResultContent savePayShareList(
+            @RequestBody @Valid PayShareListParam param) {
+        return projectMainPaySettingService.savePayShareList(param);
+    }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到项目的灵活分账规则列表", description = "得到项目的灵活分账规则列表")
+    @RequestMapping(value = "getPayShareList", method = {RequestMethod.POST})
+    public ResultContent<List<PayShareListModel>> getPayShareList(
+            @RequestBody @Valid ProjectOidParam param) {
+        return projectMainPaySettingService.getPayShareList(param.getProjectOid());
+    }
+
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "删除项目的灵活分账规则", description = "删除项目的灵活分账规则")
+    @RequestMapping(value = "deletePayShareList", method = {RequestMethod.POST})
+    public ResultContent deletePayShareList(
+            @RequestBody @Valid IDParam param) {
+        return projectMainPaySettingService.deletePayShareList(param.getId());
+    }
 }

+ 16 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/config/CommonConfigDao.java

@@ -0,0 +1,16 @@
+package com.zhongshu.card.server.core.dao.config;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.server.core.domain.config.CommonConfig;
+
+/**
+ * @author TRX
+ * @date 2024/3/21
+ */
+public interface CommonConfigDao extends MongoDao<CommonConfig> {
+
+    CommonConfig findTopById(String id);
+
+    CommonConfig findTopByProjectOidAndAboutIdAndKey(String projectOid, String aboutId, String key);
+
+}

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

@@ -3,6 +3,8 @@ package com.zhongshu.card.server.core.dao.projectAbout;
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.zhongshu.card.server.core.domain.paySetting.PayShareList;
 
+import java.util.List;
+
 /**
  *
  */
@@ -10,4 +12,8 @@ public interface PayShareListDao extends MongoDao<PayShareList> {
 
     PayShareList findTopById(String id);
 
+    PayShareList findTopByProjectOidAndName(String projectOid, String name);
+
+    List<PayShareList> findByProjectOidOrderBySortAsc(String projectOid);
+
 }

+ 1 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/ProjectPaySettingInfoDao.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/ProjectOrgPaySettingInfoDao.java

@@ -3,12 +3,11 @@ 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.dao.projectAbout.extend.ProjectOrgPaySettingInfoDaoExtend;
-import com.zhongshu.card.server.core.domain.paySetting.ProjectPaySetting;
 import com.zhongshu.card.server.core.domain.paySetting.ProjectOrgPaySettingInfo;
 
 import java.util.List;
 
-public interface ProjectPaySettingInfoDao extends MongoDao<ProjectOrgPaySettingInfo>, ProjectOrgPaySettingInfoDaoExtend {
+public interface ProjectOrgPaySettingInfoDao extends MongoDao<ProjectOrgPaySettingInfo>, ProjectOrgPaySettingInfoDaoExtend {
 
     ProjectOrgPaySettingInfo findTopById(String id);
 
@@ -19,8 +18,6 @@ public interface ProjectPaySettingInfoDao extends MongoDao<ProjectOrgPaySettingI
 
     List<ProjectOrgPaySettingInfo> findByBelongOigAndProjectOid(String belongOig, String projectOid);
 
-    List<ProjectOrgPaySettingInfo> findByProjectPaySetting(ProjectPaySetting projectPaySetting);
-
     int countByBelongOigAndProjectOidAndChannelType(String belongOig, String projectOid, PaymentType channelType);
 
     ProjectOrgPaySettingInfo findTopByBelongOigAndProjectOidAndChannelType(String belongOig, String projectOid, PaymentType channelType);

+ 32 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/config/CommonConfig.java

@@ -0,0 +1,32 @@
+package com.zhongshu.card.server.core.domain.config;
+
+import com.zhongshu.card.server.core.domain.base.SuperMain;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.checkerframework.common.aliasing.qual.NonLeaked;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.HashMap;
+
+/**
+ * @author TRX
+ * @date 2024/11/5
+ */
+@Data
+@Document
+@AllArgsConstructor
+@NoArgsConstructor
+@NonLeaked
+public class CommonConfig extends SuperMain {
+
+    @Schema(description = "关联数据id")
+    private String aboutId;
+
+    @Schema(description = "存储值key")
+    private String key;
+
+    @Schema(description = "数据")
+    private HashMap<String, Object> data = new HashMap<>();
+}

+ 59 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/config/CommonConfigService.java

@@ -0,0 +1,59 @@
+package com.zhongshu.card.server.core.service.config;
+
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.config.CommonConfigModel;
+import com.zhongshu.card.client.model.config.CommonConfigParam;
+import com.zhongshu.card.client.model.config.CommonConfigSearch;
+import com.zhongshu.card.server.core.dao.config.CommonConfigDao;
+import com.zhongshu.card.server.core.domain.config.CommonConfig;
+import com.zhongshu.card.server.core.service.base.SuperService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+
+/**
+ * @author TRX
+ * @date 2024/11/5
+ */
+@Slf4j
+@Service
+public class CommonConfigService extends SuperService {
+
+    @Autowired
+    private CommonConfigDao commonConfigDao;
+
+    public ResultContent saveUserConfig(CommonConfigParam param) {
+        return saveInfo(param.getProjectOid(), getCurrentUserId(), param.getKey(), param.getData());
+    }
+
+    public ResultContent getUserConfig(CommonConfigSearch param) {
+        CommonConfig config = commonConfigDao.findTopByProjectOidAndAboutIdAndKey(
+                param.getProjectOid(), getCurrentUserId(), param.getKey());
+        return ResultContent.buildSuccess(toModel(config));
+    }
+
+    private ResultContent saveInfo(String projectOid, String userId, String key, HashMap<String, Object> data) {
+        CommonConfig config = commonConfigDao.findTopByProjectOidAndAboutIdAndKey(projectOid, userId, key);
+        if (ObjectUtils.isEmpty(config)) {
+            config = new CommonConfig();
+        }
+        config.setProjectOid(projectOid);
+        config.setAboutId(userId);
+        config.setKey(key);
+        config.setData(data);
+        commonConfigDao.save(config);
+        return ResultContent.buildSuccess();
+    }
+
+    private CommonConfigModel toModel(CommonConfig entity) {
+        CommonConfigModel model = new CommonConfigModel();
+        if (ObjectUtils.isNotEmpty(entity)) {
+            BeanUtils.copyProperties(entity, model);
+        }
+        return model;
+    }
+}

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

@@ -1,9 +1,13 @@
 package com.zhongshu.card.server.core.service.paySetting;
 
 import com.github.microservice.net.ResultContent;
-import com.zhongshu.card.client.model.paySetting.paySetting.ProjectMainPaySettingParam;
+import com.zhongshu.card.client.model.paySetting.paySetting.*;
+import com.zhongshu.card.server.core.dao.org.OrganizationDao;
+import com.zhongshu.card.server.core.dao.projectAbout.PayShareListDao;
 import com.zhongshu.card.server.core.dao.projectAbout.ProjectMainPaySettingDao;
-import com.zhongshu.card.server.core.dao.projectAbout.ProjectPaySettingInfoDao;
+import com.zhongshu.card.server.core.dao.projectAbout.ProjectOrgPaySettingInfoDao;
+import com.zhongshu.card.server.core.domain.org.Organization;
+import com.zhongshu.card.server.core.domain.paySetting.PayShareList;
 import com.zhongshu.card.server.core.domain.paySetting.ProjectMainPaySetting;
 import com.zhongshu.card.server.core.domain.paySetting.ProjectOrgPaySettingInfo;
 import com.zhongshu.card.server.core.service.base.SuperService;
@@ -14,6 +18,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 项目的配置
  *
@@ -28,7 +36,13 @@ public class ProjectMainPaySettingService extends SuperService {
     private ProjectMainPaySettingDao projectMainPaySettingDao;
 
     @Autowired
-    private ProjectPaySettingInfoDao projectPaySettingInfoDao;
+    private ProjectOrgPaySettingInfoDao projectPaySettingInfoDao;
+
+    @Autowired
+    private PayShareListDao payShareListDao;
+
+    @Autowired
+    private OrganizationDao organizationDao;
 
     /**
      * 保存项目配置
@@ -50,6 +64,7 @@ public class ProjectMainPaySettingService extends SuperService {
             mainPaySetting = new ProjectMainPaySetting();
         }
         BeanUtils.copyProperties(param, mainPaySetting);
+
         mainPaySetting.setPaySettingInfo(orgPaySettingInfo);
         mainPaySetting.setBelongOig(orgPaySettingInfo.getBelongOig());
         mainPaySetting.setBelongOrgName(orgPaySettingInfo.getBelongOrgName());
@@ -60,4 +75,102 @@ public class ProjectMainPaySettingService extends SuperService {
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 得到项目配置
+     *
+     * @param projectOid
+     * @return
+     */
+    public ResultContent<ProjectMainPaySettingModel> getMainPaySetting(String projectOid) {
+        ProjectMainPaySetting mainPaySetting = projectMainPaySettingDao.findTopByProjectOid(projectOid);
+        return ResultContent.buildSuccess(toMainModel(mainPaySetting));
+    }
+
+    //---------------------------项目上的灵活 分账配置 start -----------------------
+
+    /**
+     * 保存项目的灵活分账规则
+     *
+     * @param param
+     * @return
+     */
+    public ResultContent savePayShareList(PayShareListParam param) {
+        if (StringUtils.isEmpty(param.getProjectOid())) {
+            return ResultContent.buildFail("projectOid不能为空");
+        }
+        Organization projectInfo = organizationDao.findTopByOid(param.getProjectOid());
+        PayShareList entity = null;
+        PayShareList nameTemp = payShareListDao.findTopByProjectOidAndName(param.getProjectOid(), param.getName());
+        if (StringUtils.isNotEmpty(param.getId())) {
+            entity = payShareListDao.findTopById(param.getId());
+            if (ObjectUtils.isEmpty(entity)) {
+                return ResultContent.buildFail("id不存在");
+            }
+            if (ObjectUtils.isNotEmpty(nameTemp) && !nameTemp.getId().equals(entity.getId())) {
+                return ResultContent.buildFail(String.format("名称已存在:%s", param.getName()));
+            }
+            initUpdateEntity(entity);
+        } else {
+            if (ObjectUtils.isNotEmpty(nameTemp)) {
+                return ResultContent.buildFail(String.format("名称已存在:%s", param.getName()));
+            }
+            entity = new PayShareList();
+            initEntityNoCheckOid(entity);
+        }
+        BeanUtils.copyProperties(param, entity);
+        entity.setProjectInfo(projectInfo);
+        entity.setProjectCode(projectInfo.getCode());
+        entity.setProjectName(projectInfo.getName());
+
+        payShareListDao.save(entity);
+        return ResultContent.buildSuccess();
+    }
+
+    public ResultContent<List<PayShareListModel>> getPayShareList(String projectOid) {
+        List<PayShareList> list = payShareListDao.findByProjectOidOrderBySortAsc(projectOid);
+        List<PayShareListModel> models = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(list)) {
+            models = list.stream().map(this::toModel).collect(Collectors.toUnmodifiableList());
+        }
+        return ResultContent.buildSuccess(models);
+    }
+
+    /**
+     * 删除分账灵活规则
+     *
+     * @param id
+     * @return
+     */
+    public ResultContent deletePayShareList(String id) {
+        PayShareList entity = payShareListDao.findTopById(id);
+        if (ObjectUtils.isEmpty(entity)) {
+            return ResultContent.buildFail("数据不存在");
+        }
+        payShareListDao.delete(entity);
+        return ResultContent.buildSuccess();
+    }
+
+    public PayShareListModel toModel(PayShareList entity) {
+        PayShareListModel model = null;
+        if (ObjectUtils.isEmpty(entity)) {
+            model = new PayShareListModel();
+            BeanUtils.copyProperties(entity, model);
+        }
+        return model;
+    }
+
+    public ProjectMainPaySettingModel toMainModel(ProjectMainPaySetting entity) {
+        ProjectMainPaySettingModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new ProjectMainPaySettingModel();
+            BeanUtils.copyProperties(entity, model);
+
+            ProjectOrgPaySettingInfo paySettingInfo = entity.getPaySettingInfo();
+            if (ObjectUtils.isNotEmpty(paySettingInfo)) {
+                model.setPaySettingInfoId(paySettingInfo.getId());
+                model.setPaySettingInfoName(paySettingInfo.getName());
+            }
+        }
+        return model;
+    }
 }

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

@@ -15,13 +15,11 @@ import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfi
 import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfigParam;
 import com.zhongshu.card.client.model.paySetting.paySetting.*;
 import com.zhongshu.card.client.model.payment.PaymentTypeParam;
-import com.zhongshu.card.client.model.projectAbout.PayChannelConfigAllPayModel;
-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.dao.projectAbout.ProjectOrgPaySettingInfoDao;
 import com.zhongshu.card.server.core.dao.projectAbout.ProjectPaySettingDao;
-import com.zhongshu.card.server.core.dao.projectAbout.ProjectPaySettingInfoDao;
 import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.paySetting.PayChannelConfig;
 import com.zhongshu.card.server.core.domain.paySetting.ProjectOrgPaySettingInfo;
@@ -54,22 +52,19 @@ import java.util.stream.Collectors;
 public class ProjectPaySettingServiceImpl extends SuperService {
 
     @Autowired
-    ProjectPaySettingDao projectPaySettingDao;
+    private ProjectPaySettingDao projectPaySettingDao;
 
     @Autowired
-    private ProjectPaySettingInfoDao projectPaySettingInfoDao;
+    private ProjectOrgPaySettingInfoDao projectPaySettingInfoDao;
 
     @Autowired
-    OrganizationDao organizationDao;
+    private OrganizationDao organizationDao;
 
     @Autowired
-    GridFsTemplate gridFsTemplate;
+    private GridFsTemplate gridFsTemplate;
 
     @Autowired
-    ProjectChannelConfigService projectChannelConfigService;
-
-    @Autowired
-    PayChannelConfigDao payChannelConfigDao;
+    private PayChannelConfigDao payChannelConfigDao;
 
     @Autowired
     private PayProductAccountService payProductAccountService;

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

@@ -101,24 +101,9 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
     @Autowired
     private ApiRequestService apiRequestService;
 
-    @Autowired
-    DeviceBindDao deviceBindDao;
-
     @Autowired
     OrganizationServiceImpl organizationService;
 
-    @Autowired
-    WalletFeignService walletFeignService;
-
-    @Autowired
-    OrderPayFeignService orderPayFeignService;
-
-    @Autowired
-    OperationLogsService operationLogsService;
-
-    @Autowired
-    ProjectPaySettingDao projectPaySettingDao;
-
     @Autowired
     private OrganizationDao organizationDao;
 

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/PayShareListService.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.service.projectAbout;
 
-import com.zhongshu.card.client.model.projectAbout.PayShareListModel;
+import com.zhongshu.card.client.model.paySetting.paySetting.PayShareListModel;
 import com.zhongshu.card.server.core.dao.projectAbout.PayShareListDao;
 import com.zhongshu.card.server.core.domain.paySetting.PayShareList;
 import com.zhongshu.card.server.core.service.base.SuperService;