package cn.iocoder.yudao.module.staff.service.impl;

import cn.hutool.core.util.RandomUtil;
import cn.iocoder.yudao.common.BaseConstants;
import cn.iocoder.yudao.module.staff.entity.UniqueCode;
import cn.iocoder.yudao.module.staff.mapper.UniqueCodeMapper;
import cn.iocoder.yudao.module.staff.service.UniqueCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * 唯一推广码使用记录表 服务实现类
 * @author 小李
 * @date 9:58 2024/8/8
**/
@Service
public class UniqueCodeServiceImpl extends ServiceImpl<UniqueCodeMapper, UniqueCode> implements UniqueCodeService {

    /**
     * 生成唯一推广码
     * @author 小李
     * @date 9:59 2024/8/8
     * @return 可使用推广码
     **/
    @Override
    public String createUniqueCode(){
        int count = 0;
        while (true){
            if (count >= BaseConstants.UNIQUE_CODE_LEN) return null;
            String result = RandomUtil.randomStringUpper(BaseConstants.UNIQUE_CODE_LEN);
            UniqueCode uniqueCode = new UniqueCode();
            uniqueCode.setUniqueCode(result);
            if (baseMapper.insert(uniqueCode) > 0){
                return result;
            }
            count++;
        }
    }
}
