Browse Source

Merge branch 'wanghaicheng' of lift-manager/lift-server into develop

wanghaicheng 5 years ago
parent
commit
065b4e03d9

+ 6 - 1
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/custom/controller/PropertyCompanyController.java

@@ -97,6 +97,11 @@ public class PropertyCompanyController {
         return propertyCompanyService.delete(propertyCompany.getId());
     }
 
+    /**
+     * 项目模块用,根据维保公司id查询客户公司列表
+     * @param propertyCompany [mtCompanyId] 维保公司id
+     * @return 客户公司列表
+     */
     @PostMapping("/project/customs")
     public RestResponse customs(@RequestBody PropertyCompany propertyCompany) {
         List<PropertyCompany> propertyCompanies = propertyCompanyService.list(new QueryWrapper<PropertyCompany>()
@@ -123,7 +128,7 @@ public class PropertyCompanyController {
         return RestResponse.fail();
     }
 
-    @PostMapping("/export")
+    @GetMapping("/export")
     public void export(@RequestBody PropertyCompany propertyCompany, HttpServletResponse response) {
         propertyCompanyService.export(propertyCompany, response);
     }

+ 27 - 61
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/custom/service/impl/PropertyCompanyServiceImpl.java

@@ -7,8 +7,8 @@ import cn.com.ty.lift.enterprise.custom.dao.mapper.PropertyCompanyMapper;
 import cn.com.ty.lift.enterprise.custom.service.PropertyCompanyService;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.poi.excel.BigExcelWriter;
 import cn.hutool.poi.excel.ExcelUtil;
+import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -18,8 +18,9 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
-import java.io.*;
+import java.io.IOException;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
@@ -37,22 +38,19 @@ import java.util.List;
 public class PropertyCompanyServiceImpl extends ServiceImpl<PropertyCompanyMapper, PropertyCompany> implements PropertyCompanyService {
     private final PropertyContactServiceImpl propertyContactService;
 
-    public RestResponse propertyCompanies(PropertyCompanyReq req) {
-        Page<PropertyCompany> page = new Page<>(req.getPageNum(), req.getPageSize());
+    public RestResponse propertyCompanies(PropertyCompanyReq request) {
+        Page<PropertyCompany> page = new Page<>(request.getPageNum(), request.getPageSize());
         //根据请求参数查询客户列表
         IPage<PropertyCompany> records = this
                 .page(page, new QueryWrapper<PropertyCompany>()
                         .select("id", "mt_company_id", "name", "mailing_address", "status")
-                        .eq(req.getMtCompanyId() != null, "mt_company_id", req.getMtCompanyId())
+                        .eq(request.getMtCompanyId() != null, "mt_company_id", request.getMtCompanyId())
                         .ne("status", 0)
-                        .and(req.getInfo() != null, c ->
-                                c
-                                        .like("name", req.getInfo())
-                                        .or()
-                                        .like("address", req.getInfo())
-                                        .or()
-                                        .like("mailing_address", req.getInfo())
-                        ));
+                        .and(request.getInfo() != null, companyQueryWrapper ->
+                                companyQueryWrapper
+                                        .like("name", request.getInfo())
+                                        .or().like("address", request.getInfo())
+                                        .or().like("mailing_address", request.getInfo())));
         if (records.getRecords().isEmpty()) {
             return RestResponse.success();
         }
@@ -92,70 +90,38 @@ public class PropertyCompanyServiceImpl extends ServiceImpl<PropertyCompanyMappe
         }
     }
 
-    public void export(PropertyCompany propertyCompany, HttpServletResponse res) {
-        String fileName = "甲方公司_" + LocalDate.now().toString() + ".xlsx";
+    public void export(PropertyCompany propertyCompany, HttpServletResponse response) {
         List<PropertyCompany> companies = this.list(new QueryWrapper<PropertyCompany>()
                 .select("id", "name", "mailing_address", "status")
                 .eq("mt_company_id", propertyCompany.getMtCompanyId())
                 .ne("status", 0));
-
         List<List<?>> rows = new ArrayList<>();
         //设置列头
-        rows.add(CollUtil.newArrayList("甲方公司id", "名称", "通讯地址", "状态,1正常 2有关联项目"));
-        companies.forEach(c -> {
-            List<?> row = CollUtil.newArrayList(c.getId().toString(), c.getName(), c.getMailingAddress(), c.getStatus());
+        rows.add(CollUtil.newArrayList("甲方公司id", "名称", "通讯地址", "状态"));
+        companies.forEach(company -> {
+            List<?> row = CollUtil.newArrayList(
+                    company.getId()
+                    , company.getName()
+                    , null != company.getMailingAddress() ? company.getMailingAddress() : "无"
+                    , company.getStatus() == 1 ? "无关联项目" : "有关联项目");
             rows.add(row);
         });
-        BigExcelWriter writer = ExcelUtil.getBigWriter(System.getProperty("user.dir") + "/" + fileName);
+
+        ExcelWriter writer = ExcelUtil.getWriter(true);
         //设置列宽
         writer.setColumnWidth(0, 25);
         writer.setColumnWidth(1, 35);
         writer.setColumnWidth(2, 40);
         writer.setColumnWidth(3, 25);
-        // 一次性写出内容,使用默认样式
-        writer.write(rows);
-        // 关闭writer,释放内存
-        writer.close();
-
-        res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
-        res.setHeader("content-type", "application/x-msdownload;");
-        res.setContentType("text/plain; charset=utf-8");
-        byte[] buff = new byte[1024];
-        BufferedInputStream bis = null;
-        OutputStream os = null;
 
-        File file = new File(System.getProperty("user.dir") + "/" + fileName);
-        try {
-            os = res.getOutputStream();
-            bis = new BufferedInputStream(new FileInputStream(file));
-            int i = bis.read(buff);
-
-            while (i != -1) {
-                os.write(buff, 0, buff.length);
-                os.flush();
-                i = bis.read(buff);
-            }
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
+        response.setHeader("Content-Disposition", "attachment;filename=" + LocalDate.now().toString() + ".xlsx");
+        try (ServletOutputStream out = response.getOutputStream()) {
+            writer.write(rows);
+            writer.flush(out, true);
+            writer.close();
         } catch (IOException e) {
             e.printStackTrace();
-        } finally {
-            if (os != null) {
-                try {
-                    os.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-            if (bis != null) {
-                try {
-                    bis.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-
-        if (file.exists()) {
-            file.delete();
         }
     }
 }

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

@@ -5,10 +5,7 @@ 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.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
 
@@ -109,13 +106,25 @@ public class QuanNewsController {
         return quanNewsService.like(request);
     }
 
+    /**
+     * 市列表
+     *
+     * @return 市列表
+     */
     @PostMapping("/area")
     public RestResponse area() {
         return quanNewsService.areas();
     }
 
-    @PostMapping("/location")
-    public RestResponse location(String point) throws IOException {
-        return   quanNewsService.location(point);
+    /**
+     * 根据经纬度定位市名称
+     *
+     * @param point 经纬度,如:39.990912172420714,116.32715863448607
+     * @return 市名称
+     * @throws IOException jackson反序列化解析错误
+     */
+    @GetMapping("/location")
+    public RestResponse location(@RequestParam String point) throws IOException {
+        return quanNewsService.location(point);
     }
 }

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

@@ -1,5 +1,6 @@
 package cn.com.ty.lift.quan.news.service.impl;
 
+import cn.com.ty.lift.common.export.ExportUtils;
 import cn.com.ty.lift.quan.news.dao.entity.MapInfo;
 import cn.com.ty.lift.quan.news.dao.entity.QuanNews;
 import cn.com.ty.lift.quan.news.dao.entity.model.QuanNewsReq;
@@ -46,7 +47,7 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         Page<QuanNews> page = new Page<>(request.getPageNum(), request.getPageSize());
         IPage<Map<String, Object>> news = this.pageMaps(page, new QueryWrapper<QuanNews>()
                 .select("id", "title", "content", "top_serial topSerial", "video_path videoPath", "release_id releaseId", "release_user releaseUser", "release_date releaseDate")
-                .like(null != request.getDistrict(), "area_code_id", request.getDistrict())
+                .like(null != request.getDistrict(), "district", request.getDistrict())
                 .like(null != request.getTitle(), "title", request.getTitle())
                 .eq("top_serial", "0")
                 .orderByDesc("release_date"));
@@ -58,7 +59,10 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         newsAddLookAndLike(news.getRecords(), lookTimes, likeUsers);
         result.put("news", news);
         if (request.getHaveTops() == 1) {
-            List<Map<String, Object>> topNews = this.listMaps(new QueryWrapper<QuanNews>().ne("top_serial", "0").orderByAsc("top_serial"));
+            List<Map<String, Object>> topNews = this.listMaps(new QueryWrapper<QuanNews>()
+                    .select("id", "title", "content", "top_serial topSerial", "video_path videoPath", "release_id releaseId", "release_user releaseUser", "release_date releaseDate")
+                    .ne("top_serial", "0")
+                    .orderByAsc("top_serial"));
             //把点赞的用户数量和浏览量整入新闻字段中
             newsAddLookAndLike(topNews, lookTimes, likeUsers);
             result.put("topNews", topNews);
@@ -309,6 +313,9 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
                 .getForEntity("http://api.map.baidu.com/geocoder?location=" + point + "&output=json", String.class)
                 .getBody();
         MapInfo mapInfo = jackson.readValue(body, MapInfo.class);
-        return RestResponse.success(mapInfo.getCity());
+        if (mapInfo.getCity() != null) {
+            return RestResponse.success(mapInfo.getCity().replace("市", ""));
+        }
+        return RestResponse.fail();
     }
 }

+ 1 - 1
lift-quan-service/src/main/resources/application.yml

@@ -1,5 +1,5 @@
 server:
-  port: 20231
+  port: 20232
 
 spring:
   application: