diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/settlement/service/impl/CallCostServiceImpl.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/settlement/service/impl/CallCostServiceImpl.java index 1536402b..80e964fa 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/settlement/service/impl/CallCostServiceImpl.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/settlement/service/impl/CallCostServiceImpl.java @@ -11,10 +11,8 @@ import com.baiye.modules.settlement.dao.CallCostRepository; import com.baiye.modules.settlement.entity.CallSettlement; import com.baiye.modules.settlement.service.CallCostService; -import com.baiye.modules.system.domain.MessageNotification; -import com.baiye.modules.system.domain.PayTemplate; -import com.baiye.modules.system.domain.PayTemplateUser; -import com.baiye.modules.system.domain.User; +import com.baiye.modules.system.domain.*; +import com.baiye.modules.system.repository.PayFatherTemplateRepository; import com.baiye.modules.system.repository.PayTemplateRepository; import com.baiye.modules.system.repository.PayTemplateUserRepository; import com.baiye.modules.system.repository.UserRepository; @@ -53,6 +51,7 @@ public class CallCostServiceImpl implements CallCostService { private final RedisUtils redisUtils; private final SmsUtil smsUtil; private final OrganizeService organizeService; + private final PayFatherTemplateRepository payFatherTemplateRepository; /** * 计算当天的通话时长和费用 @@ -77,6 +76,7 @@ public class CallCostServiceImpl implements CallCostService { //查询套餐的时长 PayTemplate payTemplate = selectCombo(info.getPayTemplateId()); + //套餐时长 int callDuration = payTemplate.getCallDuration(); //查询套餐时间范围内 通话记录 List list = userReportRepository.queryAllByTimeAndId(DateUtil.formatDateTime(info.getBeginTime()), DateUtil.formatDateTime(info.getEndTime()), userId); @@ -96,14 +96,15 @@ public class CallCostServiceImpl implements CallCostService { CompanyDto companyById = companyService.findCompanyById(companyId); int callMode = organizeService.getOrganizeByUserId(userId).getCallMode(); - //公司账号 - User manager = userRepository.getOne(companyById.getUserId()); - double price = callMode == 0 ? manager.getDoubleCallFee() : manager.getRollCallFee(); + + //获取呼叫单价 + PayFatherTemplate payFatherTemplate = payFatherTemplateRepository.findById(payTemplate.getFatherTemplateId()).orElseGet(PayFatherTemplate::new); + double price = callMode == 0 ? payFatherTemplate.getDoubleCallFee() : payFatherTemplate.getRollCallFee(); //今日计算预扣 double estimateAmountToDay = getEstimateAmount(list, price); - CallSettlement callSettlement = deduction(info, durationToday, estimateAmountToDay, companyId, companyById, manager, price); + CallSettlement callSettlement = deduction(info, durationToday, estimateAmountToDay, companyId, companyById, price); callSettlement.setCreateTime(DateUtil.date()); callSettlement.setCompanyId(companyId); callSettlement.setMemberId(userId); @@ -122,12 +123,11 @@ public class CallCostServiceImpl implements CallCostService { * @param estimateAmountToDay 今日 预扣金额 * @param companyId * @param companyById 公司信息 - * @param manager 公司账号信息 * @param price 呼叫单价 * @return */ - private CallSettlement deduction(PayTemplateUser info, Long durationToday, Double estimateAmountToDay, Long companyId, CompanyDto companyById, User manager, Double price) { + private CallSettlement deduction(PayTemplateUser info, Long durationToday, Double estimateAmountToDay, Long companyId, CompanyDto companyById, Double price) { CallSettlement callSettlement = new CallSettlement(); long userId = info.getUserId(); Double userBalance = companyById.getUserBalance(); @@ -154,6 +154,8 @@ public class CallCostServiceImpl implements CallCostService { //判断当前公司是否已经短信通知过 Object o = redisUtils.get("call_sms:" + companyId); if (o == null || (int) o == 0) { + //公司账号 + User manager = userRepository.getOne(companyById.getUserId()); smsUtil.sendAliYunSmsNotice(manager.getPhone(), "{\"name\":\"" + manager.getUsername() + "\"}"); //短信通知后 缓存在redis redisUtils.set("call_sms:" + companyId, 1);