青羊经侦大队-数据平台
baizonghao
2023-05-19 1c3f11dfd7493a4c4a8d41e2499477840bcc070c
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
169
170
171
172
173
174
175
176
177
178
179
180
package com.example.jz.controller;
 
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.example.jz.dao.UserDao;
import com.example.jz.modle.PageParam;
import com.example.jz.modle.R;
import com.example.jz.modle.entity.Publicity;
import com.example.jz.modle.entity.User;
import com.example.jz.modle.vo.PublicityVo;
import com.example.jz.service.PublicityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import lombok.SneakyThrows;
import org.springframework.beans.BeanUtils;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
 
import javax.annotation.Resource;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
 
/**
 * 公共宣传表(Publicity)表控制层
 *
 * @author makejava
 * @since 2022-07-11 16:35:57
 */
@RestController
@RequestMapping("publicity")
@Api(tags = "公共宣传接口")
public class PublicityController {
    /**
     * 服务对象
     */
    @Resource
    private PublicityService publicityService;
    @Resource
    UserDao userDao;
 
    /**
     * 分页查询所有数据
     *
     * @param page         分页对象
     * @param publicity 查询实体
     * @return 所有数据
     */
    @GetMapping
    @ApiOperation("分页查询所有数据")
    public R<IPage<PublicityVo>> selectAll(PageParam<Publicity> page, Publicity publicity) {
        ArrayList<PublicityVo> publicityVos = new ArrayList<>();
        PageParam<Publicity> publicityPageParam ;
        if (publicity.getStatus()!=null ){
            publicityPageParam = publicityService.page(page,
                    new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),
                            "publicity_title",
                            publicity.getPublicityTitle()).eq("status",publicity.getStatus()).orderByDesc("ctime"));
        }else {
            publicityPageParam = publicityService.page(page,
                    new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),
                            "publicity_title",
                            publicity.getPublicityTitle()).orderByDesc("ctime"));
        }
        publicityPageParam.getRecords().forEach(item->{
            PublicityVo publicityVo = new PublicityVo();
            BeanUtils.copyProperties(item,publicityVo);
            publicityVo.setUserName(userDao.selectOne(new QueryWrapper<User>().eq("id",item.getCreator())).getRealName());
            publicityVos.add(publicityVo);
        });
        PageParam<PublicityVo> publicityVoPageParam = new PageParam<>();
        BeanUtils.copyProperties(publicityPageParam,publicityVoPageParam);
        publicityVoPageParam.setRecords(publicityVos);
        return R.ok(publicityVoPageParam);
    }
 
    @GetMapping("changTime")
    @ApiOperation("修改时间")
    public R changeTime(@RequestParam Integer id, @RequestParam String time){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Publicity publicity = publicityService.getById(id);
        try {
            publicity.setReleaseTime(sdf.parse(time));
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        boolean b = publicityService.updateById(publicity);
        return b ? R.ok("修改成功") : R.failed("修改失败");
    }
 
    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    @ApiOperation("通过主键查询单条数据")
    public R<Publicity> selectOne(@PathVariable Serializable id) {
        return R.ok(publicityService.getById(id));
    }
 
    /**
     * 新增数据
     *
     * @param publicity 实体对象
     * @return 新增结果
     */
    @PostMapping
    @ApiOperation("添加公共宣传")
    public R<Boolean> insert(@RequestBody Publicity publicity) {
        publicity.setStatus(0);
        publicity.setCtime(new Date());
        publicity.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username",  SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId());
        return R.ok(publicityService.save(publicity));
    }
 
    /**
     * 修改数据
     *
     * @param publicity 实体对象
     * @return 修改结果
     */
    @PutMapping
    @ApiOperation("修改公共宣传内容")
    public R<Boolean> update(@RequestBody Publicity publicity) {
        return R.ok(publicityService.updateById(publicity));
    }
 
    /**
     * 下架公共宣传
     *
     * @param id 主键结合
     * @return 执行结果
     */
    @GetMapping("offline/{id}")
    @ApiOperation("下架公共宣传")
    public R<Boolean> offline(@PathVariable Serializable id) {
        return R.ok(publicityService.undercarriage(id));
    }
 
    /**
     * 上架公共宣传
     *
     * @param id 主键结合
     * @return 执行结果
     */
    @GetMapping("release/{id}")
    @ApiOperation("上架公共宣传")
    public R<Boolean> release(@PathVariable Serializable id) {
        return R.ok(publicityService.grounding(id));
    }
 
    /**
     * 删除公共宣传
     *
     * @param id 主键结合
     * @return 执行结果
     */
    @DeleteMapping("{id}")
    @ApiOperation("删除公共宣传")
    public R<Boolean> delete(@PathVariable Serializable id) {
        return R.ok(publicityService.removeById(id));
    }
 
    @ApiOperation(httpMethod = "POST", value = "案件台-案件录入-案件导入")
    @PostMapping("/upload")
    @ApiResponse(message = "执行成功", code = 200)
    @SneakyThrows
    public R upload(@RequestParam(value = "multipartFile") MultipartFile multipartFile) {
        publicityService.loadFile(multipartFile);
        return R.ok();
    }
}