Selaa lähdekoodia

费用支持拆分 和合并功能

wuxw 2 vuotta sitten
vanhempi
commit
9a755fd3fd

+ 153 - 0
java110-bean/src/main/java/com/java110/dto/payFeeSub/PayFeeSubDto.java

@@ -0,0 +1,153 @@
+package com.java110.dto.payFeeSub;
+
+import com.java110.dto.PageDto;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName FloorDto
+ * @Description 费用拆分数据层封装
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+public class PayFeeSubDto extends PageDto implements Serializable {
+
+    private String maxTime;
+private String amount;
+private String feeTypeCd;
+private String batchId;
+private String feeId;
+private String userId;
+private String preFeeId;
+private String payerObjName;
+private String incomeObjId;
+private String configId;
+private String feeFlag;
+private String startTime;
+private String endTime;
+private String communityId;
+private String payerObjType;
+private String payerObjId;
+
+
+    private Date createTime;
+
+    private String statusCd = "0";
+
+
+    public String getMaxTime() {
+        return maxTime;
+    }
+public void setMaxTime(String maxTime) {
+        this.maxTime = maxTime;
+    }
+public String getAmount() {
+        return amount;
+    }
+public void setAmount(String amount) {
+        this.amount = amount;
+    }
+public String getFeeTypeCd() {
+        return feeTypeCd;
+    }
+public void setFeeTypeCd(String feeTypeCd) {
+        this.feeTypeCd = feeTypeCd;
+    }
+public String getBatchId() {
+        return batchId;
+    }
+public void setBatchId(String batchId) {
+        this.batchId = batchId;
+    }
+public String getFeeId() {
+        return feeId;
+    }
+public void setFeeId(String feeId) {
+        this.feeId = feeId;
+    }
+public String getUserId() {
+        return userId;
+    }
+public void setUserId(String userId) {
+        this.userId = userId;
+    }
+public String getPreFeeId() {
+        return preFeeId;
+    }
+public void setPreFeeId(String preFeeId) {
+        this.preFeeId = preFeeId;
+    }
+public String getPayerObjName() {
+        return payerObjName;
+    }
+public void setPayerObjName(String payerObjName) {
+        this.payerObjName = payerObjName;
+    }
+public String getIncomeObjId() {
+        return incomeObjId;
+    }
+public void setIncomeObjId(String incomeObjId) {
+        this.incomeObjId = incomeObjId;
+    }
+public String getConfigId() {
+        return configId;
+    }
+public void setConfigId(String configId) {
+        this.configId = configId;
+    }
+public String getFeeFlag() {
+        return feeFlag;
+    }
+public void setFeeFlag(String feeFlag) {
+        this.feeFlag = feeFlag;
+    }
+public String getStartTime() {
+        return startTime;
+    }
+public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+public String getEndTime() {
+        return endTime;
+    }
+public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+public String getCommunityId() {
+        return communityId;
+    }
+public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+public String getPayerObjType() {
+        return payerObjType;
+    }
+public void setPayerObjType(String payerObjType) {
+        this.payerObjType = payerObjType;
+    }
+public String getPayerObjId() {
+        return payerObjId;
+    }
+public void setPayerObjId(String payerObjId) {
+        this.payerObjId = payerObjId;
+    }
+
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+}

+ 152 - 0
java110-bean/src/main/java/com/java110/po/payFeeSub/PayFeeSubPo.java

@@ -0,0 +1,152 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.po.payFeeSub;
+
+import java.io.Serializable;
+import java.util.Date;
+/**
+ * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+public class PayFeeSubPo implements Serializable {
+
+    private String maxTime;
+private String amount;
+private String feeTypeCd;
+private String statusCd = "0";
+private String batchId;
+private String feeId;
+private String userId;
+private String preFeeId;
+private String payerObjName;
+private String incomeObjId;
+private String configId;
+private String feeFlag;
+private String startTime;
+private String endTime;
+private String communityId;
+private String payerObjType;
+private String payerObjId;
+public String getMaxTime() {
+        return maxTime;
+    }
+public void setMaxTime(String maxTime) {
+        this.maxTime = maxTime;
+    }
+public String getAmount() {
+        return amount;
+    }
+public void setAmount(String amount) {
+        this.amount = amount;
+    }
+public String getFeeTypeCd() {
+        return feeTypeCd;
+    }
+public void setFeeTypeCd(String feeTypeCd) {
+        this.feeTypeCd = feeTypeCd;
+    }
+public String getStatusCd() {
+        return statusCd;
+    }
+public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+public String getBatchId() {
+        return batchId;
+    }
+public void setBatchId(String batchId) {
+        this.batchId = batchId;
+    }
+public String getFeeId() {
+        return feeId;
+    }
+public void setFeeId(String feeId) {
+        this.feeId = feeId;
+    }
+public String getUserId() {
+        return userId;
+    }
+public void setUserId(String userId) {
+        this.userId = userId;
+    }
+public String getPreFeeId() {
+        return preFeeId;
+    }
+public void setPreFeeId(String preFeeId) {
+        this.preFeeId = preFeeId;
+    }
+public String getPayerObjName() {
+        return payerObjName;
+    }
+public void setPayerObjName(String payerObjName) {
+        this.payerObjName = payerObjName;
+    }
+public String getIncomeObjId() {
+        return incomeObjId;
+    }
+public void setIncomeObjId(String incomeObjId) {
+        this.incomeObjId = incomeObjId;
+    }
+public String getConfigId() {
+        return configId;
+    }
+public void setConfigId(String configId) {
+        this.configId = configId;
+    }
+public String getFeeFlag() {
+        return feeFlag;
+    }
+public void setFeeFlag(String feeFlag) {
+        this.feeFlag = feeFlag;
+    }
+public String getStartTime() {
+        return startTime;
+    }
+public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+public String getEndTime() {
+        return endTime;
+    }
+public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+public String getCommunityId() {
+        return communityId;
+    }
+public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+public String getPayerObjType() {
+        return payerObjType;
+    }
+public void setPayerObjType(String payerObjType) {
+        this.payerObjType = payerObjType;
+    }
+public String getPayerObjId() {
+        return payerObjId;
+    }
+public void setPayerObjId(String payerObjId) {
+        this.payerObjId = payerObjId;
+    }
+
+
+
+}

+ 206 - 0
java110-db/src/main/resources/mapper/fee/PayFeeSubV1ServiceDaoImplMapper.xml

@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="payFeeSubV1ServiceDaoImpl">
+
+
+    <!-- 保存费用拆分信息 add by wuxw 2018-07-03 -->
+    <insert id="savePayFeeSubInfo" parameterType="Map">
+        insert into pay_fee_sub(
+        max_time,amount,fee_type_cd,batch_id,fee_id,user_id,pre_fee_id,payer_obj_name,income_obj_id,config_id,fee_flag,start_time,end_time,community_id,payer_obj_type,payer_obj_id
+        ) values (
+        #{maxTime},#{amount},#{feeTypeCd},#{batchId},#{feeId},#{userId},#{preFeeId},#{payerObjName},#{incomeObjId},#{configId},#{feeFlag},#{startTime},#{endTime},#{communityId},#{payerObjType},#{payerObjId}
+        )
+    </insert>
+
+
+    <!-- 查询费用拆分信息 add by wuxw 2018-07-03 -->
+    <select id="getPayFeeSubInfo" parameterType="Map" resultType="Map">
+        select t.max_time,t.max_time maxTime,t.amount,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.status_cd,t.status_cd
+        statusCd,t.batch_id,t.batch_id batchId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id
+        userId,t.pre_fee_id,t.pre_fee_id preFeeId,t.payer_obj_name,t.payer_obj_name
+        payerObjName,t.income_obj_id,t.income_obj_id incomeObjId,t.config_id,t.config_id configId,t.fee_flag,t.fee_flag
+        feeFlag,t.start_time,t.start_time startTime,t.end_time,t.end_time endTime,t.community_id,t.community_id
+        communityId,t.payer_obj_type,t.payer_obj_type payerObjType,t.payer_obj_id,t.payer_obj_id payerObjId
+        from pay_fee_sub t
+        where 1 =1
+        <if test="maxTime !=null and maxTime != ''">
+            and t.max_time= #{maxTime}
+        </if>
+        <if test="amount !=null and amount != ''">
+            and t.amount= #{amount}
+        </if>
+        <if test="feeTypeCd !=null and feeTypeCd != ''">
+            and t.fee_type_cd= #{feeTypeCd}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="batchId !=null and batchId != ''">
+            and t.batch_id= #{batchId}
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id= #{feeId}
+        </if>
+        <if test="userId !=null and userId != ''">
+            and t.user_id= #{userId}
+        </if>
+        <if test="preFeeId !=null and preFeeId != ''">
+            and t.pre_fee_id= #{preFeeId}
+        </if>
+        <if test="payerObjName !=null and payerObjName != ''">
+            and t.payer_obj_name= #{payerObjName}
+        </if>
+        <if test="incomeObjId !=null and incomeObjId != ''">
+            and t.income_obj_id= #{incomeObjId}
+        </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            and t.fee_flag= #{feeFlag}
+        </if>
+        <if test="startTime !=null and startTime != ''">
+            and t.start_time= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            and t.end_time= #{endTime}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="payerObjType !=null and payerObjType != ''">
+            and t.payer_obj_type= #{payerObjType}
+        </if>
+        <if test="payerObjId !=null and payerObjId != ''">
+            and t.payer_obj_id= #{payerObjId}
+        </if>
+        order by t.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+
+    </select>
+
+
+    <!-- 修改费用拆分信息 add by wuxw 2018-07-03 -->
+    <update id="updatePayFeeSubInfo" parameterType="Map">
+        update pay_fee_sub t set t.status_cd = #{statusCd}
+        <if test="newBId != null and newBId != ''">
+            ,t.b_id = #{newBId}
+        </if>
+        <if test="maxTime !=null and maxTime != ''">
+            , t.max_time= #{maxTime}
+        </if>
+        <if test="amount !=null and amount != ''">
+            , t.amount= #{amount}
+        </if>
+        <if test="feeTypeCd !=null and feeTypeCd != ''">
+            , t.fee_type_cd= #{feeTypeCd}
+        </if>
+        <if test="batchId !=null and batchId != ''">
+            , t.batch_id= #{batchId}
+        </if>
+        <if test="userId !=null and userId != ''">
+            , t.user_id= #{userId}
+        </if>
+
+        <if test="payerObjName !=null and payerObjName != ''">
+            , t.payer_obj_name= #{payerObjName}
+        </if>
+        <if test="incomeObjId !=null and incomeObjId != ''">
+            , t.income_obj_id= #{incomeObjId}
+        </if>
+        <if test="configId !=null and configId != ''">
+            , t.config_id= #{configId}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            , t.fee_flag= #{feeFlag}
+        </if>
+        <if test="startTime !=null and startTime != ''">
+            , t.start_time= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            , t.end_time= #{endTime}
+        </if>
+        <if test="payerObjType !=null and payerObjType != ''">
+            , t.payer_obj_type= #{payerObjType}
+        </if>
+        <if test="payerObjId !=null and payerObjId != ''">
+            , t.payer_obj_id= #{payerObjId}
+        </if>
+        where 1=1
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id= #{feeId}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="preFeeId !=null and preFeeId != ''">
+            and t.pre_fee_id= #{preFeeId}
+        </if>
+
+    </update>
+
+    <!-- 查询费用拆分数量 add by wuxw 2018-07-03 -->
+    <select id="queryPayFeeSubsCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from pay_fee_sub t
+        where 1 =1
+        <if test="maxTime !=null and maxTime != ''">
+            and t.max_time= #{maxTime}
+        </if>
+        <if test="amount !=null and amount != ''">
+            and t.amount= #{amount}
+        </if>
+        <if test="feeTypeCd !=null and feeTypeCd != ''">
+            and t.fee_type_cd= #{feeTypeCd}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="batchId !=null and batchId != ''">
+            and t.batch_id= #{batchId}
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id= #{feeId}
+        </if>
+        <if test="userId !=null and userId != ''">
+            and t.user_id= #{userId}
+        </if>
+        <if test="preFeeId !=null and preFeeId != ''">
+            and t.pre_fee_id= #{preFeeId}
+        </if>
+        <if test="payerObjName !=null and payerObjName != ''">
+            and t.payer_obj_name= #{payerObjName}
+        </if>
+        <if test="incomeObjId !=null and incomeObjId != ''">
+            and t.income_obj_id= #{incomeObjId}
+        </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            and t.fee_flag= #{feeFlag}
+        </if>
+        <if test="startTime !=null and startTime != ''">
+            and t.start_time= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            and t.end_time= #{endTime}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="payerObjType !=null and payerObjType != ''">
+            and t.payer_obj_type= #{payerObjType}
+        </if>
+        <if test="payerObjId !=null and payerObjId != ''">
+            and t.payer_obj_id= #{payerObjId}
+        </if>
+
+
+    </select>
+
+</mapper>

+ 67 - 0
java110-interface/src/main/java/com/java110/intf/fee/IPayFeeSubV1InnerServiceSMO.java

@@ -0,0 +1,67 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.intf.fee;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.payFeeSub.PayFeeSubDto;
+import com.java110.po.payFeeSub.PayFeeSubPo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.List;
+
+/**
+ * 类表述: 服务之前调用的接口类,不对外提供接口能力 只用于接口建调用
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@FeignClient(name = "fee-service", configuration = {FeignConfiguration.class})
+@RequestMapping("/payFeeSubV1Api")
+public interface IPayFeeSubV1InnerServiceSMO {
+
+
+    @RequestMapping(value = "/savePayFeeSub", method = RequestMethod.POST)
+    int savePayFeeSub(@RequestBody PayFeeSubPo payFeeSubPo);
+
+    @RequestMapping(value = "/updatePayFeeSub", method = RequestMethod.POST)
+    int updatePayFeeSub(@RequestBody PayFeeSubPo payFeeSubPo);
+
+    @RequestMapping(value = "/deletePayFeeSub", method = RequestMethod.POST)
+    int deletePayFeeSub(@RequestBody PayFeeSubPo payFeeSubPo);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     * @param payFeeSubDto 数据对象分享
+     * @return PayFeeSubDto 对象数据
+     */
+    @RequestMapping(value = "/queryPayFeeSubs", method = RequestMethod.POST)
+    List<PayFeeSubDto> queryPayFeeSubs(@RequestBody PayFeeSubDto payFeeSubDto);
+
+    /**
+     * 查询<p>小区楼</p>总记录数
+     *
+     * @param payFeeSubDto 数据对象分享
+     * @return 小区下的小区楼记录数
+     */
+    @RequestMapping(value = "/queryPayFeeSubsCount", method = RequestMethod.POST)
+    int queryPayFeeSubsCount(@RequestBody PayFeeSubDto payFeeSubDto);
+}

+ 3 - 3
java110-interface/src/main/java/com/java110/intf/fee/IPayFeeV1InnerServiceSMO.java

@@ -39,13 +39,13 @@ public interface IPayFeeV1InnerServiceSMO {
 
 
     @RequestMapping(value = "/savePayFee", method = RequestMethod.POST)
-    public int savePayFee(@RequestBody PayFeePo PayFeePo);
+     int savePayFee(@RequestBody PayFeePo PayFeePo);
 
     @RequestMapping(value = "/updatePayFee", method = RequestMethod.POST)
-    public int updatePayFee(@RequestBody  PayFeePo PayFeePo);
+     int updatePayFee(@RequestBody  PayFeePo PayFeePo);
 
     @RequestMapping(value = "/deletePayFee", method = RequestMethod.POST)
-    public int deletePayFee(@RequestBody  PayFeePo PayFeePo);
+     int deletePayFee(@RequestBody  PayFeePo PayFeePo);
 
     /**
      * <p>查询小区楼信息</p>

+ 84 - 0
service-fee/src/main/java/com/java110/fee/cmd/feeSub/ListPayFeeSubCmd.java

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.fee.cmd.feeSub;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.intf.fee.IPayFeeSubV1InnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.java110.dto.payFeeSub.PayFeeSubDto;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.http.ResponseEntity;
+import org.springframework.http.HttpStatus;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * 类表述:查询
+ * 服务编码:payFeeSub.listPayFeeSub
+ * 请求路劲:/app/payFeeSub.ListPayFeeSub
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@Java110Cmd(serviceCode = "feeSub.listPayFeeSub")
+public class ListPayFeeSubCmd extends Cmd {
+
+  private static Logger logger = LoggerFactory.getLogger(ListPayFeeSubCmd.class);
+    @Autowired
+    private IPayFeeSubV1InnerServiceSMO payFeeSubV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
+        super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
+        Assert.hasKeyAndValue(reqJson, "preFeeId", "preFeeId不能为空");
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+
+           PayFeeSubDto payFeeSubDto = BeanConvertUtil.covertBean(reqJson, PayFeeSubDto.class);
+
+           int count = payFeeSubV1InnerServiceSMOImpl.queryPayFeeSubsCount(payFeeSubDto);
+
+           List<PayFeeSubDto> payFeeSubDtos = null;
+
+           if (count > 0) {
+               payFeeSubDtos = payFeeSubV1InnerServiceSMOImpl.queryPayFeeSubs(payFeeSubDto);
+           } else {
+               payFeeSubDtos = new ArrayList<>();
+           }
+
+           ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, payFeeSubDtos);
+
+           ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+           cmdDataFlowContext.setResponseEntity(responseEntity);
+    }
+}

+ 149 - 0
service-fee/src/main/java/com/java110/fee/cmd/feeSub/MergePayFeeCmd.java

@@ -0,0 +1,149 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.fee.cmd.feeSub;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.fee.FeeDetailDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.payFeeSub.PayFeeSubDto;
+import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeDetailV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeSubV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.payFeeSub.PayFeeSubPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+/**
+ * 类表述:合并费用
+ * 服务编码:payFeeSub.deletePayFeeSub
+ * 请求路劲:/app/payFeeSub.DeletePayFeeSub
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@Java110Cmd(serviceCode = "feeSub.mergePayFee")
+public class MergePayFeeCmd extends Cmd {
+    private static Logger logger = LoggerFactory.getLogger(MergePayFeeCmd.class);
+
+    @Autowired
+    private IPayFeeSubV1InnerServiceSMO payFeeSubV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "feeId", "feeId不能为空");
+        Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
+
+        //todo 检查费用是否存在
+
+        PayFeeSubDto payFeeSubDto = new PayFeeSubDto();
+        payFeeSubDto.setFeeId(reqJson.getString("feeId"));
+        payFeeSubDto.setCommunityId(reqJson.getString("communityId"));
+        List<PayFeeSubDto> payFeeSubDtos = payFeeSubV1InnerServiceSMOImpl.queryPayFeeSubs(payFeeSubDto);
+
+        if (ListUtil.isNull(payFeeSubDtos)) {
+            throw new CmdException("没有需要合并的费用");
+        }
+
+        payFeeSubDto = new PayFeeSubDto();
+        payFeeSubDto.setPreFeeId(payFeeSubDtos.get(0).getPreFeeId());
+        payFeeSubDto.setCommunityId(reqJson.getString("communityId"));
+        payFeeSubDtos = payFeeSubV1InnerServiceSMOImpl.queryPayFeeSubs(payFeeSubDto);
+
+        if (ListUtil.isNull(payFeeSubDtos)) {
+            throw new CmdException("没有需要合并的费用");
+        }
+
+        //todo 拆分费用是否存在缴费记录,如果存在缴费记录,不能合并
+
+        for (PayFeeSubDto tmpPayFeeSubDto : payFeeSubDtos) {
+            FeeDetailDto feeDetailDto = new FeeDetailDto();
+            feeDetailDto.setState(FeeDetailDto.STATE_NORMAL);
+            feeDetailDto.setFeeId(tmpPayFeeSubDto.getFeeId());
+            feeDetailDto.setCommunityId(tmpPayFeeSubDto.getCommunityId());
+            int count = feeDetailInnerServiceSMOImpl.queryFeeDetailsCount(feeDetailDto);
+            if (count > 0) {
+                throw new CmdException("拆分后费用存在缴费记录 不能合并处理");
+            }
+        }
+
+        reqJson.put("payFeeSubDtos",payFeeSubDtos);
+    }
+
+    @Override
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+
+
+        List<PayFeeSubDto> payFeeSubDtos = (List<PayFeeSubDto>)reqJson.get("payFeeSubDtos");
+
+        //todo 删除拆分费用
+        PayFeeSubPo payFeeSubPo = new PayFeeSubPo();
+        payFeeSubPo.setPreFeeId(payFeeSubDtos.get(0).getPreFeeId());
+        payFeeSubPo.setCommunityId(payFeeSubDtos.get(0).getCommunityId());
+        int flag =  payFeeSubV1InnerServiceSMOImpl.deletePayFeeSub(payFeeSubPo);
+
+        if (flag < 1) {
+            throw new CmdException("删除数据失败");
+        }
+
+        //todo 结束拆分费用
+        for (PayFeeSubDto tmpPayFeeSubDto : payFeeSubDtos) {
+            PayFeePo payFeePo = new PayFeePo();
+            payFeePo.setFeeId(tmpPayFeeSubDto.getFeeId());
+            payFeePo.setState(FeeDto.STATE_FINISH);
+            payFeePo.setCommunityId(tmpPayFeeSubDto.getCommunityId());
+             flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo);
+            if (flag < 1) {
+                throw new CmdException("结束费用失败");
+            }
+        }
+
+        //todo 启用原费用
+        PayFeePo payFeePo = new PayFeePo();
+        payFeePo.setFeeId(payFeeSubDtos.get(0).getPreFeeId());
+        payFeePo.setState(FeeDto.STATE_DOING);
+        payFeePo.setCommunityId(payFeeSubDtos.get(0).getCommunityId());
+        flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo);
+        if (flag < 1) {
+            throw new CmdException("启用原费用失败");
+        }
+
+        cmdDataFlowContext.setResponseEntity(ResultVo.success());
+    }
+}

+ 206 - 0
service-fee/src/main/java/com/java110/fee/cmd/feeSub/SplitPayFeeCmd.java

@@ -0,0 +1,206 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.fee.cmd.feeSub;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeSubV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.payFeeSub.PayFeeSubPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 类表述:拆分费用
+ * 服务编码:payFeeSub.savePayFeeSub
+ * 请求路劲:/app/payFeeSub.SavePayFeeSub
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@Java110Cmd(serviceCode = "feeSub.splitPayFee")
+public class SplitPayFeeCmd extends Cmd {
+
+    private static Logger logger = LoggerFactory.getLogger(SplitPayFeeCmd.class);
+
+    public static final String CODE_PREFIX_ID = "10";
+
+    @Autowired
+    private IPayFeeSubV1InnerServiceSMO payFeeSubV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "preFeeId", "请求报文中未包含preFeeId");
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
+        Assert.hasKeyAndValue(reqJson, "splitTime", "请求报文中未包含splitTime");
+        Assert.hasKeyAndValue(reqJson, "remark", "请求报文中未包含remark");
+
+        //todo 判断 费用是不是 间接性费用或者是一次性费用
+        FeeDto feeDto = new FeeDto();
+        feeDto.setFeeId(reqJson.getString("preFeeId"));
+        feeDto.setCommunityId(reqJson.getString("communityId"));
+
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+        Assert.listOnlyOne(feeDtos, "费用不存在");
+
+        if (!FeeDto.STATE_DOING.equals(feeDtos.get(0).getState())) {
+            throw new CmdException("费用已结束不能拆分");
+        }
+
+        if (FeeDto.FEE_FLAG_CYCLE.equals(feeDtos.get(0).getFeeFlag())) {
+            throw new CmdException("只有间接性费用和一次性费用才能做拆分");
+        }
+
+        if (ListUtil.isNull(feeDtos.get(0).getFeeAttrDtos())) {
+            throw new CmdException("费用属性为空");
+        }
+
+        Date endTime = feeDtos.get(0).getEndTime();
+
+        Date maxTime = feeDtos.get(0).getDeadlineTime();
+
+        if (maxTime == null) {
+            throw new CmdException("费用错误未包含最大结束时间");
+        }
+
+        Date splitTime = DateUtil.getDateFromStringA(reqJson.getString("splitTime"));
+        if (splitTime.before(endTime)) {
+            throw new CmdException("拆分时间错误,应大于计费起始时间");
+        }
+
+        if (splitTime.after(maxTime)) {
+            throw new CmdException("拆分时间错误,应小于最大结束时间");
+
+        }
+
+
+        reqJson.put("feeDto", feeDtos.get(0));
+    }
+
+    @Override
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+        FeeDto feeDto = (FeeDto) reqJson.get("feeDto");
+
+        //todo 保存拆分后的sub数据
+
+        //todo 前半段
+        saveSubFee(feeDto, DateUtil.getFormatTimeStringA(feeDto.getEndTime()), reqJson.getString("splitTime"));
+
+        //todo 后半段
+        saveSubFee(feeDto, reqJson.getString("splitTime"), DateUtil.getFormatTimeStringA(feeDto.getDeadlineTime()));
+
+
+        //todo 结束原费用
+
+        PayFeePo payFeePo = new PayFeePo();
+        payFeePo.setFeeId(feeDto.getFeeId());
+        payFeePo.setState(FeeDto.STATE_FINISH);
+        payFeePo.setCommunityId(feeDto.getCommunityId());
+        int flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo);
+
+
+        if (flag < 1) {
+            throw new CmdException("结束费用失败");
+        }
+
+        cmdDataFlowContext.setResponseEntity(ResultVo.success());
+    }
+
+    /**
+     * 拆分费用
+     *
+     * @param feeDto  费用对象
+     * @param endTime 计费起始时间
+     * @param maxTime 最大结束时间
+     */
+    private void saveSubFee(FeeDto feeDto, String endTime, String maxTime) {
+
+        PayFeeSubPo payFeeSubPo = BeanConvertUtil.covertBean(feeDto, PayFeeSubPo.class);
+        payFeeSubPo.setEndTime(endTime);
+        payFeeSubPo.setMaxTime(maxTime);
+        payFeeSubPo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+        payFeeSubPo.setPayerObjName(feeDto.getPayerObjName());
+        payFeeSubPo.setPreFeeId(feeDto.getFeeId());
+        int flag = payFeeSubV1InnerServiceSMOImpl.savePayFeeSub(payFeeSubPo);
+        if (flag < 1) {
+            throw new CmdException("保存数据失败");
+        }
+
+        PayFeePo payFeePo = BeanConvertUtil.covertBean(feeDto, PayFeePo.class);
+        payFeePo.setEndTime(endTime);
+        payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+        payFeePo.setState(FeeDto.STATE_DOING);
+        flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
+        if (flag < 1) {
+            throw new CmdException("保存数据失败");
+        }
+
+        List<FeeAttrDto> feeAttrDtos = feeDto.getFeeAttrDtos();
+
+        if (ListUtil.isNull(feeAttrDtos)) {
+            return;
+        }
+        List<FeeAttrPo> feeAttrPos = new ArrayList<>();
+        FeeAttrPo feeAttrPo = null;
+        for (FeeAttrDto feeAttrDto : feeAttrDtos) {
+            feeAttrPo = BeanConvertUtil.covertBean(feeAttrDto, FeeAttrPo.class);
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            if (FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME.equals(feeAttrPo.getSpecCd())) {
+                feeAttrPo.setValue(payFeeSubPo.getMaxTime());
+            }
+            feeAttrPos.add(feeAttrPo);
+        }
+
+
+        feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrPos);
+    }
+}

+ 73 - 0
service-fee/src/main/java/com/java110/fee/dao/IPayFeeSubV1ServiceDao.java

@@ -0,0 +1,73 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.fee.dao;
+
+
+import com.java110.utils.exception.DAOException;
+
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 类表述:
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+public interface IPayFeeSubV1ServiceDao {
+
+
+    /**
+     * 保存 费用拆分信息
+     * @param info
+     * @throws DAOException DAO异常
+     */
+    int savePayFeeSubInfo(Map info) throws DAOException;
+
+
+
+
+    /**
+     * 查询费用拆分信息(instance过程)
+     * 根据bId 查询费用拆分信息
+     * @param info bId 信息
+     * @return 费用拆分信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> getPayFeeSubInfo(Map info) throws DAOException;
+
+
+
+    /**
+     * 修改费用拆分信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    int updatePayFeeSubInfo(Map info) throws DAOException;
+
+
+    /**
+     * 查询费用拆分总数
+     *
+     * @param info 费用拆分信息
+     * @return 费用拆分数量
+     */
+    int queryPayFeeSubsCount(Map info);
+
+}

+ 112 - 0
service-fee/src/main/java/com/java110/fee/dao/impl/PayFeeSubV1ServiceDaoImpl.java

@@ -0,0 +1,112 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.fee.dao.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.DAOException;
+import com.java110.utils.util.DateUtil;
+import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.fee.dao.IPayFeeSubV1ServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 类表述:
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@Service("payFeeSubV1ServiceDaoImpl")
+public class PayFeeSubV1ServiceDaoImpl extends BaseServiceDao implements IPayFeeSubV1ServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(PayFeeSubV1ServiceDaoImpl.class);
+
+
+
+
+
+    /**
+     * 保存费用拆分信息 到 instance
+     * @param info   bId 信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public int savePayFeeSubInfo(Map info) throws DAOException {
+        logger.debug("保存 savePayFeeSubInfo 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.insert("payFeeSubV1ServiceDaoImpl.savePayFeeSubInfo",info);
+
+        return saveFlag;
+    }
+
+
+    /**
+     * 查询费用拆分信息(instance)
+     * @param info bId 信息
+     * @return List<Map>
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getPayFeeSubInfo(Map info) throws DAOException {
+        logger.debug("查询 getPayFeeSubInfo 入参 info : {}",info);
+
+        List<Map> infos = sqlSessionTemplate.selectList("payFeeSubV1ServiceDaoImpl.getPayFeeSubInfo",info);
+
+        return infos;
+    }
+
+
+    /**
+     * 修改费用拆分信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public int updatePayFeeSubInfo(Map info) throws DAOException {
+        logger.debug("修改 updatePayFeeSubInfo 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.update("payFeeSubV1ServiceDaoImpl.updatePayFeeSubInfo",info);
+
+        return saveFlag;
+    }
+
+     /**
+     * 查询费用拆分数量
+     * @param info 费用拆分信息
+     * @return 费用拆分数量
+     */
+    @Override
+    public int queryPayFeeSubsCount(Map info) {
+        logger.debug("查询 queryPayFeeSubsCount 入参 info : {}",info);
+
+        List<Map> infos = sqlSessionTemplate.selectList("payFeeSubV1ServiceDaoImpl.queryPayFeeSubsCount", info);
+        if (infos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(infos.get(0).get("count").toString());
+    }
+
+
+}

+ 2 - 5
service-fee/src/main/java/com/java110/fee/smo/impl/FeeInnerServiceSMOImpl.java

@@ -19,6 +19,7 @@ import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.po.fee.PayFeePo;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.ListUtil;
 import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -65,14 +66,10 @@ public class FeeInnerServiceSMOImpl extends BaseServiceSMO implements IFeeInnerS
 
         List<FeeDto> fees = BeanConvertUtil.covertBeanList(feeServiceDaoImpl.getFeeInfo(BeanConvertUtil.beanCovertMap(feeDto)), FeeDto.class);
 
-        if (fees == null || fees.size() == 0) {
+        if (ListUtil.isNull(fees)) {
             return fees;
         }
 
-//        String[] userIds = getUserIds(fees);
-//        //根据 userId 查询用户信息
-//        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
-
         for (FeeDto fee : fees) {
             refreshFee(fee);
         }

+ 89 - 0
service-fee/src/main/java/com/java110/fee/smo/impl/PayFeeSubV1InnerServiceSMOImpl.java

@@ -0,0 +1,89 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.fee.smo.impl;
+
+
+import com.java110.fee.dao.IPayFeeSubV1ServiceDao;
+import com.java110.intf.fee.IPayFeeSubV1InnerServiceSMO;
+import com.java110.dto.payFeeSub.PayFeeSubDto;
+import com.java110.po.payFeeSub.PayFeeSubPo;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.user.UserDto;
+import com.java110.dto.PageDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 类表述: 服务之前调用的接口实现类,不对外提供接口能力 只用于接口建调用
+ * add by 吴学文 at 2024-01-05 12:10:47 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@RestController
+public class PayFeeSubV1InnerServiceSMOImpl extends BaseServiceSMO implements IPayFeeSubV1InnerServiceSMO {
+
+    @Autowired
+    private IPayFeeSubV1ServiceDao payFeeSubV1ServiceDaoImpl;
+
+
+    @Override
+    public int savePayFeeSub(@RequestBody  PayFeeSubPo payFeeSubPo) {
+        int saveFlag = payFeeSubV1ServiceDaoImpl.savePayFeeSubInfo(BeanConvertUtil.beanCovertMap(payFeeSubPo));
+        return saveFlag;
+    }
+
+     @Override
+    public int updatePayFeeSub(@RequestBody  PayFeeSubPo payFeeSubPo) {
+        int saveFlag = payFeeSubV1ServiceDaoImpl.updatePayFeeSubInfo(BeanConvertUtil.beanCovertMap(payFeeSubPo));
+        return saveFlag;
+    }
+
+     @Override
+    public int deletePayFeeSub(@RequestBody  PayFeeSubPo payFeeSubPo) {
+       payFeeSubPo.setStatusCd("1");
+       int saveFlag = payFeeSubV1ServiceDaoImpl.updatePayFeeSubInfo(BeanConvertUtil.beanCovertMap(payFeeSubPo));
+       return saveFlag;
+    }
+
+    @Override
+    public List<PayFeeSubDto> queryPayFeeSubs(@RequestBody  PayFeeSubDto payFeeSubDto) {
+
+        //校验是否传了 分页信息
+
+        int page = payFeeSubDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            payFeeSubDto.setPage((page - 1) * payFeeSubDto.getRow());
+        }
+
+        List<PayFeeSubDto> payFeeSubs = BeanConvertUtil.covertBeanList(payFeeSubV1ServiceDaoImpl.getPayFeeSubInfo(BeanConvertUtil.beanCovertMap(payFeeSubDto)), PayFeeSubDto.class);
+
+        return payFeeSubs;
+    }
+
+
+    @Override
+    public int queryPayFeeSubsCount(@RequestBody PayFeeSubDto payFeeSubDto) {
+        return payFeeSubV1ServiceDaoImpl.queryPayFeeSubsCount(BeanConvertUtil.beanCovertMap(payFeeSubDto));    }
+
+}