Jelajahi Sumber

常见问题管理CRUD

yonghuifan 1 tahun lalu
induk
melakukan
c94ed808bb

+ 71 - 0
src/main/java/com/dragon/tj/portal/controller/IssueController.java

@@ -0,0 +1,71 @@
+package com.dragon.tj.portal.controller;
+
+import com.dragon.tj.portal.auth.model.LoginUser;
+import com.dragon.tj.portal.auth.util.SecurityUtils;
+import com.dragon.tj.portal.common.base.R;
+import com.dragon.tj.portal.entity.IssueInfo;
+import com.dragon.tj.portal.entity.PageParam;
+import com.dragon.tj.portal.service.IssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+
+@RestController
+@RequestMapping("/issue")
+@EnableScheduling
+public class IssueController {
+
+
+    @Autowired
+    private IssueService issueService;
+
+    /*
+     *   CRUD
+     * */
+
+    @PostMapping("add")
+    public R addIssue(@RequestBody IssueInfo issueInfo) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        int b = issueService.addIssue(issueInfo, loginUser);
+        if (b == 0){
+            return R.failed("添加失败!!!");
+        }
+
+        return R.ok(b);
+    }
+
+
+    @GetMapping("delete/{id}")
+    public R deleteIssue(@PathVariable("id") Long id) {
+        return R.ok(issueService.deleteIssue(id));
+    }
+
+
+    @PostMapping("update")
+    public R updateIssue(@RequestBody IssueInfo issueInfo) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        issueInfo.setAnswerUser(loginUser.getUsername());
+        issueInfo.setUpdateTime(LocalDateTime.now());
+
+        return R.ok(issueService.updateIssue(issueInfo));
+    }
+
+
+    @GetMapping("info/{id}")
+    public R detail(@PathVariable("id") Long id) {
+        return R.ok(issueService.detail(id));
+    }
+
+    /*
+     *   通过标题,内容搜索
+     * */
+    @GetMapping("search")
+    public R search(@RequestBody PageParam<IssueInfo> issueInfoPage) {
+
+        return R.ok(issueService.search(issueInfoPage));
+    }
+
+}
+

+ 65 - 0
src/main/java/com/dragon/tj/portal/entity/IssueInfo.java

@@ -0,0 +1,65 @@
+package com.dragon.tj.portal.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * 问题信息
+ */
+@Getter
+@Setter
+@Accessors(chain = true)
+@TableName("issue_info")
+public class IssueInfo {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 解答
+     */
+    private String answer;
+    private String answerUser;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /*
+    * 创建人
+    * */
+    private String createUser;
+    private String createUserIdcard;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 删除状态 默认0 有效 1无效
+     */
+    private Integer delFlag;
+
+}

+ 13 - 0
src/main/java/com/dragon/tj/portal/mapper/IssueInfoMapper.java

@@ -0,0 +1,13 @@
+package com.dragon.tj.portal.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dragon.tj.portal.entity.IssueInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 应用程序
+ */
+@Mapper
+public interface IssueInfoMapper extends BaseMapper<IssueInfo> {
+
+}

+ 26 - 0
src/main/java/com/dragon/tj/portal/service/IssueService.java

@@ -0,0 +1,26 @@
+package com.dragon.tj.portal.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dragon.tj.portal.auth.model.LoginUser;
+import com.dragon.tj.portal.entity.IssueInfo;
+import com.dragon.tj.portal.entity.PageParam;
+
+
+public interface IssueService {
+    /*
+    * CRUD
+    * */
+    int addIssue(IssueInfo issueInfo, LoginUser loginUser);
+
+    int deleteIssue(Long id);
+
+    int updateIssue(IssueInfo issueInfo);
+
+    IssueInfo detail(Long id);
+
+    /*
+     * 分页搜索
+     * */
+    Page<IssueInfo> search(PageParam<IssueInfo> issueInfoPage);
+
+}

+ 83 - 0
src/main/java/com/dragon/tj/portal/service/impl/IssueServiceImpl.java

@@ -0,0 +1,83 @@
+package com.dragon.tj.portal.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dragon.tj.portal.auth.model.LoginUser;
+import com.dragon.tj.portal.entity.IssueInfo;
+import com.dragon.tj.portal.entity.PageParam;
+import com.dragon.tj.portal.mapper.IssueInfoMapper;
+import com.dragon.tj.portal.service.IssueService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class IssueServiceImpl implements IssueService {
+
+
+    @Autowired
+    private IssueInfoMapper issueInfoMapper;
+
+    /*
+     * CRUD
+     * */
+    @Override
+    public int addIssue(IssueInfo issueInfo, LoginUser loginUser) {
+        issueInfo.setCreateUser(loginUser.getUsername());
+        issueInfo.setCreateUserIdcard(loginUser.getIdCard());
+        return issueInfoMapper.insert(issueInfo);
+    }
+
+    @Override
+    public int deleteIssue(Long id) {
+        IssueInfo issueInfo = new IssueInfo();
+        issueInfo.setId(id);
+        issueInfo.setDelFlag(1);
+
+        return issueInfoMapper.updateById(issueInfo);
+    }
+
+    @Override
+    public int updateIssue(IssueInfo issueInfo) {
+        return issueInfoMapper.updateById(issueInfo);
+    }
+
+    @Override
+    public IssueInfo detail(Long id) {
+        return issueInfoMapper.selectById(id);
+    }
+
+
+    /*
+     * 搜索
+     * */
+    @Override
+    public Page<IssueInfo> search(PageParam<IssueInfo> issueInfoPage) {
+
+        IssueInfo issueInfo = issueInfoPage.getParams();
+        Page<IssueInfo> rowPage = new Page(issueInfoPage.getPage(), issueInfoPage.getSize());
+
+        LambdaQueryWrapper<IssueInfo> queryWrapper = new LambdaQueryWrapper<>();
+
+        //标题
+        queryWrapper.like(StringUtils.isNotEmpty(issueInfo.getTitle()),
+                IssueInfo::getTitle, issueInfo.getTitle());
+        //内容
+        queryWrapper.like(StringUtils.isNotEmpty(issueInfo.getContent()),
+                IssueInfo::getContent, issueInfo.getContent());
+
+        //创建人
+        queryWrapper.eq(StringUtils.isNotEmpty(issueInfo.getCreateUser()),
+                IssueInfo::getCreateUser, issueInfo.getCreateUser());
+        queryWrapper.eq(StringUtils.isNotEmpty(issueInfo.getCreateUserIdcard()),
+                IssueInfo::getCreateUserIdcard, issueInfo.getCreateUserIdcard());
+
+        queryWrapper.eq(issueInfo.getDelFlag() != null,
+                IssueInfo::getDelFlag, issueInfo.getDelFlag());
+
+        queryWrapper.orderByDesc(IssueInfo::getCreateTime);
+
+        return issueInfoMapper.selectPage(rowPage, queryWrapper);
+    }
+
+}