推荐人特权
This commit is contained in:
@@ -625,4 +625,127 @@ public class LbPurchaseApplyServiceImpl
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> syncHxrAdminColleagueVipByApplyDateRange(
|
||||
LocalDate applyDateStart, LocalDate applyDateEnd, String tenantId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
if (applyDateStart == null || applyDateEnd == null) {
|
||||
result.put("success", false);
|
||||
result.put("message", "申请开始日期与结束日期不能为空");
|
||||
return result;
|
||||
}
|
||||
if (applyDateEnd.isBefore(applyDateStart)) {
|
||||
result.put("success", false);
|
||||
result.put("message", "结束日期不能早于开始日期");
|
||||
return result;
|
||||
}
|
||||
if (tenantId == null || tenantId.trim().isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "租户id不能为空");
|
||||
return result;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<LbPurchaseApply> q = new LambdaQueryWrapper<>();
|
||||
q.eq(LbPurchaseApply::getTenantId, tenantId.trim())
|
||||
.ge(LbPurchaseApply::getApplyDate, applyDateStart)
|
||||
.le(LbPurchaseApply::getApplyDate, applyDateEnd);
|
||||
List<LbPurchaseApply> rows = this.list(q);
|
||||
if (rows == null || rows.isEmpty()) {
|
||||
result.put("success", true);
|
||||
result.put("message", "该条件下无申请记录,未调用第三方");
|
||||
result.put("totalRecords", 0);
|
||||
result.put("details", List.of());
|
||||
result.put("applyDateStart", applyDateStart);
|
||||
result.put("applyDateEnd", applyDateEnd);
|
||||
result.put("tenantId", tenantId.trim());
|
||||
return result;
|
||||
}
|
||||
|
||||
List<Map<String, Object>> details = new ArrayList<>();
|
||||
int ok = 0;
|
||||
int fail = 0;
|
||||
for (LbPurchaseApply row : rows) {
|
||||
Map<String, Object> one = new HashMap<>();
|
||||
one.put("applyId", row.getId());
|
||||
one.put("applyDate", row.getApplyDate());
|
||||
one.put("colleagueName", row.getColleagueName());
|
||||
String phone = row.getColleaguePhone() != null ? row.getColleaguePhone().trim() : "";
|
||||
one.put("colleaguePhone", phone);
|
||||
if (phone.isEmpty()) {
|
||||
one.put("success", false);
|
||||
one.put("message", "colleague_phone 为空,跳过");
|
||||
fail++;
|
||||
details.add(one);
|
||||
continue;
|
||||
}
|
||||
if (row.getApplyDate() == null) {
|
||||
one.put("success", false);
|
||||
one.put("message", "applyDate 为空,跳过");
|
||||
fail++;
|
||||
details.add(one);
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
LocalDateTime vipTime =
|
||||
HxrAdminUserService.computeVipExpireTimePlusCalendarDays(row.getApplyDate(), 2);
|
||||
String vipTimeStr = HxrAdminUserService.formatVipTime(vipTime);
|
||||
one.put("viptime", vipTimeStr);
|
||||
|
||||
Optional<HxrUserRow> userOpt = hxrAdminUserService.fetchFirstUserByMobile(phone);
|
||||
if (userOpt.isEmpty()) {
|
||||
one.put("success", false);
|
||||
one.put("message", "user/select 无用户或接口失败");
|
||||
fail++;
|
||||
details.add(one);
|
||||
continue;
|
||||
}
|
||||
HxrUserRow hxrUser = userOpt.get();
|
||||
long hxrUserId = hxrUser.id();
|
||||
one.put("hxrUserId", hxrUserId);
|
||||
Integer maxOrder = hxrUser.maxOrder();
|
||||
if (maxOrder == null) {
|
||||
one.put("success", false);
|
||||
one.put("message", "user/select 未返回 max_order,跳过");
|
||||
fail++;
|
||||
details.add(one);
|
||||
continue;
|
||||
}
|
||||
one.put("maxOrder", maxOrder);
|
||||
boolean updated =
|
||||
hxrAdminUserService.updateUserVipFields(hxrUserId, maxOrder, vipTimeStr);
|
||||
if (updated) {
|
||||
one.put("success", true);
|
||||
one.put("message", "user/update 成功");
|
||||
ok++;
|
||||
} else {
|
||||
one.put("success", false);
|
||||
one.put("message", "user/update 失败");
|
||||
fail++;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
one.put("success", false);
|
||||
one.put("message", "调用异常:" + ex.getMessage());
|
||||
fail++;
|
||||
}
|
||||
details.add(one);
|
||||
}
|
||||
|
||||
result.put("success", fail == 0);
|
||||
result.put("message", fail == 0 ? "全部处理成功" : "部分或全部失败,见 details");
|
||||
result.put("totalRecords", rows.size());
|
||||
result.put("successCount", ok);
|
||||
result.put("failCount", fail);
|
||||
result.put("details", details);
|
||||
result.put("applyDateStart", applyDateStart);
|
||||
result.put("applyDateEnd", applyDateEnd);
|
||||
result.put("tenantId", tenantId.trim());
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "处理异常:" + e.getMessage());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user