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): 新增企业微信对外收款记录与资金流水同步功能
commit:b7c5269de0578f636f183b054d199f0a9484bf05 | 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): 丰富用户信息接口返回字段
commit:a728e414f57654ef6e20ad8091a0c7a0a6bfd419 | 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列表过滤逻辑
commit:3476256e418bbecdb2f549f12a963fa31d96f173 | 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个新文件。