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<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);
|
}
|
// String city = apiAgentApplyDto.getCity();
|
// List<MallAgentRecord> 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);
|
}
|
|
}
|