对接3方系统,开通新人特权
This commit is contained in:
@@ -11,11 +11,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.rj.dto.hxr.HxrUserRow;
|
||||
import com.rj.entity.LbDailyUserTradeReport;
|
||||
import com.rj.entity.LbPurchaseApply;
|
||||
import com.rj.util.IsoWorkdayUtils;
|
||||
import com.rj.mapper.LbDailyUserTradeReportMapper;
|
||||
import com.rj.mapper.LbPurchaseApplyMapper;
|
||||
import com.rj.service.HxrAdminUserService;
|
||||
import com.rj.service.ILbPurchaseApplyService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -31,6 +33,7 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
@Slf4j
|
||||
@@ -42,6 +45,9 @@ public class LbPurchaseApplyServiceImpl
|
||||
@Autowired
|
||||
private LbDailyUserTradeReportMapper lbDailyUserTradeReportMapper;
|
||||
|
||||
@Autowired
|
||||
private HxrAdminUserService hxrAdminUserService;
|
||||
|
||||
@Autowired
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
@@ -502,4 +508,121 @@ public class LbPurchaseApplyServiceImpl
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> syncHxrAdminUserVipByApplyDateRange(
|
||||
LocalDate applyDateStart, LocalDate applyDateEnd, String tenantId, Integer maxOrder) {
|
||||
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;
|
||||
}
|
||||
if (maxOrder == null) {
|
||||
result.put("success", false);
|
||||
result.put("message", "max_order不能为空");
|
||||
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());
|
||||
String phone = row.getApplyPhone() != null ? row.getApplyPhone().trim() : "";
|
||||
one.put("applyPhone", phone);
|
||||
if (phone.isEmpty()) {
|
||||
one.put("success", false);
|
||||
one.put("message", "apply_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.computeVipExpireTime(row.getApplyDate());
|
||||
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;
|
||||
}
|
||||
long hxrUserId = userOpt.get().id();
|
||||
one.put("hxrUserId", hxrUserId);
|
||||
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("maxOrder", maxOrder);
|
||||
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