Просмотр исходного кода

1、增加支付方式2、增加业主缴费成功判断是否绑定维系推送微信或者短信3、增加应收款输入框是否禁用、缴费周期必选

xiaogang лет назад: 5
Родитель
Сommit
dcf3fce2ee

+ 11 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java

@@ -45,6 +45,9 @@ public class FeeDto extends PageDto implements Serializable {
     //映射关系开关值
     private String val;
 
+    //实收金额映射开关值
+    private String receivedAmountSwitch;
+
     private String squarePrice;
     private String additionalAmount;
     private String state;
@@ -527,4 +530,12 @@ public class FeeDto extends PageDto implements Serializable {
     public void setVal(String value) {
         this.val = value;
     }
+
+    public String getReceivedAmountSwitch() {
+        return receivedAmountSwitch;
+    }
+
+    public void setReceivedAmountSwitch(String receivedAmountSwitch) {
+        this.receivedAmountSwitch = receivedAmountSwitch;
+    }
 }

+ 4 - 1
java110-db/src/main/resources/mapper/report/ReportFeeMonthStatisticsServiceDaoImplMapper.xml

@@ -828,7 +828,8 @@
     <select id="queryPayFeeDetail" parameterType="Map" resultType="Map">
         select pfc.fee_name feeName,f.floor_num floorNum,bu.unit_num unitNum,br.room_num roomNum,oc.car_num carNum,
         pf.payer_obj_type payerObjType,t.start_time startTime,t.end_time endTime,t.create_time createTime,
-        t.receivable_amount receivableAmount,t.received_amount receivedAmount,pfa.`value` importFeeName
+        t.receivable_amount receivableAmount,t.received_amount receivedAmount,pfa.`value`
+        importFeeName,t.prime_rate,d.name
         from pay_fee_detail t
         INNER JOIN pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
         inner join pay_fee_config pfc on pf.config_id = pfc.config_id and pfc.status_cd = '0'
@@ -837,6 +838,8 @@
         left join f_floor f on bu.floor_id = f.floor_id and f.status_cd = '0'
         left join owner_car oc on pf.payer_obj_id = oc.car_id and oc.status_cd = '0'
         left join pay_fee_attrs pfa on t.fee_id = pfa.fee_id and pfa.spec_cd = '390002'
+        left join t_dict d on t.prime_rate = d.status_cd and d.table_name="pay_fee_detail" and
+        d.table_columns="prime_rate"
         where t.status_cd = '0'
         <if test="roomNum !=null and roomNum != ''">
             and br.room_num= #{roomNum}

+ 5 - 76
service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java

@@ -1,6 +1,5 @@
 package com.java110.api.bmo.fee.impl;
 
-
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.fee.IFeeBMO;
@@ -54,7 +53,6 @@ import java.util.Map;
 @Service("feeBMOImpl")
 public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
 
-
     @Autowired
     private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
 
@@ -67,9 +65,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
     @Autowired
     private ICarInoutInnerServiceSMO carInoutInnerServiceSMOImpl;
 
-    @Autowired
-    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
-
     @Autowired
     private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
 
@@ -106,30 +101,24 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
 
     public void updateFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
         PayFeePo payFeePo = BeanConvertUtil.covertBean(paramInJson, PayFeePo.class);
-
         super.update(dataFlowContext, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FEE_INFO);
     }
 
     private static Calendar getTargetEndTime(Calendar endCalender, Double cycles) {
         if (StringUtil.isInteger(cycles.toString())) {
             endCalender.add(Calendar.MONTH, new Double(cycles).intValue());
-
             return endCalender;
         }
-
         if (cycles >= 1) {
             endCalender.add(Calendar.MONTH, new Double(Math.floor(cycles)).intValue());
             cycles = cycles - Math.floor(cycles);
         }
-        //int hours = new Double(cycles * DateUtil.getCurrentMonthDay() * 24).intValue();
         int futureDay = endCalender.getActualMaximum(Calendar.DAY_OF_MONTH);
         int hours = new Double(cycles * futureDay * 24).intValue();
         endCalender.add(Calendar.HOUR, hours);
-
         return endCalender;
     }
 
-
     /**
      * 添加费用明细信息
      *
@@ -138,15 +127,12 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject addSimpleFeeDetail(PayFeeDetailPo payFeeDetailPo, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_DETAIL);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
         business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
         JSONObject businessFeeDetail = JSONObject.parseObject(JSONObject.toJSONString(payFeeDetailPo));
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeeDetailPo.class.getSimpleName(), businessFeeDetail);
-
         return business;
     }
 
@@ -158,8 +144,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject addFeeDetail(JSONObject paramInJson, DataFlowContext dataFlowContext, FeeReceiptDetailPo feeReceiptDetailPo, FeeReceiptPo feeReceiptPo) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_DETAIL);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
@@ -167,13 +151,13 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         JSONObject businessFeeDetail = new JSONObject();
         businessFeeDetail.putAll(paramInJson);
         businessFeeDetail.put("detailId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
-        businessFeeDetail.put("primeRate", "1.00");
+        //支付方式
+        businessFeeDetail.put("primeRate", paramInJson.getString("primeRate"));
         //计算 应收金额
         FeeDto feeDto = new FeeDto();
         feeDto.setFeeId(paramInJson.getString("feeId"));
         feeDto.setCommunityId(paramInJson.getString("communityId"));
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-
         if (feeDtos == null || feeDtos.size() != 1) {
             throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "查询费用信息失败,未查到数据或查到多条数据");
         }
@@ -203,10 +187,8 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
             double tmpReceivableAmount = cycles.multiply(feePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
             businessFeeDetail.put("receivableAmount", tmpReceivableAmount);
         }
-
         businessFeeDetail.put("endTime", DateUtil.getFormatTimeString(targetEndTime, DateUtil.DATE_FORMATE_STRING_A));
         paramInJson.put("feeInfo", feeDto);
-
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeeDetailPo.class.getSimpleName(), businessFeeDetail);
         paramInJson.put("detailId", businessFeeDetail.getString("detailId"));
         feeReceiptDetailPo.setAmount(businessFeeDetail.getString("receivedAmount"));
@@ -238,8 +220,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
     public JSONObject addOweFeeDetail(JSONObject paramInJson, DataFlowContext dataFlowContext,
                                       List<FeeReceiptDetailPo> feeReceiptDetailPos,
                                       List<FeeReceiptPo> feeReceiptPos) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_DETAIL);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
@@ -247,13 +227,12 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         JSONObject businessFeeDetail = new JSONObject();
         businessFeeDetail.putAll(paramInJson);
         businessFeeDetail.put("detailId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
-        businessFeeDetail.put("primeRate", "1.00");
+        businessFeeDetail.put("primeRate", paramInJson.getString("primeRate"));
         //计算 应收金额
         FeeDto feeDto = new FeeDto();
         feeDto.setFeeId(paramInJson.getString("feeId"));
         feeDto.setCommunityId(paramInJson.getString("communityId"));
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-
         if (feeDtos == null || feeDtos.size() != 1) {
             throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "查询费用信息失败,未查到数据或查到多条数据");
         }
@@ -275,10 +254,8 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessFeeDetail.put("endTime", paramInJson.getString("endTime"));
         paramInJson.put("feeInfo", feeDto);
         paramInJson.put("cycles", cycles.doubleValue());
-
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeeDetailPo.class.getSimpleName(), businessFeeDetail);
         paramInJson.put("detailId", businessFeeDetail.getString("detailId"));
-
         FeeReceiptPo feeReceiptPo = new FeeReceiptPo();
         FeeReceiptDetailPo feeReceiptDetailPo = new FeeReceiptDetailPo();
         feeReceiptDetailPo.setAmount(businessFeeDetail.getString("receivedAmount"));
@@ -298,7 +275,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         feeReceiptPo.setObjType(feeDto.getPayerObjType());
         feeReceiptPo.setObjId(feeDto.getPayerObjId());
         feeReceiptPo.setObjName(computeFeeSMOImpl.getFeeObjName(feeDto));
-
         feeReceiptPos.add(feeReceiptPo);
         return business;
     }
@@ -311,8 +287,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject modifyFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FEE_INFO);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
@@ -324,9 +298,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         endCalender.setTime(endTime);
         int hours = 0;
         if ("-101".equals(paramInJson.getString("cycles"))) {
-//            hours = new Double(Double.parseDouble(paramInJson.getString("tmpCycles")) * DateUtil.getCurrentMonthDay() * 24).intValue();
-//            endCalender.add(Calendar.HOUR, hours);
-
             endCalender = getTargetEndTime(endCalender, Double.parseDouble(paramInJson.getString("tmpCycles")));
         } else {
             endCalender.add(Calendar.MONTH, Integer.parseInt(paramInJson.getString("cycles")));
@@ -337,16 +308,12 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         feeMap.put("endTime", DateUtil.getFormatTimeString(feeInfo.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
         feeMap.put("cycles", paramInJson.getString("cycles"));
         feeMap.put("configEndTime", feeInfo.getConfigEndTime());
-
         businessFee.putAll(feeMap);
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessFee);
-
         //为停车费单独处理
         paramInJson.put("carFeeEndTime", feeInfo.getEndTime());
         paramInJson.put("carPayerObjType", feeInfo.getPayerObjType());
         paramInJson.put("carPayerObjId", feeInfo.getPayerObjId());
-
-
         return business;
     }
 
@@ -358,8 +325,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject modifyOweFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_ONLY_UPDATE_FEE_INFO); //这里走only
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
@@ -385,7 +350,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         }
         businessFee.putAll(feeMap);
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessFee);
-
         return business;
     }
 
@@ -397,8 +361,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject addFeePreDetail(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_DETAIL);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
@@ -406,8 +368,7 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         JSONObject businessFeeDetail = new JSONObject();
         businessFeeDetail.putAll(paramInJson);
         businessFeeDetail.put("detailId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
-        businessFeeDetail.put("primeRate", "1.00");
-
+        businessFeeDetail.put("primeRate", paramInJson.getString("primeRate"));
         if (!businessFeeDetail.containsKey("state")) {
             businessFeeDetail.put("state", "1400");
         }
@@ -416,11 +377,9 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         feeDto.setFeeId(paramInJson.getString("feeId"));
         feeDto.setCommunityId(paramInJson.getString("communityId"));
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-
         if (feeDtos == null || feeDtos.size() != 1) {
             throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "查询费用信息失败,未查到数据或查到多条数据");
         }
-
         feeDto = feeDtos.get(0);
         paramInJson.put("feeInfo", feeDto);
         businessFeeDetail.put("startTime", DateUtil.getFormatTimeString(feeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
@@ -529,7 +488,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
                 throw new IllegalArgumentException("暂不支持该类公式");
             }
         }
-
         BigDecimal receivableAmount = feePrice;
         BigDecimal cycles = new BigDecimal(Double.parseDouble(paramInJson.getString("cycles")));
         double tmpReceivableAmount = cycles.multiply(receivableAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
@@ -544,7 +502,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         return business;
     }
 
-
     /**
      * 修改费用信息
      *
@@ -553,8 +510,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject modifyPreFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FEE_INFO);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
@@ -571,20 +526,16 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         feeMap.put("endTime", DateUtil.getFormatTimeString(feeInfo.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
         businessFee.putAll(feeMap);
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessFee);
-
         return business;
     }
 
     public JSONObject modifyTempCarInout(JSONObject reqJson, DataFlowContext context) {
-
         FeeDto feeDto = (FeeDto) reqJson.get("feeInfo");
         CarInoutDto tempCarInoutDto = new CarInoutDto();
         tempCarInoutDto.setCommunityId(reqJson.getString("communityId"));
         tempCarInoutDto.setInoutId(feeDto.getPayerObjId());
         List<CarInoutDto> carInoutDtos = carInoutInnerServiceSMOImpl.queryCarInouts(tempCarInoutDto);
-
         Assert.listOnlyOne(carInoutDtos, "根据费用信息反差车辆进场记录未查到 或查到多条");
-
         CarInoutDto carInoutDto = carInoutDtos.get(0);
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_CAR_INOUT);
@@ -606,8 +557,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject addFeeTempDetail(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_DETAIL);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
@@ -615,7 +564,7 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         JSONObject businessFeeDetail = new JSONObject();
         businessFeeDetail.putAll(paramInJson);
         businessFeeDetail.put("detailId", "-1");
-        businessFeeDetail.put("primeRate", "1.00");
+        businessFeeDetail.put("primeRate", paramInJson.getString("primeRate"));
         if (!businessFeeDetail.containsKey("state")) {
             businessFeeDetail.put("state", "1400");
         }
@@ -663,16 +612,13 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
             BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
             money = squarePrice.multiply(lastHour).add(additionalAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
         }
-
         double receivableAmount = money;
-
         businessFeeDetail.put("receivableAmount", receivableAmount);
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeeDetailPo.class.getSimpleName(), businessFeeDetail);
         paramInJson.put("receivableAmount", receivableAmount);
         return business;
     }
 
-
     /**
      * 修改费用信息
      *
@@ -681,8 +627,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject modifyTempFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FEE_INFO);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
@@ -696,7 +640,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         feeMap.put("state", "2009001");
         businessFee.putAll(feeMap);
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessFee);
-
         return business;
     }
 
@@ -708,8 +651,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public void addFeeConfig(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
         paramInJson.put("configId", "-1");
         paramInJson.put("isDefault", "F");
         PayFeeConfigPo payFeeConfigPo = BeanConvertUtil.covertBean(paramInJson, PayFeeConfigPo.class);
@@ -724,13 +665,10 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject addFee(OwnerCarDto ownerCarDto, JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
         String time = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A);
-
         if (paramInJson.containsKey("startTime")) {
             time = paramInJson.getString("startTime");
         }
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
@@ -750,7 +688,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessUnit.put("state", "2008001");
         businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessUnit);
-
         return business;
     }
 
@@ -762,8 +699,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject addSimpleFee(PayFeePo payFeePo, DataFlowContext dataFlowContext) {
-
-
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
@@ -772,7 +707,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessUnit = JSONObject.parseObject(JSONObject.toJSONString(payFeePo));
         businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessUnit);
-
         return business;
     }
 
@@ -784,9 +718,7 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @return 订单服务能够接受的报文
      */
     public JSONObject addRoomFee(RoomDto roomDto, JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
         String time = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A);
-
         if (paramInJson.containsKey("feeEndDate")) {
             time = paramInJson.getString("feeEndDate");
         } else if (paramInJson.containsKey("startTime")) {
@@ -811,7 +743,6 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessUnit.put("state", "2008001");
         businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessUnit);
-
         return business;
     }
 
@@ -828,12 +759,10 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         feeConfigDto.setConfigId(paramInJson.getString("configId"));
         List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
         Assert.listOnlyOne(feeConfigDtos, "未找到该费用项");
-
         JSONObject businessFeeConfig = new JSONObject();
         businessFeeConfig.putAll(paramInJson);
         businessFeeConfig.put("isDefault", feeConfigDtos.get(0).getIsDefault());
         PayFeeConfigPo payFeeConfigPo = BeanConvertUtil.covertBean(businessFeeConfig, PayFeeConfigPo.class);
-
         super.update(dataFlowContext, payFeeConfigPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FEE_CONFIG);
     }
 

+ 11 - 8
service-api/src/main/java/com/java110/api/listener/fee/PayFeePreListener.java

@@ -8,16 +8,15 @@ import com.java110.api.listener.AbstractServiceApiDataFlowListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.dto.app.AppDto;
 import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.feeDiscount.ComputeDiscountDto;
 import com.java110.entity.center.AppService;
 import com.java110.entity.order.Orders;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.intf.fee.IFeeDiscountInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.store.ISmallWeChatInnerServiceSMO;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.util.Assert;
@@ -56,15 +55,9 @@ public class PayFeePreListener extends AbstractServiceApiDataFlowListener {
     @Autowired
     private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
 
-    @Autowired
-    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
-    @Autowired
-    private ISmallWeChatInnerServiceSMO smallWeChatInnerServiceSMOImpl;
-
     @Autowired
     private IFeeDiscountInnerServiceSMO feeDiscountInnerServiceSMOImpl;
 
-
     @Autowired
     private IPayFeeDetailDiscountBMO payFeeDetailDiscountBMOImpl;
 
@@ -97,6 +90,16 @@ public class PayFeePreListener extends AbstractServiceApiDataFlowListener {
         //判断是否有折扣情况
         judgeDiscount(paramObj);
 
+        String appId = event.getDataFlowContext().getAppId();
+
+        if (AppDto.WECHAT_MINA_OWNER_APP_ID.equals(appId)) {  //微信小程序支付
+            paramObj.put("primeRate", "5");
+            paramObj.put("remark", "线上小程序支付");
+        } else if (AppDto.WECHAT_OWNER_APP_ID.equals(appId)) {  //微信公众号支付
+            paramObj.put("primeRate", "6");
+            paramObj.put("remark", "线上公众号支付");
+        }
+
         //添加单元信息
         businesses.add(feeBMOImpl.addFeePreDetail(paramObj, dataFlowContext));
         businesses.add(feeBMOImpl.modifyPreFee(paramObj, dataFlowContext));

+ 11 - 2
service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java

@@ -66,6 +66,9 @@ public class QueryOweFeeImpl implements IQueryOweFee {
     //键
     public static final String TOTAL_FEE_PRICE = "TOTAL_FEE_PRICE";
 
+    //键
+    public static final String RECEIVED_AMOUNT_SWITCH = "RECEIVED_AMOUNT_SWITCH";
+
     @Override
     public ResponseEntity<String> query(FeeDto feeDto) {
 
@@ -150,10 +153,16 @@ public class QueryOweFeeImpl implements IQueryOweFee {
         }
         double feePrice = computeFeeSMOImpl.getFeePrice(feeDto);
         feeDto.setFeePrice(feePrice);
-        //取出开关映射的
+        //应收款取值
         String val = MappingCache.getValue(DOMAIN_COMMON, TOTAL_FEE_PRICE);
         feeDto.setVal(val);
-        return ResultVo.createResponseEntity(feeDto);
+        String received_amount_switch = MappingCache.getValue(DOMAIN_COMMON, RECEIVED_AMOUNT_SWITCH);
+        if(StringUtil.isEmpty(received_amount_switch)){
+            feeDto.setReceivedAmountSwitch("1");//默认启用实收款输入框
+        }else {
+            feeDto.setReceivedAmountSwitch(received_amount_switch);
+        }
+         return ResultVo.createResponseEntity(feeDto);
     }
 
     private boolean freshFeeDtoParam(FeeDto feeDto) {

+ 12 - 10
service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportReportFeeSMOImpl.java

@@ -117,11 +117,12 @@ public class ExportReportFeeSMOImpl extends BaseComponentSMO implements IExportR
         row.createCell(0).setCellValue("费用编号");
         row.createCell(1).setCellValue("房号");
         row.createCell(2).setCellValue("费用项");
-        row.createCell(3).setCellValue("缴费开始时间");
-        row.createCell(4).setCellValue("缴费结束时间");
-        row.createCell(5).setCellValue("缴费时间");
-        row.createCell(6).setCellValue("应收金额");
-        row.createCell(7).setCellValue("实收金额");
+        row.createCell(3).setCellValue("支付方式");
+        row.createCell(4).setCellValue("缴费开始时间");
+        row.createCell(5).setCellValue("缴费结束时间");
+        row.createCell(6).setCellValue("缴费时间");
+        row.createCell(7).setCellValue("应收金额");
+        row.createCell(8).setCellValue("实收金额");
 
 
         //查询楼栋信息
@@ -138,11 +139,12 @@ public class ExportReportFeeSMOImpl extends BaseComponentSMO implements IExportR
             row.createCell(0).setCellValue(roomIndex + 1);
             row.createCell(1).setCellValue(dataObj.getString("objName"));
             row.createCell(2).setCellValue(dataObj.getString("feeName"));
-            row.createCell(3).setCellValue(dataObj.getString("startTime"));
-            row.createCell(4).setCellValue(dataObj.getString("endTime"));
-            row.createCell(5).setCellValue(dataObj.getString("createTime"));
-            row.createCell(6).setCellValue(dataObj.getString("receivableAmount"));
-            row.createCell(7).setCellValue(dataObj.getString("receivedAmount"));
+            row.createCell(3).setCellValue(dataObj.getString("primeRate"));
+            row.createCell(4).setCellValue(dataObj.getString("startTime"));
+            row.createCell(5).setCellValue(dataObj.getString("endTime"));
+            row.createCell(6).setCellValue(dataObj.getString("createTime"));
+            row.createCell(7).setCellValue(dataObj.getString("receivableAmount"));
+            row.createCell(8).setCellValue(dataObj.getString("receivedAmount"));
 
         }
     }

+ 2 - 0
service-front/src/main/java/com/java110/front/smo/impl/FrontFeeServiceSMOImpl.java

@@ -131,6 +131,8 @@ public class FrontFeeServiceSMOImpl extends BaseComponentSMO implements IFeeServ
         super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PROPERTY_FEE);
 
         JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String remark = paramIn.getString("remark");
+        paramIn.put("remark", "现场收银台支付-" + remark);
         String communityId = paramIn.getString("communityId");
         ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
         if (responseEntity.getStatusCode() != HttpStatus.OK) {

+ 177 - 12
service-job/src/main/java/com/java110/job/adapt/payment/notice/MachinePaymentNoticeAdapt.java

@@ -3,12 +3,24 @@ package com.java110.job.adapt.payment.notice;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.CommonRequest;
+import com.aliyuncs.CommonResponse;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.exceptions.ClientException;
+import com.aliyuncs.exceptions.ServerException;
+import com.aliyuncs.http.MethodType;
+import com.aliyuncs.profile.DefaultProfile;
 import com.java110.core.factory.WechatFactory;
 import com.java110.core.smo.IComputeFeeSMO;
 import com.java110.dto.basePrivilege.BasePrivilegeDto;
 import com.java110.dto.community.CommunityDto;
 import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.dto.smallWechatAttr.SmallWechatAttrDto;
 import com.java110.dto.staffAppAuth.StaffAppAuthDto;
@@ -23,13 +35,13 @@ import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.order.IPrivilegeInnerServiceSMO;
 import com.java110.intf.store.ISmallWeChatInnerServiceSMO;
 import com.java110.intf.store.ISmallWechatAttrInnerServiceSMO;
-import com.java110.intf.user.IStaffAppAuthInnerServiceSMO;
-import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.intf.user.*;
 import com.java110.job.adapt.DatabusAdaptImpl;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,9 +66,6 @@ public class MachinePaymentNoticeAdapt extends DatabusAdaptImpl {
     @Autowired
     private ICommunityInnerServiceSMO communityInnerServiceSMO;
 
-    @Autowired
-    private IUserInnerServiceSMO userInnerServiceSMO;
-
     @Autowired
     private ISmallWeChatInnerServiceSMO smallWeChatInnerServiceSMOImpl;
 
@@ -80,9 +89,24 @@ public class MachinePaymentNoticeAdapt extends DatabusAdaptImpl {
 
     @Autowired
     private IComputeFeeSMO computeFeeSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMO;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMO;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMO;
+
+    @Autowired
+    private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
+
     //模板信息推送地址
     private static String sendMsgUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
 
+    public final static String ALI_SMS_DOMAIN = "ALI_SMS";
+
     @Override
     public void execute(Business business, List<Business> businesses) {
         JSONObject data = business.getData();
@@ -95,7 +119,6 @@ public class MachinePaymentNoticeAdapt extends DatabusAdaptImpl {
             businessPayFeeDetails = JSONArray.parseArray(JSONArray.toJSONString(feeDetailDtos));
         } else if (data.containsKey(PayFeeDetailPo.class.getSimpleName())) {
             Object bObj = data.get(PayFeeDetailPo.class.getSimpleName());
-
             if (bObj instanceof JSONObject) {
                 businessPayFeeDetails = new JSONArray();
                 businessPayFeeDetails.add(bObj);
@@ -110,8 +133,6 @@ public class MachinePaymentNoticeAdapt extends DatabusAdaptImpl {
         } else {
             return;
         }
-
-        //JSONObject businessPayFeeDetail = data.getJSONObject("businessPayFeeDetail");
         for (int bPayFeeDetailIndex = 0; bPayFeeDetailIndex < businessPayFeeDetails.size(); bPayFeeDetailIndex++) {
             JSONObject businessPayFeeDetail = businessPayFeeDetails.getJSONObject(bPayFeeDetailIndex);
             doSendPayFeeDetail(business, businessPayFeeDetail);
@@ -121,14 +142,10 @@ public class MachinePaymentNoticeAdapt extends DatabusAdaptImpl {
     private void doSendPayFeeDetail(Business business, JSONObject businessPayFeeDetail) {
         //查询缴费明细
         PayFeeDetailPo payFeeDetailPo = BeanConvertUtil.covertBean(businessPayFeeDetail, PayFeeDetailPo.class);
-        //拿到员工信息
-//        UserDto userDto = new UserDto();
-//        List<UserDto> users = userInnerServiceSMO.getUsers(userDto);
         //查询小区信息
         CommunityDto communityDto = new CommunityDto();
         communityDto.setCommunityId(payFeeDetailPo.getCommunityId());
         List<CommunityDto> communityDtos = communityInnerServiceSMO.queryCommunitys(communityDto);
-
         FeeDto feeDto = new FeeDto();
         feeDto.setFeeId(payFeeDetailPo.getFeeId());
         feeDto.setCommunityId(payFeeDetailPo.getCommunityId());
@@ -152,10 +169,19 @@ public class MachinePaymentNoticeAdapt extends DatabusAdaptImpl {
         paramIn.put("feeTypeCdName", feeTypeCdName);
         paramIn.put("payFeeTime", startTime + "至" + endTime);
         paramIn.put("receivedAmount", receivedAmount);
+        paramIn.put("startTime", startTime);
         paramIn.put("endTime", endTime);
+        sendMessage(paramIn, communityDtos.get(0), payFeeDetailPo);
         publishMsg(paramIn, communityDtos.get(0), payFeeDetailPo);
     }
 
+    /**
+     * 给员工推送信息
+     *
+     * @param paramIn
+     * @param communityDto
+     * @param payFeeDetailPo
+     */
     private void publishMsg(JSONObject paramIn, CommunityDto communityDto, PayFeeDetailPo payFeeDetailPo) {
         //查询公众号配置
         SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
@@ -220,4 +246,143 @@ public class MachinePaymentNoticeAdapt extends DatabusAdaptImpl {
             logger.info("微信模板返回内容:{}", responseEntity);
         }
     }
+
+    /**
+     * 给业主推送消息
+     *
+     * @param paramIn
+     * @param communityDto
+     * @param payFeeDetailPo
+     */
+    private void sendMessage(JSONObject paramIn, CommunityDto communityDto, PayFeeDetailPo payFeeDetailPo) {
+        //查询公众号配置
+        SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
+        smallWeChatDto.setWeChatType("1100");
+        smallWeChatDto.setObjType(SmallWeChatDto.OBJ_TYPE_COMMUNITY);
+        smallWeChatDto.setObjId(communityDto.getCommunityId());
+        List<SmallWeChatDto> smallWeChatDtos = smallWeChatInnerServiceSMOImpl.querySmallWeChats(smallWeChatDto);
+        if (smallWeChatDto == null || smallWeChatDtos.size() <= 0) {
+            logger.info("未配置微信公众号信息,定时任务执行结束");
+            return;
+        }
+        SmallWeChatDto weChatDto = smallWeChatDtos.get(0);
+        SmallWechatAttrDto smallWechatAttrDto = new SmallWechatAttrDto();
+        smallWechatAttrDto.setCommunityId(communityDto.getCommunityId());
+        smallWechatAttrDto.setWechatId(weChatDto.getWeChatId());
+        smallWechatAttrDto.setSpecCd(SmallWechatAttrDto.SPEC_CD_WECHAT_SUCCESS_TEMPLATE);
+        List<SmallWechatAttrDto> smallWechatAttrDtos = smallWechatAttrInnerServiceSMOImpl.querySmallWechatAttrs(smallWechatAttrDto);
+        if (smallWechatAttrDtos == null || smallWechatAttrDtos.size() <= 0) {
+            logger.info("未配置微信公众号消息模板");
+            return;
+        }
+        String templateId = smallWechatAttrDtos.get(0).getValue();
+        String accessToken = WechatFactory.getAccessToken(weChatDto.getAppId(), weChatDto.getAppSecret());
+        if (accessToken == null || accessToken == "") {
+            logger.info("推送微信模板,获取accessToken失败:{}", accessToken);
+            return;
+        }
+        FeeDto feeDto = new FeeDto();
+        feeDto.setFeeId(payFeeDetailPo.getFeeId());
+        feeDto.setCommunityId(payFeeDetailPo.getCommunityId());
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+        Assert.listOnlyOne(feeDtos, "费用不存在");
+        //支付房间id
+        String payerObjId = feeDtos.get(0).getPayerObjId();
+        //支付类型(房屋、车辆)
+        String payerObjType = feeDtos.get(0).getPayerObjType();
+        String ownerId = "";
+        //3333 房屋缴费 6666 是车位缴费
+        if (payerObjType.equals("3333")) {
+            OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+            ownerRoomRelDto.setRoomId(payerObjId);
+            List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMO.queryOwnerRoomRels(ownerRoomRelDto);
+            //取得业主id
+            ownerId = ownerRoomRelDtos.get(0).getOwnerId();
+        } else if (payerObjType.equals("6666")) {
+            OwnerCarDto ownerCarDto = new OwnerCarDto();
+            ownerCarDto.setPsId(payerObjId);
+            List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMO.queryOwnerCars(ownerCarDto);
+            //取得业主id
+            ownerId = ownerCarDtos.get(0).getOwnerId();
+        }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setOwnerId(ownerId);
+        //1001 业主本人 1002 家庭成员
+        ownerDto.setOwnerTypeCd("1001");
+        //查询业主
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMO.queryOwners(ownerDto);
+        //获得成员id
+        String memberId = ownerDtos.get(0).getMemberId();
+        OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
+        ownerAppUserDto.setMemberId(memberId);
+        ownerAppUserDto.setAppType("WECHAT");
+        List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMO.queryOwnerAppUsers(ownerAppUserDto);
+        if (ownerAppUserDtos.size() > 0) {
+            //获取openId
+            String openId = ownerAppUserDtos.get(0).getOpenId();
+            String url = sendMsgUrl + accessToken;
+            Data data = new Data();
+            PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
+            templateMessage.setTemplate_id(templateId);
+            templateMessage.setTouser(openId);
+            data.setFirst(new Content("本次缴费已到账"));
+            data.setKeyword1(new Content(paramIn.getString("payFeeRoom")));
+            data.setKeyword2(new Content(paramIn.getString("feeTypeCdName")));
+            data.setKeyword3(new Content(paramIn.getString("payFeeTime")));
+            data.setKeyword4(new Content(paramIn.getString("receivedAmount") + "元"));
+            data.setRemark(new Content("感谢您的使用,如有疑问请联系相关物业人员"));
+            templateMessage.setData(data);
+            String wechatUrl = MappingCache.getValue("OWNER_WECHAT_URL");
+            templateMessage.setUrl(wechatUrl);
+            logger.info("发送模板消息内容:{}", JSON.toJSONString(templateMessage));
+            ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class);
+            logger.info("微信模板返回内容:{}", responseEntity);
+        } else {
+            //获取业主手机号
+            String tel = ownerDtos.get(0).getLink();
+            //获取业主姓名
+            String name = ownerDtos.get(0).getName();
+            //获取费用类型
+            String feeTypeCdName = paramIn.getString("feeTypeCdName");
+            //获取费用开始时间
+            String startTime = paramIn.getString("startTime");
+            //获取费用结束时间
+            String endTime = paramIn.getString("endTime");
+            //获取缴费金额
+            String receivedAmount = paramIn.getString("receivedAmount");
+            //获取房屋号
+            String payFeeRoom = paramIn.getString("payFeeRoom");
+            DefaultProfile profile = DefaultProfile.getProfile(MappingCache.getValue(ALI_SMS_DOMAIN, "region"),
+                    MappingCache.getValue(ALI_SMS_DOMAIN, "accessKeyId"),
+                    MappingCache.getValue(ALI_SMS_DOMAIN, "accessSecret"));
+            IAcsClient client = new DefaultAcsClient(profile);
+
+            CommonRequest request = new CommonRequest();
+            request.setSysMethod(MethodType.POST);
+            request.setSysDomain("dysmsapi.aliyuncs.com");
+            request.setSysVersion("2017-05-25");
+            request.setSysAction("SendSms");
+            request.putQueryParameter("RegionId", MappingCache.getValue(ALI_SMS_DOMAIN, "region"));
+            request.putQueryParameter("PhoneNumbers", tel);
+            request.putQueryParameter("SignName", MappingCache.getValue(ALI_SMS_DOMAIN, "signName"));
+            //获取模板编码(SMS_207160078为缴费成功提示模板编码)
+            String payFeeCode = MappingCache.getValue(ALI_SMS_DOMAIN, "PayFeeCode");
+            String substring = "";
+            if (!StringUtil.isEmpty(payFeeCode)) {
+                substring = payFeeCode.substring(0, 4);
+            }
+            if (substring.equals("SMS_")) {
+                request.putQueryParameter("TemplateCode", payFeeCode);
+            }
+            request.putQueryParameter("TemplateParam", "{\"user\":" + "\"" + name + "\"" + "," + "\"house\":" + "\"" + payFeeRoom + "\"" + "," + "\"feeType\":" + "\"" + feeTypeCdName + "\"" + "," + "\"startTime\":" + "\"" + startTime + "\"" + "," + "\"endTime\":" + "\"" + endTime + "\"" + "," + "\"mount\":" + "\"" + receivedAmount + "\"" + "}");
+            try {
+                CommonResponse response = client.getCommonResponse(request);
+                logger.debug("发送短信:{}", response.getData());
+            } catch (ServerException e) {
+                e.printStackTrace();
+            } catch (ClientException e) {
+                e.printStackTrace();
+            }
+        }
+    }
 }