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.business.screenaccount.ScreenAccountMapper;
|
import com.estate.expert.admin.domain.business.screenaccount.ScreenAccountRepository;
|
import com.estate.expert.admin.domain.common.EntityBase;
|
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.domain.user.User;
|
import com.estate.expert.admin.enums.BizResultCode;
|
import com.estate.expert.admin.service.ScreenAccountService;
|
import com.estate.expert.admin.utils.MD5Utils;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 大屏账号服务实现
|
*/
|
@Slf4j
|
@Service
|
public class ScreenAccountServiceImpl extends ServiceImpl<ScreenAccountMybatisMapper, ScreenAccount> implements ScreenAccountService {
|
|
@Resource
|
private ScreenAccountRepository screenAccountRepository;
|
|
@Resource
|
private ClientRepository clientRepository;
|
|
@Resource
|
private ProjectRepository projectRepository;
|
|
@Resource
|
private ScreenAccountMybatisMapper screenAccountMybatisMapper;
|
|
@Override
|
public Page<ScreenAccountDto> list(String name, String keyword, Integer type,PageReq pageReq) {
|
List<Integer> clientListIds =null;
|
List<Integer> 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<ScreenAccountDto> page = new Page<>(pageReq.getPage(), pageReq.getSize());
|
List<ScreenAccountDto> list = screenAccountMybatisMapper.list(page, name,keyword, type,clientListIds, projectIds);
|
if(!list.isEmpty()){
|
for (ScreenAccountDto screenAccountDto : list) {
|
if(screenAccountDto.getType()==1){
|
String clientProjectIds = screenAccountDto.getClientProjectIds();
|
List<String> clientNameList = screenAccountMybatisMapper.getClientNameList(List.of(clientProjectIds.split(",")));
|
screenAccountDto.setClientOrProject(String.join(",", clientNameList));
|
}
|
if(screenAccountDto.getType()==2){
|
String clientProjectIds = screenAccountDto.getClientProjectIds();
|
List<String> projectNameList = screenAccountMybatisMapper.getProjectNameList(List.of(clientProjectIds.split(",")));
|
screenAccountDto.setClientOrProject(String.join(",", projectNameList));
|
}
|
}
|
}
|
page.setRecords(list);
|
return page;
|
}
|
|
|
@Override
|
public boolean existsByAccount(String account) {
|
List<ScreenAccount> screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper<ScreenAccount>().eq(ScreenAccount::getAccount, account).eq(EntityBase::isDeleted, false));
|
return !screenAccounts.isEmpty();
|
}
|
|
@Override
|
public boolean existsByAccountAndIdNot(String account, Integer id) {
|
List<ScreenAccount> screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper<ScreenAccount>().eq(ScreenAccount::getAccount, account).ne(EntityBase::getId,id).eq(EntityBase::isDeleted, 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);
|
// }
|
}
|