青羊经侦大队-数据平台
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
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.baomidou.mybatisplus.extension.api.ApiController;
 
import com.example.jz.dao.UserDao;
import com.example.jz.modle.PageParam;
import com.example.jz.modle.R;
import com.example.jz.modle.entity.CommonQuestion;
import com.example.jz.modle.entity.User;
import com.example.jz.modle.vo.QuestionVo;
import com.example.jz.service.CommonQuestionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
 
/**
 * 常见问题表(CommonQuestion)表控制层
 *
 * @author makejava
 * @since 2022-07-11 16:35:57
 */
@RestController
@RequestMapping("commonQuestion")
@Api(tags = "常见问题接口")
public class CommonQuestionController extends ApiController {
    /**
     * 服务对象
     */
    @Resource
    private CommonQuestionService commonQuestionService;
    @Resource
    UserDao userDao;
 
    /**
     * 分页查询所有数据
     *
     * @param page           分页对象
     * @param commonQuestion 查询实体
     * @return 所有数据
     */
    @GetMapping
    @ApiOperation("分页查询所有数据")
    public R<IPage<QuestionVo>> selectAll(PageParam<CommonQuestion> page, CommonQuestion commonQuestion) {
        ArrayList<QuestionVo> QuestionVos = new ArrayList<>();
        PageParam<CommonQuestion> CommonQuestionPageParam ;
        if (commonQuestion.getStatus()!=null ){
            CommonQuestionPageParam = commonQuestionService.page(page, new QueryWrapper<CommonQuestion>().like(StringUtils.isNotBlank(commonQuestion.getQuestionTitle()),"question_title",commonQuestion.getQuestionTitle()).eq("status",commonQuestion.getStatus()).orderByDesc("ctime"));
        }else {
            CommonQuestionPageParam = commonQuestionService.page(page, new QueryWrapper<CommonQuestion>().like(StringUtils.isNotBlank(commonQuestion.getQuestionTitle()),"question_title",commonQuestion.getQuestionTitle()).orderByDesc("ctime"));
        }
        CommonQuestionPageParam.getRecords().forEach(item->{
            QuestionVo QuestionVo = new QuestionVo();
            BeanUtils.copyProperties(item,QuestionVo);
            QuestionVo.setUserName(userDao.selectOne(new QueryWrapper<User>().eq("id",item.getCreator())).getRealName());
            QuestionVos.add(QuestionVo);
        });
        PageParam<QuestionVo> QuestionVoPageParam = new PageParam<>();
        BeanUtils.copyProperties(CommonQuestionPageParam,QuestionVoPageParam);
        QuestionVoPageParam.setRecords(QuestionVos);
        return R.ok(QuestionVoPageParam);
    }
 
    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    @ApiOperation(value = "通过主键查询单条数据", notes = "通过主键查询单条数据")
    public R<CommonQuestion> selectOne(@PathVariable Serializable id) {
        return R.ok(commonQuestionService.getById(id));
    }
 
    /**
     * 新增数据
     *
     * @param commonQuestion 实体对象
     * @return 新增结果
     */
    @PostMapping
    @ApiOperation(value = "新增数据", notes = "新增数据")
    public R<Boolean> insert(@RequestBody CommonQuestion commonQuestion) {
        commonQuestion.setStatus(0);
        commonQuestion.setCtime(new Date());
        commonQuestion.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username",  SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId());
        return R.ok(commonQuestionService.save(commonQuestion));
    }
 
    /**
     * 修改数据
     *
     * @param commonQuestion 实体对象
     * @return 修改结果
     */
    @PutMapping
    @ApiOperation(value = "修改数据", notes = "修改数据")
    public R<Boolean> update(@RequestBody CommonQuestion commonQuestion) {
        if (commonQuestion.getId() == 1) {
            commonQuestion.setReleaseTime(new Date());
        }
        return R.ok(commonQuestionService.updateById(commonQuestion));
    }
 
    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除结果
     */
    @DeleteMapping
    @ApiOperation(value = "删除数据", notes = "删除数据")
    public R<Boolean> delete(@RequestParam("id") Serializable id) {
        return R.ok(commonQuestionService.removeById(id));
    }
 
    /**
     * 发布
     *
     * @param id 主键
     * @return 发布结果
     */
    @ApiOperation(value = "发布", notes = "发布")
    @GetMapping("release/{id}")
    public R<Boolean> release(@PathVariable Serializable id) {
        CommonQuestion commonQuestion = commonQuestionService.getById(id);
        commonQuestion.setReleaseTime(new Date());
        commonQuestion.setStatus(1);
        return R.ok(commonQuestionService.updateById(commonQuestion));
    }
 
    /**
     * 下架
     *
     * @param id 主键
     * @return 发布结果
     */
    @ApiOperation(value = "下架", notes = "下架")
    @GetMapping("offline/{id}")
    public R<Boolean> offline(@PathVariable Serializable id) {
        CommonQuestion commonQuestion = commonQuestionService.getById(id);
        commonQuestion.setStatus(2);
        return R.ok(commonQuestionService.updateById(commonQuestion));
    }
}