package net.mingsoft.tf.biz.impl;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.mingsoft.base.biz.impl.BaseBizImpl;
import net.mingsoft.base.dao.IBaseDao;
import net.mingsoft.tf.biz.IExhibitorBiz;
import net.mingsoft.tf.dao.IExhibitorDao;
import net.mingsoft.tf.entity.ExhibitorEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.function.Function;
/**
* 展商管理持久化层
*
* @author 阿白
* 创建日期:2025年10月23日 下午6:41:34
* 历史修订:
*/
@Service("tfexhibitorBizImpl")
public class ExhibitorBizImpl extends BaseBizImpl implements IExhibitorBiz {
@Autowired
private IExhibitorDao exhibitorDao;
@Override
protected IBaseDao getDao() {
return exhibitorDao;
}
@Override
public ExhibitorEntity query(String user, String exhibition) {
return exhibitorDao.selectOne(new LambdaQueryWrapper<>(ExhibitorEntity.class)
.eq(ExhibitorEntity::getExhibitorUser, user)
.eq(ExhibitorEntity::getExhibitorActivities, exhibition)
);
}
@Override
public ExhibitorEntity queryByBooth(String exhibition, String booth) {
return exhibitorDao.selectOne(new LambdaQueryWrapper<>(ExhibitorEntity.class)
.eq(ExhibitorEntity::getExhibitorActivities, exhibition)
.eq(ExhibitorEntity::getExhibitorBooth, booth)
);
}
/**
* 创建邀请码
*/
public static String createInvitationCode(Function check) {
String code;
for (int i = 0; i <= 5; i++) {
code = RandomUtil.randomString(9);
if (check.apply(code) == null) {
return code;
}
}
throw new RuntimeException("无法生成邀请码");
}
@Override
public ExhibitorEntity queryByInvitationCode(String invitationCode) {
return exhibitorDao.selectOne(new LambdaQueryWrapper<>(ExhibitorEntity.class).eq(ExhibitorEntity::getExhibitorCode, invitationCode));
}
@Override
public List queryByName(String name) {
return exhibitorDao.selectList(new LambdaQueryWrapper<>(ExhibitorEntity.class)
.like(ExhibitorEntity::getExhibitorName, name)
.isNull(ExhibitorEntity::getExhibitorUser)
.isNull(ExhibitorEntity::getExhibitorActivities)
);
}
}