weekly-2026-W31

周报 · 2026年第31周 (W31)

周期:2026-07-27 ~ 2026-08-02 分支:production 作者:dengxingxing


📅 每日工作摘要

日期 主要工作
2026-07-27 新增企业微信对外收款记录与资金流水同步功能;丰富用户信息接口返回字段;修复 HouseCommissionService houseId 列表过滤逻辑

📊 按模块统计

模块 commit 数 改动文件数
qywx(企业微信) 1 14
crm(客户管理) 1 1
erp 1 1

🛠 详细工作内容


📌 feat(qywx): 新增企业微信对外收款记录与资金流水同步功能

commitb7c5269de0578f636f183b054d199f0a9484bf05 | 2026-07-27

功能说明:为系统新增企业微信对外收款相关数据的同步能力,通过 ElasticJob 定时任务从企业微信 API 增量拉取「对外收款记录」和「资金流水」两类数据,落地到本地数据库,供业务查询和对账使用。

  • QywxExternalPayBillJob:对外收款记录同步任务,调用 qywxExternalPayService.syncBillList() 增量拉取收款记录并落库。
  • QywxExternalPayFundFlowJob:资金流水同步任务,调用 qywxExternalPayService.syncFundFlow() 增量拉取资金流水并落库(当日流水次日 11 点后生成,建议每日 11 点后执行)。
  • QywxExternalPayService:核心服务层,实现同步逻辑。
  • QywxExternalPayBill / QywxExternalPayFundFlow:实体类,对应收款记录和资金流水表结构。
  • QywxExternalPayBillMapper / QywxExternalPayFundFlowMapper:数据访问层。
  • QywxExternalPayBillListRes / QywxExternalPayFundFlowRes:接口返回 DTO。
  • QywxExternalPayMatchVo:收款与流水匹配 VO。
  • application-pro.yml:新增两 个定时任务的 ElasticJob 配置。

涉及文件(14 个):

hoolihome-data-cron/src/main/java/com/hoolihome/data/cron/jobs/qywx/QywxExternalPayBillJob.java
hoolihome-data-cron/src/main/java/com/hoolihome/data/cron/jobs/qywx/QywxExternalPayFundFlowJob.java
hoolihome-data-cron/src/main/resources/application-pro.yml
hoolihome-data-service/src/main/java/com/hoolihome/data/service/qywx/QywxExternalPayService.java
hoolihome-api-pom/hoolihome-api/src/main/java/com/hoolihome/rest/api/externalpay/QywxExternalPayApi.java
hoolihome-api-pom/hoolihome-api/src/main/java/com/hoolihome/rest/dto/res/QywxExternalPayBillListRes.java
hoolihome-api-pom/hoolihome-api/src/main/java/com/hoolihome/rest/dto/res/QywxExternalPayFundFlowRes.java
hoolihome-entity/src/main/java/com/hoolihome/entity/platform/QywxExternalPayBill.java
hoolihome-entity/src/main/java/com/hoolihome/entity/platform/QywxExternalPayFundFlow.java
hoolihome-mapper/src/main/java/com/hoolihome/mapper/platform/QywxExternalPayBillMapper.java
hoolihome-mapper/src/main/java/com/hoolihome/mapper/platform/QywxExternalPayFundFlowMapper.java
hoolihome-api-pom/hoolihome-api/src/main/java/com/hoolihome/vo/platform/QywxExternalPayMatchVo.java
hoolihome-mapper/src/main/resources/mappers/platform/QywxExternalPayBillMapper.xml
hoolihome-mapper/src/main/resources/mappers/platform/QywxExternalPayFundFlowMapper.xml

改动量:+1404 行

代码片段(Job 示例):

@Slf4j(topic = "QywxExternalPayBillJob")
@Service
@RequiredArgsConstructor
public class QywxExternalPayBillJob extends BaseSimpleJob {
    private final QywxExternalPayService qywxExternalPayService;

    @Override
    public void doExecute(ShardingContext shardingContext) {
        try {
            var count = qywxExternalPayService.syncBillList();
            log.info("对外收款记录同步任务执行完成,处理{}条", count);
        } catch (Exception e) {
            log.error("对外收款记录同步任务执行失败", e);
        }
    }
}

📌 feat(user): 丰富用户信息接口返回字段

commita728e414f57654ef6e20ad8091a0c7a0a6bfd419 | 2026-07-27

功能说明:在 HomeUserController.get 接口的返回数据中新增多个字段,为前端提供更完整的用户画像信息。

  • 新增 mobilePrefixCode:手机号国际区号编码。
  • 新增 followStateText:跟进状态的文字描述(通过 FollowState.optByVal().getText() 转换枚举值)。
  • 新增 entranceText:用户入口渠道的文字说明(通过 EntranceEnum.optById().getEntrance() 获取)。
  • 新增 sourceText:用户来源的文字说明(通过 SourceEnum.optById().getSource() 获取)。
  • 新增 roleList:用户角色列表,关联查询该手机号在合作方表(distributor)和员工表(platform_user)的记录,识别用户是否同时为合作方或员工。

涉及文件(1 个):

hoolihome-crm-api/src/main/java/com/hoolihome/crm/controller/HomeUserController.java

改动量:+21 行

代码片段

vo.set("mobilePrefixCode", user.getMobilePrefixCode());
vo.set("followStateText", IHomeUserService.FollowState.optByVal(user.getFollowState())
    .map(IHomeUserService.FollowState::getText).orElse(""));
vo.set("entranceText", EntranceEnum.optById(user.getEntranceId())
    .map(EntranceEnum::getEntrance).orElse(""));
vo.set("sourceText", SourceEnum.optById(user.getSourceId())
    .map(SourceEnum::getSource).orElse(""));
// 角色列表:关联合作方与员工
var distributor = iDistributorsUserInfoService.getByMobile(user.getMobilePrefix(), user.getMobile());
if (distributor != null) { roleList.add(roleVo); }
var platformUser = iPlatformUserService.getStaffByMobile(user.getMobilePrefix(), user.getMobile());
if (platformUser != null) { roleList.add(roleVo); }
vo.set("roleList", roleList);

🐛 fix(service): 修复HouseCommissionService中houseId列表过滤逻辑

commit3476256e418bbecdb2f549f12a963fa31d96f173 | 2026-07-27

功能说明:修复 HouseCommissionService.update 方法中 houseIdList 的空指针和类型转换风险。在解析 JSON 列表时增加对 null 及非正整数的过滤,避免插入数据库时因 house_id 缺失而报错。同时为 update 方法添加 @Transactional 注解确保操作原子性。

涉及文件(1 个):

hoolihome-crm-api/src/main/java/com/hoolihome/erp/service/HouseCommissionService.java

改动量:+5 行,-1 行

代码片段

@Transactional(rollbackFor = Exception.class)
public void update(HouseCommissionParam param) {
    // ...
    var houseIds = JSONUtil.toList(param.getHouseIdList(), Integer.class).stream()
            .filter(NumHelper.Int::checkNotZero)  // 过滤null及非正数houseId
            .collect(Collectors.toList());
    if (houseIds.isEmpty()) { return; }

🔧 合并记录

merge commit 日期 合并来源分支
752a63e61 2026-07-27 dev_v2_filter
9add1b44d 2026-07-27 dev_v2_filter

📊 本周工作总结

【核心成果】完成企业微信对外收款记录与资金流水同步功能开发,新增两个ElasticJob定时任务,实现增量数据拉取与落库,支持业务查询与对账。

【技术亮点】通过关联查询distributor和platform_user表识别用户多角色身份,丰富用户信息接口5个展示字段;修复佣金服务houseId解析null及非正整数时的数据库插入异常,增强数据校验与事务原子性保障。

【业务价值】企业微信同步功能打通了外部收款数据链路,为财务对账和业务分析提供数据基础;用户信息字段丰富提升了C端展示体验和运营可读性。本周产出:+1430行代码,14个新文件。