diff --git a/gptService/src/main/java/com/iformall/domain/po/WxPayOrder.java b/gptService/src/main/java/com/iformall/domain/po/WxPayOrder.java index a64143b..b3b73de 100644 --- a/gptService/src/main/java/com/iformall/domain/po/WxPayOrder.java +++ b/gptService/src/main/java/com/iformall/domain/po/WxPayOrder.java @@ -49,7 +49,8 @@ public class WxPayOrder extends TenantEntity { private Date validStartTime; @io.swagger.annotations.ApiModelProperty(value="生效结束时间",name="validEndTime") private Date validEndTime; - + @io.swagger.annotations.ApiModelProperty(value="备注",name="remark") + private String remark; @TableField(exist = false) private Date begin; diff --git a/gptService/src/main/java/com/iformall/service/wx/WxPayServiceImpl.java b/gptService/src/main/java/com/iformall/service/wx/WxPayServiceImpl.java index 30aa05e..0688262 100644 --- a/gptService/src/main/java/com/iformall/service/wx/WxPayServiceImpl.java +++ b/gptService/src/main/java/com/iformall/service/wx/WxPayServiceImpl.java @@ -170,6 +170,17 @@ public class WxPayServiceImpl implements WxPayService { boolean stocksetlock = redisLock.lock("carPayOrderLock_"+orderId, timeStr); if (stocksetlock) { try { + WxCUser wxCUser = wxCUserMapper.selectById(cUserId, tenantId); + if (null == wxCUser) { + throw new MallinkException(ErrorCode.SERVER_ERROR.getCode(),"支付更新失败,用户不存在"+cUserId); + } + Date curr = new Date(); + + //用户当前是否已过期 + boolean isExpired = false; + if (null != wxCUser.getValidEndTime() && wxCUser.getValidEndTime().before(curr)) { + isExpired = true; + } //创建停车支付订单记录 final IdWorker idworker = IdWorker.get(); payOrder = new WxPayOrder(); @@ -182,13 +193,20 @@ public class WxPayServiceImpl implements WxPayService { payOrder.setTransactionId(transcationId); payOrder.setcUserPhone(userPhone); SysConfig config = sysConfigService.getByKey(SysConfigConstant.expired_days, payOrder); - Date curr = new Date(); payOrder.setCreateTime(curr); payOrder.setUpdateTime(curr); payOrder.setValidStartTime(curr); - Date endtime = DateUtils.getTimeAfterDays(Integer.parseInt(config.getConfigItemValue()), curr); + Date endtime = null; + if (isExpired) { + endtime = DateUtils.getTimeAfterDays(Integer.parseInt(config.getConfigItemValue()), curr); + payOrder.setRemark("过期缴费"); + }else { + endtime = DateUtils.getTimeAfterDays(Integer.parseInt(config.getConfigItemValue()), wxCUser.getValidEndTime()); + payOrder.setRemark("未过期续费"); + } payOrder.setValidEndTime(endtime); wxPayOrderMapper.insert(payOrder); + wxCUserMapper.updateValidTime(cUserId, tenantId, curr, endtime); }catch(Exception e) { logger.error("handlePaidSuccess fail.",e); diff --git a/gptService/src/main/resources/mapper/WxPayOrderMapper.xml b/gptService/src/main/resources/mapper/WxPayOrderMapper.xml index 098ee96..6f3893f 100644 --- a/gptService/src/main/resources/mapper/WxPayOrderMapper.xml +++ b/gptService/src/main/resources/mapper/WxPayOrderMapper.xml @@ -14,11 +14,12 @@ + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`c_user_id`,`c_user_phone`,`pay_amount`, - `pay_time`,`transaction_id`,`valid_start_time`,`valid_end_time` + `pay_time`,`transaction_id`,`valid_start_time`,`valid_end_time`,`remark`