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

Commit 2ee8d88c authored by wangyifan's avatar wangyifan

草莓护照v1.1- 避免重复创建新类

parent d3aeaf7f
...@@ -9,7 +9,7 @@ import lombok.Data; ...@@ -9,7 +9,7 @@ import lombok.Data;
import java.util.Date; import java.util.Date;
@Data @Data
@ApiModel("草莓护照-已认领徽章(墙)") @ApiModel("草莓护照-用户已获徽章(徽章墙、签证页卡片等共用)")
public class AdamCaomeiPassportUserClaimedBadgeVo { public class AdamCaomeiPassportUserClaimedBadgeVo {
@ApiModelProperty("徽章ID") @ApiModelProperty("徽章ID")
...@@ -30,7 +30,10 @@ public class AdamCaomeiPassportUserClaimedBadgeVo { ...@@ -30,7 +30,10 @@ public class AdamCaomeiPassportUserClaimedBadgeVo {
@ApiModelProperty("类型 1护照类型徽章 2演出类型徽章 3特殊徽章 4签证页") @ApiModelProperty("类型 1护照类型徽章 2演出类型徽章 3特殊徽章 4签证页")
private Integer type; private Integer type;
@ApiModelProperty("关联演出名称(仅 type=2 有值)") @ApiModelProperty("关联音乐节/演出ID(type=2、type=4 有值)")
private String performanceId;
@ApiModelProperty("关联音乐节/演出名称(type=2、type=4 有值)")
private String performanceName; private String performanceName;
@ApiModelProperty("获得时间") @ApiModelProperty("获得时间")
......
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 草莓护照-签证页卡片(type=4,独立展示,不出现在首页徽章货架/徽章墙)
*/
@Data
@ApiModel("草莓护照-签证页卡片")
public class AdamCaomeiVisaCardVo {
@ApiModelProperty("签证页配置ID(徽章ID)")
private String badgeId;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("副标题")
private String subTitle;
@ApiModelProperty("图标")
private String icon;
@ApiModelProperty("分享文案")
private String shareText;
@ApiModelProperty("关联音乐节/演出ID")
private String performanceId;
@ApiModelProperty("关联音乐节/演出名称")
private String performanceName;
@ApiModelProperty("是否已获得(本接口仅从缓存/库读取已发放记录,恒为 true)")
private boolean claimed;
@ApiModelProperty("获得时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private Date claimedAt;
}
...@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service; ...@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportHomeVo; import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportHomeVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportUserClaimedBadgeVo; import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportUserClaimedBadgeVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiVisaCardVo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import java.util.List; import java.util.List;
...@@ -26,7 +25,7 @@ public interface IAdamCaomeiPassportUserService { ...@@ -26,7 +25,7 @@ public interface IAdamCaomeiPassportUserService {
* 签证页卡片列表(type=4):仅从用户已获徽章缓存/库中筛选 type=4。 * 签证页卡片列表(type=4):仅从用户已获徽章缓存/库中筛选 type=4。
* 需用户先访问护照首页 {@link #getPassportHome()} 触发静默发放后,本接口才有数据。 * 需用户先访问护照首页 {@link #getPassportHome()} 触发静默发放后,本接口才有数据。
*/ */
ResponseDto<List<AdamCaomeiVisaCardVo>> listVisaCards(); ResponseDto<List<AdamCaomeiPassportUserClaimedBadgeVo>> listVisaCards();
/** /**
* 校验当前登录用户是否已绑定护照 * 校验当前登录用户是否已绑定护照
......
...@@ -5,7 +5,6 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; ...@@ -5,7 +5,6 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.service.adam.dto.param.AdamCaomeiPassportNoParam; import com.liquidnet.service.adam.dto.param.AdamCaomeiPassportNoParam;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportHomeVo; import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportHomeVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportUserClaimedBadgeVo; import com.liquidnet.service.adam.dto.vo.AdamCaomeiPassportUserClaimedBadgeVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiVisaCardVo;
import com.liquidnet.service.adam.service.IAdamCaomeiPassportUserService; import com.liquidnet.service.adam.service.IAdamCaomeiPassportUserService;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -46,7 +45,7 @@ public class AdamCaomeiPassportUserController { ...@@ -46,7 +45,7 @@ public class AdamCaomeiPassportUserController {
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
@ApiOperation("签证页卡片列表:仅从用户已获徽章中筛选 type=4;须先访问护照首页 home 完成静默发放后再查看") @ApiOperation("签证页卡片列表:仅从用户已获徽章中筛选 type=4;须先访问护照首页 home 完成静默发放后再查看")
@GetMapping("visa/list") @GetMapping("visa/list")
public ResponseDto<List<AdamCaomeiVisaCardVo>> visaList() { public ResponseDto<List<AdamCaomeiPassportUserClaimedBadgeVo>> visaList() {
return adamCaomeiPassportUserService.listVisaCards(); return adamCaomeiPassportUserService.listVisaCards();
} }
......
...@@ -255,7 +255,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse ...@@ -255,7 +255,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
} }
@Override @Override
public ResponseDto<List<AdamCaomeiVisaCardVo>> listVisaCards() { public ResponseDto<List<AdamCaomeiPassportUserClaimedBadgeVo>> listVisaCards() {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
AdamCaomeiPassport bound = findBoundPassportForUser(uid); AdamCaomeiPassport bound = findBoundPassportForUser(uid);
if (bound == null) { if (bound == null) {
...@@ -283,10 +283,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse ...@@ -283,10 +283,7 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
.collect(Collectors.toList()) .collect(Collectors.toList())
); );
List<AdamCaomeiVisaCardVo> cards = visaRows.stream() return ResponseDto.success(toClaimedBadgeVos(visaRows, performanceTitleById));
.map(r -> toVisaCardVoFromUserBadge(r, performanceTitleById))
.collect(Collectors.toList());
return ResponseDto.success(cards);
} }
@Override @Override
...@@ -369,10 +366,13 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse ...@@ -369,10 +366,13 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
v.setIcon(StringUtils.defaultString(r.getIcon())); v.setIcon(StringUtils.defaultString(r.getIcon()));
v.setShareText(StringUtils.defaultString(r.getShareText())); v.setShareText(StringUtils.defaultString(r.getShareText()));
v.setType(r.getType()); v.setType(r.getType());
if (r.getType() != null && r.getType() == 2 && StringUtils.isNotBlank(r.getPerformanceId())) { String perfId = StringUtils.trimToEmpty(r.getPerformanceId());
String title = performanceTitleById != null ? performanceTitleById.get(r.getPerformanceId()) : null; if (needsPerformanceFields(r.getType()) && StringUtils.isNotBlank(perfId)) {
v.setPerformanceName(StringUtils.isNotBlank(title) ? title : r.getPerformanceId()); v.setPerformanceId(perfId);
String title = performanceTitleById != null ? performanceTitleById.get(perfId) : null;
v.setPerformanceName(StringUtils.isNotBlank(title) ? title : perfId);
} else { } else {
v.setPerformanceId("");
v.setPerformanceName(""); v.setPerformanceName("");
} }
v.setClaimedAt(r.getClaimedAt()); v.setClaimedAt(r.getClaimedAt());
...@@ -448,26 +448,6 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse ...@@ -448,26 +448,6 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
return map; return map;
} }
/**
* 将用户已获徽章 DTO 转为签证页卡片 VO(仅已发放记录调用)。
*/
private static AdamCaomeiVisaCardVo toVisaCardVoFromUserBadge(AdamCaomeiPassportUserBadgeDto r,
Map<String, String> performanceTitleById) {
AdamCaomeiVisaCardVo vo = new AdamCaomeiVisaCardVo();
vo.setBadgeId(r.getBadgeId());
vo.setName(StringUtils.defaultString(r.getBadgeName()));
vo.setSubTitle(StringUtils.defaultString(r.getSubTitle()));
vo.setIcon(StringUtils.defaultString(r.getIcon()));
vo.setShareText(StringUtils.defaultString(r.getShareText()));
String perfId = StringUtils.trimToEmpty(r.getPerformanceId());
vo.setPerformanceId(perfId);
String title = performanceTitleById != null ? performanceTitleById.get(perfId) : null;
vo.setPerformanceName(StringUtils.isNotBlank(title) ? title : perfId);
vo.setClaimed(true);
vo.setClaimedAt(r.getClaimedAt());
return vo;
}
/** /**
* home 末尾:对已上架 type=4、用户已购对应场次且尚未获得的签证页执行静默发放。 * home 末尾:对已上架 type=4、用户已购对应场次且尚未获得的签证页执行静默发放。
* *
...@@ -529,6 +509,11 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse ...@@ -529,6 +509,11 @@ public class AdamCaomeiPassportUserServiceImpl implements IAdamCaomeiPassportUse
return true; return true;
} }
/** type=2 演出纪念、type=4 签证页需展示关联场次 */
private static boolean needsPerformanceFields(Integer type) {
return type != null && (type == 2 || type == BADGE_TYPE_VISA);
}
/** 首页徽章货架/墙:排除签证页配置 */ /** 首页徽章货架/墙:排除签证页配置 */
private static List<AdamCaomeiBadge> filterShelfPublished(List<AdamCaomeiBadge> published) { private static List<AdamCaomeiBadge> filterShelfPublished(List<AdamCaomeiBadge> published) {
return published.stream() return published.stream()
......
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