修正查看特权

This commit is contained in:
2026-05-22 22:49:06 +08:00
parent e3e3a625b4
commit 27de5decc3
4 changed files with 168 additions and 10 deletions

View File

@@ -464,7 +464,7 @@ public class LbPurchaseApplyServiceImpl
/**
* 按租户 + 手机号关联 {@link LbUser}:申请人 {@code applyPhone}、推荐人 {@code colleaguePhone} 分别对应
* {@link LbPurchaseApply#applicantUser}、{@link LbPurchaseApply#referrerUser}(仅返回脱敏后的用户字段)。
* {@link LbPurchaseApply#}、{@link LbPurchaseApply#}(仅返回脱敏后的用户字段)。
*/
private void fillLinkedLbUsers(List<LbPurchaseApply> records) {
if (records == null || records.isEmpty()) {
@@ -521,6 +521,7 @@ public class LbPurchaseApplyServiceImpl
view.setTodayBuyTotal(source.getTodayBuyTotal());
view.setTodaySellTotal(source.getTodaySellTotal());
view.setJoinTime(source.getJoinTime());
view.setMaxOrder(source.getMaxOrder());
return view;
}
@@ -733,6 +734,93 @@ public class LbPurchaseApplyServiceImpl
}
}
@Override
public Map<String, Object> updateHxrAdminUserVipByUserIds(
String tenantId, List<Long> userIds, Integer isVip, String vipTime, Integer maxOrder) {
Map<String, Object> result = new HashMap<>();
try {
if (tenantId == null || tenantId.trim().isEmpty()) {
result.put("success", false);
result.put("message", "租户id不能为空");
return result;
}
if (userIds == null || userIds.isEmpty()) {
result.put("success", false);
result.put("message", "用户id列表不能为空");
return result;
}
if (isVip == null || (isVip != 0 && isVip != 1)) {
result.put("success", false);
result.put("message", "isVip 必须为 0 或 1");
return result;
}
if (maxOrder == null) {
result.put("success", false);
result.put("message", "maxOrder不能为空");
return result;
}
String vipTimeStr = vipTime != null ? vipTime.trim() : "";
if (isVip == 1 && vipTimeStr.isEmpty()) {
result.put("success", false);
result.put("message", "开通特权时 vipTime 不能为空");
return result;
}
List<Map<String, Object>> details = new ArrayList<>();
int ok = 0;
int fail = 0;
for (Long userId : userIds) {
Map<String, Object> one = new HashMap<>();
one.put("userId", userId);
one.put("isVip", isVip);
one.put("viptime", vipTimeStr);
one.put("maxOrder", maxOrder);
if (userId == null) {
one.put("success", false);
one.put("message", "用户id为空跳过");
fail++;
details.add(one);
continue;
}
try {
Integer maxOrderForApi = maxOrder == 0 ? null : maxOrder;
boolean updated =
hxrAdminUserService.updateUserVipFields(userId, maxOrderForApi, vipTimeStr, isVip);
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", userIds.size());
result.put("successCount", ok);
result.put("failCount", fail);
result.put("isVip", isVip);
result.put("vipTime", vipTimeStr);
result.put("maxOrder", maxOrder);
result.put("details", details);
result.put("tenantId", tenantId.trim());
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "处理异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> syncHxrAdminColleagueVipByApplyDateRange(
LocalDate applyDateStart, LocalDate applyDateEnd, String tenantId) {