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<AiMemberPointMapper, AiMemberPoint> 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<AiMemberPoint> getListByCompanyId(String companyId) {
|
return aiMemberPointMapper.selectList(
|
Wrappers.lambdaQuery(AiMemberPoint.class)
|
.eq(AiMemberPoint::getCompanyId, companyId)
|
);
|
}
|
|
@Override
|
public List<AiMemberPoint> getListByCompanyIdAndMemberUuid(String companyId, String memberUuid) {
|
return aiMemberPointMapper.selectList(
|
Wrappers.lambdaQuery(AiMemberPoint.class)
|
.eq(AiMemberPoint::getCompanyId, companyId)
|
.eq(AiMemberPoint::getMemberId, memberUuid)
|
);
|
}
|
}
|