123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package com.yunzhi.demo.controller;
-
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.yunzhi.demo.common.BaseController;
- import com.yunzhi.demo.common.Constants;
- import com.yunzhi.demo.common.ResponseBean;
- import com.yunzhi.demo.common.StringUtils;
- import com.yunzhi.demo.entity.*;
- import com.yunzhi.demo.service.*;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
-
- /**
- * <p>
- * 文章表 前端控制器
- * </p>
- *
- * @author yansen
- * @since 2021-04-15
- */
-
- @Api(tags = "文章表")
- @RestController
- @RequestMapping("/")
- public class TaPostController extends BaseController {
-
- private final Logger logger = LoggerFactory.getLogger(TaPostController.class);
-
- @Autowired
- public ITaPostService iTaPostService;
-
- @Autowired
- public ITdPostTypeService iTdPostTypeService;
-
- @Autowired
- public ITaPostDataService iTaPostDataService;
-
- @Autowired
- public ITaPostTestService iTaPostTestService;
-
- @Autowired
- public ITaPostSaveService iTaPostSaveService;
-
- @Autowired
- public ITaShareSettingService iTaShareSettingService;
-
-
- /**
- * 分页查询列表
- * @param pageNum
- * @param pageSize
- * @return
- */
- @RequestMapping(value="/{client}/post",method= RequestMethod.GET)
- @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
- public ResponseBean taPostList(@ApiParam(value = "客户端", allowableValues = "admin,ma") @PathVariable String client,
- @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
- @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
- @ApiParam("名称") @RequestParam(value = "name", required = false) String name,
- @ApiParam("分类") @RequestParam(value = "typeId", required = false) String typeId,
- @ApiParam("状态") @RequestParam(value = "status", required = false) Integer status) throws Exception{
-
- IPage<TaPost> pg = new Page<>(pageNum, pageSize);
- QueryWrapper<TaPost> queryWrapper = new QueryWrapper<TaPost>()
- .like(!StringUtils.isEmpty(name), "name", name)
- .eq(!StringUtils.isEmpty(typeId), "type_id", typeId)
- .eq(null != status, "status", status)
- .gt("status", Constants.STATUS_DELETED)
- .orderByDesc("weight")
- .orderByDesc("create_date");
-
- IPage<TaPost> result = iTaPostService.page(pg, queryWrapper);
- return ResponseBean.success(result);
- }
-
- /**
- * 保存对象
- * @param taPost 实体对象
- * @return
- */
- @RequestMapping(value="/admin/post",method= RequestMethod.POST)
- @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
- public ResponseBean taPostAdd(@ApiParam("保存内容") @RequestBody TaPost taPost) throws Exception{
-
- TdPostType postType = iTdPostTypeService.getById(taPost.getTypeId());
- if (null != postType) {
- taPost.setTypeName(postType.getName());
- }
-
- if (iTaPostService.save(taPost)){
- TaPostData postData = new TaPostData();
- postData.setPostId(taPost.getPostId());
- iTaPostDataService.save(postData);
-
- return ResponseBean.success(iTaPostService.getById(taPost.getPostId()));
- }else {
- return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
- }
- }
-
- /**
- * 根据id删除对象
- * @param id 实体ID
- */
- @RequestMapping(value="/admin/post/{id}", method= RequestMethod.DELETE)
- @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
- public ResponseBean taPostDelete(@ApiParam("对象ID") @PathVariable Integer id) throws Exception {
- TaPost taPost = iTaPostService.getById(id);
- if (null == taPost || Constants.STATUS_DELETED.equals(taPost.getStatus())) {
- return ResponseBean.success("success");
- }
-
- taPost.setStatus(Constants.STATUS_DELETED);
-
- if(iTaPostService.updateById(taPost)){
- return ResponseBean.success("success");
- }else {
- return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
- }
- }
-
- /**
- * 修改对象
- * @param id 实体ID
- * @param taPost 实体对象
- * @return
- */
- @RequestMapping(value="/admin/post/{id}",method= RequestMethod.PUT)
- @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
- public ResponseBean taPostUpdate(@ApiParam("对象ID") @PathVariable String id,
- @ApiParam("更新内容") @RequestBody TaPost taPost) throws Exception{
-
- TdPostType postType = iTdPostTypeService.getById(taPost.getTypeId());
- if (null != postType) {
- taPost.setTypeName(postType.getName());
- }
-
- if (iTaPostService.updateById(taPost)){
- return ResponseBean.success(iTaPostService.getById(id));
- }else {
- return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
- }
- }
-
- /**
- * 根据id查询文章详情
- * @param id 实体ID
- */
- @RequestMapping(value="/{client}/post/{id}",method= RequestMethod.GET)
- @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = TaPost.class)
- public ResponseBean taPostGet(@ApiParam(value = "客户端", allowableValues = "admin,ma") @PathVariable String client,
- @ApiParam("文章ID") @PathVariable String id) throws Exception{
-
- // 获取文章信息
- TaPost taPost = iTaPostService.getById(id);
- if (null == taPost || Constants.STATUS_DELETED.equals(taPost.getStatus())) {
- throw new Exception("文章内容不存在");
- }
-
- // 获取统计信息
- TaPostData taPostData = iTaPostDataService.getById(id);
- taPost.setPostData(taPostData);
-
- // 分享信息
- TaShareSetting taShareSetting = iTaShareSettingService.getSettingBy(Constants.RESOURCE_TYPE_POST, id);
- if (!"admin".equals(client)) {
- if (Constants.STATUS_NORMAL.equals(taShareSetting.getStatus())) {
- taPost.setShareSetting(taShareSetting);
- }
- } else {
- taPost.setShareSetting(taShareSetting);
- }
-
- // 获取试题
- List<TaPostTest> postTestList = new ArrayList<>();
- if ("admin".equals(client)) {
- postTestList = iTaPostTestService.getListByPostId(id);
- } else {
- // 当前人员是否收藏过
- TaPerson taPerson = getCurrentPerson();
- boolean saved = iTaPostSaveService.checkSaved(taPerson.getPersonId(), id);
- taPost.setIsSaved(saved);
-
- // 埋点数据
- iTaPostDataService.recordBy(id, taPerson);
-
- // 随机取题目
- if (null != taPost.getAnswerNum() && taPost.getAnswerNum() > 0) {
- for (int i = 0; i < taPost.getAnswerNum(); i++) {
- TaPostTest taPostTest = iTaPostTestService.getRandRowBy(id);
- taPostTest.setCorrectAnswers(null);
- postTestList.add(taPostTest);
- }
- }
- }
- taPost.setPostTestList(postTestList);
-
- return ResponseBean.success(taPost);
- }
- }
|