package com.estate.expert.admin.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.estate.expert.admin.domain.business.client.ClientRepository; import com.estate.expert.admin.domain.business.screenaccount.ScreenAccount; import com.estate.expert.admin.domain.business.screenaccount.ScreenAccountDto; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.project.ProjectRepository; import com.estate.expert.admin.domain.repository.ScreenAccountMybatisMapper; import com.estate.expert.admin.service.ScreenAccountService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * 大屏账号服务实现 */ @Slf4j @Service public class ScreenAccountServiceImpl extends ServiceImpl implements ScreenAccountService { @Resource private ClientRepository clientRepository; @Resource private ProjectRepository projectRepository; @Resource private ScreenAccountMybatisMapper screenAccountMybatisMapper; @Override public Page list(String name, String keyword, Integer type,PageReq pageReq) { List clientListIds =null; List projectIds =null; if(keyword!=null && !keyword.isEmpty()){ // 查出client表name匹配的数据 clientListIds = clientRepository.listClientIds(keyword); if(clientListIds.isEmpty()){ clientListIds.add(-1); } // 查出项目 projectIds = projectRepository.listProjectIds(keyword); if(projectIds.isEmpty()){ projectIds.add(-1); } } Page page = new Page<>(pageReq.getPage(), pageReq.getSize()); List list = screenAccountMybatisMapper.list(page, name,keyword, type,clientListIds, projectIds); // Page list = screenAccountMybatisMapper.listPage(page, name,keyword, type,clientListIds, projectIds); if(!list.isEmpty()){ for (ScreenAccountDto screenAccountDto : list) { if(screenAccountDto.getType()==1){ String clientProjectIds = screenAccountDto.getClientProjectIds(); List clientNameList = screenAccountMybatisMapper.getClientNameList(List.of(clientProjectIds.split(","))); screenAccountDto.setClientOrProject(String.join(",", clientNameList)); } if(screenAccountDto.getType()==2){ String clientProjectIds = screenAccountDto.getClientProjectIds(); List projectNameList = screenAccountMybatisMapper.getProjectNameList(List.of(clientProjectIds.split(","))); screenAccountDto.setClientOrProject(String.join(",", projectNameList)); } } } page.setRecords(list); return page; } @Override public boolean existsByAccount(String account) { List screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper().eq(ScreenAccount::getAccount, account).eq(ScreenAccount::getDeleted, false)); return !screenAccounts.isEmpty(); } @Override public boolean existsByAccountAndIdNot(String account, Integer id) { List screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper().eq(ScreenAccount::getAccount, account).ne(ScreenAccount::getId,id).eq(ScreenAccount::getDeleted, false)); return !screenAccounts.isEmpty(); } @Override public ScreenAccount getUserFromMobile(String mobile) { return this.baseMapper.getUserFromMobile(mobile); } // @Override // public ScreenAccount add(User creator, ScreenAccount entity) { // // 检查账号名称是否已存在 // BizResultCode.ENTITY_NAME_ALREADY_EXISTS.check(entityRepository.existsByName(entity.getName())); // // 检查登录账号是否已存在 // BizResultCode.ACCOUNT_ALREADY_EXISTS.check(screenAccountRepository.existsByAccount(entity.getAccount())); // // 密码加密 // entity.setPassword(MD5Utils.encrypt(entity.getPassword())); // entity.setId(null); // entity.setCreator(creator); // entity.setCreateTime(LocalDateTime.now()); // entity.setUpdateTime(LocalDateTime.now()); // return save(entity); // } // // @Override // public ScreenAccount edit(ScreenAccount entity) { // // 检查账号名称是否已存在 // var otherEntity = entityRepository.findByName(entity.getName()); // BizResultCode.ENTITY_NAME_ALREADY_EXISTS.check(otherEntity != null && !otherEntity.getId().equals(entity.getId())); // // 检查登录账号是否已存在 // var otherAccount = screenAccountRepository.findByAccount(entity.getAccount()); // BizResultCode.ACCOUNT_ALREADY_EXISTS.check(otherAccount != null && !otherAccount.getId().equals(entity.getId())); // // 如果密码不为空,说明要修改密码,进行加密 // if (entity.getPassword() != null && !entity.getPassword().equals(get(entity.getId()).getPassword())) { // entity.setPassword(MD5Utils.encrypt(entity.getPassword())); // } else { // // 否则保持原密码 // entity.setPassword(get(entity.getId()).getPassword()); // } // entity.setUpdateTime(LocalDateTime.now()); // return save(entity); // } }