记得上下班打卡 | git大法好,push需谨慎

Commit 565a2963 authored by wangyifan's avatar wangyifan

草莓护照- home页 未绑定护照返回提示

parent 060e4490
......@@ -3,12 +3,7 @@ package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.AdamCaomeiPassportUserBadgeDto;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportBadgeShelfItemVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportHomeVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportUserCardVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportUserClaimedBadgeVo;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamCaomeiBadge;
import com.liquidnet.service.adam.entity.AdamCaomeiPassport;
import com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper;
......@@ -23,7 +18,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -122,9 +120,18 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
String uid = CurrentUtil.getCurrentUid();
log.info("[getPassportHome] 开始获取护照首页数据, uid: {}", uid);
// 4. 获取用户当前绑定的护照信息
AdamCaomeiPassport bound = findBoundPassportForUser(uid);
if (null == bound) {
log.error("[getPassportHome] 用户未绑定护照, uid: {}", uid);
return ResponseDto.failure(ErrorMapping.get("10604")); // 未绑定护照
}
// 1. 初始化返回对象
AdamCaomeiPassportHomeVo home = new AdamCaomeiPassportHomeVo();
AdamCaomeiPassportUserCardVo card = new AdamCaomeiPassportUserCardVo();
card.setPassportBound(true);
card.setPassportNo(bound.getPassportNo());
home.setUserCard(card);
// 2. 获取用户基本信息(头像、昵称)
......@@ -146,19 +153,8 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
idCard = real.getIdCard();
}
card.setRealNameVerified(isRealNameVerified);
log.info("[getPassportHome] 实名认证状态, uid: {}, 是否已实名: {}, 是否有身份证号: {}", uid, isRealNameVerified, StringUtils.isNotBlank(idCard));
// 4. 获取用户当前绑定的护照信息
AdamCaomeiPassport bound = findBoundPassportForUser(uid);
boolean isPassportBound = bound != null;
if (isPassportBound) {
card.setPassportBound(true);
card.setPassportNo(bound.getPassportNo());
} else {
card.setPassportBound(false);
card.setPassportNo("");
}
log.info("[getPassportHome] 护照绑定状态, uid: {}, 是否已绑定: {}, 护照编号: {}", uid, isPassportBound, card.getPassportNo());
log.info("[getPassportHome] 实名认证状态, uid: {}, 是否已实名: {}, 是否有身份证号: {}",
uid, isRealNameVerified, StringUtils.isNotBlank(idCard));
// 5. 查询用户购买过的演出ID列表 (用于判断演出徽章是否可认领)
final List<String> paidPerformanceIds = StringUtils.isNotBlank(idCard)
......@@ -198,7 +194,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
// 8. 组装全部上架徽章列表 (扁平结构,前端按 type 筛选展示)
List<AdamCaomeiPassportBadgeShelfItemVo> allBadges = published.stream()
.map(b -> toShelfItem(b, claimedMap, isPassportBound, paidPerformanceIds))
.map(b -> toShelfItem(b, claimedMap, paidPerformanceIds))
.collect(Collectors.toList());
home.setAllBadges(allBadges);
......@@ -206,7 +202,15 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
return ResponseDto.success(home);
}
private static AdamCaomeiPassportBadgeShelfItemVo toShelfItem(AdamCaomeiBadge b, Map<String, AdamCaomeiPassportUserBadgeDto> claimedMap, boolean isPassportBound, List<String> paidPerformanceIds) {
/**
* @param b 徽章信息
* @param claimedMap 用户已领取的徽章
* @param paidPerformanceIds 当前账号实名身份证号码购买的演出IDs
* @return
*/
private static AdamCaomeiPassportBadgeShelfItemVo toShelfItem(AdamCaomeiBadge b,
Map<String, AdamCaomeiPassportUserBadgeDto> claimedMap,
List<String> paidPerformanceIds) {
AdamCaomeiPassportBadgeShelfItemVo v = new AdamCaomeiPassportBadgeShelfItemVo();
v.setBadgeId(b.getBadgeId());
v.setName(StringUtils.defaultString(b.getName()));
......@@ -226,7 +230,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
if (!claimed) {
if (type == 1) {
// 护照纪念徽章:只要绑定了护照,就可认领(通常是绑定时漏发或后来新上架的)
v.setClaimable(isPassportBound);
v.setClaimable(true);
} else if (type == 2) {
// 演出纪念徽章:只要有对应演出的已支付购票记录,就可认领
v.setClaimable(paidPerformanceIds != null && paidPerformanceIds.contains(b.getPerformanceId()));
......
......@@ -91,7 +91,7 @@
10601=\u8BE5\u62A4\u7167\u5DF2\u4F5C\u5E9F
10602=\u8BE5\u62A4\u7167\u5DF2\u88AB\u5176\u4ED6\u8D26\u53F7\u7ED1\u5B9A
10603=\u60A8\u5DF2\u7ED1\u5B9A\u5176\u4ED6\u62A4\u7167\uFF0C\u65E0\u6CD5\u91CD\u590D\u7ED1\u5B9A
10604=\u62A4\u7167\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A
10604=\u672A\u7ED1\u5B9A\u62A4\u7167
10605=\u62A4\u7167\u7ED1\u5B9A\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
10606=\u8BE5\u62A4\u7167\u5DF2\u4E0E\u60A8\u7ED1\u5B9A\uFF0C\u65E0\u9700\u91CD\u590D\u64CD\u4F5C
10607=\u5FBD\u7AE0\u4E0D\u5B58\u5728\u6216\u672A\u4E0A\u67B6
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment