浏览代码

组织管理,电梯圈新闻

wang-hai-cheng 5 年之前
父节点
当前提交
90824fd65e

+ 9 - 4
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/organization/controller/OrganizationController.java

@@ -10,19 +10,24 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+
 @RestController
 @AllArgsConstructor
 @RequestMapping("/organization")
 public class OrganizationController {
     private final OrganizationService organizationService;
 
-    @PostMapping("/list")
-    public RestResponse list(@RequestBody OrganizationReq req) {
-        return organizationService.organization(req);
-    }
+//    public RestResponse temp(@RequestBody OrganizationReq req) {
+//        return organizationService.organization(req);
+//    }
 
     @PostMapping("/user")
     public RestResponse user(@RequestBody Project project) {
         return organizationService.users(project);
     }
+
+    @PostMapping("/all")
+    public RestResponse organizations(@RequestBody OrganizationReq req) {
+        return organizationService.organizationTree(req.getMtCompanyId());
+    }
 }

+ 7 - 5
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/organization/dao/entity/Organization.java

@@ -1,13 +1,15 @@
 package cn.com.ty.lift.enterprise.organization.dao.entity;
 
-import lombok.Data;
 
-import java.util.ArrayList;
+import lombok.Data;
 
+import java.util.List;
 @Data
 public class Organization {
     private String areaName;
-    private String parentName;
-    private ArrayList<Organization> child;
-    private ArrayList<Project> projects;
+    private Integer level;
+
+    private List<Project> projects;
+    private List<Organization> organizations;
+
 }

+ 11 - 11
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/organization/dao/mapper/OrganizationMapper.java

@@ -18,17 +18,17 @@ import java.util.List;
  */
 public interface OrganizationMapper extends BaseMapper<Project> {
 
-    @Select("select distinct province from project where mt_company_id = ${mtCompanyId}")
-    List<HashMap<String, String>> provinces(@Param("mtCompanyId") Long mtCompanyId);
-
-    @Select("select distinct city from project where mt_company_id = ${mtCompanyId} and province=#{province}")
-    List<HashMap<String, String>> cities(@Param("mtCompanyId") Long mtCompanyId, @Param("province") String province);
-
-    @Select("select distinct district from project where mt_company_id = ${mtCompanyId} and city=#{city}")
-    List<HashMap<String, String>> districts(@Param("mtCompanyId") Long mtCompanyId, @Param("city") String city);
-
-    @Select("select id,project_name projectName,num from project where mt_company_id = ${mtCompanyId} and district=#{district}")
-    List<HashMap<String, String>> projects(@Param("mtCompanyId") Long mtCompanyId, @Param("district") String district);
+//    @Select("select distinct province from project where mt_company_id = ${mtCompanyId}")
+//    List<HashMap<String, String>> provinces(@Param("mtCompanyId") Long mtCompanyId);
+//
+//    @Select("select distinct city from project where mt_company_id = ${mtCompanyId} and province=#{province}")
+//    List<HashMap<String, String>> cities(@Param("mtCompanyId") Long mtCompanyId, @Param("province") String province);
+//
+//    @Select("select distinct district from project where mt_company_id = ${mtCompanyId} and city=#{city}")
+//    List<HashMap<String, String>> districts(@Param("mtCompanyId") Long mtCompanyId, @Param("city") String city);
+//
+//    @Select("select id,project_name projectName,num from project where mt_company_id = ${mtCompanyId} and district=#{district}")
+//    List<HashMap<String, String>> projects(@Param("mtCompanyId") Long mtCompanyId, @Param("district") String district);
 
     @Select("select p.user_id userId,u.avatar_url avatar,u.name name, p.user_role role,u.mobile mobile,p.is_monitor monitor from project_user p left join user_info u on p.user_id = u.user_id where p.project_id = #{projectId} and (p.user_role in (13, 14, 15, 16) or p.is_monitor = 1)")
     List<HashMap<String, Object>> users(@Param("projectId") Long projectId);

+ 204 - 39
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/organization/service/OrganizationService.java

@@ -1,8 +1,8 @@
 package cn.com.ty.lift.enterprise.organization.service;
 
 import cn.com.ty.lift.common.constants.ApiConstants;
+import cn.com.ty.lift.enterprise.organization.dao.entity.Organization;
 import cn.com.ty.lift.enterprise.organization.dao.entity.Project;
-import cn.com.ty.lift.enterprise.organization.dao.entity.model.OrganizationReq;
 import cn.com.ty.lift.enterprise.organization.service.impl.ProjectServiceImpl;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -21,43 +21,43 @@ public class OrganizationService {
      * @description 获取省,市,区,项目列表
      * @date 2019/12/17 10:05
      */
-    public RestResponse organization(OrganizationReq req) {
-        List<HashMap<String, String>> areas;
-        HashMap<String, Object> result;
-
-        List<Project> list = projectService.list(new QueryWrapper<Project>()
-                .select("province", "city", "district")
-                .eq("mt_company_id", req.getMtCompanyId()));
-
-        if (req.getDistrict() != null) {
-            List<HashMap<String, String>> projects = projectService.getBaseMapper().projects(req.getMtCompanyId(), req.getDistrict());
-            if (projects.isEmpty()) {
-                return RestResponse.ok(null, ApiConstants.RESULT_NO_DATA, "无数据");
-            }
-            //如果查询到了项目
-            result = new HashMap<>();
-            result.put("projectNum", projects.size());
-            result.put("projects", projects);
-            return RestResponse.ok(result, ApiConstants.RESULT_SUCCESS, "查询成功");
-        } else if (req.getCity() != null) {
-            areas = projectService.getBaseMapper().districts(req.getMtCompanyId(), req.getCity());
-        } else if (req.getProvince() != null) {
-            areas = projectService.getBaseMapper().cities(req.getMtCompanyId(), req.getProvince());
-        } else {
-            areas = projectService.getBaseMapper().provinces(req.getMtCompanyId());
-            if (areas.isEmpty()) {
-                return RestResponse.ok(null, ApiConstants.RESULT_NO_DATA, "无数据");
-            }
-        }
-        if (areas.isEmpty()) {
-            return RestResponse.ok(null, ApiConstants.RESULT_NO_DATA, "无数据");
-        }
-        //如果查询到了区域
-        result = new HashMap<>();
-        result.put("areaNum", areas.size());
-        result.put("areas", areas);
-        return RestResponse.ok(result, ApiConstants.RESULT_SUCCESS, "查询成功");
-    }
+//    public RestResponse organization(OrganizationReq req) {
+//        List<HashMap<String, String>> areas;
+//        HashMap<String, Object> result;
+//
+//        List<Project> list = projectService.list(new QueryWrapper<Project>()
+//                .select("province", "city", "district")
+//                .eq("mt_company_id", req.getMtCompanyId()));
+//
+//        if (req.getDistrict() != null) {
+//            List<HashMap<String, String>> projects = projectService.getBaseMapper().projects(req.getMtCompanyId(), req.getDistrict());
+//            if (projects.isEmpty()) {
+//                return RestResponse.ok(null, ApiConstants.RESULT_NO_DATA, "无数据");
+//            }
+//            //如果查询到了项目
+//            result = new HashMap<>();
+//            result.put("projectNum", projects.size());
+//            result.put("projects", projects);
+//            return RestResponse.ok(result, ApiConstants.RESULT_SUCCESS, "查询成功");
+//        } else if (req.getCity() != null) {
+//            areas = projectService.getBaseMapper().districts(req.getMtCompanyId(), req.getCity());
+//        } else if (req.getProvince() != null) {
+//            areas = projectService.getBaseMapper().cities(req.getMtCompanyId(), req.getProvince());
+//        } else {
+//            areas = projectService.getBaseMapper().provinces(req.getMtCompanyId());
+//            if (areas.isEmpty()) {
+//                return RestResponse.ok(null, ApiConstants.RESULT_NO_DATA, "无数据");
+//            }
+//        }
+//        if (areas.isEmpty()) {
+//            return RestResponse.ok(null, ApiConstants.RESULT_NO_DATA, "无数据");
+//        }
+//        //如果查询到了区域
+//        result = new HashMap<>();
+//        result.put("areaNum", areas.size());
+//        result.put("areas", areas);
+//        return RestResponse.ok(result, ApiConstants.RESULT_SUCCESS, "查询成功");
+//    }
 
     public RestResponse users(Project project) {
         List<HashMap<String, Object>> projectUsers = projectService.getBaseMapper().users(project.getId());
@@ -90,7 +90,172 @@ public class OrganizationService {
         return RestResponse.ok(projectUsers, ApiConstants.RESULT_SUCCESS, "查询成功");
     }
 
-    public Integer childNum(List<HashMap<String, String>> areas, List<HashMap<String, String>> projects) {
+    public RestResponse organizationTree(Long mtCompanyId) {
+        List<Organization> ps = new ArrayList<>();
+        List<Organization> cs = new ArrayList<>();
+        List<Organization> ds = new ArrayList<>();
+
+        Organization organization;
+        List<Project> projects = projectService.list(new QueryWrapper<Project>()
+                .select("id", "project_name", "province", "city", "district", "num")
+                .eq("mt_company_id", mtCompanyId)
+        );
+
+        for (Project project : projects) {
+            if (project.getProjectName() == null || project.getDistrict() == null || project.getCity() == null || project.getProvince() == null)
+                continue;
+            organization = new Organization();
+            String district = project.getDistrict();
+            String city = project.getCity();
+            String province = project.getProvince();
+
+            organization.setAreaName(district);
+            organization.setLevel(3);
+            //获取区列表和区下的项目
+            if (ds.isEmpty()) {
+                organization.setProjects(new ArrayList<>());
+                organization.getProjects().add(project);
+                ds.add(organization);
+            } else {
+                boolean flag = false;
+                for (Organization d : ds) {
+                    if (d.getAreaName().equals(district)) {
+                        d.getProjects().add(project);
+                        flag = false;
+                        break;
+                    } else {
+                        flag = true;
+                    }
+                }
+                if (flag) {
+                    organization.setProjects(new ArrayList<>());
+                    organization.getProjects().add(project);
+                    ds.add(organization);
+                }
+            }
+            organization = new Organization();
+
+            organization.setAreaName(city);
+            organization.setLevel(2);
+            //获取市列表
+            if (cs.isEmpty()) {
+                cs.add(organization);
+            } else {
+                boolean flag = true;
+                for (Organization c : cs) {
+                    if (c.getAreaName().equals(city)) {
+                        flag = false;
+                    }
+                }
+                if (flag)
+                    cs.add(organization);
+            }
+            organization = new Organization();
 
+            organization.setAreaName(province);
+            organization.setLevel(1);
+            //获取省列表
+            if (ps.isEmpty()) {
+                ps.add(organization);
+            } else {
+                boolean flag = true;
+                for (Organization p : ps) {
+                    if (p.getAreaName().equals(province)) {
+                        flag = false;
+                    }
+                }
+                if (flag)
+                    ps.add(organization);
+            }
+        }
+
+
+        for (Organization d : ds) {
+            //获取市名
+            String city = d.getProjects().get(0).getCity();
+            for (Organization c : cs) {
+                if (c.getAreaName().equals(city)) {
+                    if (c.getOrganizations() == null) {
+                        c.setOrganizations(new ArrayList<>());
+                    }
+                    c.getOrganizations().add(d);
+                }
+            }
+        }
+
+        for (Organization c : cs) {
+            //获取省名
+            String province = c.getOrganizations().get(0).getProjects().get(0).getProvince();
+            for (Organization p : ps) {
+                if (p.getAreaName().equals(province)) {
+                    if (p.getOrganizations() == null) {
+                        p.setOrganizations(new ArrayList<>());
+                    }
+                    p.getOrganizations().add(c);
+                }
+            }
+        }
+        if (ps.isEmpty()) {
+            return RestResponse.ok(null,ApiConstants.RESULT_NO_DATA,"无数据");
+        }
+        return RestResponse.ok(null,ApiConstants.RESULT_SUCCESS,"成功");
     }
+
+
+//    public Map<String, List> organizationTree1(Long mtCompanyId) {
+//        Map<String, List> ps = new HashMap<>();
+//        Map<String, List> cs = new HashMap<>();
+//        Map<String, List> ds = new HashMap<>();
+//
+//        List<Project> projects = projectService.list(new QueryWrapper<Project>()
+//                .select("id", "project_name", "province", "city", "district", "num")
+//                .eq("mt_company_id", mtCompanyId)
+//        );
+//
+//        for (Project project : projects) {
+//            if (project.getProjectName() == null || project.getDistrict() == null || project.getCity() == null || project.getProvince() == null)
+//                continue;
+//
+//            String district = project.getDistrict();
+//            String city = project.getCity();
+//            String province = project.getProvince();
+//
+//            //获取区列表和区下的项目
+//            if (!ds.containsKey(district)) {
+//                ds.put(district, new ArrayList());
+//            }
+//            if (ds.get(district) instanceof ArrayList) {
+//                ds.get(district).add(project);
+//            }
+//
+//            //获取市列表
+//            if (!cs.containsKey(city)) {
+//                cs.put(city, new ArrayList());
+//            }
+//
+//            //获取省列表
+//            if (!ps.containsKey(province)) {
+//                ps.put(province, new ArrayList());
+//            }
+//        }
+//
+//        for (Map.Entry<String, List> entry : ds.entrySet()) {
+//            for (Project project : projects) {
+//                if (entry.getKey().equals(project.getDistrict())) {
+//                    cs.get(project.getCity()).add(entry);
+//                    break;
+//                }
+//            }
+//        }
+//
+//        for (Map.Entry<String, List> entry : cs.entrySet()) {
+//            for (Project project : projects) {
+//                if (entry.getKey().equals(project.getCity())) {
+//                    ps.get(project.getProvince()).add(entry);
+//                    break;
+//                }
+//            }
+//        }
+//        return ps;
+//    }
 }

+ 7 - 15
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/controller/QuanNewsController.java

@@ -1,20 +1,13 @@
 package cn.com.ty.lift.quan.news.controller;
 
-import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.quan.news.dao.entity.QuanNews;
 import cn.com.ty.lift.quan.news.dao.entity.model.QuanNewsReq;
 import cn.com.ty.lift.quan.news.service.impl.QuanNewsServiceImpl;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import lombok.AllArgsConstructor;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Set;
-
 /**
  * <p>
  * 电梯圈新闻公告 前端控制器
@@ -80,14 +73,8 @@ public class QuanNewsController {
      * @param [新闻id, 新闻标题, 新闻内容]
      * @return org.springframework.http.ResponseEntity
      */
-    public RestResponse updateNews(@RequestParam Long id, @RequestParam String title, @RequestParam String content, @RequestParam Long releaseId, @RequestParam String releaseUser, @RequestParam MultipartFile videoFile) {
-        QuanNews quanNews = new QuanNews();
-        quanNews.setId(id)
-                .setTitle(title)
-                .setContent(content)
-                .setReleaseId(releaseId)
-                .setReleaseUser(releaseUser);
-        return quanNewsService.updateNews(quanNews, videoFile);
+    public RestResponse updateNews(@RequestBody QuanNews quanNews) {
+        return quanNewsService.updateNews(quanNews);
     }
 
     @PostMapping("/delete")
@@ -105,4 +92,9 @@ public class QuanNewsController {
     public RestResponse like(@RequestBody QuanNewsReq req) {
         return quanNewsService.like(req);
     }
+
+    @PostMapping("upFile")
+    public RestResponse upFile(@RequestParam Long id, @RequestParam MultipartFile file) {
+        return quanNewsService.upFile(id, file);
+    }
 }

+ 25 - 38
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/service/impl/QuanNewsServiceImpl.java

@@ -16,7 +16,6 @@ import lombok.AllArgsConstructor;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -32,7 +31,6 @@ import java.util.*;
  */
 @Service
 @AllArgsConstructor
-@Transactional
 public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> implements QuanNewsService {
 
     private final RedisTemplate redisTemplate;
@@ -58,16 +56,10 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
                     if (top.getTopSerial() < serial) {
                         top.setTopSerial(top.getTopSerial() + 1);
                     }
-                    if (top.getTopSerial().equals(serial)) {
-                        top.setTopSerial(1);
-                        continue;
-                    }
                 }
-                QuanNews top = this.getOne(new QueryWrapper<QuanNews>().eq("top_serial", 1));
-                top.setTopSerial(byId.getTopSerial());
                 byId.setTopSerial(1);
                 //更新排序
-                this.updateById(top);
+                this.updateBatchById(tops);
                 this.updateById(byId);
             } else {
                 //如果新闻不是置顶新闻
@@ -195,10 +187,6 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
                 .setReleaseId(req.getReleaseId())
                 .setReleaseUser(req.getReleaseUser());
 
-        if (!videoFile.isEmpty()) {
-            quanNews.setVideoName(this.upFile(videoFile));
-        }
-
         List<QuanNews> tops;
         if (req.getIsTop() != 0) {
             //获取置顶新闻列表
@@ -211,13 +199,13 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
                     top.setTopSerial(top.getTopSerial() + 1);
                 });
                 if (this.updateBatchById(tops) && this.save(quanNews)) {
-                    return RestResponse.ok(null, "1", "新增成功");
+                    return RestResponse.ok(quanNews.getId(), "1", "新增成功");
                 } else {
                     return RestResponse.ok(null, "0", "新增失败");
                 }
             } else {
                 if (this.save(quanNews)) {
-                    return RestResponse.ok(null, "1", "新增成功");
+                    return RestResponse.ok(quanNews.getId(), "1", "新增成功");
                 } else {
                     return RestResponse.ok(null, "0", "新增失败");
                 }
@@ -225,7 +213,7 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         }
         //添加新闻
         if (this.save(quanNews)) {
-            return RestResponse.ok(null, "1", "新增成功");
+            return RestResponse.ok(quanNews.getId(), "1", "新增成功");
         } else {
             return RestResponse.ok(null, "0", "新增失败");
         }
@@ -235,20 +223,11 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
      * @description 更新新闻
      * @date 2019/12/4 13:34
      */
-    public RestResponse updateNews(QuanNews quanNews, MultipartFile videoFile) {
-
-        QuanNews byId = this.getById(quanNews.getId());
-        if (null == byId) {
+    public RestResponse updateNews(QuanNews quanNews) {
+        if (null == this.getById(quanNews.getId())) {
             return RestResponse.ok(null, "0", "不存在此新闻");
         }
-        byId.setTitle(quanNews.getTitle()).setContent(quanNews.getContent());
-
-        if (!videoFile.isEmpty()) {
-            //上传视频到Oss,获取视频地址
-            byId.setVideoName(this.upFile(videoFile));
-        }
-
-        if (this.updateById(byId)) {
+        if (this.updateById(quanNews)) {
             return RestResponse.ok(null, "1", "更新成功");
         } else {
             return RestResponse.ok(null, "0", "更新失败");
@@ -276,21 +255,29 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         }
     }
 
-    private String upFile(MultipartFile videoFile) {
+    //新增、更新新闻时上传文件
+    public RestResponse<String> upFile(Long id, MultipartFile videoFile) {
         String originalFilename = videoFile.getOriginalFilename();
         if (originalFilename != null && originalFilename.contains(".")) {
             String substring = originalFilename.substring(videoFile.getOriginalFilename().lastIndexOf(".") + 1);
             String fileName = IdWorker.getIdStr() + "." + substring;
-            new Thread(() -> {
-                try {
-                    new AliyunOSSUtil().putObject("temp15827479607", videoFile.getBytes(), fileName);
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }).start();
-            return fileName;
+
+            boolean result = false;
+            try {
+                result = new AliyunOSSUtil().putObject("temp15827479607", videoFile.getBytes(), fileName);
+            } catch (IOException e) {
+                e.printStackTrace();
+                return RestResponse.ok(null, ApiConstants.RESULT_ERROR, "失败");
+            }
+            if (result) {
+                QuanNews quanNews = new QuanNews();
+                quanNews.setId(id).setVideoName(fileName);
+                this.updateById(quanNews);
+                return RestResponse.ok(fileName, ApiConstants.RESULT_SUCCESS, "成功");
+            }
+            return RestResponse.ok(null, ApiConstants.RESULT_ERROR, "失败");
         }
-        return null;
+        return RestResponse.ok(null, ApiConstants.RESULT_ERROR, "无数据或数据格式错误");
     }
 
     public RestResponse like(QuanNewsReq req) {