wuxw пре 2 година
родитељ
комит
011ef2dda7

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

@@ -44,6 +44,9 @@ public class FeeReceiptDetailDto extends PageDto implements Serializable {
 
     private String orderBy;
 
+    private String discountPrice;
+
+
 
     public String getArea() {
         return area;
@@ -229,4 +232,12 @@ public class FeeReceiptDetailDto extends PageDto implements Serializable {
     public void setOrderBy(String orderBy) {
         this.orderBy = orderBy;
     }
+
+    public String getDiscountPrice() {
+        return discountPrice;
+    }
+
+    public void setDiscountPrice(String discountPrice) {
+        this.discountPrice = discountPrice;
+    }
 }

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeDetailDiscountDto.java

@@ -20,6 +20,8 @@ public class PayFeeDetailDiscountDto extends PageDto implements Serializable {
     private String detailDiscountId;
     private String discountPrice;
     private String detailId;
+    private String[] detailIds;
+
     private String remark;
     private String communityId;
     private String discountId;
@@ -149,4 +151,12 @@ public class PayFeeDetailDiscountDto extends PageDto implements Serializable {
     public void setRuleName(String ruleName) {
         this.ruleName = ruleName;
     }
+
+    public String[] getDetailIds() {
+        return detailIds;
+    }
+
+    public void setDetailIds(String[] detailIds) {
+        this.detailIds = detailIds;
+    }
 }

+ 20 - 0
java110-db/src/main/resources/mapper/fee/PayFeeDetailDiscountServiceDaoImplMapper.xml

@@ -220,4 +220,24 @@
 
     </select>
 
+    <!-- 计算费用优惠 -->
+    <select id="computeDiscountFee" parameterType="Map" resultType="Map">
+        select t.detail_id detailId,sum(t.discount_price) discountPrice
+        from pay_fee_detail_discount t
+        where 1 =1
+        <if test="detailIds !=null ">
+            and t.detail_id in
+            <foreach collection="detailIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+            and t.status_cd= '0'
+
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        group by t.detail_id
+
+    </select>
+
 </mapper>

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

@@ -39,4 +39,7 @@ public interface IPayFeeDetailDiscountInnerServiceSMO {
      */
     @RequestMapping(value = "/queryPayFeeDetailDiscountsCount", method = RequestMethod.POST)
     int queryPayFeeDetailDiscountsCount(@RequestBody PayFeeDetailDiscountDto payFeeDetailDiscountDto);
+
+    @RequestMapping(value = "/computeDiscountFee", method = RequestMethod.POST)
+    List<PayFeeDetailDiscountDto> computeDiscountFee(@RequestBody PayFeeDetailDiscountDto payFeeDetailDiscountDto);
 }

+ 36 - 0
service-fee/src/main/java/com/java110/fee/bmo/feeReceiptDetail/impl/GetFeeReceiptDetailBMOImpl.java

@@ -1,8 +1,10 @@
 package com.java110.fee.bmo.feeReceiptDetail.impl;
 
 import com.java110.dto.fee.FeeReceiptDetailDto;
+import com.java110.dto.payFee.PayFeeDetailDiscountDto;
 import com.java110.fee.bmo.feeReceiptDetail.IGetFeeReceiptDetailBMO;
 import com.java110.intf.fee.IFeeReceiptDetailInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeDetailDiscountInnerServiceSMO;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -18,6 +20,9 @@ public class GetFeeReceiptDetailBMOImpl implements IGetFeeReceiptDetailBMO {
     @Autowired
     private IFeeReceiptDetailInnerServiceSMO feeReceiptDetailInnerServiceSMOImpl;
 
+    @Autowired
+    private IPayFeeDetailDiscountInnerServiceSMO payFeeDetailDiscountInnerServiceSMOImpl;
+
     /**
      * @param feeReceiptDetailDto
      * @return 订单服务能够接受的报文
@@ -30,10 +35,14 @@ public class GetFeeReceiptDetailBMOImpl implements IGetFeeReceiptDetailBMO {
         List<FeeReceiptDetailDto> feeReceiptDetailDtos = null;
         if (count > 0) {
             feeReceiptDetailDtos = feeReceiptDetailInnerServiceSMOImpl.queryFeeReceiptDetails(feeReceiptDetailDto);
+
         } else {
             feeReceiptDetailDtos = new ArrayList<>();
         }
 
+        //todo 计算优惠金额
+        computeDiscountFee(feeReceiptDetailDtos);
+
         ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) feeReceiptDetailDto.getRow()), count, feeReceiptDetailDtos);
 
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
@@ -41,4 +50,31 @@ public class GetFeeReceiptDetailBMOImpl implements IGetFeeReceiptDetailBMO {
         return responseEntity;
     }
 
+    private void computeDiscountFee(List<FeeReceiptDetailDto> feeReceiptDetailDtos) {
+
+        if(feeReceiptDetailDtos == null || feeReceiptDetailDtos.size() < 1){
+            return ;
+        }
+
+        List<String> detailIds = new ArrayList<>();
+        for(FeeReceiptDetailDto feeReceiptDetailDto:feeReceiptDetailDtos){
+            detailIds.add(feeReceiptDetailDto.getDetailId());
+        }
+
+        PayFeeDetailDiscountDto payFeeDetailDiscountDto = new PayFeeDetailDiscountDto();
+        payFeeDetailDiscountDto.setCommunityId(feeReceiptDetailDtos.get(0).getCommunityId());
+        payFeeDetailDiscountDto.setDetailIds(detailIds.toArray(new String[detailIds.size()]));
+
+        List<PayFeeDetailDiscountDto> payFeeDetailDiscountDtos = payFeeDetailDiscountInnerServiceSMOImpl.computeDiscountFee(payFeeDetailDiscountDto);
+
+        for(FeeReceiptDetailDto feeReceiptDetailDto:feeReceiptDetailDtos){
+            for(PayFeeDetailDiscountDto tmpPayFeeDetailDiscountDto:payFeeDetailDiscountDtos){
+                if(!feeReceiptDetailDto.getDetailId().equals(tmpPayFeeDetailDiscountDto.getDetailId())){
+                    continue;
+                }
+                feeReceiptDetailDto.setDiscountPrice(tmpPayFeeDetailDiscountDto.getDiscountPrice());
+            }
+        }
+    }
+
 }

+ 6 - 0
service-fee/src/main/java/com/java110/fee/dao/IPayFeeDetailDiscountServiceDao.java

@@ -74,4 +74,10 @@ public interface IPayFeeDetailDiscountServiceDao {
      */
     int queryPayFeeDetailDiscountsCount(Map info);
 
+    /**
+     * 计算 优惠金额
+     * @param info
+     * @return
+     */
+    List<Map> computeDiscountFee(Map info);
 }

+ 9 - 0
service-fee/src/main/java/com/java110/fee/dao/impl/PayFeeDetailDiscountServiceDaoImpl.java

@@ -126,5 +126,14 @@ public class PayFeeDetailDiscountServiceDaoImpl extends BaseServiceDao implement
         return Integer.parseInt(businessPayFeeDetailDiscountInfos.get(0).get("count").toString());
     }
 
+    @Override
+    public List<Map> computeDiscountFee(Map info) {
+        logger.debug("查询缴费优惠信息 入参 info : {}",info);
+
+        List<Map> infos = sqlSessionTemplate.selectList("payFeeDetailDiscountServiceDaoImpl.computeDiscountFee",info);
+
+        return infos;
+    }
+
 
 }

+ 7 - 0
service-fee/src/main/java/com/java110/fee/smo/impl/PayFeeDetailDiscountInnerServiceSMOImpl.java

@@ -83,6 +83,13 @@ public class PayFeeDetailDiscountInnerServiceSMOImpl extends BaseServiceSMO impl
         return payFeeDetailDiscountServiceDaoImpl.queryPayFeeDetailDiscountsCount(BeanConvertUtil.beanCovertMap(payFeeDetailDiscountDto));
     }
 
+    @Override
+    public List<PayFeeDetailDiscountDto> computeDiscountFee(@RequestBody PayFeeDetailDiscountDto payFeeDetailDiscountDto) {
+        List<PayFeeDetailDiscountDto> payFeeDetailDiscounts = BeanConvertUtil.covertBeanList(payFeeDetailDiscountServiceDaoImpl.computeDiscountFee(BeanConvertUtil.beanCovertMap(payFeeDetailDiscountDto)), PayFeeDetailDiscountDto.class);
+
+        return payFeeDetailDiscounts;
+    }
+
     public IPayFeeDetailDiscountServiceDao getPayFeeDetailDiscountServiceDaoImpl() {
         return payFeeDetailDiscountServiceDaoImpl;
     }