张晓波
2023-09-19 164694c47c35d6654df69b533e8dbf8b5423efc5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
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<String, Object> 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<String> paths = (List<String>) values.get("pictureList");
            for (String p:paths){
                HashMap<String,Object> 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<String, Object> 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<String> paths = (List<String>) values.get("pictureList");
            for (String p:paths){
                HashMap<String,Object> 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<String, Object> 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<SysNotice> sysNotices = noticeMapper.noticeList(values);
        if(noticeType!=3){
            for (SysNotice notice :sysNotices){
                List<String> paths = noticeMapper.noticePath(notice.getNoticeId());
                notice.setPaths(paths);
            }
        }
        PageInfo<SysNotice> sysNoticePageInfo = new PageInfo<>(sysNotices);
        return BasicResult.success(sysNoticePageInfo);
    }
 
    @Override
    public BasicResult noticeInfo(String noticeId) {
        SysNotice sysNotices = noticeMapper.noticeInfo(noticeId);
        List<String> 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<String, Object> values) {
 
        Integer states = Integer.valueOf(values.get("states").toString());
        noticeMapper.noticeOff(values);
        if(states.equals(1)){
            return BasicResult.success("已上架");
        }else {
            return BasicResult.success("已下架");
        }
    }
}