|
@@ -2,6 +2,7 @@ package com.ydtech.modules.order.service.impl;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -71,6 +72,7 @@ import com.ydtech.modules.order.entity.vo.yangguang.YgQuoteAccidentVo;
|
|
|
import com.ydtech.modules.order.entity.vo.zj.ZjQuoteAccidentVo;
|
|
import com.ydtech.modules.order.entity.vo.zj.ZjQuoteAccidentVo;
|
|
|
import com.ydtech.modules.order.service.*;
|
|
import com.ydtech.modules.order.service.*;
|
|
|
import com.ydtech.modules.partner.CalculateCommissionUtils;
|
|
import com.ydtech.modules.partner.CalculateCommissionUtils;
|
|
|
|
|
+import com.ydtech.modules.partner.KickbackChangeUtils;
|
|
|
import com.ydtech.modules.partner.dao.PartnerPremiumDetailsMapper;
|
|
import com.ydtech.modules.partner.dao.PartnerPremiumDetailsMapper;
|
|
|
import com.ydtech.modules.partner.model.PartnerKickbackChange;
|
|
import com.ydtech.modules.partner.model.PartnerKickbackChange;
|
|
|
import com.ydtech.modules.partner.model.PartnerPartnerAccount;
|
|
import com.ydtech.modules.partner.model.PartnerPartnerAccount;
|
|
@@ -232,11 +234,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private PartnerUserService partnerUserService;
|
|
private PartnerUserService partnerUserService;
|
|
|
|
|
|
|
|
- @Autowired
|
|
|
|
|
- private SysSwitchConfigService sysSwitchConfigService;
|
|
|
|
|
|
|
|
|
|
- @Autowired
|
|
|
|
|
- private PartnerKickbackChangeService kickbackChangeService;
|
|
|
|
|
|
|
|
|
|
public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
|
|
public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
|
|
|
SysUserRoleService sysUserRoleService,
|
|
SysUserRoleService sysUserRoleService,
|
|
@@ -330,7 +328,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
String userId = insOrders.getUserid();
|
|
String userId = insOrders.getUserid();
|
|
|
List<PartnerUser> partnerUser = partnerUserService.selectByUserId(userId);
|
|
List<PartnerUser> partnerUser = partnerUserService.selectByUserId(userId);
|
|
|
List<PartnerPremiumDetails> list = new ArrayList<>();
|
|
List<PartnerPremiumDetails> list = new ArrayList<>();
|
|
|
- List<PartnerKickbackChange> kickbackChange = new ArrayList<>();
|
|
|
|
|
for (PartnerUser user : partnerUser) {
|
|
for (PartnerUser user : partnerUser) {
|
|
|
PartnerPremiumDetails details = new PartnerPremiumDetails();
|
|
PartnerPremiumDetails details = new PartnerPremiumDetails();
|
|
|
details.setUserId(user.getUserId());
|
|
details.setUserId(user.getUserId());
|
|
@@ -355,49 +352,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
details.setLicenseno(insOrders.getLicenseno());
|
|
details.setLicenseno(insOrders.getLicenseno());
|
|
|
details.setSource(user.getGrade());
|
|
details.setSource(user.getGrade());
|
|
|
list.add( details);
|
|
list.add( details);
|
|
|
- saveFeeLevelInfo(user.getGrade(),user.getReferrerId(),insAreaCompany,userId,list,kickbackChange);
|
|
|
|
|
|
|
+ SpringUtil.getBean(KickbackChangeUtils.class).before(bigDecimal,details);
|
|
|
|
|
+ saveFeeLevelInfo(user.getGrade(),user.getReferrerId(),insAreaCompany,userId,list);
|
|
|
}
|
|
}
|
|
|
for (PartnerPremiumDetails details : list) {
|
|
for (PartnerPremiumDetails details : list) {
|
|
|
partnerPremiumDetailsMapper.insert(details);
|
|
partnerPremiumDetailsMapper.insert(details);
|
|
|
}
|
|
}
|
|
|
- for (PartnerPremiumDetails details : list) {
|
|
|
|
|
- BigDecimal latest = CalculateCommissionUtils.calculateCommission(String.valueOf(details.getSource()),details.getUserId(),details.getIssuerId());
|
|
|
|
|
- BigDecimal mostRecent = kickbackChangeService.mostRecentRecord(details.getUserId());
|
|
|
|
|
- getPartnerKickbackChange(latest, mostRecent, details, kickbackChange);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- for (PartnerKickbackChange change : kickbackChange) {
|
|
|
|
|
- kickbackChangeService.saveKickbackChange(change);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- public void getPartnerKickbackChange(BigDecimal latest,BigDecimal mostRecent,PartnerPremiumDetails details,List<PartnerKickbackChange> list){
|
|
|
|
|
- if (mostRecent == null){
|
|
|
|
|
- PartnerKickbackChange change = getChange(null,latest, details);
|
|
|
|
|
- list.add( change);
|
|
|
|
|
- }else {
|
|
|
|
|
- if (latest.compareTo(mostRecent) != 0){
|
|
|
|
|
- PartnerKickbackChange change = getChange(latest, mostRecent, details);
|
|
|
|
|
- list.add( change);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private static PartnerKickbackChange getChange(BigDecimal bigDecimal, BigDecimal mostRecent, PartnerPremiumDetails details) {
|
|
|
|
|
- PartnerKickbackChange change = new PartnerKickbackChange();
|
|
|
|
|
- change.setUserId(details.getUserId());
|
|
|
|
|
- change.setUserGrade(String.valueOf(details.getSource()));
|
|
|
|
|
- change.setOriginalCommission(mostRecent);
|
|
|
|
|
- change.setAfterChange(bigDecimal);
|
|
|
|
|
- String reason = CalculateCommissionUtils.getReason(String.valueOf(details.getSource()), details.getUserId(), details.getIssuerId());
|
|
|
|
|
- change.setChangeReason(reason);
|
|
|
|
|
- change.setDeptId(details.getDeptId());
|
|
|
|
|
- change.setChangeTime(new Date());
|
|
|
|
|
- return change;
|
|
|
|
|
|
|
+ SpringUtil.getBean(KickbackChangeUtils.class).updatePersonnel(list);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void saveFeeLevelInfo(Integer grade,String referrerId,InsAreaCompany insAreaCompany,String userId,List<PartnerPremiumDetails> list,List<PartnerKickbackChange> kickbackChange) {
|
|
|
|
|
|
|
+ public void saveFeeLevelInfo(Integer grade,String referrerId,InsAreaCompany insAreaCompany,String userId,List<PartnerPremiumDetails> list) {
|
|
|
|
|
|
|
|
InsOrders insOrders = getById(insAreaCompany.getOrderno());
|
|
InsOrders insOrders = getById(insAreaCompany.getOrderno());
|
|
|
grade -- ;
|
|
grade -- ;
|
|
@@ -431,7 +395,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
details.setLicenseno(insOrders.getLicenseno());
|
|
details.setLicenseno(insOrders.getLicenseno());
|
|
|
details.setSource(partnerUser.getGrade());
|
|
details.setSource(partnerUser.getGrade());
|
|
|
list.add( details);
|
|
list.add( details);
|
|
|
- saveFeeLevelInfo(grade,partnerUser.getReferrerId(),insAreaCompany,userId,list,kickbackChange);
|
|
|
|
|
|
|
+ SpringUtil.getBean(KickbackChangeUtils.class).before(bigDecimal,details);
|
|
|
|
|
+ saveFeeLevelInfo(grade,partnerUser.getReferrerId(),insAreaCompany,userId,list);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|