|
|
@@ -355,69 +355,39 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
//计算分销费用
|
|
|
InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
|
SysUser sysUser = sysUserService.findByUserId(insOrders.getUserid());
|
|
|
+
|
|
|
+ //获取分销比例
|
|
|
List<EsmRetail> esmRetailList = esmRetailService.selectList(" where t.deptid=? and t.status = '1' ",
|
|
|
new Object[]{sysUser.getDeptId()});
|
|
|
|
|
|
+
|
|
|
if (esmRetailList != null && !esmRetailList.isEmpty()) {
|
|
|
EsmRetail esmRetail = esmRetailList.get(0);
|
|
|
+ //分销等级
|
|
|
+ insFeeOrderNew.setDistributionStatus(esmRetailList.get(0).getRetailtype());
|
|
|
+ //用户分销人员id
|
|
|
+ List<EsmUserReferrer> parents = esmUserReferrerService.findParents(sysUser.getId());
|
|
|
+
|
|
|
if (esmRetail != null) {
|
|
|
if(Integer.parseInt(esmRetail.getRetailtype()) >= 3){
|
|
|
insFeeOrderNew.setFirstDetailProportion(new BigDecimal(esmRetail.getDisrate1()));
|
|
|
insFeeOrderNew.setFirstDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
|
|
|
+ if(parents.size() > 2){
|
|
|
+ insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
|
|
|
+ }
|
|
|
}
|
|
|
if(Integer.parseInt(esmRetail.getRetailtype()) >= 2){
|
|
|
insFeeOrderNew.setSecondDetailProportion(new BigDecimal(esmRetail.getDisrate2()));
|
|
|
insFeeOrderNew.setSecondDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")));
|
|
|
+ if(parents.size() > 1){
|
|
|
+ insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
|
|
|
+ }
|
|
|
}
|
|
|
if(Integer.parseInt(esmRetail.getRetailtype()) >= 1){
|
|
|
insFeeOrderNew.setThirdDetailProportion(new BigDecimal(esmRetail.getDisrate3()));
|
|
|
insFeeOrderNew.setThirdDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate3())).divide(new BigDecimal("100")));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-// 判断分销等级 通过userId 去查询 esm_user_referrer 如果 referrer_id 与 userId 相同时 一级分销 不同且还有上级为三级分销 其余 则二级分销
|
|
|
- String userId = insFeeOrderNew.getUserId();
|
|
|
- EsmUserReferrer esmUserReferrerServiceById = esmUserReferrerService.getById(userId);
|
|
|
- if (ObjectUtils.isNotEmpty(esmUserReferrerServiceById)) {
|
|
|
- String referrerId = esmUserReferrerServiceById.getReferrerId();
|
|
|
-// 如果相等则为一级
|
|
|
- if (StringUtils.isNotEmpty(referrerId) && referrerId.equals(userId)) {
|
|
|
- BigDecimal jqPremium = insFeeOrderNew.getJqPremium(); // 交强
|
|
|
- BigDecimal bigdecimalFomat = new BigDecimal("100");
|
|
|
- BigDecimal firstDetailProportion = insFeeOrderNew.getFirstDetailProportion(); // 一级分销比例
|
|
|
- BigDecimal divide = firstDetailProportion.divide(bigdecimalFomat, 2, RoundingMode.HALF_UP);
|
|
|
- BigDecimal jqAmount = jqPremium.multiply(divide); //交强分销费用
|
|
|
-
|
|
|
- BigDecimal jaLevelAmount1 = insFeeOrderNew.getJqDeptProportionLevel1() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel1().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
|
|
|
- BigDecimal jaLevelAmount2 = insFeeOrderNew.getJqDeptProportionLevel2() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel2().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
|
|
|
- BigDecimal jaLevelAmount3 = insFeeOrderNew.getJqDeptProportionLevel3() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel3().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
|
|
|
- BigDecimal jaLevelAmount4 = insFeeOrderNew.getJqDeptProportionLevel4() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel4().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
|
|
|
- BigDecimal jaLevelAmount5 = insFeeOrderNew.getJqDeptProportionLevel4() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel5().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
|
|
|
-
|
|
|
- insFeeOrderNew.setJqDeptPremiumsLevel1(insFeeOrderNew.getJqDeptPremiumsLevel1().add(jaLevelAmount1));// 交强一级机构管理费
|
|
|
- insFeeOrderNew.setJqDeptPremiumsLevel2(insFeeOrderNew.getJqDeptPremiumsLevel2().add(jaLevelAmount2));// 交强二级机构管理费
|
|
|
- insFeeOrderNew.setJqDeptPremiumsLevel3(insFeeOrderNew.getJqDeptPremiumsLevel3().add(jaLevelAmount3));// 交强三级机构管理费
|
|
|
- insFeeOrderNew.setJqDeptPremiumsLevel4(insFeeOrderNew.getJqDeptPremiumsLevel4().add(jaLevelAmount4));// 交强四级机构管理费
|
|
|
- insFeeOrderNew.setJqDeptPremiumsLevel5(insFeeOrderNew.getJqDeptPremiumsLevel5().add(jaLevelAmount5));// 交强五级机构管理费
|
|
|
-
|
|
|
- } else {
|
|
|
- EsmUserReferrer secondReferrer = esmUserReferrerService.getById(referrerId);
|
|
|
- if (ObjectUtils.isNotEmpty(secondReferrer)) {
|
|
|
- // 二级分销
|
|
|
- BigDecimal secondDetailPremiums = insFeeOrderNew.getSecondDetailPremiums();
|
|
|
- BigDecimal thirdDetailPremiums = insFeeOrderNew.getThirdDetailPremiums();
|
|
|
- if (StringUtils.isNotEmpty(secondReferrer.getReferrerId()) && secondReferrer.getReferrerId().equals(referrerId)) {
|
|
|
-// 二级分销 则 添加到 sys_user_account 表的 promotion 推广金 字段里
|
|
|
- SysUserAccount sysUserAccount = new SysUserAccount();
|
|
|
- sysUserAccount.setUserId(referrerId);
|
|
|
- sysUserAccount.setPromotion(secondDetailPremiums);
|
|
|
- sysUserAccountService.addOrUpdate(sysUserAccount);
|
|
|
- } else {
|
|
|
-// 最后为三级
|
|
|
- SysUserAccount sysUserAccount = new SysUserAccount();
|
|
|
- sysUserAccount.setUserId(secondReferrer.getReferrerId());
|
|
|
- sysUserAccount.setPromotion(thirdDetailPremiums);
|
|
|
- sysUserAccountService.addOrUpdate(sysUserAccount);
|
|
|
+ if(parents.size() > 0) {
|
|
|
+ insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());
|
|
|
}
|
|
|
}
|
|
|
}
|