diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java index 993c70956..2a1705ad9 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java @@ -1,6 +1,7 @@ package com.iformall.controller.callback; import com.alibaba.fastjson.JSON; +import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.controller.base.BaseController; @@ -11,6 +12,7 @@ import com.iformall.enums.EnumCouponSendSendType; import com.iformall.enums.EnumETCPCode; import com.iformall.service.*; import com.iformall.utils.ETCPUtil; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -171,6 +173,16 @@ public class WxCarCallBackController extends BaseController { record.setPhone(phoneStrs); record.setTenantId(tenantId); wxCarPayRecordService.updateBySynId(record); + record.setTenantId(park.getTenantId()); + + WxCarPayRecord query = new WxCarPayRecord(); + query.setSynId(synId); + PageInfo page = wxCarPayRecordService.findCarPayListByPage(query,1,1); + if(page != null && CollectionUtils.isNotEmpty(page.getList())){ + wxCarPayRecordService.updateBySynId(record); + }else{ + wxCarPayRecordService.saveOrUpdate(record); + } } catch (Exception e) { e.printStackTrace(); logger.error("WxCarPayRecord: 入库错误 ",e); @@ -241,6 +253,13 @@ public class WxCarCallBackController extends BaseController { String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID); String exitTime = paramMap.get(ETCPUtil.ETCP_EXIT_TIME); String stayedTime = paramMap.get(ETCPUtil.ETCP_STAYED_TIME); + String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER); + String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); + String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); + String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); + String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); + String fixParkingId = paramMap.get(ETCPUtil.ETCP_FIX_PARKING_ID); + String remainingDays = paramMap.get(ETCPUtil.ETCP_REMAINING_DAYS); try { // 保存WxCarPayRecord @@ -252,7 +271,28 @@ public class WxCarCallBackController extends BaseController { if(StringUtils.isNotBlank(stayedTime)) { record.setStayedTime(Long.parseLong(stayedTime)); } - wxCarPayRecordService.updateBySynId(record); + record.setVendorType(wxCarCmdLog.getVendorType()); + record.setSynId(synId); + record.setParkId(parkId); + record.setParkName(parkName); + record.setUserType(userType); + record.setPlateNumber(carNumber); + if(StringUtils.isNotBlank(entranceTime)) { + record.setEntranceTime(dateFormat.parse(entranceTime)); + } + record.setFixParkingId(fixParkingId); + record.setRemainingDays(remainingDays); + //record.setPhone(phoneStrs); + record.setTenantId(park.getTenantId()); + + WxCarPayRecord query = new WxCarPayRecord(); + query.setSynId(synId); + PageInfo page = wxCarPayRecordService.findCarPayListByPage(query,1,1); + if(page != null && CollectionUtils.isNotEmpty(page.getList())){ + wxCarPayRecordService.updateBySynId(record); + }else{ + wxCarPayRecordService.saveOrUpdate(record); + } } catch (Exception e) { logger.error("WxCarPayRecord: 出场更新错误 " +e.getMessage()+", " +paramMap.toString()); return true; @@ -352,6 +392,16 @@ public class WxCarCallBackController extends BaseController { } String paidServiceFee = paramMap.get(ETCPUtil.ETCP_PAID_SERVICE_FEE); + String feetime = paramMap.get("time"); + String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID); + String exitTime = paramMap.get(ETCPUtil.ETCP_EXIT_TIME); + String stayedTime = paramMap.get(ETCPUtil.ETCP_STAYED_TIME); + String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); + String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); + String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); + String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); + String fixParkingId = paramMap.get(ETCPUtil.ETCP_FIX_PARKING_ID); + String remainingDays = paramMap.get(ETCPUtil.ETCP_REMAINING_DAYS); String fee = paramMap.get(ETCPUtil.ETCP_FEE); try { @@ -363,7 +413,35 @@ public class WxCarCallBackController extends BaseController { record.setFeeTime(dateFormat.parse(etcpTime)); } record.setFee(fee); - wxCarPayRecordService.updateBySynId(record); + if(StringUtils.isNotBlank(exitTime)) { + record.setExitTime(dateFormat.parse(exitTime)); + } + if(StringUtils.isNotBlank(stayedTime)) { + record.setStayedTime(Long.parseLong(stayedTime)); + } + record.setVendorType(wxCarCmdLog.getVendorType()); + record.setSynId(synId); + record.setParkId(parkId); + record.setParkName(parkName); + record.setUserType(userType); + record.setPlateNumber(carNumber); + if(StringUtils.isNotBlank(entranceTime)) { + record.setEntranceTime(dateFormat.parse(entranceTime)); + } + record.setFixParkingId(fixParkingId); + record.setRemainingDays(remainingDays); + //record.setPhone(phoneStrs); + //record.setTenantId(park.getTenantId()); + + WxCarPayRecord query = new WxCarPayRecord(); + query.setSynId(orderId); + query.setFeeTimeStr(feetime); + PageInfo page = wxCarPayRecordService.findCarPayListByPage(query,1,1); + if(page != null && CollectionUtils.isNotEmpty(page.getList())){ + wxCarPayRecordService.updateBySynId(record); + }else{ + wxCarPayRecordService.saveOrUpdate(record); + } } catch (Exception e) { logger.error("WxCarPayRecord: 缴费更新错误 " +e.getMessage()+", "+ paramMap.toString()); //return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java index 7c4eb1aec..8a444ea10 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java @@ -39,7 +39,7 @@ public class WxCarPayRecord extends BaseEntity { private String parkName; private String userType; - + private String feeTimeStr; private Date feeTime; private String coupon; private String couponCode; diff --git a/mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml index 502554b10..6b924f640 100644 --- a/mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCarPayRecordMapper.xml @@ -38,7 +38,12 @@ and `id` = #{id} - + + and `syn_id` = #{synId} + + + and `fee_time` = #{feeTimeStr} + and `tenant_id` = #{tenantId} @@ -76,34 +81,8 @@ - - insert into wx_car_pay_record values( - (select unix_timestamp(now()) + CEILING(RAND()*9000000+10000000)), - #{tenantId}, - #{vendorType}, - #{synId}, - #{parkId}, - #{parkName}, - #{userType}, - #{plateNumber}, - #{entranceTime}, - #{exitTime}, - #{stayedTime}, - #{fee}, - #{feeTime}, - #{phone}, - #{coupon}, - #{couponCode}, - #{fixParkingId}, - #{remainingDays}, - #{discountAmount}, - #{paidServiceFee}, - now(), - now() - ) - ON DUPLICATE KEY UPDATE - update_date = now() + update wx_car_pay_record set update_date = now() ,exit_time = #{exitTime} @@ -119,6 +98,8 @@ ,paid_service_fee = #{paidServiceFee} + + where syn_id = #{synId}