Mr.qian 2 هفته پیش
والد
کامیت
84872568d8

+ 4 - 4
cif-service/src/main/java/com/txz/cif/dao/impl/RechargeRecordMapperImpl.java

@@ -13,7 +13,7 @@ public class RechargeRecordMapperImpl {
     
     public String pageList(RecordParam param) {
         String sql = " SELECT crr.id, crr.order_no, crr.user_id, crr.amount, crr.discount, crr.status " +
-                " ,crr.channel, cpc.channel_name, cpm.method_name, crr.currency, crr.user_name " +
+                " , crr.channel, cpc.channel_name, cpm.method_name, crr.currency, crr.user_name " +
                 " , crr.user_phone, crr.bank, crr.bank_account, crr.bank_account_name, crr.create_time " +
                 " , crr.success_time, crr.version " +
                 " FROM c_recharge_record crr " +
@@ -57,9 +57,9 @@ public class RechargeRecordMapperImpl {
     public String pageParam(RecordParam param) {
         String sql = "SELECT " +
                 " COUNT(crr.id) AS order_num, " +
-                " SUM(crr.amount) AS order_amount, " +
-                " SUM(CASE WHEN crr.status = 2 THEN 1 ELSE 0 END) AS success_num, " +
-                " SUM(CASE WHEN crr.status = 2 THEN crr.real_amount ELSE 0 END) AS success_amount "+
+                " IFNULL(SUM(crr.amount),0) AS order_amount, " +
+                " IFNULL(SUM(CASE WHEN crr.status = 2 THEN 1 ELSE 0 END),0) AS success_num, " +
+                " IFNULL(SUM(CASE WHEN crr.status = 2 THEN crr.real_amount ELSE 0 END),0) AS success_amount " +
                 " FROM c_recharge_record crr " +
                 " LEFT JOIN c_payment_method cpm ON crr.method_id = cpm.id " +
                 " LEFT JOIN c_payment_channel cpc ON cpc.id = crr.channel_id " +

+ 5 - 1
cif-service/src/main/java/com/txz/cif/web/mng/RechargeRecordController.java

@@ -120,7 +120,11 @@ public class RechargeRecordController {
         ListVO listVO = rechargeRecordService.pageParam(param);
         listVO.setList(pageInfo);
         
-        listVO.setSuccessRate(new BigDecimal(listVO.getSuccessNum()).divide(new BigDecimal(listVO.getOrderNum()), 2, BigDecimal.ROUND_HALF_UP));
+        if (new BigDecimal(listVO.getOrderNum()).compareTo(BigDecimal.ZERO) == 0) {
+            listVO.setSuccessRate(BigDecimal.ZERO);
+        } else {
+            listVO.setSuccessRate(new BigDecimal(listVO.getSuccessNum()).divide(new BigDecimal(listVO.getOrderNum()), 2, BigDecimal.ROUND_HALF_UP));
+        }
         
         return Result.success(listVO);