| 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<Empower> deleteWrapper = new UpdateWrapper<>(empower); | 
|         empowerMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         empowerMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(Empower empower) { | 
|         empowerMapper.updateById(empower); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<Empower> 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<Empower> wrapper = new QueryWrapper<>(empower); | 
|         return empowerMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<Empower> findList(Empower empower) { | 
|         QueryWrapper<Empower> wrapper = new QueryWrapper<>(empower); | 
|         return empowerMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<Empower> findPage(PageWrap<Empower> pageWrap) { | 
|         IPage<Empower> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         MPJLambdaWrapper<Empower> 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<Empower> result = empowerJoinMapper.selectJoinPage(page, Empower.class,queryWrapper); | 
|         return PageData.from(result); | 
|     } | 
|   | 
|     @Override | 
|     public long count(Empower empower) { | 
|         QueryWrapper<Empower> wrapper = new QueryWrapper<>(empower); | 
|         return empowerMapper.selectCount(wrapper); | 
|     } | 
| } |