|
|
@@ -6,10 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.constant.Constant;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
-import com.cyksj.mapper.ChatgptUserMapper;
|
|
|
-import com.cyksj.mapper.ClaudeUserMapper;
|
|
|
-import com.cyksj.mapper.GoodsDonSkuMapper;
|
|
|
-import com.cyksj.mapper.OrderDonRenewRecordMapper;
|
|
|
+import com.cyksj.mapper.*;
|
|
|
import com.cyksj.mapper.sys.SysConfigMapper;
|
|
|
import com.cyksj.mapper.vip.VipGoodsSkuMapper;
|
|
|
import com.cyksj.model.dto.VipDeductDto;
|
|
|
@@ -58,6 +55,8 @@ public class VipFrontServiceImpl implements VipFrontService {
|
|
|
|
|
|
private final ClaudeUserMapper claudeUserMapper;
|
|
|
|
|
|
+ private final OrderDonMapper orderDonMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public void fillVipInfo(long userId, VipUserPageResp vipUserPageResp) {
|
|
|
SysConfig sysConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, Constant.VIP_FEE_KEY).last("limit 1"));
|
|
|
@@ -158,9 +157,10 @@ public class VipFrontServiceImpl implements VipFrontService {
|
|
|
//一个月当30天算单价 往上取整
|
|
|
//续费规格
|
|
|
if (renewSkuId != null) {
|
|
|
+ OrderDon orderDon = orderDonMapper.selectById(renewOrderId);
|
|
|
GoodsDonSku sku = skuMapper.selectById(renewSkuId);
|
|
|
- BigDecimal single = sku.getPrice().divide(BigDecimal.valueOf(sku.getMonths()).multiply(BigDecimal.valueOf(30)), 0, RoundingMode.UP);
|
|
|
- Long betweenDay = DateUtil.betweenDay(now, renewExpiryTime, false);
|
|
|
+ BigDecimal single = orderDon.getMoney().add(orderDon.getBalance()).divide(BigDecimal.valueOf(sku.getMonths()).multiply(BigDecimal.valueOf(30)), 0, RoundingMode.UP);
|
|
|
+ Long betweenDay = DateUtil.betweenDay(now, renewExpiryTime, false) + 1;
|
|
|
//该车票抵扣金额
|
|
|
BigDecimal renewDeductMoney = single.multiply(BigDecimal.valueOf(betweenDay));
|
|
|
log.info("车票id:{}目前续费升级规格可抵扣的金额为:{}", relationId, renewDeductMoney);
|
|
|
@@ -196,7 +196,7 @@ public class VipFrontServiceImpl implements VipFrontService {
|
|
|
public BigDecimal getDeductMoneyFromTicket(Long skuId, DateTime now, Date relationExpiryTime) {
|
|
|
GoodsDonSku sku = skuMapper.selectById(skuId);
|
|
|
BigDecimal single = sku.getPrice().divide(BigDecimal.valueOf(sku.getMonths()).multiply(BigDecimal.valueOf(30)), 0, RoundingMode.UP);
|
|
|
- Long betweenDay = DateUtil.betweenDay(now, relationExpiryTime, false);
|
|
|
+ Long betweenDay = DateUtil.betweenDay(now, relationExpiryTime, false) + 1;
|
|
|
//该车票抵扣金额
|
|
|
BigDecimal deductMoney = single.multiply(BigDecimal.valueOf(betweenDay));
|
|
|
return deductMoney;
|