DESKTOP-USV654P\pc vor 2 Jahren
Ursprung
Commit
6d6cc00cb0

+ 1 - 7
src/main/java/com/xjrsoft/module/oa/controller/NewsController.java

@@ -93,13 +93,7 @@ public class NewsController {
     @PostMapping
     @ApiOperation(value = "新增新闻")
     public R add(@RequestBody AddNewsDto addNewsDto) {
-        News news = BeanUtil.toBean(addNewsDto, News.class);
-        news.setEnabledMark(EnabledMark.DISABLED.getCode());
-        boolean isSave = newsService.save(news);
-        if(isSave){
-            return R.ok(news.getId());
-        }
-        return R.ok(false);
+        return R.ok(newsService.add(addNewsDto));
     }
 
     @GetMapping(value = "/info")

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/service/INewsService.java

@@ -24,7 +24,7 @@ public interface INewsService extends MPJBaseService<News> {
      * @param addNewsDto
      * @return
      */
-    boolean add(AddNewsDto addNewsDto);
+    Long add(AddNewsDto addNewsDto);
     /**
      * 修改新闻
      *

+ 85 - 2
src/main/java/com/xjrsoft/module/oa/service/impl/NewsServiceImpl.java

@@ -1,8 +1,13 @@
 package com.xjrsoft.module.oa.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.toolkit.MPJWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.enums.EnabledMark;
+import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.authority.entity.DataAuthConfig;
 import com.xjrsoft.module.oa.dto.*;
 import com.xjrsoft.module.oa.entity.News;
@@ -14,9 +19,15 @@ import com.xjrsoft.module.oa.mapper.NewsMapper;
 import com.xjrsoft.module.oa.mapper.NewsRelationConfigMapper;
 import com.xjrsoft.module.oa.mapper.NewsRelationMapper;
 import com.xjrsoft.module.oa.service.INewsService;
+import com.xjrsoft.module.oa.vo.NewsAppendixVo;
+import com.xjrsoft.module.oa.vo.NewsRelationVo;
+import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
+import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.mapper.UserDeptRelationMapper;
+import com.xjrsoft.module.organization.mapper.UserMapper;
+import com.xjrsoft.module.organization.service.WeChatService;
 import com.xjrsoft.module.student.entity.BaseStudentContact;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.entity.BaseStudentUser;
@@ -53,11 +64,16 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
 
     private final BaseStudentSchoolRollMapper  baseStudentSchoolRollMapper;
 
+    private final com.xjrsoft.module.organization.service.WeChatService weChatService;
+
+    private final UserMapper userMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean add(AddNewsDto addNewsDto) {
+    public Long add(AddNewsDto addNewsDto) {
 
         News news = BeanUtil.toBean(addNewsDto, News.class);
+        news.setEnabledMark(EnabledMark.ENABLED.getCode());
         newsMapper.insert(news);
         if (addNewsDto.getAppendixList() != null) {
             for (AddNewsAppendixDto appendixDto : addNewsDto.getAppendixList()) {
@@ -85,7 +101,9 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
             }
         }
 
-        return true;
+        SendMessage(news.getId());
+
+        return news.getId();
     }
 
     @Override
@@ -242,4 +260,69 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
 
         return true;
     }
+
+    private boolean SendMessage(Long id) {
+        News news = newsMapper.selectById(id);
+        if (news.getSendRange() == 1) {
+            List<User> userList = userMapper.selectList(Wrappers.<User>query().lambda().isNotNull(User::getOpenId));
+            if(userList.size()>0) {
+                for (User user : userList) {
+                    WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
+                    weChatSendMessageDto.setUserId(user.getOpenId());
+                    weChatSendMessageDto.setTemplateId("sHsmz7LRj7HLd7GSTS3r2uKMhE2f1iDAW15RqSK_6KM");
+                    weChatSendMessageDto.setUrl("");
+                    weChatSendMessageDto.setMsgId(id.toString());
+                    JSONObject data = new JSONObject();
+
+                    JSONObject data1 = new JSONObject();
+                    data1.put("value", news.getFullHead());
+                    data.put("thing2", data1);
+
+                    JSONObject data2 = new JSONObject();
+                    data2.put("value", news.getAuthorName());
+                    data.put("phrase5", data2);
+
+                    JSONObject data3 = new JSONObject();
+                    data3.put("value", news.getReleaseTime());
+                    data.put("time3", data3);
+                    weChatSendMessageDto.setContent(data);
+                    weChatService.sendMessage(weChatSendMessageDto);
+                }
+            }
+        } else {
+            List<NewsRelationVo> newsRelationVoList = newsRelationMapper.selectJoinList(NewsRelationVo.class,
+                    new MPJLambdaWrapper<NewsRelation>().distinct()
+                            .eq(NewsRelation::getNewsId, id)
+                            .select(NewsRelation.class, x -> VoToColumnUtil.fieldsToColumns(NewsRelationVo.class).contains(x.getProperty()))
+                            .innerJoin(User.class, onWrapper -> onWrapper.eq(NewsRelation::getUserId, User::getId).isNotNull(User::getOpenId))
+                            .selectAs(User::getOpenId, NewsRelationVo::getUserName)
+            );
+            if (newsRelationVoList.size() > 0) {
+                for (NewsRelationVo newsRelationVo : newsRelationVoList) {
+                    WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
+                    weChatSendMessageDto.setUserId(newsRelationVo.getUserName());
+                    weChatSendMessageDto.setTemplateId("sHsmz7LRj7HLd7GSTS3r2uKMhE2f1iDAW15RqSK_6KM");
+                    weChatSendMessageDto.setUrl("");
+                    weChatSendMessageDto.setMsgId(id.toString());
+                    JSONObject data = new JSONObject();
+
+                    JSONObject data1 = new JSONObject();
+                    data1.put("value", news.getFullHead());
+                    data.put("thing2", data1);
+
+                    JSONObject data2 = new JSONObject();
+                    data2.put("value", news.getAuthorName());
+                    data.put("phrase5", data2);
+
+                    JSONObject data3 = new JSONObject();
+                    data3.put("value", news.getReleaseTime());
+                    data.put("time3", data3);
+                    weChatSendMessageDto.setContent(data);
+                    weChatService.sendMessage(weChatSendMessageDto);
+                }
+            }
+        }
+
+        return true;
+    }
 }

+ 15 - 35
src/main/java/com/xjrsoft/module/organization/controller/WechatController.java

@@ -51,8 +51,8 @@ public class WechatController {
     private final WeChatUtil weChatUtil;
 
     @PutMapping("/sync-user")
-    @ApiOperation(value="微信信息更新")
-    public R updateInfo(){
+    @ApiOperation(value = "微信信息更新")
+    public R updateInfo() {
 
         WeChatService.updateInfo();
         CompletableFuture.runAsync(() -> {
@@ -66,47 +66,27 @@ public class WechatController {
     }
 
     @GetMapping(value = "/page")
-    @ApiOperation(value="获取员工分页信息")
-    public R page(WeChatPageDto dto){
-        return  R.ok(userService.getPage(dto));
+    @ApiOperation(value = "获取员工分页信息")
+    public R page(WeChatPageDto dto) {
+        return R.ok(userService.getPage(dto));
     }
 
     @GetMapping(value = "/departpage")
-    @ApiOperation(value="获取部门分页信息")
-    public R page(WeChatDepartPageDto dto){
-        return  R.ok(departmentService.Ipage(dto));
+    @ApiOperation(value = "获取部门分页信息")
+    public R page(WeChatDepartPageDto dto) {
+        return R.ok(departmentService.Ipage(dto));
     }
 
     @PostMapping("/send-message")
-    @ApiOperation(value="微信公众号发送消息")
-    public R sendMessage(WeChatSendMessageDto dto){
-
+    @ApiOperation(value = "微信公众号发送消息")
+    public R sendMessage(WeChatSendMessageDto dto) {
         JSONObject object = new JSONObject();
-        object.put("touser","o8d_c6c-0yamdT-sEvX1Umgof1fE");
-        object.put("template_id","sHsmz7LRj7HLd7GSTS3r2uKMhE2f1iDAW15RqSK_6KM");
-        object.put("url","https://zhxy.cqtlzjzx.com/app/#/pages/message/notice/detail?id=1537635790825926657");
-        object.put("client_msg_id", "MSG_000022");
-
-        JSONObject data=new JSONObject();
-
-        JSONObject data1=new JSONObject();
-        data1.put("value","关于某某事项的审批");
-        data.put("thing2",data1);
-
-        JSONObject data2=new JSONObject();
-        data2.put("value","张三");
-        data.put("phrase5",data2);
-
-        JSONObject data3=new JSONObject();
-        data3.put("value","2022-02-22 11:24:00");
-        data.put("time3",data3);
-
-        object.put("data",data);
-
+        object.put("touser", dto.getUserId());
+        object.put("template_id", dto.getTemplateId());
+        object.put("url", dto.getUrl());
+        object.put("client_msg_id", dto.getMsgId());
+        object.put("data", dto.getContent());
         weChatUtil.sendTemplateMessage(object);
-
-
-
         return R.ok();
     }
 

+ 5 - 1
src/main/java/com/xjrsoft/module/organization/dto/WeChatSendMessageDto.java

@@ -1,9 +1,13 @@
 package com.xjrsoft.module.organization.dto;
 
+import com.alibaba.fastjson.JSONObject;
 import lombok.Data;
 
 @Data
 public class WeChatSendMessageDto {
-    private String content;
     private String userId;
+    private String templateId;
+    private String url;
+    private String msgId;
+    private JSONObject content;
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/organization/service/impl/WeChatServiceImgl.java

@@ -48,7 +48,7 @@ public class WeChatServiceImgl implements WeChatService {
 
     @Override
     public  void sendMessage(WeChatSendMessageDto dto){
-        weChatUtil.sendMessage(dto.getContent(),dto.getUserId());
+        //weChatUtil.sendMessage(dto.getContent(),dto.getUserId());
     }
 
     private boolean updatedepart() {