修改呼叫单价

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.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<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);
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);

Loading…
Cancel
Save