package cc.mrbird.febs.ai.service.impl; import cc.mrbird.febs.ai.entity.AiMemberPoint; import cc.mrbird.febs.ai.mapper.AiMemberPointMapper; import cc.mrbird.febs.ai.req.memberPoint.ApiMemberPointDto; import cc.mrbird.febs.ai.service.AiMemberPointService; import cc.mrbird.febs.ai.utils.UUID; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.utils.LoginUserUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class AiMemberPointServiceImpl extends ServiceImpl implements AiMemberPointService { private final AiMemberPointMapper aiMemberPointMapper; @Override public AiMemberPoint getById(String id) { return aiMemberPointMapper.selectById( id); } @Override public AiMemberPoint add(String memberUuid, String productPointId, String companyId, Integer totalTime) { AiMemberPoint aiMemberPoint = new AiMemberPoint(); aiMemberPoint.setId(UUID.getSimpleUUIDString()); aiMemberPoint.setCreatedTime(new Date()); aiMemberPoint.setMemberId(memberUuid); aiMemberPoint.setProductPointId(productPointId); aiMemberPoint.setCompanyId(companyId); aiMemberPoint.setTotalTime(totalTime); aiMemberPointMapper.insert(aiMemberPoint); return aiMemberPoint; } @Override public FebsResponse saveTime(ApiMemberPointDto dto) { String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); String companyId = LoginUserUtil.getLoginUser().getCompanyId(); String productPointId = dto.getProductPointId(); Integer totalTime = dto.getTotalTime(); AiMemberPoint aiMemberPoint = this.getById(productPointId); if (ObjectUtil.isNull(aiMemberPoint)){ this.add(memberUuid, productPointId, companyId, totalTime); }else{ Integer oldTotalTime = aiMemberPoint.getTotalTime(); aiMemberPointMapper.update( null, Wrappers.lambdaUpdate(AiMemberPoint.class) .set(AiMemberPoint::getTotalTime,oldTotalTime + totalTime) .set(AiMemberPoint::getUpdatedTime,new Date()) .eq(AiMemberPoint::getId,aiMemberPoint.getId()) ); } return new FebsResponse().success(); } @Override public List getListByCompanyId(String companyId) { return aiMemberPointMapper.selectList( Wrappers.lambdaQuery(AiMemberPoint.class) .eq(AiMemberPoint::getCompanyId, companyId) ); } @Override public List getListByCompanyIdAndMemberUuid(String companyId, String memberUuid) { return aiMemberPointMapper.selectList( Wrappers.lambdaQuery(AiMemberPoint.class) .eq(AiMemberPoint::getCompanyId, companyId) .eq(AiMemberPoint::getMemberId, memberUuid) ); } }