package com.fdkankan.agent.service.impl; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.agent.common.PageInfo; import com.fdkankan.agent.common.util.DateUtils; import com.fdkankan.agent.config.AgentConfig; import com.fdkankan.agent.entity.AgentAuthorizeModeling; import com.fdkankan.agent.entity.AgentNew; import com.fdkankan.agent.entity.IncrementUseType; import com.fdkankan.agent.entity.User; import com.fdkankan.agent.mapper.IAgentAuthorizeModelingMapper; import com.fdkankan.agent.request.AuthorizeParam; import com.fdkankan.agent.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.common.util.DataUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author * @since 2025-03-17 */ @Service public class AgentAuthorizeModelingServiceImpl extends ServiceImpl implements IAgentAuthorizeModelingService { @Autowired IUserService userService; @Autowired IAgentNewService agentNewService; @Autowired IIncrementUseTypeService iIncrementUseTypeService; @Override public Object pageList(AuthorizeParam param) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if(StringUtils.isNotBlank(param.getCustomerName())){ wrapper.like(AgentAuthorizeModeling::getCustomerName,param.getCustomerName()); } if(param.getCustomerType() != null){ wrapper.eq(AgentAuthorizeModeling::getCustomerType,param.getCustomerType()); } if(param.getUseType() != null){ wrapper.eq(AgentAuthorizeModeling::getUseType,param.getUseType()); } if(StringUtils.isNotBlank(param.getAuthorizeKey())){ wrapper.like(AgentAuthorizeModeling::getAuthorizeKey,param.getAuthorizeKey()); } wrapper.and(e -> e.eq(AgentAuthorizeModeling::getCreateAgentId,param.getAgentId()) .or() .eq(AgentAuthorizeModeling::getAgentId,param.getAgentId())); wrapper.orderByDesc(AgentAuthorizeModeling::getId); Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper); List sysIds = page.getRecords().stream().map(AgentAuthorizeModeling::getAgentId).collect(Collectors.toList()); HashMap userMap = agentNewService.getMapByIds(sysIds); HashMap typeMap = iIncrementUseTypeService.getTypeMap(); for (AgentAuthorizeModeling record : page.getRecords()) { if(userMap.get(record.getAgentId())!=null){ record.setAgentName(userMap.get(record.getAgentId()).getNickName()); } if(typeMap.get(record.getUseType()) !=null){ record.setUseTypeStr(typeMap.get(record.getUseType()).getName()); } } return PageInfo.PageInfo(page); } @Override public Object addOrUpdate(AgentAuthorizeModeling param) { this.saveOrUpdate(param); return param; } @Autowired IMailTemplateService mailTemplateService; @Autowired AgentConfig agentConfig; @Override public void checkExpTime() { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.isNotNull(AgentAuthorizeModeling::getAuthorizeEndTime); wrapper.eq(AgentAuthorizeModeling::getAuthorizeEndTime,DateUtils.getPlusDay(agentConfig.getAuthExpDay())); List list = this.list(wrapper); HashSet agentIds = new HashSet<>(); for (AgentAuthorizeModeling agentAuthorizeModeling : list) { if(agentAuthorizeModeling.getAgentId() != null){ agentIds.add( agentAuthorizeModeling.getAgentId()); } } List agentNews = agentNewService.listByIds(agentIds); for (AgentNew agentNew : agentNews) { mailTemplateService.sendAuthExpMail(agentNew.getUserName()); } } }