增加日累计消费限额功能
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java b/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
index 277ca33..855fd57 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
@@ -45,5 +45,7 @@
     public static final String permit = "permit";
     //  限制消费信息
     public static final String limitMsg = "limitmsg";
+    // 单日累计消费金额上限
+    public static final String dayAmountLimit = "day_amount_limit";
 
 }
diff --git a/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java b/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java
index f30cad3..c0095f5 100644
--- a/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/water/dao/CollectdtlDao.java
@@ -30,4 +30,7 @@
     List<TCollectdtl> findWipCollectdtl(Pageable pageable);
 
     TCollectdtl findByCobillnoAndDeviceno(Integer cobillno, String deviceno);
+
+    @Query("select sum(t.amount) from TCollectdtl t where t.userid=?1 and t.transDate=?2")
+    double getTodayAmount(String userid, String date);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java b/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
index 47c7398..a4546c3 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
@@ -47,4 +47,7 @@
 
     @Transactional(rollbackFor = Exception.class)
     void initDtlCountDate();
+
+    @Transactional(rollbackFor = Exception.class)
+    Double getTodayAmount(String userid);
 }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
index 3e88744..c77795b 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
@@ -15,7 +15,6 @@
 import com.supwisdom.dlpay.water.service.CollectdtlService
 import mu.KotlinLogging
 import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.http.HttpRequest
 import org.springframework.http.ResponseEntity
 import org.springframework.web.bind.annotation.*
 import org.springframework.web.servlet.ModelAndView
@@ -104,8 +103,19 @@
             }
             val notaccAmount = userDataService.subtract(personIdentity.coamount, personIdentity.accamount)
             //2. 通过 deviceno 查询设备费率参数
+            val todayAmount = collectdtlService.getTodayAmount(personIdentity.person.userid)
             val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
+            var limitmsg = ""
+            var checkFlag = false
+            if (todayAmount > deviceParam[WaterDeviceParam.dayAmountLimit]!!.toInt()) {
+                limitmsg = "今日消费已达上限"
+                checkFlag = true
+            }
             if (notaccAmount > deviceParam[WaterDeviceParam.permitNotAccAmount]!!.toInt()) {
+                limitmsg = "水费欠费已达上限"
+                checkFlag = true
+            }
+            if (checkFlag) {
                 return ResponseEntity.ok(ResponseBodyBuilder.create()
                         .data(WaterDeviceParam.cobillNo, "")
                         .data(WaterDeviceParam.feeAmount, "")
@@ -114,7 +124,7 @@
                         .data(WaterDeviceParam.feeUnit, "")
                         .data(WaterDeviceParam.AmountLimit,"")
                         .data(WaterDeviceParam.permit, 1)
-                        .data(WaterDeviceParam.limitMsg,"限制消费!未扣费金额过多")
+                        .data(WaterDeviceParam.limitMsg,limitmsg)
                         .success())
             }
             //3. 创建 collectdtl 记录初始流水
@@ -252,7 +262,7 @@
             })
             if (userInfo.retcode != 0) {
                 logger.error { "获取用户${userid}信息失败,错误信息:${userInfo.retmsg}" }
-                return ModelAndView("error/500").addObject("errorMsg", "用户信息异常")
+                return ModelAndView("error/500").addObject("errorMsg", "用户信息异常:${userInfo.retmsg}")
             }
             if (userInfo.cardstatus != TradeDict.STATUS_NORMAL || userInfo.transstatus != TradeDict.STATUS_NORMAL) {
                 return ModelAndView("error/500").addObject("errorMsg", "用户消费状态异常")
@@ -325,11 +335,4 @@
         return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.cobillNo, querycodtl.cobillno)
                 .success())
     }
-
-    @GetMapping("/test")
-    fun test(request:HttpRequest): ResponseEntity<Any> {
-        request.uri
-        return ResponseEntity.ok(ResponseBodyBuilder.create().data("test","test")
-                .success())
-    }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
index 3ed389a..05cb1c9 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
@@ -332,4 +332,12 @@
             dtlCountDateDao.save(countDate)
         }
     }
+
+    override fun getTodayAmount(userid:String): Double? {
+        val sql = "select sum(amount) from tb_collectdtl where status in ('wip','success') and userid=:userid and transdate=:date"
+        val query = em.createNativeQuery(sql)
+        query.setParameter("userid",userid)
+        query.setParameter("date","20190902")
+        return query.singleResult as Double?
+    }
 }
\ No newline at end of file
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 49335b2..0fb5bed 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -76,14 +76,14 @@
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('feeunit', 1, '10', '1', '单位扣费流量(单位:百毫升)', '1', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('feeamount', 1, '100', '1', '单位扣费金额(单位:分)', '10', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('waittime', 1, '180', '5', '出水等待时间(单位:秒):超出这个时间,自动关闭水阀门', '90', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('app_water_limit', 1, '500', '1', 'app单次用水上限(单位:百毫升)', '200', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('amount_limit', 1, '50', '1', '单次消费金额上限(单位:元)', '30', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('month_amount_limit', 1, '1500', '30', '月累计消费金额上限(单位:元)', '900', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('app_water_limit', 1, '9999', '1', 'app单次用水上限(单位:百毫升)', '200', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('amount_limit', 1, '9999', '1', '单次消费金额上限(单位:分)', '500', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('day_amount_limit', 1, '9999', '30', '日累计消费金额上限(单位:元)', '900', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('devOfflineMaxHour', 1, '168', '1', '设备最大脱机时间(单位:小时)', '72', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('pulseInHML', 1, '100', '1', '每百毫升流量计的脉冲数(单位:个)', '40', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('waterlimit', 1, '500', '1', '单次用水上限(单位:百毫升)', '300', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('waterlimit', 1, '9999', '1', '单次用水上限(单位:百毫升)', '300', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('validtime', 1, '240', '60', '二维码有效时间(单位:秒)', '180', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('imdDecThreshold', 1, '500', '1', '流水上传立即扣费阈值(单位:分)', '50', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('imdDecThreshold', 1, '9999', '1', '流水上传立即扣费阈值(单位:分)', '50', 'N');
 INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('permitNotAccAmount', 1, '200', '1', '允许未入账金额(单位:元)', '50', 'N');