Explorar o código

申请加入家族,添加消息推送

Alex %!s(int64=4) %!d(string=hai) anos
pai
achega
fd9d555f56

+ 0 - 15
ruoyi-app/src/main/java/com/ruoyi/app/controller/FamilyController.java

@@ -2,40 +2,26 @@ package com.ruoyi.app.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
-import com.github.pagehelper.PageHelper;
-import com.ruoyi.app.annotation.LoginAppUser;
 import com.ruoyi.app.controller.base.AppBaseController;
-import com.ruoyi.app.domain.TbAppUser;
 import com.ruoyi.app.domain.TbFamily;
-import com.ruoyi.app.domain.TbFamilyMember;
 import com.ruoyi.app.domain.TbMemberMiddle;
 import com.ruoyi.app.domain.vo.AppFamilyVo;
 import com.ruoyi.app.domain.vo.AppMemberVo;
-import com.ruoyi.app.service.ITbAppUserService;
 import com.ruoyi.app.service.ITbFamilyService;
 import com.ruoyi.app.service.ITbMemberMiddleService;
-import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.bean.BeanUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
-import org.apache.poi.ss.formula.functions.T;
-import org.aspectj.weaver.loadtime.Aj;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -53,7 +39,6 @@ import java.util.List;
 public class FamilyController extends AppBaseController {
 
     private final ITbFamilyService familyService;
-    private final ITbAppUserService appUserService;
     private final ITbMemberMiddleService middleService;
 
     /**

+ 42 - 0
ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbFamilyServiceImpl.java

@@ -9,8 +9,10 @@ import com.ruoyi.app.service.ITbAppUserService;
 import com.ruoyi.app.service.ITbFamilyMemberService;
 import com.ruoyi.app.service.ITbMemberMiddleService;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.PushUtil;
 import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.app.mapper.TbFamilyMapper;
@@ -19,6 +21,7 @@ import com.ruoyi.app.service.ITbFamilyService;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -106,9 +109,48 @@ public class TbFamilyServiceImpl extends ServiceImpl<TbFamilyMapper, TbFamily> i
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("申请失败");
         }
+        // 推送
+        push(memberVo.getNickName(),memberVo.getFamilyId());
         return AjaxResult.success("申请成功");
     }
 
+    /**
+     * 推送
+     * @param userName
+     * @param familyId
+     * @return
+     */
+    @Async
+    protected boolean push(String userName, Long familyId){
+        // 家族信息
+        TbFamily family = familyService.getById(familyId);
+        if (family == null) {
+            return false;
+        }
+        // 管理员列表
+        List<AppMemberVo> memberVos = memberService.myMemberList(new LambdaQueryWrapper<AppMemberVo>()
+                .eq(AppMemberVo::getFamilyId,familyId)
+                .eq(AppMemberVo::getStatus,"2")
+                .eq(AppMemberVo::getAdmin,"Y")
+        );
+        if (memberVos.size() <= 0) {
+            return false;
+        }
+        // 管理员ClientId
+        List<String> cids = new ArrayList<>();
+        memberVos.forEach(item -> {
+            cids.add(item.getClientId());
+        });
+        if (cids.size() <= 0) {
+            return false;
+        }
+        StringBuilder builder = new StringBuilder();
+        builder.append(userName);
+        builder.append("申请加入");
+        builder.append(family.getFullName());
+        return PushUtil.sendMessage("家族通知",builder.toString(),cids);
+    }
+
     @Override
     public boolean saveFamily(TbFamily family){
         if (familyService.save(family)) {

+ 2 - 2
ruoyi-system/src/main/resources/mapper/app/TbFamilyMemberMapper.xml

@@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <select id="selectFamilyMember" resultType="com.ruoyi.app.domain.vo.AppMemberVo">
-        select u.id user_id,m.id member_id,u.mobile,u.qrcode,u.nick_name,u.avatar,
+        select u.id user_id,m.id member_id,u.mobile,u.qrcode,u.nick_name,u.avatar,u.client_id,
         u.py_code user_py_code,u.py_first user_py_first,
         m.name,m.gender,m.birthday,m.spouse_user_id,m.state,
         m.py_code member_py_code,m.py_first member_py_first,
@@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectFamilyTree" resultType="com.ruoyi.app.domain.vo.AppMemberVo">
         select a.id user_id,a.joins,a.template_id,a.nick_name,a.avatar,a.qrcode,a.mobile,a.openid,a.ver_code,
-        a.deleted,a.enable,a.login_time,a.login_ip, a.py_code user_py_code,a.py_first user_py_first,
+        a.deleted,a.enable,a.login_time,a.login_ip, a.py_code user_py_code,a.py_first user_py_first,a.client_id,
         a.create_by user_create_by,a.create_time user_create_time, a.update_by user_update_by,
         a.update_time user_update_time, a.remark user_remark
         ,