|
@ -69,8 +69,7 @@ public class AApiAppletHhrWorkOutServiceImpl implements IAApiAppletHhrWorkOutSer |
|
|
|
|
|
|
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
map.put("info",appUsers); //用户信息 |
|
|
map.put("info",appUsers); //用户信息 |
|
|
// map.put("partner_level","初级合伙人"); //合伙人等级 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 计算合伙人入住天数 |
|
|
// 计算合伙人入住天数 |
|
|
long partnerDays = 0; |
|
|
long partnerDays = 0; |
|
|
if (appUsers.getCreateTime() != null) { |
|
|
if (appUsers.getCreateTime() != null) { |
|
@ -85,8 +84,9 @@ public class AApiAppletHhrWorkOutServiceImpl implements IAApiAppletHhrWorkOutSer |
|
|
if (petPaymentHh != null){ |
|
|
if (petPaymentHh != null){ |
|
|
map.put("partner_new_num",petPaymentHh.getParamValueText()); //合伙人当前合伙人比例 |
|
|
map.put("partner_new_num",petPaymentHh.getParamValueText()); //合伙人当前合伙人比例 |
|
|
map.put("partner_new_image",petPaymentHh.getParamValueImage()); //合伙人当前合伙人比例 |
|
|
map.put("partner_new_image",petPaymentHh.getParamValueImage()); //合伙人当前合伙人比例 |
|
|
|
|
|
map.put("partner_level", petPaymentHh.getParamValue()); //合伙人等级 |
|
|
}else { |
|
|
}else { |
|
|
map.put("partner_new_num", 0); //合伙人当前合伙人比例 |
|
|
|
|
|
|
|
|
// map.put("partner_new_num", 0); //合伙人当前合伙人比例 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
AppletConfig partner_upgrade_num = appletConfigService.selectAppletConfigByClassAndNum("pet_payment_hh", appUsers.getUserHhRole()+1); |
|
|
AppletConfig partner_upgrade_num = appletConfigService.selectAppletConfigByClassAndNum("pet_payment_hh", appUsers.getUserHhRole()+1); |
|
@ -94,10 +94,11 @@ public class AApiAppletHhrWorkOutServiceImpl implements IAApiAppletHhrWorkOutSer |
|
|
if (partner_upgrade_num != null){ |
|
|
if (partner_upgrade_num != null){ |
|
|
map.put("partner_upgrade_num", partner_upgrade_num.getParamValueText()); //合伙人晋级之后的合伙人比例 |
|
|
map.put("partner_upgrade_num", partner_upgrade_num.getParamValueText()); //合伙人晋级之后的合伙人比例 |
|
|
}else { |
|
|
}else { |
|
|
map.put("partner_upgrade_num", -1); //合伙人晋级之后的合伙人比例 |
|
|
|
|
|
|
|
|
// map.put("partner_upgrade_num", -1); //合伙人晋级之后的合伙人比例 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
map.put("user_code", appUsersService.getUserCode(appUserId)); //邀请码 |
|
|
map.put("user_code", appUsersService.getUserCode(appUserId)); //邀请码 |
|
|
|
|
|
map.put("level_list", appletConfigService.lambdaQuery().eq(AppletConfig::getParamClass, "pet_payment_hh").list()); //等级列表 |
|
|
map.put("user_code_bj","https://image.hhlm1688.com/img/work/log/indexInfo/11.png"); //邀请码背景图 |
|
|
map.put("user_code_bj","https://image.hhlm1688.com/img/work/log/indexInfo/11.png"); //邀请码背景图 |
|
|
map.put("user_code_fx","https://image.hhlm1688.com/img/work/log/indexInfo/11.png"); //分享海报背景图 |
|
|
map.put("user_code_fx","https://image.hhlm1688.com/img/work/log/indexInfo/11.png"); //分享海报背景图 |
|
|
map.put("user_code_url","https://image.hhlm1688.com/img/work/log/indexInfo/11.png"); //分销链接背景图 |
|
|
map.put("user_code_url","https://image.hhlm1688.com/img/work/log/indexInfo/11.png"); //分销链接背景图 |
|
@ -387,5 +388,173 @@ public class AApiAppletHhrWorkOutServiceImpl implements IAApiAppletHhrWorkOutSer |
|
|
return AjaxResult.success("用户下单详细信息成功",map); |
|
|
return AjaxResult.success("用户下单详细信息成功",map); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//合伙人等级升级检查 |
|
|
|
|
|
@Override |
|
|
|
|
|
public AjaxResult checkPartnerUpgrade(Long appUserId) { |
|
|
|
|
|
try { |
|
|
|
|
|
// 获取用户信息 |
|
|
|
|
|
AppUsers appUsers = appUsersService.selectAppUsersByUserId(appUserId); |
|
|
|
|
|
if (appUsers == null) { |
|
|
|
|
|
return AjaxResult.error("用户不存在"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 检查是否为合伙人 |
|
|
|
|
|
if (appUsers.getUserHh() == null || appUsers.getUserHh() != 1) { |
|
|
|
|
|
return AjaxResult.error("用户不是合伙人"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Integer currentLevel = appUsers.getUserHhRole(); |
|
|
|
|
|
if (currentLevel == null) { |
|
|
|
|
|
currentLevel = 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取下一个等级的配置 |
|
|
|
|
|
AppletConfig nextLevelConfig = appletConfigService.getOne( |
|
|
|
|
|
Wrappers.<AppletConfig>lambdaQuery() |
|
|
|
|
|
.eq(AppletConfig::getParamClass, "pet_payment_hh") |
|
|
|
|
|
.eq(AppletConfig::getParamValueNum, currentLevel + 1) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
if (nextLevelConfig == null) { |
|
|
|
|
|
return AjaxResult.success("已是最高等级,无法继续升级"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取升级要求 |
|
|
|
|
|
Integer needRegisterNum = nextLevelConfig.getParamCondition(); // 需要注册人数 |
|
|
|
|
|
Integer needOrderUserNum = nextLevelConfig.getNeedOrderUserNum(); // 需要下单人数 |
|
|
|
|
|
|
|
|
|
|
|
if (needRegisterNum == null || needOrderUserNum == null) { |
|
|
|
|
|
return AjaxResult.error("下一等级升级条件未配置"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取当前等级的保段要求 |
|
|
|
|
|
AppletConfig currentLevelConfig = appletConfigService.getOne( |
|
|
|
|
|
Wrappers.<AppletConfig>lambdaQuery() |
|
|
|
|
|
.eq(AppletConfig::getParamClass, "pet_payment_hh") |
|
|
|
|
|
.eq(AppletConfig::getParamValueNum, currentLevel) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
Integer keepUserNum = 0; |
|
|
|
|
|
Integer keepOrderUserNum = 0; |
|
|
|
|
|
if (currentLevelConfig != null) { |
|
|
|
|
|
keepUserNum = currentLevelConfig.getKeepUserNum() != null ? currentLevelConfig.getKeepUserNum() : 0; |
|
|
|
|
|
keepOrderUserNum = currentLevelConfig.getKeepOrderUserNum() != null ? currentLevelConfig.getKeepOrderUserNum() : 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取用户邀请码 |
|
|
|
|
|
String invitationCode = appUsersService.getUserCode(appUserId); |
|
|
|
|
|
|
|
|
|
|
|
// 获取当月时间范围 |
|
|
|
|
|
LocalDateTime monthStart = LocalDateTime.now().with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0).withNano(0); |
|
|
|
|
|
LocalDateTime monthEnd = LocalDateTime.now().with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59); |
|
|
|
|
|
|
|
|
|
|
|
// 统计累积注册用户 |
|
|
|
|
|
Integer totalRegisterUsers = memberMapper.selectCount( |
|
|
|
|
|
Wrappers.<Member>lambdaQuery() |
|
|
|
|
|
.eq(Member::getInviteCode, invitationCode) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 统计当月注册用户 |
|
|
|
|
|
Integer monthRegisterUsers = memberMapper.selectCount( |
|
|
|
|
|
Wrappers.<Member>lambdaQuery() |
|
|
|
|
|
.eq(Member::getInviteCode, invitationCode) |
|
|
|
|
|
.ge(Member::getCreateTime, monthStart) |
|
|
|
|
|
.le(Member::getCreateTime, monthEnd) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 获取通过邀请码注册的所有用户ID列表 |
|
|
|
|
|
List<Member> invitedMembers = memberMapper.selectList( |
|
|
|
|
|
Wrappers.<Member>lambdaQuery() |
|
|
|
|
|
.select(Member::getId) |
|
|
|
|
|
.eq(Member::getInviteCode, invitationCode) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
List<Long> memberIds = new ArrayList<>(); |
|
|
|
|
|
for (Member member : invitedMembers) { |
|
|
|
|
|
memberIds.add(member.getId()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 统计累积下单用户 |
|
|
|
|
|
Integer totalOrderUsers = 0; |
|
|
|
|
|
Integer monthOrderUsers = 0; |
|
|
|
|
|
|
|
|
|
|
|
if (!memberIds.isEmpty()) { |
|
|
|
|
|
// 累积下单用户 |
|
|
|
|
|
List<Order> totalOrderList = orderMapper.selectList( |
|
|
|
|
|
Wrappers.<Order>lambdaQuery() |
|
|
|
|
|
.select(Order::getMemberId) |
|
|
|
|
|
.in(Order::getMemberId, memberIds) |
|
|
|
|
|
.notIn(Order::getStatus, 0, 4) // 排除待支付和已关闭订单 |
|
|
|
|
|
.groupBy(Order::getMemberId) |
|
|
|
|
|
); |
|
|
|
|
|
totalOrderUsers = totalOrderList.size(); |
|
|
|
|
|
|
|
|
|
|
|
// 当月下单用户 |
|
|
|
|
|
List<Order> monthOrderList = orderMapper.selectList( |
|
|
|
|
|
Wrappers.<Order>lambdaQuery() |
|
|
|
|
|
.select(Order::getMemberId) |
|
|
|
|
|
.in(Order::getMemberId, memberIds) |
|
|
|
|
|
.notIn(Order::getStatus, 0, 4) // 排除待支付和已关闭订单 |
|
|
|
|
|
.ge(Order::getCreateTime, monthStart) |
|
|
|
|
|
.le(Order::getCreateTime, monthEnd) |
|
|
|
|
|
.groupBy(Order::getMemberId) |
|
|
|
|
|
); |
|
|
|
|
|
monthOrderUsers = monthOrderList.size(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 检查升级条件(累计注册或累计下单达成其中一个条件即可) |
|
|
|
|
|
boolean meetUpgradeCondition = totalRegisterUsers >= needRegisterNum || totalOrderUsers >= needOrderUserNum; |
|
|
|
|
|
|
|
|
|
|
|
// 检查当月保段条件 |
|
|
|
|
|
boolean meetMonthlyCondition = monthRegisterUsers >= keepUserNum && monthOrderUsers >= keepOrderUserNum; |
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> result = new HashMap<>(); |
|
|
|
|
|
result.put("currentLevel", currentLevel); |
|
|
|
|
|
result.put("nextLevel", currentLevel + 1); |
|
|
|
|
|
result.put("totalRegisterUsers", totalRegisterUsers); |
|
|
|
|
|
result.put("needRegisterNum", needRegisterNum); |
|
|
|
|
|
result.put("totalOrderUsers", totalOrderUsers); |
|
|
|
|
|
result.put("needOrderUserNum", needOrderUserNum); |
|
|
|
|
|
result.put("monthRegisterUsers", monthRegisterUsers); |
|
|
|
|
|
result.put("keepUserNum", keepUserNum); |
|
|
|
|
|
result.put("monthOrderUsers", monthOrderUsers); |
|
|
|
|
|
result.put("keepOrderUserNum", keepOrderUserNum); |
|
|
|
|
|
result.put("meetUpgradeCondition", meetUpgradeCondition); |
|
|
|
|
|
result.put("meetMonthlyCondition", meetMonthlyCondition); |
|
|
|
|
|
|
|
|
|
|
|
// 如果同时满足升级条件和当月保段条件,则进行升级 |
|
|
|
|
|
if (meetUpgradeCondition && meetMonthlyCondition) { |
|
|
|
|
|
boolean upgradeResult = appUsersService.lambdaUpdate() |
|
|
|
|
|
.eq(AppUsers::getUserId, appUserId) |
|
|
|
|
|
.set(AppUsers::getUserHhRole, currentLevel + 1) |
|
|
|
|
|
.update(); |
|
|
|
|
|
|
|
|
|
|
|
if (upgradeResult) { |
|
|
|
|
|
result.put("upgraded", true); |
|
|
|
|
|
result.put("message", "恭喜!等级升级成功,从等级" + currentLevel + "升至等级" + (currentLevel + 1)); |
|
|
|
|
|
log.info("合伙人用户ID: {} 升级成功,从等级 {} 升至等级 {}", appUserId, currentLevel, currentLevel + 1); |
|
|
|
|
|
} else { |
|
|
|
|
|
result.put("upgraded", false); |
|
|
|
|
|
result.put("message", "升级失败,请稍后重试"); |
|
|
|
|
|
log.error("合伙人用户ID: {} 升级失败", appUserId); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
result.put("upgraded", false); |
|
|
|
|
|
if (!meetUpgradeCondition && !meetMonthlyCondition) { |
|
|
|
|
|
result.put("message", "未达到升级条件且当月未达保段要求"); |
|
|
|
|
|
} else if (!meetUpgradeCondition) { |
|
|
|
|
|
result.put("message", "累积数据未达到升级条件"); |
|
|
|
|
|
} else { |
|
|
|
|
|
result.put("message", "当月数据未达到保段要求"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success("检查完成", result); |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error("合伙人等级升级检查异常,用户ID: {}", appUserId, e); |
|
|
|
|
|
return AjaxResult.error("检查异常: " + e.getMessage()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |