修改呼叫单价

master
wujingtao 2 years ago
parent 621960175e
commit fd0c8183c3

@ -11,10 +11,8 @@ import com.baiye.modules.settlement.dao.CallCostRepository;
import com.baiye.modules.settlement.entity.CallSettlement; import com.baiye.modules.settlement.entity.CallSettlement;
import com.baiye.modules.settlement.service.CallCostService; import com.baiye.modules.settlement.service.CallCostService;
import com.baiye.modules.system.domain.MessageNotification; import com.baiye.modules.system.domain.*;
import com.baiye.modules.system.domain.PayTemplate; import com.baiye.modules.system.repository.PayFatherTemplateRepository;
import com.baiye.modules.system.domain.PayTemplateUser;
import com.baiye.modules.system.domain.User;
import com.baiye.modules.system.repository.PayTemplateRepository; import com.baiye.modules.system.repository.PayTemplateRepository;
import com.baiye.modules.system.repository.PayTemplateUserRepository; import com.baiye.modules.system.repository.PayTemplateUserRepository;
import com.baiye.modules.system.repository.UserRepository; import com.baiye.modules.system.repository.UserRepository;
@ -53,6 +51,7 @@ public class CallCostServiceImpl implements CallCostService {
private final RedisUtils redisUtils; private final RedisUtils redisUtils;
private final SmsUtil smsUtil; private final SmsUtil smsUtil;
private final OrganizeService organizeService; private final OrganizeService organizeService;
private final PayFatherTemplateRepository payFatherTemplateRepository;
/** /**
* *
@ -77,6 +76,7 @@ public class CallCostServiceImpl implements CallCostService {
//查询套餐的时长 //查询套餐的时长
PayTemplate payTemplate = selectCombo(info.getPayTemplateId()); PayTemplate payTemplate = selectCombo(info.getPayTemplateId());
//套餐时长
int callDuration = payTemplate.getCallDuration(); int callDuration = payTemplate.getCallDuration();
//查询套餐时间范围内 通话记录 //查询套餐时间范围内 通话记录
List<UserReport> list = userReportRepository.queryAllByTimeAndId(DateUtil.formatDateTime(info.getBeginTime()), DateUtil.formatDateTime(info.getEndTime()), userId); List<UserReport> 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); CompanyDto companyById = companyService.findCompanyById(companyId);
int callMode = organizeService.getOrganizeByUserId(userId).getCallMode(); 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); 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.setCreateTime(DateUtil.date());
callSettlement.setCompanyId(companyId); callSettlement.setCompanyId(companyId);
callSettlement.setMemberId(userId); callSettlement.setMemberId(userId);
@ -122,12 +123,11 @@ public class CallCostServiceImpl implements CallCostService {
* @param estimateAmountToDay * @param estimateAmountToDay
* @param companyId * @param companyId
* @param companyById * @param companyById
* @param manager
* @param price * @param price
* @return * @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(); CallSettlement callSettlement = new CallSettlement();
long userId = info.getUserId(); long userId = info.getUserId();
Double userBalance = companyById.getUserBalance(); Double userBalance = companyById.getUserBalance();
@ -154,6 +154,8 @@ public class CallCostServiceImpl implements CallCostService {
//判断当前公司是否已经短信通知过 //判断当前公司是否已经短信通知过
Object o = redisUtils.get("call_sms:" + companyId); Object o = redisUtils.get("call_sms:" + companyId);
if (o == null || (int) o == 0) { if (o == null || (int) o == 0) {
//公司账号
User manager = userRepository.getOne(companyById.getUserId());
smsUtil.sendAliYunSmsNotice(manager.getPhone(), "{\"name\":\"" + manager.getUsername() + "\"}"); smsUtil.sendAliYunSmsNotice(manager.getPhone(), "{\"name\":\"" + manager.getUsername() + "\"}");
//短信通知后 缓存在redis //短信通知后 缓存在redis
redisUtils.set("call_sms:" + companyId, 1); redisUtils.set("call_sms:" + companyId, 1);

Loading…
Cancel
Save