| 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.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; | 
|   | 
| @Slf4j | 
| @Service | 
| @RequiredArgsConstructor | 
| public class ApiMallAgentServiceImpl extends ServiceImpl<MallAgentRecordMapper, MallAgentRecord> 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); | 
|         } | 
|   | 
|         MallAgentRecord mallAgentRecordNew = MallAgentRecordConversion.INSTANCE.dtoToEntity(apiAgentApplyDto); | 
|         mallAgentRecordNew.setMemberId(memberId); | 
|         mallAgentRecordNew.setState(MallAgentRecord.APPLY_ING); | 
|         mallAgentRecordMapper.insert(mallAgentRecordNew); | 
|   | 
|         DataDictionaryCustom agentAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType() | 
|                 , DataDictionaryEnum.PRICE_AMOUNT.getCode()); | 
|         String agentAmount = agentAmountDic.getValue(); | 
|         BigDecimal bigDecimal = new BigDecimal(agentAmount); | 
|         return new FebsResponse().success().data(bigDecimal); | 
|     } | 
| } |