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> selectAll(PageParam page, CommonQuestion commonQuestion) { ArrayList QuestionVos = new ArrayList<>(); PageParam CommonQuestionPageParam ; if (commonQuestion.getStatus()!=null ){ CommonQuestionPageParam = commonQuestionService.page(page, new QueryWrapper().like(StringUtils.isNotBlank(commonQuestion.getQuestionTitle()),"question_title",commonQuestion.getQuestionTitle()).eq("status",commonQuestion.getStatus()).orderByDesc("ctime")); }else { CommonQuestionPageParam = commonQuestionService.page(page, new QueryWrapper().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().eq("id",item.getCreator())).getRealName()); QuestionVos.add(QuestionVo); }); PageParam QuestionVoPageParam = new PageParam<>(); BeanUtils.copyProperties(CommonQuestionPageParam,QuestionVoPageParam); QuestionVoPageParam.setRecords(QuestionVos); return R.ok(QuestionVoPageParam); } /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ @GetMapping("{id}") @ApiOperation(value = "通过主键查询单条数据", notes = "通过主键查询单条数据") public R selectOne(@PathVariable Serializable id) { return R.ok(commonQuestionService.getById(id)); } /** * 新增数据 * * @param commonQuestion 实体对象 * @return 新增结果 */ @PostMapping @ApiOperation(value = "新增数据", notes = "新增数据") public R insert(@RequestBody CommonQuestion commonQuestion) { commonQuestion.setStatus(0); commonQuestion.setCtime(new Date()); commonQuestion.setCreator(userDao.selectOne(new QueryWrapper().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId()); return R.ok(commonQuestionService.save(commonQuestion)); } /** * 修改数据 * * @param commonQuestion 实体对象 * @return 修改结果 */ @PutMapping @ApiOperation(value = "修改数据", notes = "修改数据") public R 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 delete(@RequestParam("id") Serializable id) { return R.ok(commonQuestionService.removeById(id)); } /** * 发布 * * @param id 主键 * @return 发布结果 */ @ApiOperation(value = "发布", notes = "发布") @GetMapping("release/{id}") public R 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 offline(@PathVariable Serializable id) { CommonQuestion commonQuestion = commonQuestionService.getById(id); commonQuestion.setStatus(2); return R.ok(commonQuestionService.updateById(commonQuestion)); } }