|
@@ -1,8 +1,14 @@
|
|
|
package cn.com.ty.lift.ud.question.service.impl;
|
|
|
|
|
|
+import cn.com.ty.lift.common.model.PushMessage;
|
|
|
+import cn.com.ty.lift.common.model.PushUserInfo;
|
|
|
import cn.com.ty.lift.ud.chat.mapper.ChatSessionMapper;
|
|
|
+import cn.com.ty.lift.ud.chat.mapper.LiftCaseMapper;
|
|
|
import cn.com.ty.lift.ud.chat.mapper.entity.LiftCaseEntity;
|
|
|
import cn.com.ty.lift.ud.chat.service.ILiftCaseService;
|
|
|
+import cn.com.ty.lift.ud.constant.CommonConst;
|
|
|
+import cn.com.ty.lift.ud.operation.mapper.CommissionSettingMapper;
|
|
|
+import cn.com.ty.lift.ud.payment.mapper.UserBillMapper;
|
|
|
import cn.com.ty.lift.ud.question.controller.query.QuestionBankQuery;
|
|
|
import cn.com.ty.lift.ud.question.mapper.entity.QuestionCollectDto;
|
|
|
import cn.com.ty.lift.ud.question.service.IQuestionOperateService;
|
|
@@ -17,9 +23,11 @@ import cn.com.ty.lift.ud.question.mapper.entity.GiveMoneyDto;
|
|
|
import cn.com.ty.lift.ud.question.mapper.entity.QuestionBankEntity;
|
|
|
import cn.com.ty.lift.ud.question.mapper.entity.QuestionOperateEntity;
|
|
|
import cn.com.ty.lift.ud.question.service.IQuestionBankService;
|
|
|
+import cn.com.ty.lift.ud.userAccount.service.IUserAccountService;
|
|
|
import cn.com.ty.lift.ud.userCollect.mapper.entity.UserCollectDto;
|
|
|
import cn.com.ty.lift.ud.userCollect.mapper.entity.UserCollectEntity;
|
|
|
import cn.com.ty.lift.ud.userCollect.service.IUserCollectService;
|
|
|
+import cn.com.ty.lift.ud.userInfo.mapper.UserInfoMapper;
|
|
|
import cn.com.ty.lift.ud.userInfo.mapper.entity.UserInfoEntity;
|
|
|
import cn.com.ty.lift.ud.userInfo.service.IUserInfoService;
|
|
|
import cn.com.xwy.boot.web.dto.RestResponse;
|
|
@@ -28,6 +36,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.jms.core.JmsMessagingTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -70,6 +79,24 @@ public class QuestionBankServiceImpl extends ServiceImpl<QuestionBankMapper, Que
|
|
|
@Autowired
|
|
|
private IUserInfoService iUserInfoService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CommissionSettingMapper commissionSettingMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserInfoMapper userInfoMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserBillMapper userBillMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LiftCaseMapper caseMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private JmsMessagingTemplate jmsMessagingTemplate;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IUserAccountService iUserAccountService;
|
|
|
+
|
|
|
// private RedisUtil redis = ApplicationContextUtil.getBean(RedisUtil.class);
|
|
|
|
|
|
/**
|
|
@@ -121,6 +148,41 @@ public class QuestionBankServiceImpl extends ServiceImpl<QuestionBankMapper, Que
|
|
|
if(null != questionBankEntity && null != questionBankEntity.getLiftCaseId()) {
|
|
|
// 修改诊单状态为 待评价
|
|
|
liftCaseService.updateStatusById(questionBankEntity.getLiftCaseId(), 5);
|
|
|
+
|
|
|
+ // 获取抽成设置,更新专家余额
|
|
|
+ CommissionSettingEntity latestVersion = commissionSettingMapper.getLatestVersion();
|
|
|
+ LiftCaseEntity caseEntity = caseMapper.selectById(questionBankEntity.getLiftCaseId());
|
|
|
+ BigDecimal total = BigDecimal.ZERO;
|
|
|
+ UserInfoEntity charger = userInfoMapper.getByUserId(caseEntity.getChargerId());
|
|
|
+ int chargeSureNum = charger.getAdoptCounts() == null ? 0 : charger.getAdoptCounts();
|
|
|
+ if (chargeSureNum < latestVersion.getNewExpertAnswerNum()) {
|
|
|
+ //新入住专家,系统设置的前几单有奖励
|
|
|
+ total = caseEntity.getPayCost().add(latestVersion.getNewExpertBoon());
|
|
|
+ userInfoMapper.rechargePayBalance(caseEntity.getChargerId(), total);
|
|
|
+ } else {
|
|
|
+ //超过入驻活动之后,平台要分成了。
|
|
|
+ BigDecimal questionCommission = latestVersion.getExpertCommission();
|
|
|
+ BigDecimal subtract = new BigDecimal("100").subtract(questionCommission);
|
|
|
+ total = caseEntity.getPayCost().multiply(subtract).divide(new BigDecimal("100"));
|
|
|
+ userInfoMapper.rechargePayBalance(caseEntity.getChargerId(), total);
|
|
|
+ }
|
|
|
+ //用户确认之后,平台将诊单的钱转给专家
|
|
|
+ //构建专家流水
|
|
|
+ UserInfoEntity chargeInfo = userInfoMapper.getByUserId(caseEntity.getChargerId());
|
|
|
+ UserBillEntity ube = new UserBillEntity();
|
|
|
+ ube.setUserId(caseEntity.getChargerId());
|
|
|
+ ube.setTargetUserId(caseEntity.getCreateUserId());
|
|
|
+ ube.setBalance(chargeInfo.getBalance());
|
|
|
+ ube.setType(CommonConst.TYPE_IN);
|
|
|
+ ube.setBusinessType(CommonConst.BUSINESS_TYPE_CASE);
|
|
|
+ ube.setDescr("诊单业务收入");
|
|
|
+ ube.setFlowNum(caseEntity.getOrderSerialNumber());
|
|
|
+ ube.setAmount(total);
|
|
|
+ userBillMapper.insert(ube);
|
|
|
+ // 入账提醒
|
|
|
+ PushUserInfo pushUserInfo = iUserAccountService.getPushUserInfoByUserId(caseEntity.getChargerId().toString());
|
|
|
+ PushMessage pushMessage1 = PushMessage.bookedRemindToCharge(total.toString());
|
|
|
+ pushMessage1.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfo);
|
|
|
}
|
|
|
return RestResponse.success(null, "审批通过");
|
|
|
} else {
|