| | |
| | | import com.ruoyi.errand.mapper.VipSettingMapper; |
| | | import com.ruoyi.errand.object.dto.app.VipPaymentDTO; |
| | | import com.ruoyi.errand.service.VipOrderService; |
| | | import com.ruoyi.errand.utils.CloseOrderResult; |
| | | import com.ruoyi.errand.utils.PaymentUtil; |
| | | import com.ruoyi.errand.utils.UniPayCallbackResult; |
| | | import com.ruoyi.errand.utils.UniPayResult; |
| | | import com.ruoyi.errand.utils.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.security.core.context.SecurityContextHolder; |
| | |
| | | vipOrder.setAppUserId(appuser.getId()); |
| | | |
| | | VipSetting vipSetting = vipSettingMapper.selectById(vipPaymentDTO.getId()); |
| | | vipOrder.setOrderAmount(vipSetting.getVip_price()); |
| | | vipOrder.setPaymentAmount(vipSetting.getVip_price()); |
| | | vipOrder.setOrderAmount(vipSetting.getVipPrice()); |
| | | vipOrder.setPaymentAmount(vipSetting.getVipPrice()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | vipOrder.setOrderNumber("QJS" + getNumber(3) + sdf.format(new Date())); |
| | | vipOrder.setPayStatus(1); |
| | |
| | | BigDecimal paymentMoney = vipOrder.getOrderAmount(); |
| | | if ( BigDecimal.ZERO.compareTo(paymentMoney) < 0){ |
| | | //调起微信支付 |
| | | String vipName = vipSetting.getVip_name(); |
| | | String vipName = vipSetting.getVipName(); |
| | | UniPayResult uniPayResult = PaymentUtil.uniPay(vipOrder.getOrderNumber(), paymentMoney.doubleValue(), "购买会员", |
| | | vipName, "", "/app/vipOrder/orderPaymentCallback", appuser.getWxOpenid(), null); |
| | | if(null == uniPayResult || !"100".equals(uniPayResult.getRa_Code())){ |
| | |
| | | Long appUserId = vipOrder.getAppUserId(); |
| | | AppUser appUser = appUserMapper.selectById(appUserId); |
| | | appUser.setVipId(vipOrder.getVipId()); |
| | | if (appUser.getEndTime().isBefore(LocalDateTime.now())) { |
| | | appUser.setStartTime(LocalDateTime.now()); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | appUser.setEndTime(appUser.getEndTime()==null?now:appUser.getEndTime()); |
| | | if (appUser.getEndTime().isBefore(now)) { |
| | | appUser.setEndTime(now); |
| | | } |
| | | // 根据 vipId 计算会员到期时间 |
| | | LocalDateTime endTime = calculateEndTime(appUser.getEndTime(), vipOrder.getVipId()); |
| | |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | appUser.setEndTime(appUser.getEndTime()==null?now:appUser.getEndTime()); |
| | | if (appUser.getEndTime().isBefore(now)) { |
| | | appUser.setStartTime(now); |
| | | appUser.setEndTime(now); |
| | | } |
| | | // 根据 vipId 计算会员到期时间 |
| | | LocalDateTime endTime = calculateEndTime(appUser.getEndTime(), vipOrder.getVipId()); |