fangyuan
2022-11-18 69ee7c605579c009ee3c087fa265619ba55155f6
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
package com.ycl.controller;
 
 
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.entity.NewsColumnInformation;
import com.ycl.entity.NewsInformation;
import com.ycl.entity.NewsInformationPolice;
import com.ycl.entity.NewsPolice;
import com.ycl.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * 资讯表(NewsInformation)表控制层
 *
 * @author makejava
 * @since 2022-11-17 11:38:27
 */
@RestController
@RequestMapping("newsInformation")
public class NewsInformationController extends ApiController {
    /**
     * 服务对象
     */
    @Resource
    private NewsInformationService newsInformationService;
 
    @Autowired
    private NewsPoliceService policeService;
 
    @Autowired
    private NewsInformationPoliceService newsInformationPoliceService;
 
    @Autowired
    private NewsColumnInformationService newsColumnInformationService;
    /**
     * 分页查询所有数据
     *
     * @param page 分页对象
     * @param newsInformation 查询实体
     * @return 所有数据
     */
    @GetMapping
    public R selectAll(Page<NewsInformation> page, NewsInformation newsInformation) {
        return success(this.newsInformationService.page(page, new QueryWrapper<>(newsInformation).orderByDesc("publish_time")));
    }
 
    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    public R selectOne(@PathVariable Serializable id) {
        return success(this.newsInformationService.getById(id));
    }
 
    /**
     * 新增数据
     *
     * @param newsInformation 实体对象
     * @return 新增结果
     */
    @Transactional(rollbackFor = SQLException.class)
    @PostMapping
    public R insert(@RequestBody NewsInformation newsInformation) {
        Integer saveResult = this.newsInformationService.insertOneInformation(newsInformation);
        Integer informationId=newsInformation.getId();
        if (newsInformation.getIsSign()==0){
            List<String> departmentIds = newsInformation.getDepartmentId();
            for (String departmentId:departmentIds){
                QueryWrapper<NewsPolice> wrapper = new QueryWrapper();
                wrapper.eq("news_department_id",departmentId);
                List<NewsPolice> list = policeService.list(wrapper);
                if (!list.isEmpty()){
                    for (NewsPolice newsPolice:list){
                        newsInformationPoliceService.save(NewsInformationPolice.builder().newsPoliceId(newsPolice.getId()).newsInformationId(informationId).isSign(0).build());
                    }
                }
            }
        }
 
        for (String columnId:newsInformation.getColumnId()){
            newsColumnInformationService.save(NewsColumnInformation.builder().columnId(Integer.parseInt(columnId)).informationId(informationId).build());
        }
        return success(saveResult);
    }
 
    /**
     * 修改数据
     *
     * @param newsInformation 实体对象
     * @return 修改结果
     */
    @PutMapping
    public R update(@RequestBody NewsInformation newsInformation) {
        Integer informationId = newsInformation.getId();
        if (newsInformation.getIsSign()==0){
            newsInformationPoliceService.remove(new QueryWrapper<NewsInformationPolice>().eq("news_information_id",informationId));
            List<String> departmentIds = newsInformation.getDepartmentId();
            for (String departmentId:departmentIds){
                QueryWrapper<NewsPolice> wrapper = new QueryWrapper();
                wrapper.eq("news_department_id",departmentId);
                List<NewsPolice> list = policeService.list(wrapper);
                if (!list.isEmpty()){
                    for (NewsPolice newsPolice:list){
                        newsInformationPoliceService.save(NewsInformationPolice.builder().newsPoliceId(newsPolice.getId()).newsInformationId(informationId).isSign(0).build());
                    }
                }
            }
        }
        newsColumnInformationService.remove(new QueryWrapper<NewsColumnInformation>().eq("information_id",informationId));
        for (String columnId:newsInformation.getColumnId()){
            newsColumnInformationService.save(NewsColumnInformation.builder().columnId(Integer.parseInt(columnId)).informationId(informationId).build());
        }
        return success(this.newsInformationService.updateById(newsInformation));
    }
 
    /**
     * 删除数据
     *
     * @param idList 主键结合
     * @return 删除结果
     */
    @DeleteMapping
    public R delete(@RequestParam("idList") List<Long> idList) {
        return success(this.newsInformationService.removeByIds(idList));
    }
}