package com.smcic.api.admin.service.impl;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smcic.api.admin.dto.NamePageDTO;
import com.smcic.api.admin.dto.OrganPageDTO;
import com.smcic.api.admin.entity.Leaders;
import com.smcic.api.admin.mapper.LeadersMapper;
import com.smcic.api.admin.service.ILeadersService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.smcic.api.admin.service.OSSService;
import com.smcic.core.advice.APIException;
import org.apache.http.util.TextUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.sql.Wrapper;
import java.util.List;
import java.util.Random;
/**
*
* 服务实现类
*
*
* @author syj
* @since 2023-11-16
*/
@Service
public class LeadersServiceImpl extends ServiceImpl implements ILeadersService {
@Resource
private OSSService ossService;
public String upload(MultipartFile file){
if(null == file){
throw new APIException("文件为空");
}
Random random = new Random();
String path = "neican/img/leader/" + (new DateTime().toString("yyyyMMddHHmmss"))+"/" + random.nextInt() + "-" + file.getOriginalFilename();
ossService.put("smcic-index", path, file);
return "https://cxzx.smcic.net/" + path;
}
public void add(Leaders leaders){
leaders.setStatus(0);
save(leaders);
}
public void update(Leaders leaders){
Leaders old = getById(leaders.getLeaderId());
if(null == old){
throw new APIException("领导信息不存在");
}
leaders.setStatus(0);
updateById(leaders);
}
public Page pageList(OrganPageDTO namePageDTO){
LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery();
return baseMapper.selectPage(new Page<>(namePageDTO.getPage(), namePageDTO.getPageSize()),
lambdaQueryWrapper.eq(namePageDTO.getRegionId()!= null && namePageDTO.getRegionId() > 0, Leaders::getRegionId, namePageDTO.getRegionId())
.eq(namePageDTO.getOrganId() != null && namePageDTO.getOrganId() > 0, Leaders::getOrganId, namePageDTO.getOrganId())
.eq(!TextUtils.isEmpty(namePageDTO.getName()), Leaders::getName, namePageDTO.getName())
.orderByAsc(Leaders::getSort)
);
}
public void delete(Long leaderId){
Leaders leaders = getById(leaderId);
if(null == leaders){
throw new APIException("领导信息不存在");
}
removeById(leaderId);
}
}