修改了psm上的bug
diff --git a/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java b/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
index 77242b9..491a2e0 100755
--- a/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
@@ -43,16 +43,28 @@
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
- if (StringUtil.equals("/login/form", request.getRequestURI())
+ String context = request.getContextPath();
+ if (context == null || "" == context.trim()) {
+ context = "/";
+ }
+ if (request.getRequestURI().isEmpty()) {
+ filterChain.doFilter(request, response);
+ return;
+ }
+ String url = request.getRequestURI();
+ if (!"/".equals(context)) {
+ url = url.replace(context, "");
+ }
+ if (StringUtil.equals("/login/form", url)
&& StringUtil.equalsIgnoreCase(request.getMethod(), "post")) {
try {
validate(request);
} catch (ValidateCodeException e) {
- response.setStatus(HttpStatus.OK.value());
- response.setContentType("application/json;charset=UTF-8");
- response.getWriter().write(objectMapper.writeValueAsString(JsonResult.error(400, e.getMessage())));
+ //response.setStatus(HttpStatus.OK.value());
+ //response.setContentType("application/json;charset=UTF-8");
+ //response.getWriter().write(objectMapper.writeValueAsString(JsonResult.error(400, e.getMessage())));
//response.sendError(HttpStatus.UNAUTHORIZED.value(),e.getMessage());
- //myAuthenticationFailureHandler.onAuthenticationFailure(request, response, e);
+ myAuthenticationFailureHandler.onAuthenticationFailure(request, response, e);
return;
}
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java
index ad25aee..0081395 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java
@@ -11,15 +11,10 @@
public class ShortURLUtil {
public static String doGetSinaShortUrl(String longUrl) {
- String shortUrlService = "http://www.mynb8.com/api/sina"; //新浪服务网址
- String sinaAppkey = "2223392143"; //注册申请
String result = "";
BufferedReader in = null;
try {
- String encLongUrl = URLEncoder.encode(longUrl, "UTF-8");
- String sign = MD5.encodeByMD5(sinaAppkey.trim() + MD5.encodeByMD5(encLongUrl).toLowerCase()).toLowerCase(); //md5(appkey+md5(long_url)) 小写
//http://www.mynb8.com/api/sina?appkey=APPKEY&sign=SIGN&long_url=LONG_URL
- String serviceUrl = shortUrlService + "?appkey=" + sinaAppkey + "&sign=" + sign + "&long_url=" + encLongUrl;
String address = "http://api.t.sina.com.cn/short_url/shorten.json?source=2223392143";
address += "&url_long=" + URLEncoder.encode(longUrl, "UTF-8");
URL url = new URL(address);
@@ -36,7 +31,6 @@
JSONObject json = JSONObject.fromObject(result);
if (json.getInt("type") != 0) {
// logger.error("[" + longUrl + "]短地址生成错误:" + json.getString("rs_msg"));
- System.out.println("短地址生成错误");
return null;
}
return json.getString("url_short");
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 bff8cb7..cf68fd4 100644
--- a/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtl.java
@@ -26,7 +26,6 @@
private String deviceno;
@Column(length = 32)
- @NotNull
private String userid;
@Column(name = "bankcardno", length = 32)
@@ -52,7 +51,7 @@
@Column(name = "accdate", length = 8)
private String accdate;
- @Column(name = "billno", length = 32)
+ @Column(name = "refno", length = 32)
private String refno;
@Column(name = "accstatus", length = 10)
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java b/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java
index 854ba68..4e87205 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/DeviceService.java
@@ -36,7 +36,7 @@
@Transactional
Map<String,Object> deviceLogin(DeviceLoginParam param);
@Transactional
- boolean lineCheck(DeviceLineCheckParam param);
+ TDevice lineCheck(DeviceLineCheckParam param);
@Transactional
TFeeConfig queryTFeeConfigByDeviceno(String deviceno);
}
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 276dab0..6334cce 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
@@ -187,6 +187,11 @@
Map<String, Object> result = new HashMap<>();
TDevice device = deviceDao.findByDeviceno(param.getDeviceno());
if (device != null) {
+ if (device.getDeviceStatus().equals("closed")) {
+ result.put("flag", false);
+ result.put("errorMsg", "本设备已注销,签到失败");
+ return result;
+ }
device.setSoftVer(param.getHwVer());
deviceDao.save(device);
result.put("flag", true);
@@ -195,19 +200,20 @@
return result;
}
result.put("flag", false);
+ result.put("errorMsg", "没有编号为" + param.getDeviceno() + "的设备");
return result;
}
@Override
- public boolean lineCheck(DeviceLineCheckParam param) {
+ public TDevice lineCheck(DeviceLineCheckParam param) {
TDevice device = deviceDao.findByDeviceno(param.getDeviceno());
if (device != null) {
String deviceLineCheck = param.getTermdate() + param.getTermtime();
device.setDeviceLineCheck(deviceLineCheck);
deviceDao.save(device);
- return true;
+ return device;
}
- return false;
+ return null;
}
@Override
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 ec0f698..8acd715 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
@@ -141,7 +141,7 @@
var transtime: String = ""
@Sign
- var refno: String = ""
+ var billno: String = ""
@Sign
var amount: Int = 0
@@ -168,13 +168,13 @@
class UserAuthRequest : APIRequestParam() {
@Sign
- var refno: String = ""
+ var billno: String = ""
@Sign
var userid: String = ""
override fun checkParam(): Boolean {
- if (refno.length != 20 || refno.any { it !in '0'..'9' }) {
+ if (billno.length != 20 || billno.any { it !in '0'..'9' }) {
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 714586f..21ff75a 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
@@ -1,6 +1,7 @@
package com.supwisdom.dlpay.water.controller
import com.supwisdom.dlpay.framework.ResponseBodyBuilder
+import com.supwisdom.dlpay.framework.dao.BusinessparaDao
import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.framework.util.ShortURLUtil
import com.supwisdom.dlpay.framework.util.TradeDict
@@ -32,6 +33,9 @@
@Autowired
private lateinit var transdtlService: TransdtlService
+ @Autowired
+ private lateinit var businessparaDao: BusinessparaDao
+
@GetMapping("/devicelogin")
fun deviceLogin(@RequestBody param: DeviceLoginParam): ResponseEntity<Any> {
try {
@@ -44,7 +48,7 @@
.success())
}
return ResponseEntity.ok(ResponseBodyBuilder.create()
- .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "没有编号为" + param.deviceno + "的设备"))
+ .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, result["errorMsg"].toString()))
} catch (ex: Exception) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.exception(WaterErrorCode.PROCESS_ERROR, ex, "系统出错"))
@@ -55,14 +59,14 @@
@RequestMapping("/linecheck", method = [RequestMethod.GET, RequestMethod.POST])
fun deviceLineCheck(@RequestBody param: DeviceLineCheckParam): ResponseEntity<Any> {
try {
- if (deviceService.lineCheck(param)) {
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .data("sysdate", systemUtilService.sysdatetime.hostdate)
- .data("systemTime", systemUtilService.sysdatetime.hosttime)
- .success())
- }
+ val device = deviceService.lineCheck(param)
+ ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "没有编号为${param.deviceno}的设备"))
return ResponseEntity.ok(ResponseBodyBuilder.create()
- .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "没有编号为${param.deviceno}的设备"))
+ .data("sysdate", systemUtilService.sysdatetime.hostdate)
+ .data("systime", systemUtilService.sysdatetime.hosttime)
+ .data("status", device.deviceStatus)
+ .success())
} catch (ex: Exception) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.exception(WaterErrorCode.PROCESS_ERROR, ex, "系统出错"))
@@ -127,7 +131,7 @@
//2.将流水号及认证地址返回给终端
//将认证url转为短码
val url = ShortURLUtil.doGetSinaShortUrl(
- "http://172.28.43.20:8080/water/api/confirm?billno=" + savedTrans.billno)
+ businessparaDao.findByParakey("water_auth_url").paraval + savedTrans.billno)
return ResponseEntity.ok(ResponseBodyBuilder.create()
.data("billno", savedTrans.billno)
.data("url", url)
@@ -141,13 +145,10 @@
@GetMapping("/qrcode/query")
fun qrcodeQuery(@RequestBody param: QrcodeQueryRequest): ResponseEntity<Any> {
- try {
val feeConfig = deviceService.queryTFeeConfigByDeviceno(param.deviceno)
?: return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "未查询到该设备的费率信息"))
val trans = transdtlService.queryTrans(param)
- ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
- .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "未查询到该流水号"))
return ResponseEntity.ok(ResponseBodyBuilder.create()
.data("billno", trans.billno)
.data("authstatus", trans.authStatus)
@@ -156,10 +157,6 @@
.data("feeunit", 0)
.data("paidAmount", 0)
.success())
- } catch (ex: Exception) {
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .exception(WaterErrorCode.PROCESS_ERROR, ex, "系统出错"))
- }
}
@GetMapping("/confirm")
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 e0645b4..240f03e 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
@@ -22,7 +22,7 @@
}
override fun saveDeviceDtlData(record: UploadRecordRequest): TTransdtl {
- val dtl = transdtlDao.findByBillnoForUpdate(record.refno)
+ val dtl = transdtlDao.findByBillnoForUpdate(record.billno)
?: throw TransactionProcessException(WaterErrorCode.DATA_NOTFOUND_ERROR,
"交易订单号不存在")
if (record.transtatus == "2") {
@@ -40,10 +40,12 @@
override fun queryTrans(param: QrcodeQueryRequest): TTransdtl {
return transdtlDao.findByBillnoAndDeviceno(param.billno, param.deviceno)
+ ?: throw TransactionProcessException(WaterErrorCode.DATA_NOTFOUND_ERROR,
+ "交易订单号不存在")
}
override fun userAuth(param: UserAuthRequest): TTransdtl {
- val dtl = transdtlDao.findById(param.refno).orElse(null)
+ val dtl = transdtlDao.findById(param.billno).orElse(null)
?: throw TransactionProcessException(WaterErrorCode.DATA_NOTFOUND_ERROR,
"交易订单号不存在")
dtl.userid = param.userid
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index eee881b..1dcc5e1 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -102,11 +102,9 @@
INSERT INTO "tb_devicefeeconfig"("deviceid", "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"("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, NULL, '1', NULL, NULL);
+INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_auth_url', 'http://172.28.43.20:8080/water/api/confirm?billno=');
commit;
\ No newline at end of file
diff --git a/src/main/resources/templates/system/confirm/confirm.html b/src/main/resources/templates/system/confirm/confirm.html
index 062ffb0..5b0452a 100644
--- a/src/main/resources/templates/system/confirm/confirm.html
+++ b/src/main/resources/templates/system/confirm/confirm.html
@@ -26,7 +26,7 @@
return "d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs"
}
var allData = {
- refno:GetUrlRefnoPara(),
+ billno:GetUrlRefnoPara(),
userid:GetUserid()
}
$("#button-auth").click(function () {