|
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.beust.jcommander.internal.Lists;
|
|
|
import com.microsvc.toolkit.common.webportal.exception.BizException;
|
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.MemberPriceSettingsDao;
|
|
@@ -248,9 +249,12 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<VipCardRecord> getEfficientVipRecord(Long userId, ClientEnum clientEnum) {
|
|
|
+ public List<VipCardRecord> getEfficientVipRecord(List<Long> userId, ClientEnum clientEnum) {
|
|
|
+ if (CollectionUtils.isEmpty(userId)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
return this.lambdaQuery()
|
|
|
- .eq(VipCardRecord::getUserId, userId)
|
|
|
+ .in(VipCardRecord::getUserId, userId)
|
|
|
.eq(VipCardRecord::getEfficientFlag, true)
|
|
|
.eq(VipCardRecord::getClientType, clientEnum.name())
|
|
|
.and(wrapper -> wrapper
|
|
@@ -272,7 +276,7 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
|
public VipCardRecordWrapper.UserVip UserVipInfo(Long userId, ClientEnum clientEnum) {
|
|
|
// 获取生效中的会员记录
|
|
|
VipCardRecordWrapper.UserVip userVip = new VipCardRecordWrapper.UserVip();
|
|
|
- List<VipCardRecord> vipCardRecords = this.getEfficientVipRecord(userId,clientEnum);
|
|
|
+ List<VipCardRecord> vipCardRecords = this.getEfficientVipRecord(Lists.newArrayList(userId),clientEnum);
|
|
|
if (CollectionUtils.isEmpty(vipCardRecords)) {
|
|
|
userVip.setVipType(EVipType.NOT_VIP);
|
|
|
// 判断有没有过期的会员类型
|
|
@@ -371,6 +375,28 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Map<Long, EVipType> getVipTypeMapByUserIds(List<Long> studentIds, ClientEnum client) {
|
|
|
+
|
|
|
+ List<VipCardRecord> vipCardRecords = this.getEfficientVipRecord(studentIds,client);
|
|
|
+
|
|
|
+ // 根据用户ID分组
|
|
|
+ Map<Long, List<VipCardRecord>> vipCardRecordMap = vipCardRecords.stream().collect(Collectors.groupingBy(VipCardRecord::getUserId));
|
|
|
+ Map<Long, EVipType> vipTypeMap = new HashMap<>();
|
|
|
+ vipCardRecordMap.forEach((k, v) -> {
|
|
|
+ List<VipCardRecord> svipList = v.stream().filter(o -> o.getVipType() == EVipType.SVIP).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(svipList)) {
|
|
|
+ vipTypeMap.put(k, EVipType.SVIP);
|
|
|
+ } else {
|
|
|
+ List<VipCardRecord> vipList = v.stream().filter(o -> o.getVipType() == EVipType.VIP).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(vipList)) {
|
|
|
+ vipTypeMap.put(k, EVipType.VIP);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return vipTypeMap;
|
|
|
+ }
|
|
|
+
|
|
|
// 会员添加
|
|
|
private void addVip(VipCardRecordWrapper.AddVipCardRecord addVipCardRecord) {
|
|
|
List<VipCardRecord> vipCardRecordList = this.lambdaQuery()
|