wuxw
2024-01-22 a40c2eb885bcdb697c2e16dae4f43cb6cd718973
service-job/src/main/java/com/java110/job/msgNotify/MsgNotifyFactory.java
@@ -1,16 +1,22 @@
package com.java110.job.msgNotify;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.log.LoggerFactory;
import com.java110.job.adapt.Repair.MachineAddOwnerRepairAdapt;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.MappingConstant;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
import java.util.List;
/**
 * 消息通知工具类
 */
public class MsgNotifyFactory {
    private static Logger logger = LoggerFactory.getLogger(MsgNotifyFactory.class);
    public static final String DEFAULT_MSG_NOTIFY_WAY = "DEFAULT_MSG_NOTIFY_WAY";
@@ -32,8 +38,17 @@
     * @return
     */
    public static ResultVo sendApplyReturnFeeMsg(String communityId, String userId, JSONObject content) {
        IMsgNotify msgNotify = getMsgNotify();
        return msgNotify.sendApplyReturnFeeMsg(communityId, userId, content);
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendApplyReturnFeeMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 申请退费 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
@@ -41,17 +56,43 @@
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     * @param contents     [{
     *                    "feeTypeName",
     *                    "payerObjName",
     *                    "billAmountOwed",
     *                    "date",
     *                    url
     *                    }
     *                    }]
     */
    public static ResultVo sendOweFeeMsg(String communityId, String userId, JSONObject content) {
        IMsgNotify msgNotify = getMsgNotify();
        return msgNotify.sendOweFeeMsg(communityId, userId, content);
    public static ResultVo sendOweFeeMsg(String communityId, String userId, String ownerId, List<JSONObject> contents, String notifyWay) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify(notifyWay);
            resultVo = msgNotify.sendOweFeeMsg(communityId, userId,ownerId, contents);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 发送欠费 账单信息 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     * 发送欠费 账单信息
     *
     * @param communityId 小区
     * @param userId      用户
     * @param contents     [{
     *                    "feeTypeName",
     *                    "payerObjName",
     *                    "billAmountOwed",
     *                    "date",
     *                    url
     *                    }]
     */
    public static ResultVo sendOweFeeMsg(String communityId, String userId,String ownerId, List<JSONObject> contents) {
        return sendOweFeeMsg(communityId,userId, ownerId,contents,null);
    }
    /**
@@ -68,8 +109,210 @@
     *                    }
     */
    public static ResultVo sendPayFeeMsg(String communityId, String userId, JSONObject content, String role) {
        IMsgNotify msgNotify = getMsgNotify();
        return msgNotify.sendPayFeeMsg(communityId, userId, content, role);
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendPayFeeMsg(communityId, userId, content, role);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 发送缴费成功提醒 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     * 业主报修时
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     *                    repairId,
     *                    repairTypeName,
     *                    repairObjName,
     *                    repairName,
     *                    url
     *                    }
     * @return
     */
    public static ResultVo sendAddOwnerRepairMsg(String communityId, String userId, JSONObject content) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendAddOwnerRepairMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 业主报修时 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     * 派单给维修师傅
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     *                    repairId,
     *                    repairName,
     *                    tel,
     *                    time,
     *                    address
     *                    }
     * @return
     */
    public static ResultVo sendDistributeRepairStaffMsg(String communityId, String userId, JSONObject content) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendDistributeRepairStaffMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 派单给维修师傅 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     * 派单给业主通知
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     *                    name,
     *                    tel,
     *                    time,
     *                    url
     *                    }
     * @return
     */
    public static ResultVo sendDistributeRepairOwnerMsg(String communityId, String userId, JSONObject content) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendDistributeRepairOwnerMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 派单给维修师傅 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     * 报修完成给业主通知
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     *                    repairObjName,
     *                    staffName,
     *                    time,
     *                    url
     *                    }
     * @return
     */
    public static ResultVo sendFinishRepairOwnerMsg(String communityId, String userId, JSONObject content) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendFinishRepairOwnerMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 报修完成给业主通知 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     * 退单给业主发送消息
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     *                    repairId,
     *                    repairTypeName,
     *                    repairObjName,
     *                    repairName,
     *                    url
     *                    }
     * @return
     */
    public static ResultVo sendReturnRepairMsg(String communityId, String userId, JSONObject content) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendReturnRepairMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 业主报修时 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     *  oa 流程待审批通知
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     *                    flowName,
     *                    create_user_name,
     *                    create_time,
     *                    url
     *                    }
     * @return
     */
    public static ResultVo sendOaDistributeMsg(String communityId, String userId, JSONObject content) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendOaDistributeMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 业主报修时 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
     *  oa 流程通知发起人
     *
     * @param communityId 小区
     * @param userId      用户
     * @param content     {
     *                    flowName,
     *                    staffName,
     *                    url
     *                    }
     * @return
     */
    public static ResultVo sendOaCreateStaffMsg(String communityId, String userId, JSONObject content) {
        ResultVo resultVo = null;
        try {
            IMsgNotify msgNotify = getMsgNotify();
            resultVo = msgNotify.sendOaCreateStaffMsg(communityId, userId, content);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("通知 业主报修时 消息", e);
            resultVo = new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
        }
        return resultVo;
    }
    /**
@@ -81,13 +324,14 @@
        return getMsgNotify(null);
    }
    /**
     * 获取通知适配器
     *
     * @param notifyWay
     * @return
     */
    private static IMsgNotify getMsgNotify(String notifyWay) {
    public static IMsgNotify getMsgNotify(String notifyWay) {
        IMsgNotify notify = null;
        if (StringUtil.isEmpty(notifyWay)) {
            notifyWay = MappingCache.getValue(MappingConstant.ENV_DOMAIN, DEFAULT_MSG_NOTIFY_WAY);