Commit f6a2832c by yao.xiao

agms经纪人待支付列表

parent 23820ec1
......@@ -4,10 +4,7 @@ import com.yd.api.agms.service.AgmsDashboardService;
import com.yd.api.agms.service.AgmsFortuneService;
import com.yd.api.agms.vo.dashboard.*;
import com.yd.api.agms.service.AgmsStatisticsService;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusQueryRequestVO;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusQueryResponseVO;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusUpdateRequestVO;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusUpdateResponseVO;
import com.yd.api.agms.vo.fortune.*;
import com.yd.api.agms.vo.statistics.FinancialStatisticsRequestVO;
import com.yd.api.agms.vo.statistics.FinancialStatisticsResponseVO;
import com.yd.api.agms.vo.statistics.LeadsStatisticsRequestVO;
......@@ -146,7 +143,7 @@ public class AgmsController {
}
/**
* AGMS -- 修改佣金发放状态
* AGMS -- 修改佣金发放状态列表
* @param requestVO 请求数据
* @return 响应数据
*/
......@@ -158,4 +155,33 @@ public class AgmsController {
result.addResult(responseVO);
return result;
}
/**
* AGMS -- 支付列表查询
* @param requestVO 请求数据
* @return 响应数据
*/
@RequestMapping("/withdrawQuery")
public Object withdrawQuery(@RequestBody WithdrawQueryRequestVO requestVO) throws InvocationTargetException, IllegalAccessException {
JsonResult result = new JsonResult();
WithdrawQueryResponseVO withdrawQueryResponseVO = agmsFortuneService.withdrawQuery(requestVO);
result.addResult(withdrawQueryResponseVO);
result.setData(withdrawQueryResponseVO);
return result;
}
/**
* AGMS -- 提现财富对应订单查询
* @param requestVO 请求数据
* @return 响应数据
*/
@RequestMapping(value="/fortunePayToOrder")
public Object fortunePayToOrder(@RequestBody FortunePayToOrderRequestVO requestVO) {
JsonResult result = new JsonResult();
FortunePayToOrderResponseVO responseVO = agmsFortuneService.fortunePayToOrder(requestVO);
result.setData(responseVO);
result.addResult(responseVO);
return result;
}
}
package com.yd.api.agms.service;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusQueryRequestVO;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusQueryResponseVO;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusUpdateRequestVO;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusUpdateResponseVO;
import com.yd.api.agms.vo.fortune.*;
import java.lang.reflect.InvocationTargetException;
......@@ -26,4 +23,18 @@ public interface AgmsFortuneService {
* @throws IllegalAccessException IllegalAccessException
*/
CommissionPayoutStatusQueryResponseVO commissionPayoutStatusQuery(CommissionPayoutStatusQueryRequestVO requestVO) throws InvocationTargetException, IllegalAccessException;
/**
* AGMS -- 支付列表查询
* @param requestVO 请求数据
* @return 响应数据
*/
WithdrawQueryResponseVO withdrawQuery(WithdrawQueryRequestVO requestVO) throws InvocationTargetException, IllegalAccessException ;
/**
* AGMS -- 提现财富对应订单查询
* @param requestVO 请求数据
* @return 响应数据
*/
FortunePayToOrderResponseVO fortunePayToOrder(FortunePayToOrderRequestVO requestVO);
}
......@@ -3,9 +3,7 @@ package com.yd.api.agms.service.impl;
import com.yd.api.agms.service.AgmsFortuneService;
import com.yd.api.agms.vo.fortune.*;
import com.yd.api.result.CommonResult;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatus;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatusQueryInfo;
import com.yd.dal.entity.agms.fortune.CustomerFortuneStatisticalInfo;
import com.yd.dal.entity.agms.fortune.*;
import com.yd.dal.entity.customer.AclCustomerFortune;
import com.yd.dal.entity.customer.AclCustomerFortunePay;
import com.yd.dal.entity.customer.AclCustomerFortunePayoutBatch;
......@@ -484,8 +482,55 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
CommissionPayoutStatusQueryInfo info = new CommissionPayoutStatusQueryInfo();
BeanUtils.copyProperties(info,requestVO);
List<CommissionPayoutStatus> commissionPayoutStatusList = agmsFortuneDalService.commissionPayoutStatusQuery(info);
responseVO.setTotalSingular(commissionPayoutStatusList.size());
BigDecimal totalOrderPrice = commissionPayoutStatusList.stream()
.map(f -> f.getOrderPrice() == null ? BigDecimal.ZERO : f.getOrderPrice())
.reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal totalReferralAmount = commissionPayoutStatusList.stream()
.map(f -> f.getReferralAmount() == null ? BigDecimal.ZERO : f.getReferralAmount())
.reduce(BigDecimal.ZERO,BigDecimal::add);
responseVO.setTotalOrderPrice(totalOrderPrice);
responseVO.setTotalReferralAmount(totalReferralAmount);
responseVO.setCommissionPayoutStatusList(commissionPayoutStatusList);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
}
@Override
public WithdrawQueryResponseVO withdrawQuery(WithdrawQueryRequestVO requestVO) throws InvocationTargetException, IllegalAccessException {
WithdrawQueryResponseVO responseVO = new WithdrawQueryResponseVO();
WithdrawQueryInfo info = new WithdrawQueryInfo();
BeanUtils.copyProperties(info,requestVO);
List<WithdrawLabelInfo> withdraws = agmsFortuneDalService.transformForWithdrawLabel(info);
responseVO.setTotalPeople(withdraws.size());
BigDecimal totalReferralAmount = withdraws.stream()
.map(f -> f.getReferralAmount() == null ? BigDecimal.ZERO : f.getReferralAmount())
.reduce(BigDecimal.ZERO,BigDecimal::add);
responseVO.setTotalReferralAmount(totalReferralAmount);
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
responseVO.setWithdraws(withdraws);
return responseVO;
}
@Override
public FortunePayToOrderResponseVO fortunePayToOrder(FortunePayToOrderRequestVO requestVO) {
FortunePayToOrderResponseVO responseVO = new FortunePayToOrderResponseVO();
Long customerId = requestVO.getCustomerId();
Long payId = requestVO.getPayId();
//查询所有订单,并根据支付id标记本次提现订单
List<FortunePayToOrderInfo> fortunePayToOrderInfos = agmsFortuneDalService.fortunePayToOrder(customerId,payId);
responseVO.setTotalSingular(fortunePayToOrderInfos.size());
BigDecimal totalOrderPrice = fortunePayToOrderInfos.stream()
.map(f -> f.getOrderPrice() == null ? BigDecimal.ZERO : f.getOrderPrice())
.reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal totalReferralAmount = fortunePayToOrderInfos.stream()
.map(f -> f.getReferralAmount() == null ? BigDecimal.ZERO : f.getReferralAmount())
.reduce(BigDecimal.ZERO,BigDecimal::add);
responseVO.setTotalOrderPrice(totalOrderPrice);
responseVO.setTotalReferralAmount(totalReferralAmount);
responseVO.setFortunePayToOrderInfos(fortunePayToOrderInfos);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
}
}
......@@ -2,40 +2,31 @@ package com.yd.api.agms.vo.fortune;
import com.yd.api.result.CommonResult;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatus;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author xxy
*/
@Data
public class CommissionPayoutStatusQueryResponseVO {
private List<CommissionPayoutStatus> commissionPayoutStatusList;
/**
* 总单数
*/
private Integer totalSingular;
/**
* 总保费
*/
private BigDecimal totalOrderPrice;
/**
* 应发金额总额
*/
private BigDecimal totalReferralAmount;
private CommonResult commonResult;
public List<CommissionPayoutStatus> getCommissionPayoutStatusList() {
return commissionPayoutStatusList;
}
public void setCommissionPayoutStatusList(List<CommissionPayoutStatus> commissionPayoutStatusList) {
this.commissionPayoutStatusList = commissionPayoutStatusList;
}
public CommonResult getCommonResult() {
return commonResult;
}
public void setCommonResult(CommonResult commonResult) {
this.commonResult = commonResult;
}
@Override
public String toString() {
return "CommissionPayoutStatusQueryResponseVO{" +
"commissionPayoutStatusList=" + commissionPayoutStatusList +
", commonResult=" + commonResult +
'}';
}
}
package com.yd.api.agms.vo.fortune;
import lombok.Data;
/**
* @author xxy
*/
@Data
public class FortunePayToOrderRequestVO {
private Long customerId;
private Long payId;
}
package com.yd.api.agms.vo.fortune;
import com.yd.api.result.CommonResult;
import com.yd.dal.entity.agms.fortune.FortunePayToOrderInfo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author xxy
*/
@Data
public class FortunePayToOrderResponseVO {
private List<FortunePayToOrderInfo> fortunePayToOrderInfos;
/**
* 总单数
*/
private Integer totalSingular;
/**
* 总保费
*/
private BigDecimal totalOrderPrice;
/**
* 应发金额总额
*/
private BigDecimal totalReferralAmount;
private CommonResult commonResult;
}
package com.yd.api.agms.vo.fortune;
import lombok.Data;
/**
* @author xxy
*/
@Data
public class WithdrawQueryRequestVO {
/**
* 预计发佣年月
*/
private String payoutYearmonth;
/**
* 分公司
*/
private Long insurerBranchId;
/**
* 营业部
*/
private Long insurerBranchDeptId;
/**
* 体系
*/
private Long subordinateSystemId;
/**
* 经纪人
*/
private Long practitionerId;
/**
* 发佣状态 暂不开放 可发 保留 已发并关账
*/
private Long commissionPayoutStatus;
}
package com.yd.api.agms.vo.fortune;
import com.yd.api.result.CommonResult;
import com.yd.dal.entity.agms.fortune.WithdrawLabelInfo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author xxy
*/
@Data
public class WithdrawQueryResponseVO {
private List<WithdrawLabelInfo> withdraws;
/**
* 总人数
*/
private Integer totalPeople;
/**
* 应发金额总额
*/
private BigDecimal totalReferralAmount;
private CommonResult commonResult;
}
package com.yd.dal.entity.agms.fortune;
import java.math.BigDecimal;
/**
* @author xxy
*/
public class CommissionPayoutStatusQueryInfo {
/**
* 保险公司
......
package com.yd.dal.entity.agms.fortune;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author xxy
*/
@Data
public class FortunePayToOrderInfo {
/**
* 保险公司
*/
private String insurerName;
/**
* 保单号
*/
private String policyNo;
/**
* 保费
*/
private BigDecimal orderPrice;
/**
* 佣金类型
*/
private String commissionType;
/**
* 应发佣率
*/
private BigDecimal referralRate;
/**
* 应发金额
*/
private BigDecimal referralAmount;
/**
* 购买方案
*/
private String productName;
}
package com.yd.dal.entity.agms.fortune;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author xxy
*/
@Data
public class WithdrawLabelInfo {
private Long payId;
/**
* 预计发佣年月
*/
private String payoutYearmonth;
/**
* 经纪人
*/
private String practitionerName;
/**
* 应发金额
*/
private BigDecimal referralAmount;
/**
* 手机号
*/
private String mobileNo;
/**
* 经纪人职级
*/
private String practitionerLevel;
/**
* 分公司
*/
private String insurerBranchName;
/**
* 营业部
*/
private String insurerBranchDeptName;
/**
* 体系
*/
private String subordinateSystemName;
/**
* 发佣状态
*/
private String commissionPayoutStatus;
}
package com.yd.dal.entity.agms.fortune;
import lombok.Data;
/**
* @author xxy
*/
@Data
public class WithdrawQueryInfo {
/**
* 预计发佣年月
*/
private String payoutYearmonth;
/**
* 分公司
*/
private Long insurerBranchId;
/**
* 营业部
*/
private Long insurerBranchDeptId;
/**
* 体系
*/
private Long subordinateSystemId;
/**
* 经纪人
*/
private Long practitionerId;
/**
* 发佣状态 暂不开放 可发 保留 已发并关账
*/
private Long commissionPayoutStatus;
}
package com.yd.dal.mapper.agms;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatus;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatusQueryInfo;
import com.yd.dal.entity.agms.fortune.CustomerFortuneStatisticalInfo;
import com.yd.dal.entity.agms.fortune.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -24,4 +22,19 @@ public interface AgmsFortuneMapper {
* @return 返回结果
*/
List<CommissionPayoutStatus> commissionPayoutStatusQuery(@Param("item") CommissionPayoutStatusQueryInfo requestVO);
/**
* 通过customerId 和 payId 查询 fortune 信息
* @param customerId customerId
* @param payId payId
* @return FortunePayToOrderInfo
*/
List<FortunePayToOrderInfo> fortunePayToOrder(@Param("customerId") Long customerId,@Param("payId") Long payId);
/**
* 经纪人支付列表
* @param info 过滤条件
* @return 返回结果
*/
List<WithdrawLabelInfo> transformForWithdrawLabel(@Param("item")WithdrawQueryInfo info);
}
package com.yd.dal.service.agms;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatus;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatusQueryInfo;
import com.yd.dal.entity.agms.fortune.CustomerFortuneStatisticalInfo;
import com.yd.dal.entity.agms.fortune.*;
import java.util.List;
import java.util.Map;
......@@ -25,4 +23,19 @@ public interface AgmsFortuneDALService {
* @return 返回结果
*/
List<CommissionPayoutStatus> commissionPayoutStatusQuery(CommissionPayoutStatusQueryInfo requestVO);
/**
* 通过customerId和payId查询fortune记录
* @param customerId customerId
* @param payId payId
* @return FortunePayToOrderInfo
*/
List<FortunePayToOrderInfo> fortunePayToOrder(Long customerId, Long payId);
/**
* 支付列表插叙
* @param info info
* @return WithdrawLabelInfo
*/
List<WithdrawLabelInfo> transformForWithdrawLabel(WithdrawQueryInfo info);
}
package com.yd.dal.service.agms.impl;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatus;
import com.yd.api.agms.vo.fortune.CommissionPayoutStatusQueryRequestVO;
import com.yd.dal.entity.agms.fortune.CommissionPayoutStatusQueryInfo;
import com.yd.dal.entity.agms.fortune.CustomerFortuneStatisticalInfo;
import com.yd.dal.entity.agms.fortune.*;
import com.yd.dal.mapper.agms.AgmsFortuneMapper;
import com.yd.dal.service.agms.AgmsFortuneDALService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -52,4 +49,14 @@ public class AgmsFortuneDALServiceImpl implements AgmsFortuneDALService {
public List<CommissionPayoutStatus> commissionPayoutStatusQuery(CommissionPayoutStatusQueryInfo requestVO) {
return agmsFortuneMapper.commissionPayoutStatusQuery(requestVO);
}
@Override
public List<FortunePayToOrderInfo> fortunePayToOrder(Long customerId, Long payId) {
return agmsFortuneMapper.fortunePayToOrder(customerId,payId);
}
@Override
public List<WithdrawLabelInfo> transformForWithdrawLabel(WithdrawQueryInfo info) {
return agmsFortuneMapper.transformForWithdrawLabel(info);
}
}
......@@ -86,4 +86,84 @@
and pb.payout_yearmonth = #{item.payoutYearmonth,jdbcType=VARCHAR}
</if>
</select>
<select id="fortunePayToOrder" resultType="com.yd.dal.entity.agms.fortune.FortunePayToOrderInfo">
select
i.name insurerName,
o.policy_no policyNo,
o.order_price orderPrice,
f.commission_type commissionType,
f.referral_rate referralRate,
f.referral_amount referralAmount,
if(o.config_level = 2,p.name,pp.name) productName
from ag_acl_customer_fortune f
left join ag_po_order o
left join ag_product_plan pp on pp.id = o.plan_id
left join ag_product p on p.id = o.product_id
left join ag_acl_insurer i on o.insurer_id = i.id
on o.id = f.order_id
where (o.status = 3 or o.status = 4)
and f.order_price != 0
and f.customer_id = #{customerId,jdbcType=BIGINT}
and f.fortune_payed_id = #{payId,jdbcType=BIGINT}
</select>
<resultMap id="WithdrawLabelInfo" type="com.yd.dal.entity.agms.fortune.WithdrawLabelInfo">
<id column="payId" jdbcType="BIGINT" property="payId" />
<result column="payoutYearmonth" jdbcType="VARCHAR" property="payoutYearmonth" />
<result column="practitionerName" jdbcType="VARCHAR" property="practitionerName" />
<result column="referralAmount" jdbcType="DECIMAL" property="referralAmount" />
<result column="mobileNo" jdbcType="VARCHAR" property="mobileNo" typeHandler="com.yd.util.deshandler.DESTypeHandler"/>
<result column="practitionerLevel" jdbcType="VARCHAR" property="practitionerLevel" />
<result column="insurerBranchName" jdbcType="VARCHAR" property="insurerBranchName" />
<result column="insurerBranchDeptName" jdbcType="VARCHAR" property="insurerBranchDeptName" />
<result column="subordinateSystemName" jdbcType="VARCHAR" property="subordinateSystemName" />
<result column="commissionPayoutStatus" jdbcType="VARCHAR" property="commissionPayoutStatus" />
</resultMap>
<select id="transformForWithdrawLabel"
parameterType="com.yd.dal.entity.agms.fortune.WithdrawQueryInfo"
resultMap="WithdrawLabelInfo">
select pay.id payId,
pb.payout_yearmonth payoutYearmonth,
pra.name practitionerName,
pay.withdraw_amount referralAmount,
pra.mobile_no mobileNo,
opt.drop_option_name practitionerLevel,
ib.branch_name insurerBranchName,
dept.name insurerBranchDeptName,
sub.name subordinateSystemName,
if(pay.pay_status = 0, 3, 4) commissionPayoutStatus
from ag_acl_customer_fortune_pay pay
left join ag_acl_customer_fortune f
left join ag_acl_customer_fortune_payout_batch pb on pb.id = f.payout_batch_id
on f.fortune_payed_id = pay.id,
ag_acl_practitioner pra
LEFT JOIN ag_acl_insurer_branch ib on ib.id = pra.insurer_branch_id
LEFT JOIN ag_acl_insurer_branch_dept dept ON pra.dept_id = dept.id
LEFT JOIN ag_acl_practitioner_subordinate_system sub ON sub.id = pra.subordinate_system_id
left join ag_acl_practitioner_setting setting
left join ag_md_drop_options opt on opt.id = setting.practitioner_level
on pra.id = setting.practitioner_id
where pay.customer_id = pra.customer_id
and pra.is_active = 1
<if test="item.payoutYearmonth != null">
and pb.payout_yearmonth = #{item.payoutYearmonth,jdbcType=VARCHAR}
</if>
<if test="item.insurerBranchId != null">
and pra.insurer_branch_id = #{item.insurerBranchDeptId,jdbcType=BIGINT}
</if>
<if test="item.insurerBranchDeptId != null">
and dept.id = #{item.insurerBranchDeptId,jdbcType=BIGINT}
</if>
<if test="item.subordinateSystemId != null">
and sub.id = #{item.subordinateSystemId,jdbcType=BIGINT}
</if>
<if test="item.practitionerId != null">
and pra.id = #{item.practitionerId,jdbcType=BIGINT}
</if>
<if test="item.commissionPayoutStatus != null">
and f.commission_payout_status = #{item.commissionPayoutStatus,jdbcType=BIGINT}
</if>
group by pay.id
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment