Explorar o código

电梯圈新闻,区域,维保项功能优化

wang-hai-cheng %!s(int64=5) %!d(string=hai) anos
pai
achega
17051897ab

+ 1 - 8
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/option/controller/MaintenanceOptionController.java

@@ -124,14 +124,7 @@ public class MaintenanceOptionController {
      */
     @PostMapping("/delete")
     public RestResponse delete(@RequestBody MaintenanceOption option) {
-        //0是系统默认维保项
-        if (option.getMtCompanyId().equals(0L)) {
-            return RestResponse.fail("默认维保项无法删除");
-        }
-        if (optionService.removeById(option.getId())) {
-            return RestResponse.success(null, "成功");
-        }
-        return RestResponse.fail();
+        return optionService.delete(option);
     }
 
     /**

+ 13 - 1
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/option/service/impl/MaintenanceOptionServiceImpl.java

@@ -3,6 +3,7 @@ package cn.com.ty.lift.enterprise.option.service.impl;
 import cn.com.ty.lift.enterprise.option.dao.entity.MaintenanceOption;
 import cn.com.ty.lift.enterprise.option.dao.mapper.MaintenanceOptionMapper;
 import cn.com.ty.lift.enterprise.option.service.MaintenanceOptionService;
+import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
@@ -17,4 +18,15 @@ import org.springframework.stereotype.Service;
 @Service
 public class MaintenanceOptionServiceImpl extends ServiceImpl<MaintenanceOptionMapper, MaintenanceOption> implements MaintenanceOptionService {
 
-}
+    public RestResponse delete(MaintenanceOption option) {
+        //0是系统默认维保项
+        option = this.getById(option.getId());
+        if (option.getMtCompanyId().equals(0L)) {
+            return RestResponse.fail("默认维保项无法删除");
+        }
+        if (this.removeById(option.getId())) {
+            return RestResponse.success(null, "成功");
+        }
+        return RestResponse.fail();
+    }
+}

+ 3 - 2
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/service/impl/RegionServiceImpl.java

@@ -50,8 +50,7 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
         List<Map<String, Object>> areaCodes = baseMapper.selectAreaCodes();
         List<Map<String, Object>> userInfos = baseMapper.selectUserInfo();
 
-        int projectNum = 0;
-        int num = 0;
+
 
         if (records.isEmpty()) {
             return RestResponse.success();
@@ -80,6 +79,8 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
                 }
             }
 
+            int projectNum = 0;
+            int num = 0;
             //遍历项目列表,获取区域下的项目个数和区域下的总电梯数
             Long id = Long.valueOf(region.get("id").toString());
             for (Map<String, Object> project : projects) {

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

@@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.IOException;
+
 /**
  * <p>
  * 电梯圈新闻公告 前端控制器
@@ -33,19 +35,19 @@ public class QuanNewsController {
      */
     @PostMapping("/list")
     public RestResponse list(@RequestBody QuanNewsReq quanNews) {
-        return quanNewsService.news(quanNews.getPageNum(), quanNews.getPageSize(), quanNews.getHaveTops());
+        return quanNewsService.news(quanNews);
     }
 
     /**
      * 置顶/取消置顶
      *
-     * @param req [新闻id]
+     * @param request [新闻id]
      * @return cn.com.xwy.boot.web.dto.RestResponse
      * @since 2019/12/2 15:40
      */
     @PostMapping("/top")
-    public RestResponse top(@RequestBody QuanNewsReq req) {
-        return quanNewsService.top(req.getId(), req.getType());
+    public RestResponse top(@RequestBody QuanNewsReq request) {
+        return quanNewsService.top(request.getId(), request.getType());
     }
 
     /**
@@ -60,17 +62,16 @@ public class QuanNewsController {
         return quanNewsService.getQuanNews(quanNews);
     }
 
-
     /**
      * 新增新闻
      *
-     * @param req [新闻标题, 新闻内容, 视频文件, 发布人id]
+     * @param request [新闻标题, 新闻内容, 视频文件, 发布人id]
      * @return org.springframework.http.ResponseEntity
      * @since 2019/12/2 15:48
      */
     @PostMapping("/add")
-    public RestResponse add(@RequestBody QuanNewsReq req) {
-        return quanNewsService.addNew(req);
+    public RestResponse add(@RequestBody QuanNewsReq request) {
+        return quanNewsService.addNew(request);
     }
 
     /**
@@ -85,7 +86,6 @@ public class QuanNewsController {
         return quanNewsService.updateNews(quanNews);
     }
 
-
     /**
      * 根据id删除新闻
      *
@@ -101,12 +101,21 @@ public class QuanNewsController {
     /**
      * 点赞新闻
      *
-     * @param req [用户id,新闻id]
+     * @param request [用户id,新闻id]
      * @return org.springframework.http.ResponseEntity
      */
     @PostMapping("/like")
-    public RestResponse like(@RequestBody QuanNewsReq req) {
-        return quanNewsService.like(req);
+    public RestResponse like(@RequestBody QuanNewsReq request) {
+        return quanNewsService.like(request);
     }
 
+    @PostMapping("/area")
+    public RestResponse area() {
+        return quanNewsService.areas();
+    }
+
+    @PostMapping("/location")
+    public RestResponse location(String point) throws IOException {
+        return   quanNewsService.location(point);
+    }
 }

+ 44 - 0
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/dao/entity/MapInfo.java

@@ -0,0 +1,44 @@
+package cn.com.ty.lift.quan.news.dao.entity;
+
+import lombok.Data;
+import lombok.ToString;
+
+@Data
+@ToString
+public class MapInfo {
+    String status;
+    Result result;
+
+    public String getCity() {
+        return getResult().getAddressComponent().getCity();
+    }
+}
+
+@Data
+@ToString
+class Result {
+    Location location;
+    String formatted_address;
+    String business;
+    Integer cityCode;
+    AddressComponent addressComponent;
+}
+
+@Data
+@ToString
+class AddressComponent {
+    String city;
+    String direction;
+    String distance;
+    String district;
+    String province;
+    String street;
+    String street_number;
+}
+
+@Data
+@ToString
+class Location {
+    float lng;
+    float lat;
+}

+ 6 - 0
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/dao/entity/QuanNews.java

@@ -37,6 +37,12 @@ public class QuanNews implements Serializable {
     @TableField("top_serial")
     private Integer topSerial;
 
+    /**
+     * 行政区id
+     */
+    @TableField("district")
+    private String district;
+
     /**
      * 标题
      */

+ 2 - 1
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/dao/entity/model/QuanNewsReq.java

@@ -18,7 +18,7 @@ import java.io.Serializable;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-public class QuanNewsReq extends QuanNews implements Serializable {
+public class QuanNewsReq extends QuanNews {
 
     private static final long serialVersionUID = 1L;
 
@@ -51,4 +51,5 @@ public class QuanNewsReq extends QuanNews implements Serializable {
      * 新增时标识是否为置顶新闻
      */
     private Integer isTop;
+
 }

+ 5 - 1
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/dao/mapper/QuanNewsMapper.java

@@ -2,6 +2,9 @@ package cn.com.ty.lift.quan.news.dao.mapper;
 
 import cn.com.ty.lift.quan.news.dao.entity.QuanNews;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2019-12-02
  */
 public interface QuanNewsMapper extends BaseMapper<QuanNews> {
-
+    @Select("select name from area_code where level = 2")
+    List<String> areas();
 }

+ 55 - 38
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.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;
 import cn.com.ty.lift.quan.news.dao.mapper.QuanNewsMapper;
@@ -9,10 +10,14 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -37,11 +42,14 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
      *
      * @since 2019/12/3 10:30
      */
-    public RestResponse news(Long pageNum, Long pageSize, Integer haveTops) {
-        Page<QuanNews> page = new Page<>(pageNum, pageSize);
+    public RestResponse news(QuanNewsReq request) {
+        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")
-                .eq("top_serial", "0").orderByDesc("release_date"));
+                .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.getTitle(), "title", request.getTitle())
+                .eq("top_serial", "0")
+                .orderByDesc("release_date"));
         //全部新闻的浏览量列表
         Map<Object, Object> lookTimes = redisTemplate.boundHashOps("system-quanNews-look-time").entries();
         //全部新闻的点赞用户列表
@@ -49,7 +57,7 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         HashMap<String, Object> result = new HashMap<>();
         newsAddLookAndLike(news.getRecords(), lookTimes, likeUsers);
         result.put("news", news);
-        if (haveTops == 1) {
+        if (request.getHaveTops() == 1) {
             List<Map<String, Object>> topNews = this.listMaps(new QueryWrapper<QuanNews>().ne("top_serial", "0").orderByAsc("top_serial"));
             //把点赞的用户数量和浏览量整入新闻字段中
             newsAddLookAndLike(topNews, lookTimes, likeUsers);
@@ -174,35 +182,28 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         }
     }
 
-    public RestResponse addNew(QuanNewsReq req) {
+    public RestResponse addNew(QuanNewsReq request) {
         QuanNews quanNews = new QuanNews();
-        quanNews.setTitle(req.getTitle())
-                .setContent(req.getContent())
-                .setReleaseId(req.getReleaseId())
-                .setReleaseUser(req.getReleaseUser());
-
-        List<QuanNews> tops;
-        if (req.getIsTop() != 0) {
+        quanNews.setDistrict(request.getDistrict())
+                .setTitle(request.getTitle())
+                .setContent(request.getContent())
+                .setReleaseId(request.getReleaseId())
+                .setReleaseUser(request.getReleaseUser())
+                .setTopSerial(0);
+        if (request.getIsTop() != 0) {
+            List<QuanNews> tops;
             //获取置顶新闻列表
             tops = this.list(new QueryWrapper<QuanNews>().ne("top_serial", 0));
-            //设置新添加新闻的数据
+            //设置添加的新闻置顶排序为第1个
             quanNews.setTopSerial(1);
-            //遍历排序加1
+            //遍历其它新闻,序号+1
             if (!tops.isEmpty()) {
-                tops.forEach(top -> {
-                    top.setTopSerial(top.getTopSerial() + 1);
-                });
+                tops.forEach(top -> top.setTopSerial(top.getTopSerial() + 1));
                 if (this.updateBatchById(tops) && this.save(quanNews)) {
                     return RestResponse.success(quanNews.getId(), "成功");
                 } else {
                     return RestResponse.fail();
                 }
-            } else {
-                if (this.save(quanNews)) {
-                    return RestResponse.success(quanNews.getId(), "成功");
-                } else {
-                    return RestResponse.fail();
-                }
             }
         }
         //添加新闻
@@ -248,15 +249,12 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         }
     }
 
-    public RestResponse like(QuanNewsReq req) {
-        String userId = req.getUserId().toString();
-        String id = req.getId().toString();
+    public RestResponse like(QuanNewsReq request) {
+        String userId = request.getUserId().toString();
+        String id = request.getId().toString();
         ArrayList users = (ArrayList) redisTemplate.opsForHash().get("system-quanNews-like-users", id);
-        if (users == null) {
+        if (null == users) {
             users = new ArrayList<>();
-            users.add(userId);
-            redisTemplate.opsForHash().put("system-quanNews-like-users", id, users);
-            return RestResponse.success(null, "点赞成功");
         } else {
             //遍历userId列表
             for (Object user : users) {
@@ -267,22 +265,22 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
                     return RestResponse.success(null, "取消点赞成功");
                 }
             }
-            //如果列表内没有这个uid就标记喜欢
-            users.add(userId);
-            redisTemplate.opsForHash().put("system-quanNews-like-users", id, users);
-            return RestResponse.success(null, "点赞成功");
         }
+        //如果没有列表或列表内没有这个uid就标记喜欢
+        users.add(userId);
+        redisTemplate.opsForHash().put("system-quanNews-like-users", id, users);
+        return RestResponse.success(null, "点赞成功");
     }
 
     //获取一条新闻
-    public RestResponse getQuanNews(QuanNewsReq req) {
-        Map<String, Object> byId = this.getMap(new QueryWrapper<QuanNews>().eq("id", req.getId()));
+    public RestResponse getQuanNews(QuanNewsReq request) {
+        Map<String, Object> byId = this.getMap(new QueryWrapper<QuanNews>().eq("id", request.getId()));
         if (null != byId) {
             String id = byId.get("id").toString();
             Long lookNum = redisTemplate.boundHashOps("system-quanNews-look-time").increment(id, 1);
             int isLike;
             ArrayList users = (ArrayList) redisTemplate.opsForHash().get("system-quanNews-like-users", id);
-            if (users != null && users.contains(req.getUserId().toString())) {
+            if (users != null && users.contains(request.getUserId().toString())) {
                 isLike = 1;
             } else {
                 isLike = 0;
@@ -294,4 +292,23 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
             return RestResponse.success();
         }
     }
+
+    public RestResponse areas() {
+        List<String> areas = this.getBaseMapper().areas();
+        if (areas.isEmpty()) {
+            return RestResponse.success();
+        }
+        return RestResponse.success(areas);
+    }
+
+    //传入经纬度,返回城市名称,基于百度地图,文档http://lbsyun.baidu.com/index.php?title=uri/api/web#service-page-anchor2
+    public RestResponse location(String point) throws IOException {
+        ObjectMapper jackson = new ObjectMapper();
+        jackson.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        String body = new RestTemplate()
+                .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());
+    }
 }

+ 27 - 0
lift-quan-service/src/main/resources/application-web.yml

@@ -0,0 +1,27 @@
+spring:
+  datasource:
+    url: jdbc:mysql://111.47.6.224:13769/rdsliftmanager?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+    username: root
+    password: Tyty-2020
+    driver-class-name: com.mysql.cj.jdbc.Driver
+
+  #redis缓存配置
+  redis:
+    database: 0 #数据库索引,默认为0
+    host: 111.47.6.224 #服务器地址
+    port: 13789 #端口
+    password: newtyty #验证密码
+    jedis:
+      pool:
+        max-active: 8 #最大连接数
+        max-idle: 8 #最大空闲链接
+        max-wait: 20000ms
+        min-idle: 0
+
+#aliyun OSS服务配置信息,加载到SystemConfiguration
+aliyun:
+  oss:
+    endpoint: http://oss-cn-beijing.aliyuncs.com
+    bucketName: temp15827479607
+    accessKeyId: LTAI4FkSqFZa6LH9HqAsVott
+    accessKeySecret: w7GXuh5tf1hduQuZ2AzT3a4q14BI1i

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

@@ -5,7 +5,7 @@ spring:
   application:
     name: lift-quan-service
   profiles:
-    active: local
+    active: web
   servlet:
     multipart:
       enabled: true

+ 4 - 4
lift-system-service/pom.xml

@@ -18,10 +18,10 @@
             <artifactId>xwy-spring-boot</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>cn.com.xwy</groupId>
-            <artifactId>xwy-cloud-dependencies</artifactId>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>cn.com.xwy</groupId>-->
+<!--            <artifactId>xwy-cloud-dependencies</artifactId>-->
+<!--        </dependency>-->
 
         <!-- 添加公共模块依赖 -->
         <dependency>