|
|
@@ -1,34 +1,33 @@
|
|
|
package com.ydtech.modules.admin.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
-import com.ydtech.modules.admin.dao.DeptBalanceMapper;
|
|
|
-import com.ydtech.modules.admin.dao.SysPartnerMapper;
|
|
|
-import com.ydtech.modules.admin.dao.SysRelationPersonMapper;
|
|
|
-import com.ydtech.modules.admin.model.SysAgencyLeader;
|
|
|
-import com.ydtech.modules.admin.model.SysPartner;
|
|
|
-import com.ydtech.modules.admin.model.SysRelationPerson;
|
|
|
-import com.ydtech.modules.admin.model.SysUser;
|
|
|
+import com.ydtech.modules.admin.dao.*;
|
|
|
+import com.ydtech.modules.admin.model.*;
|
|
|
import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
|
|
|
import com.ydtech.modules.admin.model.dto.MySumAmountQueryDto;
|
|
|
import com.ydtech.modules.admin.model.dto.SysPartnerConsoleDto;
|
|
|
import com.ydtech.modules.admin.model.po.SysUserAccount;
|
|
|
-import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
|
|
|
-import com.ydtech.modules.admin.model.vo.PartnerBalanceVo;
|
|
|
-import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
|
|
|
-import com.ydtech.modules.admin.model.vo.SysUserVO;
|
|
|
+import com.ydtech.modules.admin.model.vo.*;
|
|
|
import com.ydtech.modules.admin.service.*;
|
|
|
import com.ydtech.modules.base.model.vo.PageVo;
|
|
|
+import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
+import com.ydtech.modules.order.entity.InsOrders;
|
|
|
import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
|
|
|
import com.ydtech.utils.StringUtils;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -55,7 +54,11 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
|
|
|
private InsFeeOrderNewService insFeeOrderNewService;
|
|
|
@Autowired
|
|
|
private SysUserAccountService sysUserAccountService;
|
|
|
+ @Resource
|
|
|
+ private SysAgencyLeaderMapper sysAgencyLeaderMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper;
|
|
|
/**
|
|
|
* @version
|
|
|
* @author: whp
|
|
|
@@ -69,8 +72,53 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
|
|
|
Page page = new Page(deptBalanceVo.getPageNum(), deptBalanceVo.getPageSize());
|
|
|
pageVo.setPageNum(deptBalanceVo.getPageNum());
|
|
|
pageVo.setPageSize(deptBalanceVo.getPageSize());
|
|
|
- IPage<DeptBalanceDto> sysUserListPage = deptBalanceMapper.queryDeptLeaderStatistics(page, deptBalanceVo);
|
|
|
- return HttpResult.ok(sysUserListPage);
|
|
|
+ //通过机构id 用户等条件机构负责人集合
|
|
|
+ IPage<DeptBalanceDto> sysLeaderPage = sysAgencyLeaderMapper.queryPage(page, deptBalanceVo);
|
|
|
+ List<DeptBalanceDto> records = sysLeaderPage.getRecords();
|
|
|
+ List<DeptBalanceDto> newList =new ArrayList<>();
|
|
|
+ if (records !=null && records.size()>0) {
|
|
|
+ for (DeptBalanceDto itemLeader : records) {
|
|
|
+ BigDecimal allTotalIncome = BigDecimal.ZERO; // 总保费
|
|
|
+ BigDecimal allDeptManagementFee = BigDecimal.ZERO;//机构管理费
|
|
|
+ BigDecimal allWithdrawn = BigDecimal.ZERO;//已体现
|
|
|
+ BigDecimal allNotWithdrawn = BigDecimal.ZERO;//未提现
|
|
|
+ String deptId = itemLeader.getDeptId();
|
|
|
+ String proportional = itemLeader.getProportional();
|
|
|
+ Date updateTime = itemLeader.getUpdateTime();
|
|
|
+ Date createTime = itemLeader.getCreateTime();
|
|
|
+ String dateStr = "";
|
|
|
+ if (updateTime != null) {
|
|
|
+ dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
|
|
|
+ } else {
|
|
|
+ dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
|
|
|
+ }
|
|
|
+ HashMap<String, BigDecimal> orderAmount = deptBalanceMapper.getByDeptId(deptId, dateStr);
|
|
|
+ if (orderAmount != null && !orderAmount.isEmpty()) {
|
|
|
+ BigDecimal totalIncome = orderAmount.get("totalIncome")==null ? BigDecimal.ZERO : orderAmount.get("totalIncome");
|
|
|
+ allTotalIncome = totalIncome.multiply(new BigDecimal(proportional))
|
|
|
+ .divide(new BigDecimal("100")).setScale(2, RoundingMode.DOWN);
|
|
|
+ allDeptManagementFee = this.calculateTotal(orderAmount.get("deptManagementFee"), allDeptManagementFee, null);//机构管理费
|
|
|
+ }
|
|
|
+ // 填充 已提现抽成费用和可提现抽成费用
|
|
|
+ List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
+ .eq(SysAgencyFeeApproval::getUserId, itemLeader.getUserId())
|
|
|
+ .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
+ if (sysAgencyFeeApprovals.size() > 0) {
|
|
|
+ for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
+ allWithdrawn = allWithdrawn.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //可提现 = 总抽成-已提现
|
|
|
+ allNotWithdrawn = allTotalIncome.subtract(allWithdrawn);
|
|
|
+ itemLeader.setDeptManagementFee(allTotalIncome);
|
|
|
+ itemLeader.setTotalIncome(allDeptManagementFee);
|
|
|
+ itemLeader.setWithdrawn(allWithdrawn);
|
|
|
+ itemLeader.setNotWithdrawn(allNotWithdrawn);
|
|
|
+ newList.add(itemLeader);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysLeaderPage.setRecords(newList);
|
|
|
+ return HttpResult.ok(sysLeaderPage);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return HttpResult.error("查询异常");
|
|
|
@@ -90,14 +138,7 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
|
|
|
Page page = new Page(deptBalanceVo.getPageNum(), deptBalanceVo.getPageSize());
|
|
|
pageVo.setPageNum(deptBalanceVo.getPageNum());
|
|
|
pageVo.setPageSize(deptBalanceVo.getPageSize());
|
|
|
- SysUser sysUserQuery = new SysUser();
|
|
|
- sysUserQuery.setDeptId(deptBalanceVo.getDeptId());
|
|
|
- List<SysUserVO> listByDeptIdUser = this.sysUserService.findListByDeptIdNew(sysUserQuery);
|
|
|
- List<String> userListDept = listByDeptIdUser.stream().map(SysUserVO::getId).collect(Collectors.toList());
|
|
|
- if (userListDept.isEmpty()) {
|
|
|
- userListDept.add("0");
|
|
|
- }
|
|
|
- deptBalanceVo.setUserIdList(userListDept);
|
|
|
+ //通过机构id 用户等条件查询合伙人集合
|
|
|
IPage<SysPartnerConsoleDto> sysPartnersPage = sysPartnerMapper.queryPage(page, deptBalanceVo);
|
|
|
|
|
|
List<SysPartnerConsoleDto> sysPartners = sysPartnersPage.getRecords();
|
|
|
@@ -106,40 +147,44 @@ public class DeptBalanceServiceImpl implements DeptBalanceService {
|
|
|
BigDecimal allDeptManagementFee = BigDecimal.ZERO;//机构管理费
|
|
|
BigDecimal allWithdrawn = BigDecimal.ZERO;//已体现
|
|
|
BigDecimal allNotWithdrawn = BigDecimal.ZERO;//未提现
|
|
|
-// 查询机构负责人
|
|
|
-
|
|
|
- List<SysAgencyLeader> deptLeader = sysAgencyLeaderService.lambdaQuery().eq(SysAgencyLeader::getSuggestId, item.getUserId()).list();
|
|
|
|
|
|
+ List<SysAgencyLeader> deptLeader = sysRelationPersonMapper.selectListByLeaderId(item.getUserId(),1);
|
|
|
// 机构负责人
|
|
|
for (SysAgencyLeader itemLeader : deptLeader) {
|
|
|
String deptId = itemLeader.getDeptId();
|
|
|
if (StringUtils.isNotEmpty(deptId)) {
|
|
|
String proportional = item.getProportional();
|
|
|
- HashMap<String, BigDecimal> orderAmount = deptBalanceMapper.getByDeptId(deptId);
|
|
|
+ Date updateTime = itemLeader.getUpdateTime();
|
|
|
+ Date createTime = itemLeader.getCreateTime();
|
|
|
+ String dateStr="";
|
|
|
+ if(updateTime!=null){
|
|
|
+ dateStr= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
|
|
|
+ }else{
|
|
|
+ dateStr= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
|
|
|
+ }
|
|
|
+ HashMap<String, BigDecimal> orderAmount = deptBalanceMapper.getByDeptId(deptId,dateStr);
|
|
|
|
|
|
if (orderAmount != null && !orderAmount.isEmpty()) {
|
|
|
- allTotalIncome = this.calculateTotal(orderAmount.get("totalIncome").multiply(new BigDecimal(proportional).divide(new BigDecimal(100))), allTotalIncome, null); // 总保费
|
|
|
+ BigDecimal totalIncome = orderAmount.get("totalIncome")==null ? BigDecimal.ZERO : orderAmount.get("totalIncome");
|
|
|
+ allTotalIncome = totalIncome.multiply(new BigDecimal(proportional))
|
|
|
+ .divide(new BigDecimal("100")).setScale(2, RoundingMode.DOWN);
|
|
|
allDeptManagementFee = this.calculateTotal(orderAmount.get("deptManagementFee"), allDeptManagementFee, null);//机构管理费
|
|
|
}
|
|
|
- SysUser sysUser = new SysUser();
|
|
|
- sysUser.setDeptId(deptId);
|
|
|
-// 机构下的userId
|
|
|
- List<SysUserVO> listByDeptId = sysUserService.findListByDeptId(sysUser);
|
|
|
- List<String> institutionId = listByDeptId.stream().map(SysUserVO::getId).collect(Collectors.toList());
|
|
|
-// 已提现
|
|
|
- SysAmountAuditingVo sysAmountAuditingVo = new SysAmountAuditingVo();
|
|
|
- sysAmountAuditingVo.setUserIdList(institutionId);
|
|
|
- sysAmountAuditingVo.setAuditingStatus("3");
|
|
|
- BigDecimal withdrawn = sysAmountAuditingService.querySumAmount(sysAmountAuditingVo);
|
|
|
- allWithdrawn = this.calculateTotal(withdrawn, allWithdrawn, null);
|
|
|
-// 未提现
|
|
|
- sysAmountAuditingVo.setAuditingStatus("2");
|
|
|
- BigDecimal notWithdrawn = sysAmountAuditingService.querySumAmount(sysAmountAuditingVo);
|
|
|
- allNotWithdrawn = this.calculateTotal(notWithdrawn, allNotWithdrawn, null);
|
|
|
+ // 填充 已提现抽成费用和可提现抽成费用
|
|
|
+ List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
+ .eq(SysAgencyFeeApproval::getUserId, item.getUserId())
|
|
|
+ .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
+ if (sysAgencyFeeApprovals.size() > 0) {
|
|
|
+ for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
+ allWithdrawn = allWithdrawn.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //可提现 = 总抽成-已提现
|
|
|
+ allNotWithdrawn = allTotalIncome.subtract(allWithdrawn);
|
|
|
}
|
|
|
}
|
|
|
- item.setTotalIncome(allTotalIncome);
|
|
|
- item.setDeptManagementFee(allDeptManagementFee);
|
|
|
+ item.setTotalIncome(allDeptManagementFee);
|
|
|
+ item.setDeptManagementFee(allTotalIncome);
|
|
|
item.setWithdrawn(allWithdrawn);
|
|
|
item.setNotWithdrawn(allNotWithdrawn);
|
|
|
}
|