package net.mingsoft.tf.biz.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.mingsoft.base.biz.impl.BaseBizImpl;
import net.mingsoft.tf.biz.IExhibitorBiz;
import net.mingsoft.tf.biz.IPeopleExhibitorBiz;
import net.mingsoft.tf.dao.IPeopleExhibitorDao;
import net.mingsoft.tf.entity.ExhibitorEntity;
import net.mingsoft.tf.entity.PeopleExhibitorEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* 用户关联展商业务持久化层
*
* @author 阿白
* 创建日期:2025年10月23日 下午6:41:34
* 历史修订:
*/
@Service
public class PeopleExhibitorBizImpl extends BaseBizImpl implements IPeopleExhibitorBiz {
@Autowired
private IPeopleExhibitorDao peopleExhibitorDao;
@Autowired
private IExhibitorBiz exhibitorBiz;
@Override
public IPeopleExhibitorDao getDao() {
return peopleExhibitorDao;
}
@Override
public void join(String user, String code) {
Optional.ofNullable(code)
.filter(StrUtil::isNotBlank)
.map(exhibitorBiz::queryByInvitationCode)
.map(ExhibitorEntity::getExhibitorUser)
// 稳一手,自己不能邀请自己
.filter(exhibitorUser -> !StrUtil.equals(exhibitorUser, user))
// 判断是否已经邀请过
.filter(exhibitorUser -> peopleExhibitorDao.selectOne(new LambdaQueryWrapper<>(PeopleExhibitorEntity.class)
.eq(PeopleExhibitorEntity::getPeople, user)
.eq(PeopleExhibitorEntity::getExhibitor, exhibitorUser)) == null
)
.map(exhibitorUser -> {
PeopleExhibitorEntity entity = new PeopleExhibitorEntity();
entity.setExhibitor(exhibitorUser);
entity.setPeople(user);
entity.setCode(code);
return entity;
})
.ifPresent(this::save);
}
}