wuxw hace 2 años
padre
commit
5df6e4413a

+ 57 - 19
java110-bean/src/main/java/com/java110/dto/paymentPool/PaymentPoolDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.paymentPool;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -14,13 +15,21 @@ import java.util.Date;
  **/
 public class PaymentPoolDto extends PageDto implements Serializable {
 
+    public static final String PAY_TYPE_COMMUNITY = "1001";
+    public static final String PAY_TYPE_TEMP_CAT = "2002";
+    public static final String PAY_TYPE_FEE_CONFIG = "3003";
+
     private String certPath;
-private String remark;
-private String state;
-private String communityId;
-private String paymentName;
-private String ppId;
-private String paymentType;
+    private String remark;
+    private String state;
+    private String communityId;
+    private String paymentName;
+    private String ppId;
+    private String paymentType;
+
+    private String paymentTypeName;
+
+    private String payType;
 
 
     private Date createTime;
@@ -31,43 +40,56 @@ private String paymentType;
     public String getCertPath() {
         return certPath;
     }
-public void setCertPath(String certPath) {
+
+    public void setCertPath(String certPath) {
         this.certPath = certPath;
     }
-public String getRemark() {
+
+    public String getRemark() {
         return remark;
     }
-public void setRemark(String remark) {
+
+    public void setRemark(String remark) {
         this.remark = remark;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
-public String getPaymentName() {
+
+    public String getPaymentName() {
         return paymentName;
     }
-public void setPaymentName(String paymentName) {
+
+    public void setPaymentName(String paymentName) {
         this.paymentName = paymentName;
     }
-public String getPpId() {
+
+    public String getPpId() {
         return ppId;
     }
-public void setPpId(String ppId) {
+
+    public void setPpId(String ppId) {
         this.ppId = ppId;
     }
-public String getPaymentType() {
+
+    public String getPaymentType() {
         return paymentType;
     }
-public void setPaymentType(String paymentType) {
+
+    public void setPaymentType(String paymentType) {
         this.paymentType = paymentType;
     }
 
@@ -87,4 +109,20 @@ public void setPaymentType(String paymentType) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String getPaymentTypeName() {
+        return paymentTypeName;
+    }
+
+    public void setPaymentTypeName(String paymentTypeName) {
+        this.paymentTypeName = paymentTypeName;
+    }
+
+    public String getPayType() {
+        return payType;
+    }
+
+    public void setPayType(String payType) {
+        this.payType = payType;
+    }
 }

+ 49 - 24
java110-bean/src/main/java/com/java110/po/paymentPool/PaymentPoolPo.java

@@ -17,6 +17,7 @@ package com.java110.po.paymentPool;
 
 import java.io.Serializable;
 import java.util.Date;
+
 /**
  * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
  * add by 吴学文 at 2023-10-25 11:52:42 mail: 928255095@qq.com
@@ -28,62 +29,86 @@ import java.util.Date;
 public class PaymentPoolPo implements Serializable {
 
     private String certPath;
-private String statusCd = "0";
-private String remark;
-private String state;
-private String communityId;
-private String paymentName;
-private String ppId;
-private String paymentType;
-public String getCertPath() {
+    private String statusCd = "0";
+    private String remark;
+    private String state;
+    private String communityId;
+    private String paymentName;
+    private String ppId;
+    private String paymentType;
+
+    private String payType;
+
+
+    public String getCertPath() {
         return certPath;
     }
-public void setCertPath(String certPath) {
+
+    public void setCertPath(String certPath) {
         this.certPath = certPath;
     }
-public String getStatusCd() {
+
+    public String getStatusCd() {
         return statusCd;
     }
-public void setStatusCd(String statusCd) {
+
+    public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
-public String getRemark() {
+
+    public String getRemark() {
         return remark;
     }
-public void setRemark(String remark) {
+
+    public void setRemark(String remark) {
         this.remark = remark;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
-public String getPaymentName() {
+
+    public String getPaymentName() {
         return paymentName;
     }
-public void setPaymentName(String paymentName) {
+
+    public void setPaymentName(String paymentName) {
         this.paymentName = paymentName;
     }
-public String getPpId() {
+
+    public String getPpId() {
         return ppId;
     }
-public void setPpId(String ppId) {
+
+    public void setPpId(String ppId) {
         this.ppId = ppId;
     }
-public String getPaymentType() {
+
+    public String getPaymentType() {
         return paymentType;
     }
-public void setPaymentType(String paymentType) {
+
+    public void setPaymentType(String paymentType) {
         this.paymentType = paymentType;
     }
 
+    public String getPayType() {
+        return payType;
+    }
 
-
+    public void setPayType(String payType) {
+        this.payType = payType;
+    }
 }

+ 1 - 1
java110-db/src/main/resources/mapper/acct/PaymentKeyV1ServiceDaoImplMapper.xml

@@ -38,7 +38,7 @@
         <if test="paymentType !=null and paymentType != ''">
             and t.payment_type= #{paymentType}
         </if>
-        order by t.create_time desc
+        order by t.key_id
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
         </if>

+ 14 - 3
java110-db/src/main/resources/mapper/acct/PaymentPoolV1ServiceDaoImplMapper.xml

@@ -8,9 +8,9 @@
     <!-- 保存支付厂家信息 add by wuxw 2018-07-03 -->
     <insert id="savePaymentPoolInfo" parameterType="Map">
         insert into payment_pool(
-        cert_path,remark,state,community_id,payment_name,pp_id,payment_type
+        cert_path,remark,state,community_id,payment_name,pp_id,payment_type,pay_type
         ) values (
-        #{certPath},#{remark},#{state},#{communityId},#{paymentName},#{ppId},#{paymentType}
+        #{certPath},#{remark},#{state},#{communityId},#{paymentName},#{ppId},#{paymentType},#{payType}
         )
     </insert>
 
@@ -19,8 +19,10 @@
     <select id="getPaymentPoolInfo" parameterType="Map" resultType="Map">
         select t.cert_path,t.cert_path certPath,t.status_cd,t.status_cd
         statusCd,t.remark,t.state,t.community_id,t.community_id communityId,t.payment_name,t.payment_name
-        paymentName,t.pp_id,t.pp_id ppId,t.payment_type,t.payment_type paymentType
+        paymentName,t.pp_id,t.pp_id ppId,t.payment_type,t.payment_type paymentType,t.create_time createTime,
+        td.name paymentTypeName,t.pay_type payType
         from payment_pool t
+        left join t_dict td on t.payment_type = td.status_cd and td.table_name = 'payment_key' and td.table_columns = 'payment_type'
         where 1 =1
         <if test="certPath !=null and certPath != ''">
             and t.cert_path= #{certPath}
@@ -40,6 +42,9 @@
         <if test="paymentName !=null and paymentName != ''">
             and t.payment_name= #{paymentName}
         </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
+        </if>
         <if test="ppId !=null and ppId != ''">
             and t.pp_id= #{ppId}
         </if>
@@ -75,6 +80,9 @@
         <if test="paymentType !=null and paymentType != ''">
             , t.payment_type= #{paymentType}
         </if>
+        <if test="payType !=null and payType != ''">
+            , t.pay_type= #{payType}
+        </if>
         where 1=1
         <if test="ppId !=null and ppId != ''">
             and t.pp_id= #{ppId}
@@ -108,6 +116,9 @@
         <if test="paymentName !=null and paymentName != ''">
             and t.payment_name= #{paymentName}
         </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
+        </if>
         <if test="ppId !=null and ppId != ''">
             and t.pp_id= #{ppId}
         </if>

+ 4 - 3
java110-db/src/main/resources/mapper/acct/PaymentPoolValueV1ServiceDaoImplMapper.xml

@@ -60,9 +60,7 @@
         <if test="columnKey !=null and columnKey != ''">
             , t.column_key= #{columnKey}
         </if>
-        <if test="ppId !=null and ppId != ''">
-            , t.pp_id= #{ppId}
-        </if>
+
         where 1=1
         <if test="valueId !=null and valueId != ''">
             and t.value_id= #{valueId}
@@ -70,6 +68,9 @@
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
+        <if test="ppId !=null and ppId != ''">
+            and t.pp_id= #{ppId}
+        </if>
 
     </update>
 

+ 89 - 0
service-acct/src/main/java/com/java110/acct/cmd/payment/SavePaymentPoolCmd.java

@@ -15,6 +15,7 @@
  */
 package com.java110.acct.cmd.payment;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
@@ -22,8 +23,15 @@ 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.FeeConfigDto;
+import com.java110.dto.paymentPool.PaymentPoolDto;
+import com.java110.intf.acct.IPaymentPoolConfigV1InnerServiceSMO;
 import com.java110.intf.acct.IPaymentPoolV1InnerServiceSMO;
+import com.java110.intf.acct.IPaymentPoolValueV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeConfigV1InnerServiceSMO;
 import com.java110.po.paymentPool.PaymentPoolPo;
+import com.java110.po.paymentPoolConfig.PaymentPoolConfigPo;
+import com.java110.po.paymentPoolValue.PaymentPoolValuePo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -32,6 +40,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.List;
+
 /**
  * 类表述:保存
  * 服务编码:paymentPool.savePaymentPool
@@ -52,6 +62,15 @@ public class SavePaymentPoolCmd extends Cmd {
     @Autowired
     private IPaymentPoolV1InnerServiceSMO paymentPoolV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IPaymentPoolValueV1InnerServiceSMO paymentPoolValueV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeConfigV1InnerServiceSMO payFeeConfigV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPaymentPoolConfigV1InnerServiceSMO paymentPoolConfigV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "paymentName", "请求报文中未包含paymentName");
@@ -59,6 +78,31 @@ public class SavePaymentPoolCmd extends Cmd {
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
         Assert.hasKeyAndValue(reqJson, "state", "请求报文中未包含state");
 
+        Assert.hasKey(reqJson, "paymentKeys", "未包含动态字段");
+
+        JSONArray paymentKeys = reqJson.getJSONArray("paymentKeys");
+
+        if (paymentKeys == null || paymentKeys.isEmpty()) {
+            throw new CmdException("未包含字段");
+        }
+        JSONObject columns = null;
+        // {"columnKey":"WECHAT_KEY","keyId":"2","name":"支付密码","page":-1,"paymentType":"WECHAT",
+        // "records":0,"remark":"请输入微信v2支付秘钥","row":0,"statusCd":"0","total":0,"columnValue":"1"}
+        for (int keyIndex = 0; keyIndex < paymentKeys.size(); keyIndex++) {
+            columns = paymentKeys.getJSONObject(keyIndex);
+            Assert.hasKeyAndValue(columns, "columnKey", "未包含key");
+            Assert.hasKeyAndValue(columns, "columnValue", reqJson.getString("name") + "未填写值");
+        }
+
+        if (!PaymentPoolDto.PAY_TYPE_FEE_CONFIG.equals(reqJson.getString("payType"))) {
+            return;
+        }
+
+        JSONArray configIds = reqJson.getJSONArray("configIds");
+        if (configIds == null || configIds.isEmpty()) {
+            throw new CmdException("未包含费用项");
+        }
+
     }
 
     @Override
@@ -73,6 +117,51 @@ public class SavePaymentPoolCmd extends Cmd {
             throw new CmdException("保存数据失败");
         }
 
+        //todo 动态字段
+        JSONArray paymentKeys = reqJson.getJSONArray("paymentKeys");
+
+        JSONObject columns = null;
+        PaymentPoolValuePo paymentPoolValuePo = null;
+        for (int keyIndex = 0; keyIndex < paymentKeys.size(); keyIndex++) {
+            columns = paymentKeys.getJSONObject(keyIndex);
+            paymentPoolValuePo = new PaymentPoolValuePo();
+            paymentPoolValuePo.setColumnValue(columns.getString("columnValue"));
+            paymentPoolValuePo.setColumnKey(columns.getString("columnKey"));
+            paymentPoolValuePo.setCommunityId(paymentPoolPo.getCommunityId());
+            paymentPoolValuePo.setPpId(paymentPoolPo.getPpId());
+            paymentPoolValuePo.setValueId(GenerateCodeFactory.getGeneratorId("11"));
+            paymentPoolValueV1InnerServiceSMOImpl.savePaymentPoolValue(paymentPoolValuePo);
+        }
+
+        // todo 保存关联关系
+
+        if (!PaymentPoolDto.PAY_TYPE_FEE_CONFIG.equals(reqJson.getString("payType"))) {
+            return;
+        }
+        JSONArray configIds = reqJson.getJSONArray("configIds");
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setConfigIds(configIds.toArray(new String[configIds.size()]));
+        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
+        List<FeeConfigDto> feeConfigDtos = payFeeConfigV1InnerServiceSMOImpl.queryPayFeeConfigs(feeConfigDto);
+
+        if (feeConfigDtos == null || feeConfigDtos.isEmpty()) {
+            return;
+        }
+
+
+        PaymentPoolConfigPo paymentPoolConfigPo = null;
+        for (FeeConfigDto tmpFeeConfigDto : feeConfigDtos) {
+
+            paymentPoolConfigPo = new PaymentPoolConfigPo();
+            paymentPoolConfigPo.setConfigId(tmpFeeConfigDto.getConfigId());
+            paymentPoolConfigPo.setFeeName(tmpFeeConfigDto.getFeeName());
+            paymentPoolConfigPo.setCommunityId(paymentPoolPo.getCommunityId());
+            paymentPoolConfigPo.setPpId(paymentPoolPo.getPpId());
+            paymentPoolConfigPo.setPpcId(GenerateCodeFactory.getGeneratorId("11"));
+            paymentPoolConfigV1InnerServiceSMOImpl.savePaymentPoolConfig(paymentPoolConfigPo);
+        }
+
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 }

+ 95 - 0
service-acct/src/main/java/com/java110/acct/cmd/payment/UpdatePaymentPoolCmd.java

@@ -15,14 +15,23 @@
  */
 package com.java110.acct.cmd.payment;
 
+import com.alibaba.fastjson.JSONArray;
 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.FeeConfigDto;
+import com.java110.dto.paymentPool.PaymentPoolDto;
+import com.java110.intf.acct.IPaymentPoolConfigV1InnerServiceSMO;
 import com.java110.intf.acct.IPaymentPoolV1InnerServiceSMO;
+import com.java110.intf.acct.IPaymentPoolValueV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeConfigV1InnerServiceSMO;
 import com.java110.po.paymentPool.PaymentPoolPo;
+import com.java110.po.paymentPoolConfig.PaymentPoolConfigPo;
+import com.java110.po.paymentPoolValue.PaymentPoolValuePo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -31,6 +40,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.List;
+
 
 /**
  * 类表述:更新
@@ -51,11 +62,43 @@ public class UpdatePaymentPoolCmd extends Cmd {
     @Autowired
     private IPaymentPoolV1InnerServiceSMO paymentPoolV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IPaymentPoolValueV1InnerServiceSMO paymentPoolValueV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeConfigV1InnerServiceSMO payFeeConfigV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPaymentPoolConfigV1InnerServiceSMO paymentPoolConfigV1InnerServiceSMOImpl;
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "ppId", "ppId不能为空");
         Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
 
+        Assert.hasKey(reqJson, "paymentKeys", "未包含动态字段");
+
+        JSONArray paymentKeys = reqJson.getJSONArray("paymentKeys");
+
+        if (paymentKeys == null || paymentKeys.isEmpty()) {
+            throw new CmdException("未包含字段");
+        }
+        JSONObject columns = null;
+        // {"columnKey":"WECHAT_KEY","keyId":"2","name":"支付密码","page":-1,"paymentType":"WECHAT",
+        // "records":0,"remark":"请输入微信v2支付秘钥","row":0,"statusCd":"0","total":0,"columnValue":"1"}
+        for (int keyIndex = 0; keyIndex < paymentKeys.size(); keyIndex++) {
+            columns = paymentKeys.getJSONObject(keyIndex);
+            Assert.hasKeyAndValue(columns, "columnKey", "未包含key");
+            Assert.hasKeyAndValue(columns, "columnValue", reqJson.getString("name") + "未填写值");
+        }
+
+        if (!PaymentPoolDto.PAY_TYPE_FEE_CONFIG.equals(reqJson.getString("payType"))) {
+            return;
+        }
+
+        JSONArray configIds = reqJson.getJSONArray("configIds");
+        if (configIds == null || configIds.isEmpty()) {
+            throw new CmdException("未包含费用项");
+        }
     }
 
     @Override
@@ -68,6 +111,58 @@ public class UpdatePaymentPoolCmd extends Cmd {
         if (flag < 1) {
             throw new CmdException("更新数据失败");
         }
+        PaymentPoolValuePo paymentPoolValuePo = new PaymentPoolValuePo();
+        paymentPoolValuePo.setPpId(paymentPoolPo.getPpId());
+        paymentPoolValuePo.setCommunityId(paymentPoolPo.getCommunityId());
+        paymentPoolValueV1InnerServiceSMOImpl.deletePaymentPoolValue(paymentPoolValuePo);
+
+        //todo 动态字段
+        JSONArray paymentKeys = reqJson.getJSONArray("paymentKeys");
+
+        JSONObject columns = null;
+
+        for (int keyIndex = 0; keyIndex < paymentKeys.size(); keyIndex++) {
+            columns = paymentKeys.getJSONObject(keyIndex);
+            paymentPoolValuePo = new PaymentPoolValuePo();
+            paymentPoolValuePo.setColumnValue(columns.getString("columnValue"));
+            paymentPoolValuePo.setColumnKey(columns.getString("columnKey"));
+            paymentPoolValuePo.setCommunityId(paymentPoolPo.getCommunityId());
+            paymentPoolValuePo.setPpId(paymentPoolPo.getPpId());
+            paymentPoolValuePo.setValueId(GenerateCodeFactory.getGeneratorId("11"));
+            paymentPoolValueV1InnerServiceSMOImpl.savePaymentPoolValue(paymentPoolValuePo);
+        }
+
+        // todo 保存关联关系
+
+        if (!PaymentPoolDto.PAY_TYPE_FEE_CONFIG.equals(reqJson.getString("payType"))) {
+            return;
+        }
+        JSONArray configIds = reqJson.getJSONArray("configIds");
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setConfigIds(configIds.toArray(new String[configIds.size()]));
+        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
+        List<FeeConfigDto> feeConfigDtos = payFeeConfigV1InnerServiceSMOImpl.queryPayFeeConfigs(feeConfigDto);
+
+        if (feeConfigDtos == null || feeConfigDtos.isEmpty()) {
+            return;
+        }
+
+
+        PaymentPoolConfigPo paymentPoolConfigPo = new PaymentPoolConfigPo();
+        paymentPoolConfigPo.setPpId(paymentPoolPo.getPpId());
+        paymentPoolConfigPo.setCommunityId(paymentPoolPo.getCommunityId());
+        paymentPoolConfigV1InnerServiceSMOImpl.deletePaymentPoolConfig(paymentPoolConfigPo);
+
+        for (FeeConfigDto tmpFeeConfigDto : feeConfigDtos) {
+
+            paymentPoolConfigPo = new PaymentPoolConfigPo();
+            paymentPoolConfigPo.setConfigId(tmpFeeConfigDto.getConfigId());
+            paymentPoolConfigPo.setFeeName(tmpFeeConfigDto.getFeeName());
+            paymentPoolConfigPo.setCommunityId(paymentPoolPo.getCommunityId());
+            paymentPoolConfigPo.setPpId(paymentPoolPo.getPpId());
+            paymentPoolConfigPo.setPpcId(GenerateCodeFactory.getGeneratorId("11"));
+            paymentPoolConfigV1InnerServiceSMOImpl.savePaymentPoolConfig(paymentPoolConfigPo);
+        }
 
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }