增加了流水统计功能,修改了部分设备api接口
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java b/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
index bd3c315..f1e89d7 100644
--- a/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
@@ -7,10 +7,14 @@
@Entity
@Table(name = "TB_PERSON_IDENTITY")
public class TPersonIdentity {
+ // 市民卡号
@Id
@Column(name = "THIRD_UID", nullable = false, length = 60)
private String thirdUid;
+ @Column(name = "CARDPHYID",length = 60)
+ private String cardphyId;
+
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "USERID")
private TPerson person; //绑定的系统用户
@@ -30,13 +34,22 @@
public TPersonIdentity() {
}
- public TPersonIdentity(String thirdUid, TPerson person, String status, Integer lossflag, Integer lockflag, String createtime) {
+ public TPersonIdentity(String thirdUid, TPerson person, String status, Integer lossflag, Integer lockflag, String createtime,String cardphyId) {
this.thirdUid = thirdUid;
this.person = person;
this.status = status;
this.lossflag = lossflag;
this.lockflag = lockflag;
this.createtime = createtime;
+ this.cardphyId = cardphyId;
+ }
+
+ public String getCardphyId() {
+ return cardphyId;
+ }
+
+ public void setCardphyId(String cardphyId) {
+ this.cardphyId = cardphyId;
}
public String getThirdUid() {
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 8998a41..22534a9 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/WaterDeviceParam.java
@@ -11,18 +11,18 @@
public static final String devOfflineMaxHour = "devOfflineMaxHour";
// 每百毫升脉冲数
public static final String pulseInHML = "pulseInHML";
- // 系统日期时间
- public static final String systemDateTime = "systemDateTime";
// 刷卡单次出水上限
public static final String waterLimit = "waterlimit";
// 单位扣费金额
public static final String feeAmount = "feeamount";
+ // 单位扣费流量
+ public static final String feeUnit = "feeunit";
// 交易号
public static final String billNo = "billno";
// 从第多少百毫升开始计费
- public static final String feeUnit = "feeunit";
+ public static final String feestart = "feestart";
// 二维码失效时间
- public static final String vaildTime = "vaildtime";
+ public static final String validTime = "validtime";
// 二维码的url
public static final String url = "url";
// 用户授权认证状态
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java b/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
index d60e949..0c067dc 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
@@ -41,5 +41,5 @@
PageResult<TPointsAccount> getUserPointDTL(PersonParamBean param);
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
- TPerson getPersonByThirdUid(String thirdUid);
+ TPersonIdentity getPersonIdentityByThirdUid(String thirdUid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
index 09b7358..e7f8fd5 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
@@ -177,10 +177,10 @@
}
@Override
- public TPerson getPersonByThirdUid(String thirdUid) {
+ public TPersonIdentity getPersonIdentityByThirdUid(String thirdUid) {
TPersonIdentity personIdentity = personIdentityDao.getByThirdUid(thirdUid);
if (personIdentity != null) {
- return personIdentity.getPerson();
+ return personIdentity;
}
return null;
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/dao/AreaDao.java b/src/main/java/com/supwisdom/dlpay/water/dao/AreaDao.java
index b63207b..ad569f2 100644
--- a/src/main/java/com/supwisdom/dlpay/water/dao/AreaDao.java
+++ b/src/main/java/com/supwisdom/dlpay/water/dao/AreaDao.java
@@ -29,4 +29,6 @@
TArea findByAvailableAndAreaNameAndAreanoNot(Integer available, String reiName, Integer regino);
List<TArea> findByAvailableAndParentId(Integer available, Integer parentId);
+
+ Page<TArea> findByAvailableAndAreano(Integer available, Integer regino,Pageable pageable);
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtl.java b/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtl.java
index cf68fd4..f8e4b79 100644
--- a/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtl.java
@@ -63,6 +63,17 @@
@Column(name = "uploadstatus")
private Boolean uploadStatus;
+ @Column(name = "cardphyid",length = 60)
+ private String cardPhyId;
+
+ public String getCardPhyId() {
+ return cardPhyId;
+ }
+
+ public void setCardPhyId(String cardPhyId) {
+ this.cardPhyId = cardPhyId;
+ }
+
public Boolean getUploadStatus() {
return uploadStatus;
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java b/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java
index e107ada..76c4ea5 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java
@@ -1,7 +1,5 @@
package com.supwisdom.dlpay.water.pojo;
-import lombok.Data;
-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@@ -34,6 +32,17 @@
private String areaname;
@Column
private Integer areano;
+ @Column
+ private String cardphyid;
+
+
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
public String getBillno() {
return billno;
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/AreaService.java b/src/main/java/com/supwisdom/dlpay/water/service/AreaService.java
index a191204..680b94b 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/AreaService.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/AreaService.java
@@ -38,4 +38,7 @@
@Transactional(rollbackFor = Exception.class)
boolean existSubArea(Integer regino);
+
+ @Transactional(rollbackFor = Exception.class,readOnly = true)
+ PageResult<TArea> queryAreaByAreaNo(Integer areano);
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/impl/AreaServiceImpl.java b/src/main/java/com/supwisdom/dlpay/water/service/impl/AreaServiceImpl.java
index f2ab078..b80df68 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/impl/AreaServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/impl/AreaServiceImpl.java
@@ -30,10 +30,7 @@
public PageResult<TArea> queryAreasByParentId(RegionSearchBean param) {
Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
Page<TArea> page = regionDao.findByAvailableAndParentIdOrderByAreano(1, param.getParentId(), pageable);
- page.get().forEach(area -> {
- Optional<TArea> optional = regionDao.findByAvailableAndAreano(1, area.getParentId());
- optional.ifPresent(parentArea -> area.setParentName(parentArea.getAreaName()));
- });
+ setParentArea(page);
PageResult<TArea> result = new PageResult<>(page);
List<TArea> data = result.getData();
if (param.getPageNo() == 1) {
@@ -84,10 +81,7 @@
} else {
page = regionDao.findAllByAvailableOrderByAreano(1, pageable);
}
- page.get().forEach(area -> {
- Optional<TArea> optional = regionDao.findByAvailableAndAreano(1, area.getParentId());
- optional.ifPresent(parentArea -> area.setParentName(parentArea.getAreaName()));
- });
+ setParentArea(page);
return new PageResult<>(page);
}
@@ -150,5 +144,18 @@
return subRegion != null && subRegion.size() != 0;
}
+ @Override
+ public PageResult<TArea> queryAreaByAreaNo(Integer areano) {
+ Pageable pageable = PageRequest.of(0,1);
+ Page<TArea> page = regionDao.findByAvailableAndAreano(1, areano, pageable);
+ setParentArea(page);
+ return new PageResult<>(page);
+ }
+ private void setParentArea(Page<TArea> page) {
+ page.get().forEach(area -> {
+ Optional<TArea> optional = regionDao.findByAvailableAndAreano(1, area.getParentId());
+ optional.ifPresent(parentArea -> area.setParentName(parentArea.getAreaName()));
+ });
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
index ae40828..4e34676 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
@@ -163,7 +163,7 @@
@Override
public List<TDictionary> groupStatus() {
- return dictionaryDao.findAllByDicttype("1");
+ return dictionaryDao.findAllByDicttype("device_status");
}
@Override
@@ -172,7 +172,7 @@
Specification<TDevice> specification = (Specification<TDevice>) (root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
if (!StringUtil.isEmpty(param.getDeviceno())) {
- predicates.add(cb.equal(root.get("deviceno").as(Integer.class), param.getDeviceno()));
+ predicates.add(cb.like(root.get("deviceno"),"%" + param.getDeviceno() + "%"));
}
if (param.getAreano() != null) {
predicates.add(cb.equal(root.get("areano").as(Integer.class), param.getAreano()));
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt b/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt
index 8acd715..e408e60 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/api_request_param.kt
@@ -70,7 +70,10 @@
var termtime: String = ""
@Sign
- var cardno: String = ""
+ var citizenCardno: String = ""
+
+ @Sign
+ var cardphyid: String = ""
override fun checkParam(): Boolean {
if (deviceno.length != 8 || deviceno.any { it !in '0'..'9' }) {
@@ -82,9 +85,13 @@
throw RequestParamCheckException(TradeErrorCode.INPUT_DATA_ERROR, "设备日期时间错误")
}
- if (cardno.isEmpty()) {
+ if (citizenCardno.isEmpty()) {
throw RequestParamCheckException(TradeErrorCode.INPUT_DATA_ERROR,
- "卡号长度错误")
+ "市民卡号长度错误")
+ }
+ if (cardphyid.isEmpty()) {
+ throw RequestParamCheckException(TradeErrorCode.INPUT_DATA_ERROR,
+ "物理卡号长度错误")
}
return true
}
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 948aa7d..364cc95 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
@@ -37,15 +37,16 @@
@Autowired
private lateinit var businessparaDao: BusinessparaDao
- @GetMapping("/devicelogin")
- fun deviceLogin(@RequestBody param: DeviceLoginParam): ResponseEntity<Any> {
+ @PostMapping("/devicelogin")
+ fun deviceLogin(param: DeviceLoginParam): ResponseEntity<Any> {
try {
val result = deviceService.deviceLogin(param)
if (result["flag"] == true) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.data(WaterDeviceParam.devOfflineMaxHour, result[WaterDeviceParam.devOfflineMaxHour]!!)
.data(WaterDeviceParam.pulseInHML, result[WaterDeviceParam.pulseInHML]!!)
- .data(WaterDeviceParam.systemDateTime, systemUtilService.sysdatetime.hostdatetime)
+ .data(WaterDeviceParam.systemDate, systemUtilService.sysdatetime.hostdate)
+ .data(WaterDeviceParam.systemTime, systemUtilService.sysdatetime.hosttime)
.success())
}
return ResponseEntity.ok(ResponseBodyBuilder.create()
@@ -58,7 +59,7 @@
@RequestMapping("/linecheck", method = [RequestMethod.GET, RequestMethod.POST])
- fun deviceLineCheck(@RequestBody param: DeviceLineCheckParam): ResponseEntity<Any> {
+ fun deviceLineCheck(param: DeviceLineCheckParam): ResponseEntity<Any> {
try {
val device = deviceService.lineCheck(param)
?: return ResponseEntity.ok(ResponseBodyBuilder.create()
@@ -75,11 +76,15 @@
}
@PostMapping("/card/purseinit")
- fun cardPurseInit(@RequestBody param: CardPayRequest): ResponseEntity<Any> {
- try {//1. 通过 cardno 检查用户以及合法性
- val person = userDataService.getPersonByThirdUid(param.cardno)
+ fun cardPurseInit(param: CardPayRequest): ResponseEntity<Any> {
+ try {//1. 通过 citizenCardno 检查用户以及合法性
+ val personIdentity = userDataService.getPersonIdentityByThirdUid(param.citizenCardno)
?: return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "未查询到您的身份信息"))
+ if (personIdentity.cardphyId == null || personIdentity.cardphyId != param.cardphyid) {
+ return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "物理卡号不匹配"))
+ }
//2. 通过 deviceno 查询设备费率参数
val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
//3. 创建 transdtl 记录初始流水
@@ -89,8 +94,9 @@
transDate = param.termdate
transTime = param.termtime
deviceno = param.deviceno
- userid = person.userid
- bankCardNo = param.cardno
+ userid = personIdentity.person.userid
+ bankCardNo = param.citizenCardno
+ cardPhyId = param.cardphyid
amount = 0.0
waterSumHundredLitre = 0
status = TradeDict.DTL_STATUS_INIT
@@ -103,6 +109,7 @@
.data(WaterDeviceParam.billNo, savedTrans.billno)
.data(WaterDeviceParam.feeAmount, deviceParam[WaterDeviceParam.feeAmount]!!)
.data(WaterDeviceParam.waterLimit, deviceParam[WaterDeviceParam.waterLimit]!!)
+ .data(WaterDeviceParam.feestart, deviceParam[WaterDeviceParam.feestart]!!)
.data(WaterDeviceParam.feeUnit, deviceParam[WaterDeviceParam.feeUnit]!!)
.success())
} catch (ex: Exception) {
@@ -112,7 +119,7 @@
}
@PostMapping("/qrcode/init")
- fun qrcodePayInit(@RequestBody param: QrcodePayRequest): ResponseEntity<Any> {
+ fun qrcodePayInit(param: QrcodePayRequest): ResponseEntity<Any> {
try {
val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
//1. 创建并记录初始流水
@@ -136,7 +143,7 @@
return ResponseEntity.ok(ResponseBodyBuilder.create()
.data(WaterDeviceParam.billNo, savedTrans.billno)
.data(WaterDeviceParam.url, url)
- .data(WaterDeviceParam.vaildTime, deviceParam[WaterDeviceParam.vaildTime]!!)
+ .data(WaterDeviceParam.validTime, deviceParam[WaterDeviceParam.validTime]!!)
.success())
} catch (ex: Exception) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
@@ -144,20 +151,21 @@
}
}
- @GetMapping("/qrcode/query")
- fun qrcodeQuery(@RequestBody param: QrcodeQueryRequest): ResponseEntity<Any> {
- val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
- val trans = transdtlService.queryTrans(param)
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .data(WaterDeviceParam.billNo, trans.billno)
- .data(WaterDeviceParam.authStatus, trans.authStatus)
- //2为代扣模式
- .data(WaterDeviceParam.payStatus, 2)
- .data(WaterDeviceParam.feeAmount, deviceParam[WaterDeviceParam.feeAmount]!!)
- .data(WaterDeviceParam.feeUnit, deviceParam[WaterDeviceParam.feeUnit]!!)
- // 如果订单为已支付状态,支付金额多少
- .data(WaterDeviceParam.paidAmount, 0)
- .success())
+ @PostMapping("/qrcode/query")
+ fun qrcodeQuery(param: QrcodeQueryRequest): ResponseEntity<Any> {
+ val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
+ val trans = transdtlService.queryTrans(param)
+ return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .data(WaterDeviceParam.billNo, trans.billno)
+ .data(WaterDeviceParam.authStatus, trans.authStatus)
+ //2为代扣模式
+ .data(WaterDeviceParam.payStatus, 2)
+ .data(WaterDeviceParam.feeAmount, deviceParam[WaterDeviceParam.feeAmount]!!)
+ .data(WaterDeviceParam.feestart, deviceParam[WaterDeviceParam.feestart]!!)
+ .data(WaterDeviceParam.feeUnit, deviceParam[WaterDeviceParam.feeUnit]!!)
+ // 如果订单为已支付状态,支付金额多少
+ .data(WaterDeviceParam.paidAmount, 0)
+ .success())
}
@GetMapping("/confirm")
@@ -178,7 +186,7 @@
}
@PostMapping("/uploadrecord")
- fun transdtlUpload(@RequestBody param: UploadRecordRequest): ResponseEntity<Any> {
+ fun transdtlUpload(param: UploadRecordRequest): ResponseEntity<Any> {
// 1. 根据 billno 查询 transdtl , 并加锁
val dtl = transdtlService.saveDeviceDtlData(param)
return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.billNo, dtl.billno)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
index fff95b0..c7abfc8 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
@@ -75,6 +75,22 @@
}
}
+ @GetMapping("/region/areano")
+ @ResponseBody
+ fun queryAreaByAreano(@RequestParam("areano")areano: Int): PageResult<TArea> {
+ try {
+ if (areano < 0) {
+ return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
+ }
+ areaService.queryAreaByAreaNo(areano)?.let {
+ return it
+ }
+ return PageResult(WaterErrorCode.DATA_NOTFOUND_ERROR, "区域未找到")
+ } catch (ex: Exception) {
+ return PageResult(WaterErrorCode.PROCESS_ERROR, "服务器繁忙,请稍后再试")
+ }
+ }
+
@GetMapping("/region/search")
@ResponseBody
fun queryRegions(@RequestParam(value = "searchkey", required = false) searchKey: String?,
@@ -393,31 +409,35 @@
@GetMapping("/dtlcount/list")
@ResponseBody
- fun queryDtlCount(@RequestParam("devicename", required = false) devicename: String,
- @RequestParam("areano", required = false) areanoStr: String,
- @RequestParam("transtime", required = false) transtime: String,
+ fun queryDtlCount(@RequestParam("devicename", required = false) devicename: String?,
+ @RequestParam("areano", required = false) areanoStr: String?,
+ @RequestParam("transtime", required = false) transtime: String?,
@RequestParam("page", defaultValue = "1", required = false) pageNo: Int,
@RequestParam("limit", defaultValue = "10", required = false) pageSize: Int): PageResult<TTransdtlCount> {
- if (pageNo < 1 || pageSize < 1) {
- return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
+ try {
+ if (pageNo < 1 || pageSize < 1) {
+ return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
+ }
+ val areano: Int?
+ areano = if (StringUtil.isEmpty(areanoStr)) {
+ null
+ } else {
+ areanoStr!!.toInt()
+ }
+ val searchBean = TransdtlCountSearchBean().apply {
+ this.pageNo = pageNo
+ this.pageSize = pageSize
+ this.devicename = devicename
+ this.areano = areano
+ this.transtime = transtime
+ }
+ transdtlService.queryTransdtlCountByParam(searchBean)?.let {
+ return it
+ }
+ return PageResult(WaterErrorCode.DATA_NOTFOUND_ERROR, "流水统计未找到")
+ } catch (ex: Exception) {
+ return PageResult(WaterErrorCode.PROCESS_ERROR, "系统繁忙")
}
- val areano: Int?
- areano = if (StringUtil.isEmpty(areanoStr)) {
- null
- } else {
- areanoStr.toInt()
- }
- val searchBean = TransdtlCountSearchBean().apply {
- this.pageNo = pageNo
- this.pageSize = pageSize
- this.devicename = devicename
- this.areano = areano
- this.transtime = transtime
- }
- transdtlService.queryTransdtlCountByParam(searchBean)?.let {
- return it
- }
- return PageResult(WaterErrorCode.DATA_NOTFOUND_ERROR, "流水统计未找到")
}
}
@@ -506,7 +526,7 @@
@PostMapping("/areapara/deleteareapara")
@ResponseBody
- fun deleteAreapara(@RequestParam("groupid") groupid: Int?):JsonResult {
+ fun deleteAreapara(@RequestParam("groupid") groupid: Int?): JsonResult {
try {
if (null == groupid) {
return JsonResult.error("参数传递错误")
@@ -519,7 +539,7 @@
}
} catch (ex: WebCheckException) {
return JsonResult.error(ex.message)
- }catch (ex: Exception) {
+ } catch (ex: Exception) {
ex.printStackTrace()
return JsonResult.error("系统处理异常").put("exception", ex)!!
}
@@ -538,16 +558,16 @@
if (pageNo < 1 || pageSize < 1) {
return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
}
- return tAreaparaService.getAreaparaBindInfos(searchkey,pageNo,pageSize)
+ return tAreaparaService.getAreaparaBindInfos(searchkey, pageNo, pageSize)
} catch (ex: Exception) {
ex.printStackTrace()
- return PageResult(WaterErrorCode.PROCESS_ERROR,"系统繁忙,请稍后重试")
+ return PageResult(WaterErrorCode.PROCESS_ERROR, "系统繁忙,请稍后重试")
}
}
@GetMapping("/areapara/loadbindadd")
- fun loadBindView(model: Model):String {
- model.addAttribute("grouplist",tAreaparaService.queryAllAreaparaGroups())
+ fun loadBindView(model: Model): String {
+ model.addAttribute("grouplist", tAreaparaService.queryAllAreaparaGroups())
return "/system/areaparabind/form"
}
@@ -565,7 +585,7 @@
JsonResult.error(ex.message)
} catch (ex: Exception) {
ex.printStackTrace()
- JsonResult.error("系统处理异常").put("exception",ex)
+ JsonResult.error("系统处理异常").put("exception", ex)
}
}
@@ -587,7 +607,7 @@
@GetMapping("/areapara/arealist")
@ResponseBody
- fun getAreaList(@RequestParam("searchkey") searchKey: String?):PageResult<TArea> {
+ fun getAreaList(@RequestParam("searchkey") searchKey: String?): PageResult<TArea> {
return try {
tAreaparaService.getAreaBySearch(searchKey)
} catch (ex: Exception) {
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt b/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt
index 9320bfd..482aaf0 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/service/transdtl_service.kt
@@ -16,11 +16,14 @@
import com.supwisdom.dlpay.water.dao.TransdtlCountDao
import com.supwisdom.dlpay.water.domain.TTransdtlCount
import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.data.domain.Example
+import org.springframework.data.domain.ExampleMatcher
import org.springframework.data.domain.PageRequest
import org.springframework.data.jpa.domain.Specification
import org.springframework.stereotype.Service
import java.util.ArrayList
import javax.persistence.EntityManager
+import javax.persistence.Query
import javax.persistence.criteria.CriteriaBuilder
import javax.persistence.criteria.CriteriaQuery
import javax.persistence.criteria.Predicate
@@ -76,11 +79,11 @@
}
override fun queryTransdtlDTOByParam(param: TransdtlSearchBean): PageResult<TTransdtlDTO>? {
- var sql =StringBuffer("select t1.billno,t1.amount,t1.bankcardno,t1.deviceno,t1.mode,t1.status,t1.transdate,t1.transtime,t1.water_in_100ml water_sum_hundred_litre,t1.name username,t2.devicename,t2.areaname,t2.areano " +
+ val sql = StringBuffer("select t1.billno,t1.amount,t1.bankcardno,t1.cardphyid,t1.deviceno,t1.mode,t1.status,t1.transdate,t1.transtime,t1.water_in_100ml water_sum_hundred_litre,t1.name username,t2.devicename,t2.areaname,t2.areano " +
"from (select dtl.*,person.name from tb_transdtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
"(select device.deviceno,device.devicename,area.areaname,area.areano from tb_device device,tb_area area where device.areano = area.areano) t2 " +
"where t1.deviceno = t2.deviceno")
- var countSql =StringBuffer("select count(billno) " +
+ val countSql = StringBuffer("select count(billno) " +
"from (select dtl.*,person.name from tb_transdtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
"(select device.deviceno,device.devicename,area.areaname,area.areano from tb_device device,tb_area area where device.areano = area.areano) t2 " +
"where t1.deviceno = t2.deviceno")
@@ -116,15 +119,15 @@
map.put("areano", position++)
}
sql.append(" order by billno desc limit " + param.pageSize + " offset " + (param.pageNo - 1) * param.pageSize)
- val query = em.createNativeQuery(sql.toString(),TTransdtlDTO::class.java)
+ val query = em.createNativeQuery(sql.toString(), TTransdtlDTO::class.java)
val countQuery = em.createNativeQuery(countSql.toString())
map["devicename"]?.let {
query.setParameter(it, "%" + param.devicename + "%")
countQuery.setParameter(it, "%" + param.devicename + "%")
}
map["deviceno"]?.let {
- query.setParameter(it, "%"+param.deviceno+"%")
- countQuery.setParameter(it, "%"+param.deviceno+"%")
+ query.setParameter(it, "%" + param.deviceno + "%")
+ countQuery.setParameter(it, "%" + param.deviceno + "%")
}
map["areano"]?.let {
query.setParameter(it, param.areano)
@@ -136,14 +139,14 @@
}
map["mindate"]?.let {
- val timerange = param.transtime.replace("-","").split(" ")
+ val timerange = param.transtime.replace("-", "").split(" ")
query.setParameter(it, timerange[0])
query.setParameter(map["maxdate"]!!, timerange[1])
countQuery.setParameter(it, timerange[0])
countQuery.setParameter(map["maxdate"]!!, timerange[1])
}
- val transdtlDTO:List<TTransdtlDTO> = query.resultList as List<TTransdtlDTO>
- val count:Int = countQuery.singleResult.toString().toInt()
+ val transdtlDTO: List<TTransdtlDTO> = query.resultList as List<TTransdtlDTO>
+ val count: Int = countQuery.singleResult.toString().toInt()
val result: PageResult<TTransdtlDTO> = PageResult()
result.apply {
this.data = transdtlDTO
@@ -156,21 +159,21 @@
override fun queryTransdtlCountByParam(param: TransdtlCountSearchBean): PageResult<TTransdtlCount> {
val pageable = PageRequest.of(param.pageNo - 1, param.pageSize)
- val specification = { root:Root<TTransdtlCount>, query:CriteriaQuery<Any>, cb:CriteriaBuilder ->
+ val specification = Specification<TTransdtlCount> { root, query, cb ->
val predicates = ArrayList<Predicate>()
if (param.areano != null) {
predicates.add(cb.equal(root.get<Int>("areano").`as`(Int::class.java), param.areano))
}
if (!StringUtil.isEmpty(param.devicename)) {
- predicates.add(cb.like(root.get("devicename"), "%" + param.devicename + "%"))
+ predicates.add(cb.like(root.get("devicename"), "%" + param.devicename.trim() + "%"))
}
if (!StringUtil.isEmpty(param.transtime)) {
- val timerange = param.transtime.replace("-","").split(" ")
- predicates.add(cb.greaterThanOrEqualTo(root.get("accdate"),timerange[0]))
- predicates.add(cb.lessThanOrEqualTo(root.get("accdate"),timerange[0]))
+ val timerange = param.transtime.replace("-", "").split(" ")
+ predicates.add(cb.greaterThanOrEqualTo(root.get("accdate"), timerange[0]))
+ predicates.add(cb.lessThanOrEqualTo(root.get("accdate"), timerange[1]))
}
query.where(*predicates.toTypedArray()).restriction
- } as Specification<TTransdtlCount>
+ }
val dtlCountPage = transdtlCountDao.findAll(specification, pageable)
return PageResult<TTransdtlCount>(dtlCountPage)
}
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 0783339..aa3d4e9 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -38,7 +38,7 @@
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('6', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('7', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('8', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
--- INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('9', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('9', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('10', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('11', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -109,26 +109,27 @@
INSERT INTO "tb_devicefeeconfig"("areano", "feecfgversion", "feeconfig") VALUES (1, NULL, 1);
INSERT INTO "tb_feeconfig"("id", "amount", "max_water_litre", "cfg_version") VALUES (1, 1, 50, NULL);
-INSERT INTO "tb_person_identity"("third_uid", "createtime", "lockflag", "lossflag", "status", "userid") VALUES ('1', NULL, 0, 0, '1', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_person_identity"("third_uid", "createtime", "lockflag", "lossflag", "status", "userid", "cardphyid") VALUES ('000000000000000000000000', NULL, 0, 0, '1', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '6655ec27');
INSERT INTO "tb_person"("userid", "addr", "country", "email", "idno", "idtype", "lastsaved", "mobile", "name", "nation", "sex", "status", "tel", "zipcode") VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '王富贵', NULL, NULL, '1', NULL, NULL);
INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_auth_url', 'http://172.28.43.20:8080/water/api/device/confirm?billno=');
-INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('正常', 1, 'normal', '设备状态');
-INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('注销', 1, 'closed', '设备状态');
-INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('签出', 1, 'logout', '设备状态');
+INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('正常', 'device_status', 'normal', '设备状态');
+INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('注销', 'device_status', 'closed', '设备状态');
+INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('签出', 'device_status', 'logout', '设备状态');
-INSERT INTO "tb_areapara_group"("groupid", "globalflag", "groupname", "lastsaved", "verno") VALUES (1, 't', '默认参数组', '20190628133646', 7);
+INSERT INTO "tb_areapara_group"("groupid", "globalflag", "groupname", "lastsaved", "verno") VALUES (1, 't', '默认参数组', '20190628133646', 1);
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('feestart', 1, '10', '0', '从第多少百毫升开始计费(单位:百毫升)', '0', 'N');
+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', '60', '出水等待时间(单位:秒):超出这个时间,自动关闭水阀门', '90', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('vaildtime', 1, '240', '60', '二维码有效时间(单位:秒)', '180', '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 ('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 ('feeamount', 1, '100', '1', '单位扣费金额(单位:百毫升/分)', '10', 'N');
-INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('feeunit', 1, '10', '0', '从第多少百毫升开始计费(单位:百毫升)', '0', 'N');
+INSERT INTO "tb_areapara"("paraname", "groupid", "maxval", "minval", "paradesc", "paraval", "valtype") VALUES ('validtime', 1, '240', '60', '二维码有效时间(单位:秒)', '180', 'N');
commit;
\ No newline at end of file
diff --git a/src/main/resources/templates/system/areapara/index.html b/src/main/resources/templates/system/areapara/index.html
index 8470707..b99f469 100644
--- a/src/main/resources/templates/system/areapara/index.html
+++ b/src/main/resources/templates/system/areapara/index.html
@@ -122,6 +122,7 @@
title: "修改参数组【" + data.groupid + "_" + data.groupname + "】",
path: '[[@{/areapara/loadadd}]]?groupid=' + data.groupid,
area: '1200px',
+ offset: '10px',
finish: function () {
table.reload('areaparagroupTable');
}
diff --git a/src/main/resources/templates/system/device/form.html b/src/main/resources/templates/system/device/form.html
index e8d0b5d..d5e5922 100644
--- a/src/main/resources/templates/system/device/form.html
+++ b/src/main/resources/templates/system/device/form.html
@@ -1,6 +1,6 @@
<!-- operator表单弹窗 -->
<form id="form" lay-filter="form" class="layui-form model-form">
- <input name="areano" id="areano" type="hidden"/>
+ <input name="deviceid" id="deviceid" type="hidden"/>
<div class="layui-form-item">
<label class="layui-form-label">设备名称</label>
<div class="layui-input-block">
diff --git a/src/main/resources/templates/system/device/index.html b/src/main/resources/templates/system/device/index.html
index 6e6ad25..6a90044 100644
--- a/src/main/resources/templates/system/device/index.html
+++ b/src/main/resources/templates/system/device/index.html
@@ -20,7 +20,7 @@
</div>
<div class="layui-col-md4">
<label style="width: 60px" class="layui-form-label">所在小区</label>
- <select name="parentId" id="select-region" lay-search>
+ <select name="water-device-parentId" id="select-region" lay-search>
</select>
</div>
@@ -34,7 +34,7 @@
<div style="margin-top: 20px"/>
<div class="layui-row">
<label style="width: 60px" class="layui-form-label">设备状态</label>
- <select name="parentId" id="select-status">
+ <select name="water-device-status" id="select-status">
</select>
</div>
@@ -242,7 +242,7 @@
layer.load(2);
let token = $("meta[name='_csrf_token']").attr("value");
admin.go('[[@{/device/del}]]', {
- areano: data.areano,
+ deviceid: data.deviceid,
_csrf: token
}, function (data) {
console.log(data.code);
diff --git a/src/main/resources/templates/system/dtlcount/index.html b/src/main/resources/templates/system/dtlcount/index.html
index c6d8758..8b1fe25 100644
--- a/src/main/resources/templates/system/dtlcount/index.html
+++ b/src/main/resources/templates/system/dtlcount/index.html
@@ -21,7 +21,7 @@
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">所在小区</label>
- <select name="parentId" id="dtlcount-select-region" lay-search>
+ <select name="water-dtlcount-parentId" id="dtlcount-select-region" lay-search>
</select>
</div>
@@ -77,8 +77,8 @@
html += '<option value="' + regions[i].areano + '">' + regions[i].areaName + '</option>'
}
$("#dtlcount-select-region").html(html);
- form.render('select')
}
+ form.render('select')
},
error: function (xhr) {
console.log(xhr)
@@ -96,57 +96,25 @@
page: true,
cols: [
[
- {field: 'billno', align: 'center', title: '流水号', width: 190},
- {field: 'deviceno', align: 'center', title: '终端号', width: 95},
+ {field: 'id', align: 'center', title: '编号', width: 190},
{field: 'devicename', align: 'center', title: '设备名称', width: 110},
+ {field: 'deviceno', align: 'center', title: '设备编号', width: 110},
+ {field: 'areano', align: 'center', title: '区域编号', width: 110},
{field: 'areaname', align: 'center', title: '区域'},
+ {field: 'count', align: 'center', title: '交易笔数'},
+ {field: 'mode', align: 'center', title: '记录模式'},
{field: 'waterSumHundredLitre', align: 'center', title: '用水量', width: 85},
{field: 'amount', align: 'center', title: '金额', width: 75},
- {field: 'username', align: 'center', title: '姓名', width: 75},
- {field: 'bankcardno', align: 'center', title: '卡号'},
{
- field: 'transdate',
+ field: 'accdate',
align: 'center',
- title: '交易时间',
+ title: '确认日期',
width: 105,
- templet: function (item) {
- var date = item.transdate
- date = date.slice(0, 4) + '/' + date.slice(4)
- return date.slice(0, 7) + '/' + date.slice(7)
- }
- },
- {
- field: 'transtype',
- align: 'center',
- title: '支付方式',
- width: 90,
- templet: function (item) {
- if (item.mode === 'qrcode') {
- return '扫码'
- } else if (item.mode === 'card') {
- return '市民卡'
- } else {
- return item.mode
- }
- }
- },
- {
- field: 'transStatus',
- align: 'center',
- title: '状态',
- templet: function (item) {
- if (item.status === 'init') {
- return '初始化'
- } else if (item.status === 'wip') {
- return '处理中'
- } else if (item.status === 'fail') {
- return '失败';
- } else if (item.status === 'success') {
- return '成功';
- } else {
- return item.status
- }
- }
+ // templet: function (item) {
+ // var date = item.transdate
+ // date = date.slice(0, 4) + '/' + date.slice(4)
+ // return date.slice(0, 7) + '/' + date.slice(7)
+ // }
}
]
]
diff --git a/src/main/resources/templates/system/region/form.html b/src/main/resources/templates/system/region/form.html
index 352b019..f4fc7c8 100644
--- a/src/main/resources/templates/system/region/form.html
+++ b/src/main/resources/templates/system/region/form.html
@@ -57,15 +57,15 @@
url: "[[@{/region/all}]]",
type: "GET",
success: function (data) {
+ var html = '<option value="0">根区域</option>'
if (data.retcode == '0') {
- var html = '<option value="0">根区域</option>'
var regions = data.regions
for (var i = 0; i < regions.length; i++) {
html += '<option value="' + regions[i].areano + '">' + regions[i].areaName + '</option>'
}
- $("#selectCity").html(html);
- form.render('select', 'form')
}
+ $("#selectCity").html(html);
+ form.render('select', 'form')
},
error: function (xhr) {
console.log(xhr)
diff --git a/src/main/resources/templates/system/region/index.html b/src/main/resources/templates/system/region/index.html
index 515ec25..871456f 100644
--- a/src/main/resources/templates/system/region/index.html
+++ b/src/main/resources/templates/system/region/index.html
@@ -109,7 +109,6 @@
let region_index_title = data ? '编辑区域' : '新增区域';
if (data) {
admin.putTempData('t_func', data);
- console.log(data)
}
admin.popupCenter({
title: region_index_title,
@@ -181,7 +180,6 @@
areano: data.areano,
_csrf: token
}, function (data) {
- console.log(data.code);
layer.closeAll('loading');
if (data.retcode == 0) {
layer.msg(data.msg, {icon: 1});
@@ -237,7 +235,6 @@
// 查询区域树数据
//渲染数据
-
$.ajax({
url: '[[@{/region/tree}]]',
type: 'GET',
@@ -251,17 +248,15 @@
, data: treeData
, id: 'regiontree'
, click: function (region) {
- if (region.data.children.size != 0) {
- table.reload("regiontable", {
- url: "[[@{/region/search}]]",
- where:{
- searchkey:region.data.title
- }
- , page: {
- curr: 1
- }
- });
- }
+ table.reload("regiontable", {
+ url: '[[@{/region/areano}]]',
+ where: {
+ areano: region.data.id
+ },
+ page: {
+ curr: 1
+ }
+ });
}
});
});
diff --git a/src/main/resources/templates/system/transdtl/index.html b/src/main/resources/templates/system/transdtl/index.html
index d3bce23..fefeb56 100644
--- a/src/main/resources/templates/system/transdtl/index.html
+++ b/src/main/resources/templates/system/transdtl/index.html
@@ -21,7 +21,8 @@
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备编号</label>
- <input id="waterdtl-deviceno-search-value" class="layui-input search-input" type="text" maxlength="8"/>
+ <input id="waterdtl-deviceno-search-value" class="layui-input search-input" type="text"
+ maxlength="8"/>
</div>
<div class="layui-col-md2">
<button id="btn-search-waterdtl" class="layui-btn icon-btn" data-type="search"
@@ -39,7 +40,7 @@
</div>
<div class="layui-col-md4">
<label style="width: 60px" class="layui-form-label">所在小区</label>
- <select name="parentId" id="waterdtl-select-region" lay-search>
+ <select name="water-transdtl-parentId" id="waterdtl-select-region" lay-search>
</select>
</div>
@@ -75,7 +76,7 @@
laydate.render({
elem: '#waterdtl-transtime-search-value',
range: true,
- trigger:'click'
+ trigger: 'click'
})
// 渲染区域选择框
$.ajax({
@@ -89,8 +90,8 @@
html += '<option value="' + regions[i].areano + '">' + regions[i].areaName + '</option>'
}
$("#waterdtl-select-region").html(html);
- form.render('select')
}
+ form.render('select')
},
error: function (xhr) {
console.log(xhr)
@@ -110,19 +111,19 @@
page: true,
cols: [
[
- {field: 'billno', align: 'center', title: '流水号', width: 190},
- {field: 'deviceno', align: 'center', title: '设备号', width: 95},
- {field: 'devicename', align: 'center', title: '设备名称', width: 110},
+ {field: 'billno', align: 'center', title: '流水号'},
+ {field: 'deviceno', align: 'center', title: '设备号'},
+ {field: 'devicename', align: 'center', title: '设备名称'},
{field: 'areaname', align: 'center', title: '区域'},
- {field: 'waterSumHundredLitre', align: 'center', title: '用水量', width: 85},
- {field: 'amount', align: 'center', title: '金额', width: 75},
- {field: 'username', align: 'center', title: '姓名', width: 75},
+ {field: 'waterSumHundredLitre', align: 'center', title: '用水量'},
+ {field: 'amount', align: 'center', title: '金额'},
+ {field: 'username', align: 'center', title: '姓名'},
{field: 'bankcardno', align: 'center', title: '卡号'},
+ {field: 'cardphyid', align: 'center', title: '物理卡号'},
{
field: 'transdate',
align: 'center',
title: '交易时间',
- width: 105,
templet: function (item) {
var date = item.transdate
date = date.slice(0, 4) + '/' + date.slice(4)
@@ -133,7 +134,6 @@
field: 'transtype',
align: 'center',
title: '支付方式',
- width: 90,
templet: function (item) {
if (item.mode === 'qrcode') {
return '扫码'
@@ -182,8 +182,8 @@
transtime: transtime
},
url: "[[@{/transdtl/list}]]",
- page:{
- curr:1
+ page: {
+ curr: 1
},
text: {
none: '没有符合查询条件的流水'