Просмотр исходного кода

新闻,区域更换主管,消息推送功能,开启使用activeMQ,@EnableJms

wanghaicheng 5 лет назад
Родитель
Сommit
66fbf99963

+ 14 - 2
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/controller/RegionController.java

@@ -2,6 +2,7 @@ package cn.com.ty.lift.enterprise.region.controller;
 
 import cn.com.ty.lift.enterprise.region.dao.entity.Region;
 import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionReq;
+import cn.com.ty.lift.enterprise.region.dao.mapper.RegionMapper;
 import cn.com.ty.lift.enterprise.region.service.RegionService;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -26,7 +27,8 @@ import java.util.Map;
 @RestController
 @RequestMapping("/region")
 public class RegionController {
-    private RegionService regionService;
+    private final RegionService regionService;
+    private final RegionMapper regionMapper;
 
     @PostMapping("/list")
     public RestResponse list(@RequestBody RegionReq regionReq) {
@@ -70,6 +72,14 @@ public class RegionController {
      */
     @PostMapping("/update")
     public RestResponse update(@RequestBody Region region) {
+        Region byId = regionService.getById(region);
+        //如果区域主管更改了,发推送消息
+        if (!byId.getUserId().equals(region.getUserId())) {
+            String oldUser = regionMapper.selectNameByUserId(byId.getUserId());
+            String newUser = regionMapper.selectNameByUserId(region.getUserId());
+            String areaName = byId.getAreaName();
+            regionService.push(areaName, oldUser, newUser, byId, region);
+        }
         if (regionService.updateById(region)) {
             return RestResponse.success(null, "成功");
         }
@@ -104,7 +114,7 @@ public class RegionController {
      *
      * @param region 区域id
      * @return RestResponse
-     * @since  2019/12/17 10:34
+     * @since 2019/12/17 10:34
      */
     @PostMapping("/project/areas")
     public RestResponse areas(@RequestBody Region region) {
@@ -122,6 +132,7 @@ public class RegionController {
 
     /**
      * 区域属于的省市名,省市编码
+     *
      * @param region 区域id
      * @return RestResponse
      * @since 2019/12/19 15:15
@@ -133,6 +144,7 @@ public class RegionController {
 
     /**
      * 项目模块,根据regionId查询区域主管,区域文员
+     *
      * @param region 区域id
      * @return RestResponse 查询区域主管,区域文员
      * @since 2019/12/17 10:33

+ 4 - 1
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/dao/mapper/RegionMapper.java

@@ -22,7 +22,7 @@ public interface RegionMapper extends BaseMapper<Region> {
     List<Map<String, Object>> selectProjectRegions(@Param("id") Long id);
 
     @Select("select user_id userId,name from user_info")
-    List<Map<String,Object>> selectUserInfo();
+    List<Map<String, Object>> selectUserInfo();
 
     @Select("select region_id regionId,num from project")
     List<Map<String, Object>> selectProjects();
@@ -38,4 +38,7 @@ public interface RegionMapper extends BaseMapper<Region> {
 
     @Select("select name,code from area_code where parent=#{cityCode}")
     List<Map<String, Object>> areas(String cityCode);
+
+    @Select("select name from user_info where user_id = #{userId}")
+    String selectNameByUserId(Long userId);
 }

+ 2 - 0
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/service/RegionService.java

@@ -27,4 +27,6 @@ public interface RegionService extends IService<Region> {
     RestResponse selectRegionUser(Region region);
 
     List<Map<String, Object>> areas(String cityCode);
+
+    void push(String areaName, String oldUser, String newUser, Region byId, Region region);
 }

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

@@ -1,5 +1,8 @@
 package cn.com.ty.lift.enterprise.region.service.impl;
 
+import cn.com.ty.lift.common.model.PushMessage;
+import cn.com.ty.lift.common.model.PushUserInfo;
+import cn.com.ty.lift.enterprise.push.PushUserService;
 import cn.com.ty.lift.enterprise.region.dao.entity.AreaCode;
 import cn.com.ty.lift.enterprise.region.dao.entity.Region;
 import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionReq;
@@ -11,8 +14,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
+import org.springframework.jms.core.JmsMessagingTemplate;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -29,6 +34,8 @@ import java.util.Map;
 @AllArgsConstructor
 public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements RegionService {
     private final AreaCodeServiceImpl areaCodeService;
+    private final PushUserService pushUserService;
+    private final JmsMessagingTemplate jmsMessagingTemplate;
 
     public RestResponse regions(RegionReq req) {
         Page<Region> page = new Page<>(req.getPageNum(), req.getPageSize());
@@ -157,4 +164,28 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
     public List<Map<String, Object>> areas(String cityCode) {
         return baseMapper.areas(cityCode);
     }
+
+    public void push(String areaName, String oldUser, String newUser, Region byId, Region region) {
+        List<PushUserInfo> userInfos = new ArrayList<>(10);
+        //添加企业管理员
+        userInfos.addAll(pushUserService.listEnterpriseAdmin(byId.getMtCompanyId()));
+        //添加新老区域主管
+        userInfos.add(pushUserService.listByUserId(byId.getMtCompanyId(), byId.getUserId()));
+        userInfos.add(pushUserService.listByUserId(byId.getMtCompanyId(), region.getUserId()));
+        String[] stringIds = byId.getClerk().replace(" ", "").split(",");
+        List<PushUserInfo> clerks = new ArrayList<>();
+        if (stringIds.length > 0) {
+            List<Long> ids = new ArrayList<>();
+            for (String stringId : stringIds) {
+                ids.add(Long.valueOf(stringId));
+            }
+            clerks = pushUserService.listByUserIds(byId.getMtCompanyId(), ids);
+        }
+        //添加区域下的文员
+        userInfos.addAll(clerks);
+        //推送消息
+        PushMessage
+                .workReplaceRegionCharger(areaName, oldUser, newUser)
+                .sendTokenOnPlatform(jmsMessagingTemplate, userInfos);
+    }
 }

+ 2 - 0
lift-quan-service/src/main/java/cn/com/ty/lift/quan/QuanApplication.java

@@ -5,6 +5,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.jms.annotation.EnableJms;
 
 /**
  * @Author xwy
@@ -13,6 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 @Slf4j
 @EnableFeignClients
 @MapperScan("cn.com.ty.**.dao.mapper")
+@EnableJms
 @SpringBootApplication(scanBasePackages = {"cn.com.ty.lift", "cn.com.xwy.boot"})
 public class QuanApplication {
 

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

@@ -1,10 +1,13 @@
 package cn.com.ty.lift.quan.news.controller;
 
+import cn.com.ty.lift.common.model.PushMessage;
 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.jms.core.JmsMessagingTemplate;
+import org.springframework.jms.core.JmsTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
@@ -22,6 +25,7 @@ import java.io.IOException;
 @RequestMapping("/news")
 public class QuanNewsController {
     private final QuanNewsServiceImpl quanNewsService;
+    private final JmsMessagingTemplate jmsMessagingTemplate;
 
     /**
      * 分页展示置顶新闻+普通新闻
@@ -65,6 +69,8 @@ public class QuanNewsController {
      */
     @PostMapping("/add")
     public RestResponse add(@RequestBody QuanNews quanNews) {
+        //推送消息给全平台
+        PushMessage.newsNotice(quanNews.getTitle()).sendAllOnPlatform(jmsMessagingTemplate);
         return RestResponse.success(quanNewsService.save(quanNews));
     }
 

+ 1 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/SystemApplication.java

@@ -5,6 +5,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.jms.annotation.EnableJms;
 import org.springframework.web.bind.annotation.CrossOrigin;
 
 /**