package jnpf.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.base.Pagination; import jnpf.base.service.SuperServiceImpl; import jnpf.entity.WorkLogEntity; import jnpf.entity.WorkLogShareEntity; import jnpf.mapper.WorkLogMapper; import jnpf.service.WorkLogService; import jnpf.service.WorkLogShareService; import jnpf.util.RandomUtil; import jnpf.util.StringUtil; import jnpf.util.UserProvider; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; /** * 工作日志 * * @author JNPF开发平台组 * @version V3.1.0 * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com) * @date 2019年9月26日 上午9:18 */ @Service public class WorkLogServiceImpl extends SuperServiceImpl implements WorkLogService { @Autowired private WorkLogShareService workLogShareService; @Override public List getSendList(Pagination pageModel) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(WorkLogEntity::getCreatorUserId, UserProvider.getUser().getUserId()); //app搜索 if(StringUtil.isNotEmpty(pageModel.getKeyword())){ queryWrapper.lambda().like(WorkLogEntity::getTitle,pageModel.getKeyword()); } //排序 if (StringUtils.isEmpty(pageModel.getSidx())) { queryWrapper.lambda().orderByDesc(WorkLogEntity::getCreatorTime); } else { queryWrapper = "asc".equals(pageModel.getSort().toLowerCase()) ? queryWrapper.orderByAsc(pageModel.getSidx()) : queryWrapper.orderByDesc(pageModel.getSidx()); } Page page = new Page(pageModel.getCurrentPage(), pageModel.getPageSize()); IPage IPages = this.page(page, queryWrapper); return pageModel.setData(IPages.getRecords(), page.getTotal()); } @Override public List getReceiveList(Pagination pageModel) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(WorkLogEntity::getToUserId, UserProvider.getUser().getUserId()); //app搜索 if(StringUtil.isNotEmpty(pageModel.getKeyword())){ queryWrapper.lambda().like(WorkLogEntity::getTitle,pageModel.getKeyword()); } //排序 if (StringUtils.isEmpty(pageModel.getSidx())) { queryWrapper.lambda().orderByDesc(WorkLogEntity::getCreatorTime); } else { queryWrapper = "asc".equals(pageModel.getSort().toLowerCase()) ? queryWrapper.orderByAsc(pageModel.getSidx()) : queryWrapper.orderByDesc(pageModel.getSidx()); } Page page = new Page(pageModel.getCurrentPage(), pageModel.getPageSize()); IPage IPages = this.page(page, queryWrapper); return pageModel.setData(IPages.getRecords(), page.getTotal()); } @Override public WorkLogEntity getInfo(String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(WorkLogEntity::getId, id); return this.getOne(queryWrapper); } @Override @Transactional public void create(WorkLogEntity entity) { entity.setId(RandomUtil.uuId()); entity.setSortCode(RandomUtil.parses()); entity.setCreatorTime(new Date()); entity.setCreatorUserId(UserProvider.getUser().getUserId()); this.save(entity); String[] toUserIds = entity.getToUserId().split(","); for (String userIds : toUserIds) { WorkLogShareEntity workLogShare = new WorkLogShareEntity(); workLogShare.setId(RandomUtil.uuId()); workLogShare.setShareTime(new Date()); workLogShare.setWorkLogId(entity.getId()); workLogShare.setShareUserId(userIds); workLogShareService.save(workLogShare); } } @Override @Transactional public boolean update(String id, WorkLogEntity entity) { boolean flag = false; entity.setId(id); entity.setLastModifyTime(new Date()); entity.setLastModifyUserId(UserProvider.getUser().getUserId()); flag = this.updateById(entity); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(WorkLogShareEntity::getWorkLogId,entity.getId()); workLogShareService.remove(queryWrapper); String[] toUserIds = entity.getToUserId().split(","); for (String userIds : toUserIds) { WorkLogShareEntity workLogShare = new WorkLogShareEntity(); workLogShare.setId(RandomUtil.uuId()); workLogShare.setShareTime(new Date()); workLogShare.setWorkLogId(entity.getId()); workLogShare.setShareUserId(userIds); workLogShareService.save(workLogShare); } return flag; } @Override @Transactional public void delete(WorkLogEntity entity) { if (entity != null) { this.removeById(entity.getId()); } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(WorkLogShareEntity::getWorkLogId,entity.getId()); workLogShareService.remove(queryWrapper); } }