package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.mall.conversion.MallAgentRecordConversion; import cc.mrbird.febs.mall.conversion.MallGoodsConversion; import cc.mrbird.febs.mall.dto.ApiAgentApplyDto; import cc.mrbird.febs.mall.entity.DataDictionaryCustom; import cc.mrbird.febs.mall.entity.MallAgentRecord; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.mall.mapper.MallAgentRecordMapper; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.service.IApiMallAgentService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class ApiMallAgentServiceImpl extends ServiceImpl implements IApiMallAgentService { private final MallAgentRecordMapper mallAgentRecordMapper; private final MallMemberMapper mallMemberMapper; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @Override public FebsResponse agentApply(ApiAgentApplyDto apiAgentApplyDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); //判断用户当前的级别 MallMember mallMember = mallMemberMapper.selectById(memberId); if(!AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){ return new FebsResponse().fail().message("用户已无法申请"); } //判断用户是否正在申请 MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING); if(ObjectUtil.isNotEmpty(mallAgentRecord)){ mallAgentRecordMapper.deleteByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING); } // String city = apiAgentApplyDto.getCity(); // List cityMallAgents = mallAgentRecordMapper.selectByCity(city); // if(CollUtil.isEmpty(cityMallAgents)){ // return new FebsResponse().fail().message("当前城市已经无法申请"); // } DataDictionaryCustom agentAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType() , DataDictionaryEnum.PRICE_AMOUNT.getCode()); String agentAmount = agentAmountDic.getValue(); BigDecimal bigDecimal = new BigDecimal(agentAmount); MallAgentRecord mallAgentRecordNew = MallAgentRecordConversion.INSTANCE.dtoToEntity(apiAgentApplyDto); mallAgentRecordNew.setMemberId(memberId); mallAgentRecordNew.setState(MallAgentRecord.APPLY_ING); if(apiAgentApplyDto.getType().equals(AgentLevelEnum.LEVEL_THREE.getName())){ mallAgentRecordNew.setAmount(bigDecimal); mallAgentRecordNew.setAgentLevel(AgentLevelEnum.LEVEL_THREE.getName()); } mallAgentRecordMapper.insert(mallAgentRecordNew); return new FebsResponse().success().data(bigDecimal); } }