From 75c32d6d697a550400d0b4eec95b8570d83b726f Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期五, 27 十一月 2020 19:20:32 +0800
Subject: [PATCH] 提交

---
 src/main/java/com/highdatas/srs/web/TopicController.java |  154 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 114 insertions(+), 40 deletions(-)

diff --git a/src/main/java/com/highdatas/srs/web/TopicController.java b/src/main/java/com/highdatas/srs/web/TopicController.java
index 1b70586..ac03ee6 100644
--- a/src/main/java/com/highdatas/srs/web/TopicController.java
+++ b/src/main/java/com/highdatas/srs/web/TopicController.java
@@ -1,23 +1,24 @@
 package com.highdatas.srs.web;
 
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.plugins.Page;
-import com.highdatas.srs.entity.Topic;
+import com.highdatas.srs.entity.*;
+import com.highdatas.srs.mapper.SysRoleMapper;
 import com.highdatas.srs.pojo.CodeMsg;
 import com.highdatas.srs.pojo.Result;
-import com.highdatas.srs.service.ITopicService;
+import com.highdatas.srs.service.*;
+import com.highdatas.srs.util.Constant;
+import com.highdatas.srs.util.ContentBuilder;
 import com.highdatas.srs.util.DbUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * <p>
@@ -32,50 +33,85 @@
 public class TopicController {
     @Autowired
     ITopicService topicService;
+    @Autowired
+    ISchemeDetailService schemeDetailService;
+    @Autowired
+    ISchemeDetailParttimeService parttimeService;
+    @Autowired
+    ITitleServiceService titleServiceService;
+    @Autowired
+    ISchemeService schemeService;
+
+    @Autowired
+    SysRoleMapper mapper;
 
     @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
     public Result get(@PathVariable String id)  {
         Topic topic = topicService.selectById(id);
+        String titleId = topic.getTitleId();
+        TitleService titleService = titleServiceService.selectById(titleId);
+        topic.setTitleService(titleService);
         return Result.success(topic);
     }
 
-    @RequestMapping(value = "/page/{pageno}", method = RequestMethod.GET)
-    public Result page(@PathVariable Integer pageno, HttpServletRequest request)  {
-        String title = request.getParameter("title");
-        String desp = request.getParameter("desp");
-        EntityWrapper<Topic> topicEntityWrapper = new EntityWrapper<>();
-        if (!StringUtils.isEmpty(title)) {
-            topicEntityWrapper.like("title", title);
+    @RequestMapping(value = "/page/{pageno}", method = RequestMethod.POST)
+    public Result page(@PathVariable Integer pageno, @RequestBody TitleService titleService)  {
+        Map<String, Object> stringObjectMap = DbUtils.beanToMap(titleService);
+
+        Set<String> keySet = stringObjectMap.keySet();
+        ContentBuilder builder = new ContentBuilder(" and ");
+        for (String key : keySet) {
+            if (key.equalsIgnoreCase("orderBy")){
+                continue;
+            }
+            Object o = stringObjectMap.get(key);
+            if (o == null) {
+                continue;
+            }
+            builder.append(key + " like '%" + o.toString() + "%'");
         }
-        if (!StringUtils.isEmpty(desp)) {
-            topicEntityWrapper.like("desp", desp);
+        String filter = builder.toString();
+        if (StringUtils.isEmpty(filter)) {
+            filter = Constant.WHERE_DEFAULT;
         }
-        Page<Topic> topicPage= new Page<Topic>(pageno, 15);
-        topicEntityWrapper.orderBy("create_time desc");
-        Page<Topic> result = topicService.selectPage(topicPage, topicEntityWrapper);
-        List<Topic> records = result.getRecords();
-        JSONArray array = new JSONArray();
-        for (Topic record : records) {
-            JSONObject one = (JSONObject) JSON.toJSON(record);
-            Date createTime = record.getCreateTime();
-            String s = DbUtils.convert_before(createTime.getTime());
-            one.fluentPut("time", s);
-            array.add(one);
-        }
+        Long aLong = mapper.selectTopicCnt(filter);
         JSONObject object = new JSONObject();
-        object.fluentPut("records", array);
-        object.fluentPut("total", result.getTotal());
-        object.fluentPut("maxPage", result.getPages());
-        object.fluentPut("pageno", result.getCurrent());
+        if (aLong == null) {
+            return Result.success(object);
+        }
+        com.highdatas.srs.pojo.Page page = new com.highdatas.srs.pojo.Page(aLong);
+        page.setPageNo(pageno);
+        page.setPageSize(10);
+        String orderBy = titleService.getOrderBy();
+        if (StringUtils.isEmpty(orderBy)) {
+            orderBy = " create_time desc ";
+        } else {
+            orderBy = orderBy + ", create_time desc";
+        }
+
+        List<Map<String, Object>> maps = mapper.selectTopic(filter, orderBy, page.getLimitSQL());
+
+        object.fluentPut("records", maps);
+        object.fluentPut("total", page.getRecordCount());
+        object.fluentPut("maxPage", page.getPageCount());
+        object.fluentPut("pageno", pageno);
 
         return Result.success(object);
+
+
     }
 
     @RequestMapping(value = "/exam/{id}", method = RequestMethod.GET)
     public Result exam(@PathVariable String id, @RequestParam String projectId)  {
         Topic topic = topicService.selectById(id);
+        if (StringUtils.isEmpty(topic.getTitleId())) {
+            return  Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
+        }
+        SchemeDetail detail = schemeDetailService.selectById(topic.getTitleId());
+        detail.setParentId(projectId).updateById();
         topic.setExamine(true);
         topic.setLinkId(projectId);
+
         boolean insert = topic.updateById();
 
         if (insert) {
@@ -85,19 +121,55 @@
         }
 
     }
+    @RequestMapping(value = "/saveLinkTitle/{topicId}", method = RequestMethod.POST)
+    public Result saveLinkTitle(@PathVariable String topicId, @RequestBody SchemeDetail detail)  {
+        Topic topic = topicService.selectById(topicId);
+        String titleId = topic.getTitleId();
+        if (StringUtils.isEmpty(titleId)) {
+            titleId = DbUtils.getUUID();
+        }
 
-    @RequestMapping(value = "/add", method = RequestMethod.GET)
-    public Result add(HttpServletRequest request)  {
-        String id = request.getParameter("id");
-        String title = request.getParameter("title");
-        String userId = request.getParameter("userId");
+        parttimeService.delete(new EntityWrapper<SchemeDetailParttime>().eq("parent_id", detail.getId()));
+        if (detail.getParttime()  != null && detail.getParttime()) {
+            List<SchemeDetailParttime> parttimeList = detail.getParttimeList();
+            for (SchemeDetailParttime parttime : parttimeList) {
+                parttime.setParentId(detail.getId()).setId(DbUtils.getUUID()).insert();
+            }
+        }
+
+        detail.setId(titleId).setDetailInfoId(titleId).insertOrUpdate();
+        JSONObject existsObject = detail.getExistsObject();
+        if (existsObject != null) {
+            TitleService titleService = JSONObject.parseObject(existsObject.toJSONString(), TitleService.class);
+            String title = titleService.createTitle();
+            Scheme scheme = schemeService.selectById(detail.getParentId());
+            if (scheme == null) {
+                scheme = new Scheme().setUserId(detail.getUserId()).setStatus("edit").setId(DbUtils.getUUID());
+                scheme.setCreateTime(new Date());
+            }
+            scheme.setName(title);
+        }
+        topic.setTitleStatus(true).updateById();
+        return Result.success(null);
+    }
+
+    @RequestMapping(value = "/add", method = RequestMethod.POST)
+    public Result add(@RequestBody TitleService titleService)  {
+        String id = titleService.getId();
+        String title = titleService.createTitle();
+        String userId = titleService.getUserId();
+
         if(StringUtils.isEmpty(title)) {
             return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
         }
-        String desp = request.getParameter("desp");
+
         if (StringUtils.isEmpty(id)) {
-            Topic topic = new Topic().setUserId(userId).setTitle(title).setDesp(desp).setCreateTime(new Date());
-            topic.setId(DbUtils.getUUID());
+            Topic topic = new Topic().setUserId(userId).setCreateTime(new Date());
+            String uuid = DbUtils.getUUID();
+            titleService.setTitle(titleService.createTitle());
+            titleService.setId(uuid).insert();
+            topic.setId(uuid);
+            topic.setTitleId(uuid);
             boolean insert = topic.insert();
             if (insert) {
                 return Result.success(null);
@@ -106,7 +178,9 @@
             }
         } else {
             Topic topic = topicService.selectById(id);
-            boolean b = topic.setDesp(desp).setTitle(title).updateById();
+            titleService.setTitle(titleService.createTitle());
+            titleService.updateById();
+            boolean b = topic.updateById();
             if (b) {
                 return Result.success(null);
             } else {

--
Gitblit v1.8.0