package com.talentcard.server.business.admin;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.talentcard.server.business.DatabaseRows;
import com.talentcard.server.business.PageResult;
import com.talentcard.server.business.payment.huifu.HuifuSettlementRecordGateway;
import com.talentcard.server.common.BusinessException;
import com.talentcard.server.common.ErrorCode;
import com.talentcard.server.common.SensitiveDataCrypto;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.talentcard.server.business.merchant.MerchantPaymentReadinessService;
/**
* 后台结算管理。
*
*
出款由斗拱按结算周期自动完成(核销确认后的钱进商户基本户,次日自动结算到结算卡),
* 平台不再产生提现记录。后台保留进件、银行卡查询、收款能力快照刷新,以及向通道查询
* 真实结算记录用于监控每天结了多少到银行卡。
*/
@Service
public class MerchantSettlementAdminService {
private final JdbcTemplate jdbc;
private final SensitiveDataCrypto sensitiveDataCrypto;
private final MerchantPaymentReadinessService readinessService;
private final HuifuSettlementRecordGateway settlementRecordGateway;
@org.springframework.beans.factory.annotation.Autowired
private com.talentcard.server.business.merchant.MerchantOnboardingProgressService progressService;
@org.springframework.beans.factory.annotation.Autowired
private com.talentcard.server.business.merchant.MerchantRealnameService realnameService;
@org.springframework.beans.factory.annotation.Autowired
private com.talentcard.server.business.merchant.MerchantSettlementService settlementService;
public Map onboardingProgress(Long id) { return progressService.view(id); }
/** 后台刷新与商户端走同一条路径:先推进已满足前置条件的开通步骤,再查询回报结果。 */
public Map refreshOnboarding(Long id, boolean retry) { return settlementService.refreshProgress(id, retry); }
/** 微信实名认证:平台运营可在后台代为发起;未决申请不会重复提交。 */
public Map submitRealname(Long id, boolean retry) { return realnameService.submit(id, retry); }
public MerchantSettlementAdminService(JdbcTemplate jdbc, SensitiveDataCrypto sensitiveDataCrypto, MerchantPaymentReadinessService readinessService, HuifuSettlementRecordGateway settlementRecordGateway) { this.jdbc = jdbc; this.sensitiveDataCrypto = sensitiveDataCrypto; this.readinessService = readinessService; this.settlementRecordGateway = settlementRecordGateway; }
/**
* 结算记录:钱按结算周期自动划到结算卡之后,「每天结了多少」只能问通道。
*
* 按门店取该商户当前生效的斗拱子商户号,逐商户查询结算记录后合并成一条时间倒序的列表。
* 通道查询失败只影响这一条商户,不会让整页失败——监控页最重要的是「看得到」。
*
*
条数上限跟着通道走:这个接口的 {@code pageSize} 超过 50 会被判为基础参数校验失败,
* 传 100 时整页一条流水都查不出来。上限在网关里还有一道兜底,这里只是不要再主动越界。
*/
public Map settlements(String beginDate, String endDate, int size) {
List