package com.ruoyi.member.service.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.common.core.utils.StringUtils;
|
import com.ruoyi.common.core.utils.page.BeanUtils;
|
import com.ruoyi.member.controller.management.dto.MgtMemberLevelDTO;
|
import com.ruoyi.member.controller.management.vo.MgtMemberLevelVO;
|
import com.ruoyi.member.domain.MemberLevel;
|
import com.ruoyi.member.mapper.MemberLevelMapper;
|
import com.ruoyi.member.service.IMemberLevelService;
|
import com.ruoyi.member.service.IMemberService;
|
import com.ruoyi.member.service.async.AsyncMethodService;
|
import com.ruoyi.system.api.domain.Member;
|
import java.util.List;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* <p>
|
* 会员等级表 服务实现类
|
* </p>
|
*
|
* @author mitao
|
* @since 2024-05-16
|
*/
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class MemberLevelServiceImpl extends ServiceImpl<MemberLevelMapper, MemberLevel> implements IMemberLevelService {
|
|
private final IMemberService memberService;
|
private final AsyncMethodService asyncMethodService;
|
/**
|
* 获取会员等级管理列表
|
*
|
* @return List<MgtMemberLevelVO>
|
*/
|
@Override
|
public List<MgtMemberLevelVO> getMemberLevelList() {
|
List<MemberLevel> list = this.lambdaQuery().orderByAsc(MemberLevel::getLevel).list();
|
List<MgtMemberLevelVO> mgtMemberLevelVOS = BeanUtils.copyList(list, MgtMemberLevelVO.class);
|
if (StringUtils.isNotEmpty(mgtMemberLevelVOS)) {
|
for (MgtMemberLevelVO vo : mgtMemberLevelVOS) {
|
long count = memberService.count(
|
Wrappers.<Member>lambdaQuery().eq(Member::getLevel, vo.getLevel()));
|
vo.setCurrentNumber((int) count);
|
}
|
}
|
return mgtMemberLevelVOS;
|
}
|
|
/**
|
* 保存会员等级配置
|
*
|
* @param memberLevelDTOList 会员等级配置列表
|
*/
|
@Override
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
public void saveOrUpdateMemberLevel(List<MgtMemberLevelDTO> memberLevelDTOList) {
|
List<MemberLevel> memberLevels = BeanUtils.copyList(memberLevelDTOList, MemberLevel.class);
|
this.saveOrUpdateBatch(memberLevels);
|
asyncMethodService.handleMemberLevel(memberLevels);
|
}
|
}
|