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.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> selectAll(PageParam page, Publicity publicity) { ArrayList publicityVos = new ArrayList<>(); PageParam publicityPageParam ; if (publicity.getStatus()!=null ){ publicityPageParam = publicityService.page(page, new QueryWrapper().like(StringUtils.isNotBlank(publicity.getPublicityTitle()), "publicity_title", publicity.getPublicityTitle()).eq("status",publicity.getStatus()).orderByDesc("ctime")); }else { publicityPageParam = publicityService.page(page, new QueryWrapper().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().eq("id",item.getCreator())).getRealName()); publicityVos.add(publicityVo); }); PageParam publicityVoPageParam = new PageParam<>(); BeanUtils.copyProperties(publicityPageParam,publicityVoPageParam); publicityVoPageParam.setRecords(publicityVos); return R.ok(publicityVoPageParam); } /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ @GetMapping("{id}") @ApiOperation("通过主键查询单条数据") public R selectOne(@PathVariable Serializable id) { return R.ok(publicityService.getById(id)); } /** * 新增数据 * * @param publicity 实体对象 * @return 新增结果 */ @PostMapping @ApiOperation("添加公共宣传") public R insert(@RequestBody Publicity publicity) { publicity.setStatus(0); publicity.setCtime(new Date()); publicity.setCreator(userDao.selectOne(new QueryWrapper().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId()); return R.ok(publicityService.save(publicity)); } /** * 修改数据 * * @param publicity 实体对象 * @return 修改结果 */ @PutMapping @ApiOperation("修改公共宣传内容") public R update(@RequestBody Publicity publicity) { return R.ok(publicityService.updateById(publicity)); } /** * 下架公共宣传 * * @param id 主键结合 * @return 执行结果 */ @GetMapping("offline/{id}") @ApiOperation("下架公共宣传") public R offline(@PathVariable Serializable id) { return R.ok(publicityService.undercarriage(id)); } /** * 上架公共宣传 * * @param id 主键结合 * @return 执行结果 */ @GetMapping("release/{id}") @ApiOperation("上架公共宣传") public R release(@PathVariable Serializable id) { return R.ok(publicityService.grounding(id)); } /** * 删除公共宣传 * * @param id 主键结合 * @return 执行结果 */ @DeleteMapping("{id}") @ApiOperation("删除公共宣传") public R 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(); } }