package com.mzl.flower.service.menber.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.mzl.flower.config.exception.ValidationException;
|
import com.mzl.flower.config.security.SecurityUtils;
|
import com.mzl.flower.dto.request.menber.MemberGrowthRecordDTO;
|
import com.mzl.flower.dto.request.menber.TargetMemberDTO;
|
import com.mzl.flower.dto.request.menber.UserGrowthRecordDTO;
|
import com.mzl.flower.entity.menber.Member;
|
import com.mzl.flower.entity.menber.MemberGrowthRecord;
|
import com.mzl.flower.mapper.member.MemberGrowthRecordMapper;
|
import com.mzl.flower.mapper.member.MemberMapper;
|
import com.mzl.flower.service.menber.MemberGrowthRecordService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @author fanghaowei
|
* @version version2.0
|
* @className MemberGrowthRecordServiceImpl
|
* @date 2024/8/26
|
* @description 会员记录功能逻辑层
|
*/
|
@Service
|
@Transactional
|
@RequiredArgsConstructor
|
public class MemberGrowthRecordServiceImpl extends ServiceImpl<MemberGrowthRecordMapper, MemberGrowthRecord> implements MemberGrowthRecordService {
|
|
private final MemberGrowthRecordMapper memberGrowthRecordMapper;
|
|
private final MemberMapper memberMapper;
|
|
@Override
|
public void saveMemberGrowthRecord(MemberGrowthRecord memberGrowthRecord) {
|
memberGrowthRecord.setRecordDate(new Date());
|
memberGrowthRecordMapper.insert(memberGrowthRecord);
|
}
|
|
@Override
|
public void updateMemberGrowthRecord(MemberGrowthRecordDTO memberGrowthRecordDTO) {
|
MemberGrowthRecord memberGrowthRecord = memberGrowthRecordMapper.selectById(memberGrowthRecordDTO.getId());
|
if (memberGrowthRecord == null) {
|
throw new ValidationException("成长记录信息不存在");
|
}
|
BeanUtils.copyProperties(memberGrowthRecordDTO, memberGrowthRecord);
|
memberGrowthRecord.update(SecurityUtils.getUserId());
|
memberGrowthRecordMapper.updateById(memberGrowthRecord);
|
}
|
|
@Override
|
public void deleteMemberGrowthRecord(String id) {
|
MemberGrowthRecord memberGrowthRecord = memberGrowthRecordMapper.selectById(id);
|
if (memberGrowthRecord == null) {
|
throw new ValidationException("成长记录信息不存在");
|
}
|
memberGrowthRecordMapper.deleteById(id);
|
}
|
|
@Override
|
public UserGrowthRecordDTO getInfoByUserId(String userId) {
|
UserGrowthRecordDTO userGrowthRecordDTO = new UserGrowthRecordDTO();
|
List<TargetMemberDTO> targetMemberDTOList = new ArrayList<>();
|
//查询当前人员的成长值 最少是0
|
Integer sumGrowth = memberGrowthRecordMapper.getSumGrowthByUsertId(userId);
|
userGrowthRecordDTO.setCurrentGrowthValue(sumGrowth);
|
//查询当前会员等级
|
Member member = memberMapper.getMemberByGrowthValue(sumGrowth);
|
userGrowthRecordDTO.setCurrentMemberLevel(member.getName());
|
//查询比当前等级高的会员等级信息
|
List<Member> memberList = memberMapper.getgtMembersByGrowthValue(sumGrowth);
|
if (!CollectionUtils.isEmpty(memberList)) {
|
memberList.forEach(m -> {
|
TargetMemberDTO targetMemberDTO = new TargetMemberDTO();
|
targetMemberDTO.setTargetMemberLevel(m.getName());
|
targetMemberDTO.setTargetStartPoint(m.getStartPoint());
|
targetMemberDTO.setTargetGap(m.getStartPoint() - sumGrowth);
|
targetMemberDTO.setTargetDiscountAmount(m.getDiscountAmount());
|
targetMemberDTOList.add(targetMemberDTO);
|
});
|
}
|
userGrowthRecordDTO.setTargetMemberInfos(targetMemberDTOList);
|
|
return userGrowthRecordDTO;
|
}
|
}
|