|
@@ -16,6 +16,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.xbill.DNS.dnssec.R;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -36,27 +37,32 @@ public class SchemeServiceImpl implements ISchemeService {
|
|
|
*/
|
|
|
@Override
|
|
|
public SchemeVo getCurrentMember() {
|
|
|
- List<SchemeVo> schemeVoList = schemeMapper.getCurrentMember();
|
|
|
+ SchemeVo scheme = schemeMapper.getCurrentMember();
|
|
|
|
|
|
// 有且只有一个会员卡套餐生效
|
|
|
- //TODO 上线需要更改
|
|
|
- AssertUtils.isUnique(schemeVoList, ErrorCode.SCHEME_NOT_UNIQUE);
|
|
|
- SchemeVo schemeVo = schemeVoList.get(0);
|
|
|
// 根据套餐查询会员卡
|
|
|
- List<MemberCardVo> memberCardVos = memberCardMapper.queryVoListBySchemeId(schemeVo.getId());
|
|
|
- // 获取列表中所有的会员卡id
|
|
|
- List<Long> memberCardIds = memberCardVos.stream().map(MemberCardVo::getId).toList();
|
|
|
-
|
|
|
- // 根据会员卡查询权益
|
|
|
- List<EquityVo> equityVos = equityMapper.queryVoByMemberCardIds(memberCardIds);
|
|
|
- // 将拿到的权益根据会员卡id分组
|
|
|
- Map<Long, List<EquityVo>> equityMap = equityVos.stream().collect(Collectors.groupingBy(EquityVo::getMemberCardId));
|
|
|
- // 将会员卡通过id和权益的会员卡id绑定
|
|
|
- memberCardVos.forEach(memberCardVo -> memberCardVo.setEquityList(equityMap.get(memberCardVo.getId())));
|
|
|
+ List<MemberCardVo> memberCardVos = memberCardMapper.queryVoListBySchemeId(scheme.getId());
|
|
|
+ // 让memberCardVos中根据memberId合并成新的List
|
|
|
+ List<List<MemberCardVo>> memberList = new ArrayList<>();
|
|
|
+ List<MemberCardVo> collect = new ArrayList<>();
|
|
|
+ //TODO : 添加立省金额
|
|
|
+ for (MemberCardVo memberCardVo : memberCardVos) {
|
|
|
+ // collect不为空并且memberCardId不一致时新建一个list
|
|
|
+ if (!collect.isEmpty() &&
|
|
|
+ !collect.get(0).getMemberCardId().equals(memberCardVo.getMemberCardId())) {
|
|
|
+ collect = new ArrayList<>();
|
|
|
+ }
|
|
|
+ // 对当前值进行处理
|
|
|
+ memberCardVo.setSaveMoney(memberCardVo.getPrice().subtract(memberCardVo.getStrikethroughPrice()));
|
|
|
+ collect.add(memberCardVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 通过会员卡id确定是否继续添加
|
|
|
|
|
|
// 将会员卡列表绑定到方案中
|
|
|
- schemeVo.setMemberCardList(memberCardVos);
|
|
|
- return schemeVo;
|
|
|
+ scheme.setMemberCardList(memberList);
|
|
|
+
|
|
|
+ return scheme;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -78,7 +84,7 @@ public class SchemeServiceImpl implements ISchemeService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<AiModelVo> queryModelLawList(Long modelId) {
|
|
|
+ public List<AiModelLawVo> queryModelLawList(Long modelId) {
|
|
|
|
|
|
return aiModelMapper.queryModelLawList(modelId);
|
|
|
}
|
|
@@ -92,6 +98,7 @@ public class SchemeServiceImpl implements ISchemeService {
|
|
|
@Override
|
|
|
public MemberCardVo queryCurrentMemberById(Long memberId) {
|
|
|
|
|
|
+ // 传入用户自己的值去
|
|
|
return schemeMapper.queryMemberCardByMemberId(SecurityUser.getUserId(), memberId);
|
|
|
}
|
|
|
|