package com.thhy.engineering.modules.biz.notice.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.github.pagehelper.util.StringUtil; import com.thhy.engineering.modules.biz.notice.entity.SysNotice; import com.thhy.engineering.modules.biz.notice.mapper.SysNoticeMapper; import com.thhy.engineering.modules.biz.notice.service.SysNoticeService; import com.thhy.general.common.BasicResult; import com.thhy.general.config.SysUserInfo; import com.thhy.general.utils.UserInfoUtils; import org.apache.commons.io.FileUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.util.*; @Service public class SysNoticeServiceImpl implements SysNoticeService { @Resource private SysNoticeMapper noticeMapper; @Override @Transactional public BasicResult noticeInsert(Map values) { //文章类型 Integer noticeType = Integer.valueOf(values.get("noticeType").toString()); //公告标题 String noticeName = values.get("noticeName").toString(); String noticeId = noticeMapper.selectTypeNameByOne(noticeName,noticeType); if(!StringUtil.isEmpty(noticeId)){ return BasicResult.faild("11111","error","公告标题重复"); } SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("noticeId",""); values.put("companyId",companyId); noticeMapper.noticeInsert(values); String noticeId1 = values.get("noticeId").toString(); if(noticeType!=3){ List paths = (List) values.get("pictureList"); for (String p:paths){ HashMap hashMap = new HashMap<>(); hashMap.put("noticeId",noticeId1); hashMap.put("paths",p); noticeMapper.picturePathInsert(hashMap); } } return BasicResult.success("添加成功"); } @Override public BasicResult uploadImage(MultipartFile file, String paths) { if (file == null) { return BasicResult.faild("11111","error","请选择要上传的图片"); } if (file.getSize() > 1024 * 1024 * 10) { return BasicResult.faild("11111","error","文件大小不能大于10M"); } //获取文件后缀 String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1, file.getOriginalFilename().length()); if (!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())) { return BasicResult.faild("11111","error","请选择jpg,jpeg,gif,png格式的图片"); } String savePath = paths; File savePathFile = new File(savePath); if (!savePathFile.exists()) { //若不存在该目录,则创建目录 savePathFile.mkdir(); } //通过UUID生成唯一文件名 String filename = UUID.randomUUID().toString().replaceAll("-","") + "." + suffix; try { //将文件保存指定目录 //file.transferTo(new File(savePath + filename)); //File file1 = new File(file.getOriginalFilename()); FileUtils.copyInputStreamToFile(file.getInputStream(),new File(savePath + filename)); } catch (Exception e) { e.printStackTrace(); return BasicResult.faild("11111","error","文件保存异常"); } return BasicResult.success(filename); } @Override @Transactional public BasicResult noticeUpdate(Map values) { //修改的id String noticeId1 = values.get("noticeId").toString(); //文章类型 Integer noticeType = Integer.valueOf(values.get("noticeType").toString()); //公告标题 String noticeName = values.get("noticeName").toString(); String noticeId = noticeMapper.selectTypeNameByOne(noticeName,noticeType); if(!StringUtil.isEmpty(noticeId)&&!noticeId1.equals(noticeId)){ return BasicResult.faild("11111","error","公告标题重复"); } noticeMapper.imageDel(noticeId1); if(noticeType!=3){ List paths = (List) values.get("pictureList"); for (String p:paths){ HashMap hashMap = new HashMap<>(); hashMap.put("noticeId",noticeId1); hashMap.put("paths",p); noticeMapper.picturePathInsert(hashMap); } } noticeMapper.noticeUpdate(values); return BasicResult.success("修改成功"); } @Override public BasicResult noticeList(Map values) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); Integer noticeType = Integer.valueOf(values.get("noticeType").toString()); Integer pageNum = Integer.valueOf(values.get("pageNum").toString()); Integer pageSize = Integer.valueOf(values.get("pageSize").toString()); PageHelper.startPage(pageNum,pageSize); List sysNotices = noticeMapper.noticeList(values); if(noticeType!=3){ for (SysNotice notice :sysNotices){ List paths = noticeMapper.noticePath(notice.getNoticeId()); notice.setPaths(paths); } } PageInfo sysNoticePageInfo = new PageInfo<>(sysNotices); return BasicResult.success(sysNoticePageInfo); } @Override public BasicResult noticeInfo(String noticeId) { SysNotice sysNotices = noticeMapper.noticeInfo(noticeId); List paths = noticeMapper.noticePath(noticeId); sysNotices.setPaths(paths); return BasicResult.success(sysNotices); } @Override @Transactional public BasicResult noticeDel(String noticeId) { noticeMapper.noticeDel(noticeId); noticeMapper.imageDel(noticeId); return BasicResult.success("删除成功"); } @Override public BasicResult noticeOff(Map values) { Integer states = Integer.valueOf(values.get("states").toString()); noticeMapper.noticeOff(values); if(states.equals(1)){ return BasicResult.success("已上架"); }else { return BasicResult.success("已下架"); } } }