package com.doumee.service.business.impl; import com.doumee.service.business.third.model.LoginUserInfo; import com.doumee.service.business.third.model.PageData; import com.doumee.service.business.third.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.EmpowerMapper; import com.doumee.dao.business.join.EmpowerJoinMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.Empower; import com.doumee.dao.business.model.Member; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.EmpowerService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.List; import java.util.Objects; /** * 人员授权导入记录Service实现 * @author 江蹄蹄 * @date 2023/11/30 15:33 */ @Service public class EmpowerServiceImpl implements EmpowerService { @Autowired private EmpowerMapper empowerMapper; @Autowired private EmpowerJoinMapper empowerJoinMapper; @Override public Integer create(Empower empower) { empowerMapper.insert(empower); return empower.getId(); } @Override public void deleteById(Integer id) { empowerMapper.deleteById(id); } @Override public void delete(Empower empower) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(empower); empowerMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } empowerMapper.deleteBatchIds(ids); } @Override public void updateById(Empower empower) { empowerMapper.updateById(empower); } @Override public void updateByIdInBatch(List empowers) { if (CollectionUtils.isEmpty(empowers)) { return; } for (Empower empower: empowers) { this.updateById(empower); } } @Override public Empower findById(Integer id) { return empowerMapper.selectById(id); } @Override public Empower findOne(Empower empower) { QueryWrapper wrapper = new QueryWrapper<>(empower); return empowerMapper.selectOne(wrapper); } @Override public List findList(Empower empower) { QueryWrapper wrapper = new QueryWrapper<>(empower); return empowerMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Member::getName,Empower::getMemberName); queryWrapper.selectAs(Member::getPhone,Empower::getMemberPhone); queryWrapper.selectAs(Member::getIdcardDecode,Empower::getMemberidCard); queryWrapper.selectAs(Device::getName,Empower::getDeviceName); queryWrapper.selectAs(Company::getCompanyNamePath,Empower::getCompanyName); queryWrapper.selectAs(SystemUser::getUsername,Empower::getCreaterName); queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Empower::getCreator); queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo(); if(userInfo!=null && userInfo.getCompanyIdList()!=null){ if( userInfo.getCompanyIdList().size() ==0){ //只能看自己 queryWrapper.eq(Member::getId,userInfo.getMemberId()); }else{ queryWrapper.in(Company::getId,userInfo.getCompanyIdList()); } } queryWrapper /* .eq(Empower::getIsdeleted, Constants.ZERO)*/ .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) .or().like(Member::getPhone,pageWrap.getModel().getMemberName())); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getSendStatus()),Empower::getSendStatus,pageWrap.getModel().getSendStatus()); queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Company::getId,pageWrap.getModel().getCompanyId()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDeviceName()),Device::getName,pageWrap.getModel().getDeviceName()); queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getSendStartDate()),Empower::getCreateDate,pageWrap.getModel().getSendStartDate()); queryWrapper.le(Objects.nonNull(pageWrap.getModel().getSendEndDate()),Empower::getCreateDate,pageWrap.getModel().getSendEndDate()); SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Calendar cal=Calendar.getInstance(); if(Objects.nonNull(pageWrap.getModel().getTimeDn())){ if(Constants.equalsInteger(pageWrap.getModel().getTimeDn(),0)){ String now=format.format(cal.getTime())+" :00:00:00"; queryWrapper.ge(Empower::getSendDate,now); } if(Constants.equalsInteger(pageWrap.getModel().getTimeDn(),7)){ cal.add(Calendar.DAY_OF_MONTH,-7); queryWrapper.ge(Empower::getSendDate,cal.getTime()); } if(Constants.equalsInteger(pageWrap.getModel().getTimeDn(),30)){ cal.add(Calendar.DAY_OF_MONTH,-30); queryWrapper.ge(Empower::getSendDate,cal.getTime()); } } queryWrapper.orderByDesc(Empower::getId); IPage result = empowerJoinMapper.selectJoinPage(page, Empower.class,queryWrapper); return PageData.from(result); } @Override public long count(Empower empower) { QueryWrapper wrapper = new QueryWrapper<>(empower); return empowerMapper.selectCount(wrapper); } }