Prechádzať zdrojové kódy

通知公告接口初始化

dudm 4 rokov pred
rodič
commit
4eccc8feb0

+ 66 - 0
tianhu-system/src/main/java/com/tianhu/system/controller/OwnNoticeController.java

@@ -0,0 +1,66 @@
+package com.tianhu.system.controller;
+
+import com.keao.tianhu.core.entity.R;
+import com.tianhu.common.core.web.controller.BaseController;
+import com.tianhu.common.core.web.domain.AjaxResult;
+import com.tianhu.common.core.web.page.TableDataInfo;
+import com.tianhu.system.domain.SysNotice;
+import com.tianhu.system.service.IOwnNoticeService;
+import com.tianhu.system.service.ISysNoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 通知Controller
+ * 
+ * @author keao
+ * @date 2020-08-25
+ */
+@RestController
+@RequestMapping("/ownNotice")
+public class OwnNoticeController extends BaseController
+{
+    @Autowired
+    private ISysNoticeService iSysNoticeService;
+
+    @Autowired
+    private IOwnNoticeService iOwnNoticeService;
+
+    /**
+     * 查询通知列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(SysNotice sysNotice)
+    {
+        startPage();
+        List<SysNotice> list = iSysNoticeService.selectNoticeList(sysNotice);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询通知详情
+     */
+    @GetMapping("details/{noticeId}")
+    public AjaxResult details(@PathVariable("noticeId") String noticeId)throws Exception {
+        return AjaxResult.success(iSysNoticeService.selectNoticeById(noticeId));
+    }
+
+    /**
+     * 发送通知
+     * @param companyId     企业id
+     * @param tableId       表主键
+     * @param title         标题
+     * @param type          类型 00待办 01消息
+     * @param noticeType    消息类型 00费用提醒 01发票寄出 02到期还款
+     * @param workType      待办类型 00待审批 01链属企业申请 02融信失效
+     * @param messageSend   是否发送短信 0不发送 1发送
+     * @param userIds       收到信息用户id集合
+     */
+    @PostMapping("sendNotice")
+    public R sendNotice(String companyId, String tableId, String title, String type, String noticeType, String workType, String messageSend, List<Long> userIds)throws Exception {
+        R r = iOwnNoticeService.sendNotice(companyId, tableId, title, type, noticeType, workType, messageSend, userIds);
+        return r;
+    }
+}

+ 64 - 0
tianhu-system/src/main/java/com/tianhu/system/domain/SysNoticeUserRel.java

@@ -0,0 +1,64 @@
+package com.tianhu.system.domain;
+
+import com.tianhu.common.core.annotation.Excel;
+import com.tianhu.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 通知公告人员关系对象 sys_notice_user_rel
+ *
+ * @author huyi
+ * @date 2021-08-25
+ */
+public class SysNoticeUserRel extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 公告ID(sys_notice.notice_id) */
+    private String snyrNoticeId;
+
+    /** 用户ID(sys_user.user_id) */
+    private Long snyrUserId;
+
+    /** 0:未读 1:已读 */
+    @Excel(name = "0:未读 1:已读")
+    private String snyrUserStatus;
+
+    public void setSnyrNoticeId(String snyrNoticeId)
+    {
+        this.snyrNoticeId = snyrNoticeId;
+    }
+
+    public String getSnyrNoticeId()
+    {
+        return snyrNoticeId;
+    }
+    public void setSnyrUserId(Long snyrUserId)
+    {
+        this.snyrUserId = snyrUserId;
+    }
+
+    public Long getSnyrUserId()
+    {
+        return snyrUserId;
+    }
+    public void setSnyrUserStatus(String snyrUserStatus)
+    {
+        this.snyrUserStatus = snyrUserStatus;
+    }
+
+    public String getSnyrUserStatus()
+    {
+        return snyrUserStatus;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("snyrNoticeId", getSnyrNoticeId())
+                .append("snyrUserId", getSnyrUserId())
+                .append("snyrUserStatus", getSnyrUserStatus())
+                .toString();
+    }
+}

+ 61 - 0
tianhu-system/src/main/java/com/tianhu/system/mapper/SysNoticeUserRelMapper.java

@@ -0,0 +1,61 @@
+package com.tianhu.system.mapper;
+
+import java.util.List;
+import com.tianhu.system.domain.SysNoticeUserRel;
+
+/**
+ * 通知公告人员关系Mapper接口
+ *
+ * @author huyi
+ * @date 2021-08-25
+ */
+public interface SysNoticeUserRelMapper
+{
+    /**
+     * 查询通知公告人员关系
+     *
+     * @param snyrNoticeId 通知公告人员关系ID
+     * @return 通知公告人员关系
+     */
+    public SysNoticeUserRel selectSysNoticeUserRelById(String snyrNoticeId);
+
+    /**
+     * 查询通知公告人员关系列表
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 通知公告人员关系集合
+     */
+    public List<SysNoticeUserRel> selectSysNoticeUserRelList(SysNoticeUserRel sysNoticeUserRel);
+
+    /**
+     * 新增通知公告人员关系
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 结果
+     */
+    public int insertSysNoticeUserRel(SysNoticeUserRel sysNoticeUserRel);
+
+    /**
+     * 修改通知公告人员关系
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 结果
+     */
+    public int updateSysNoticeUserRel(SysNoticeUserRel sysNoticeUserRel);
+
+    /**
+     * 删除通知公告人员关系
+     *
+     * @param snyrNoticeId 通知公告人员关系ID
+     * @return 结果
+     */
+    public int deleteSysNoticeUserRelById(String snyrNoticeId);
+
+    /**
+     * 批量删除通知公告人员关系
+     *
+     * @param snyrNoticeIds 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteSysNoticeUserRelByIds(String[] snyrNoticeIds);
+}

+ 28 - 0
tianhu-system/src/main/java/com/tianhu/system/service/IOwnNoticeService.java

@@ -0,0 +1,28 @@
+package com.tianhu.system.service;
+
+import com.keao.tianhu.core.entity.R;
+
+import java.util.List;
+
+/**
+ * 通知Service接口
+ * 
+ * @author keao
+ * @date 2020-08-25
+ */
+public interface IOwnNoticeService
+{
+    /**
+     *发送通知
+     * @param companyId     企业id
+     * @param tableId       表主键
+     * @param title         标题
+     * @param type          类型 00待办 01消息
+     * @param noticeType    消息类型 00费用提醒 01发票寄出 02到期还款
+     * @param workType      待办类型 00待审批 01链属企业申请 02融信失效
+     * @param messageSend   是否发送短信 0不发送 1发送
+     * @param userIds       收到信息用户id集合
+     * @return
+     */
+    public R sendNotice(String companyId, String tableId, String title, String type, String noticeType, String workType, String messageSend, List<Long> userIds);
+}

+ 61 - 0
tianhu-system/src/main/java/com/tianhu/system/service/ISysNoticeUserRelService.java

@@ -0,0 +1,61 @@
+package com.tianhu.system.service;
+
+import java.util.List;
+import com.tianhu.system.domain.SysNoticeUserRel;
+
+/**
+ * 通知公告人员关系Service接口
+ *
+ * @author huyi
+ * @date 2021-08-25
+ */
+public interface ISysNoticeUserRelService
+{
+    /**
+     * 查询通知公告人员关系
+     *
+     * @param snyrNoticeId 通知公告人员关系ID
+     * @return 通知公告人员关系
+     */
+    public SysNoticeUserRel selectSysNoticeUserRelById(String snyrNoticeId);
+
+    /**
+     * 查询通知公告人员关系列表
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 通知公告人员关系集合
+     */
+    public List<SysNoticeUserRel> selectSysNoticeUserRelList(SysNoticeUserRel sysNoticeUserRel);
+
+    /**
+     * 新增通知公告人员关系
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 结果
+     */
+    public int insertSysNoticeUserRel(SysNoticeUserRel sysNoticeUserRel);
+
+    /**
+     * 修改通知公告人员关系
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 结果
+     */
+    public int updateSysNoticeUserRel(SysNoticeUserRel sysNoticeUserRel);
+
+    /**
+     * 批量删除通知公告人员关系
+     *
+     * @param snyrNoticeIds 需要删除的通知公告人员关系ID
+     * @return 结果
+     */
+    public int deleteSysNoticeUserRelByIds(String[] snyrNoticeIds);
+
+    /**
+     * 删除通知公告人员关系信息
+     *
+     * @param snyrNoticeId 通知公告人员关系ID
+     * @return 结果
+     */
+    public int deleteSysNoticeUserRelById(String snyrNoticeId);
+}

+ 133 - 0
tianhu-system/src/main/java/com/tianhu/system/service/impl/OwnNoticeServiceImpl.java

@@ -0,0 +1,133 @@
+package com.tianhu.system.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.keao.tianhu.core.entity.R;
+import com.tianhu.common.core.utils.CommonUtil;
+import com.tianhu.common.redis.common.RedisUtils;
+import com.tianhu.system.api.domain.SysUser;
+import com.tianhu.system.common.impl.MessageUtilsServiceImpl;
+import com.tianhu.system.domain.SysNotice;
+import com.tianhu.system.domain.SysNoticeUserRel;
+import com.tianhu.system.service.IOwnNoticeService;
+import com.tianhu.system.service.ISysNoticeService;
+import com.tianhu.system.service.ISysNoticeUserRelService;
+import com.tianhu.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 通知Service业务层处理
+ * 
+ * @author keao
+ * @date 2020-08-25
+ */
+@Service
+public class OwnNoticeServiceImpl implements IOwnNoticeService
+{
+    @Autowired
+    private ISysNoticeService iSysNoticeService;
+
+    @Autowired
+    private ISysNoticeUserRelService iSysNoticeUserRelService;
+
+    @Autowired
+    private MessageUtilsServiceImpl messageUtilsService;
+
+    @Autowired
+    private ISysUserService iSysUserService;
+
+    /**
+     * 通知类型 00待办
+     */
+    static final String  TYPE_WORK = "00";
+
+    /**
+     * 通知类型 01消息
+     */
+    static final String  TYPE_NOTICE = "01";
+
+    /**
+     * 发送短信 1发送
+     */
+    static final String  SEND_MESSAGES = "1";
+
+    /**
+     * @param companyId     企业id
+     * @param tableId       表主键
+     * @param title         标题
+     * @param type          类型 00待办 01消息
+     * @param noticeType    消息类型 00费用提醒 01发票寄出 02到期还款
+     * @param workType      待办类型 00待审批 01链属企业申请 02融信失效
+     * @param messageSend   是否发送短信 0不发送 1发送
+     * @param userIds       收到信息用户id集合
+     */
+    @Override
+    public R sendNotice(String companyId, String tableId, String title, String type, String noticeType, String workType, String messageSend, List<Long> userIds)
+    {
+        //新增通知公告
+        SysNotice notice = new SysNotice();
+        //主键
+        String id = IdUtil.fastSimpleUUID();
+        notice.setNoticeId(id);
+        //企业id
+        notice.setCompanyId(companyId);
+        //表主键
+        notice.setTableId(tableId);
+        //标题
+        notice.setNoticeTitle(title);
+        //类型 00待办 01消息
+        notice.setType(type);
+        //消息类型 00费用提醒 01发票寄出 02到期还款
+        notice.setNoticeType(noticeType);
+        //待办类型 00待审批 01链属企业申请 02融信失效
+        notice.setWorkType(workType);
+        //是否发送短信 0不发送 1发送
+        notice.setMessageSend(messageSend);
+        //发送短信手机号
+        String phones = "";
+        //新增通知公告接收人
+        for (Long userId : userIds) {
+            SysNoticeUserRel sysNoticeUserRel = new SysNoticeUserRel();
+            sysNoticeUserRel.setSnyrNoticeId(id);
+            sysNoticeUserRel.setSnyrUserId(userId);
+            iSysNoticeUserRelService.insertSysNoticeUserRel(sysNoticeUserRel);
+            //查询发送人手机号
+            SysUser user = iSysUserService.selectUserById(userId);
+            if (CommonUtil.isEmpty(phones)){
+                phones = user.getUserName();
+            }else {
+                phones = phones.concat(",").concat(user.getUserName());
+            }
+        }
+        //如果发送短信
+        if(SEND_MESSAGES.equals(messageSend)){
+            try {
+                //消息模版id
+                String templateCode = null;
+                if(TYPE_WORK.equals(type)){
+                    //待办
+                    templateCode = RedisUtils.getDictValue("sys_work_type", workType);
+                }else if (TYPE_NOTICE.equals(type)){
+                    //消息
+                    templateCode = RedisUtils.getDictValue("sys_notice_type", noticeType);
+                }
+                //消息模版参数
+                Map map = new HashMap();
+                //TODO 发送短信
+//                messageUtilsService.sendMessageCode(phones, templateCode, map,null);
+                //发送短信成功
+                notice.setMessageStatus("1");
+            }catch(Exception e){
+                //发送短信失败
+                notice.setMessageStatus("0");
+            }
+        }
+        iSysNoticeService.insertNotice(notice);
+        return R.ok();
+    }
+}

+ 93 - 0
tianhu-system/src/main/java/com/tianhu/system/service/impl/SysNoticeUserRelServiceImpl.java

@@ -0,0 +1,93 @@
+package com.tianhu.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.tianhu.system.mapper.SysNoticeUserRelMapper;
+import com.tianhu.system.domain.SysNoticeUserRel;
+import com.tianhu.system.service.ISysNoticeUserRelService;
+
+/**
+ * 通知公告人员关系Service业务层处理
+ *
+ * @author huyi
+ * @date 2021-08-25
+ */
+@Service
+public class SysNoticeUserRelServiceImpl implements ISysNoticeUserRelService
+{
+    @Autowired
+    private SysNoticeUserRelMapper sysNoticeUserRelMapper;
+
+    /**
+     * 查询通知公告人员关系
+     *
+     * @param snyrNoticeId 通知公告人员关系ID
+     * @return 通知公告人员关系
+     */
+    @Override
+    public SysNoticeUserRel selectSysNoticeUserRelById(String snyrNoticeId)
+    {
+        return sysNoticeUserRelMapper.selectSysNoticeUserRelById(snyrNoticeId);
+    }
+
+    /**
+     * 查询通知公告人员关系列表
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 通知公告人员关系
+     */
+    @Override
+    public List<SysNoticeUserRel> selectSysNoticeUserRelList(SysNoticeUserRel sysNoticeUserRel)
+    {
+        return sysNoticeUserRelMapper.selectSysNoticeUserRelList(sysNoticeUserRel);
+    }
+
+    /**
+     * 新增通知公告人员关系
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 结果
+     */
+    @Override
+    public int insertSysNoticeUserRel(SysNoticeUserRel sysNoticeUserRel)
+    {
+        return sysNoticeUserRelMapper.insertSysNoticeUserRel(sysNoticeUserRel);
+    }
+
+    /**
+     * 修改通知公告人员关系
+     *
+     * @param sysNoticeUserRel 通知公告人员关系
+     * @return 结果
+     */
+    @Override
+    public int updateSysNoticeUserRel(SysNoticeUserRel sysNoticeUserRel)
+    {
+        return sysNoticeUserRelMapper.updateSysNoticeUserRel(sysNoticeUserRel);
+    }
+
+    /**
+     * 批量删除通知公告人员关系
+     *
+     * @param snyrNoticeIds 需要删除的通知公告人员关系ID
+     * @return 结果
+     */
+    @Override
+    public int deleteSysNoticeUserRelByIds(String[] snyrNoticeIds)
+    {
+        return sysNoticeUserRelMapper.deleteSysNoticeUserRelByIds(snyrNoticeIds);
+    }
+
+    /**
+     * 删除通知公告人员关系信息
+     *
+     * @param snyrNoticeId 通知公告人员关系ID
+     * @return 结果
+     */
+    @Override
+    public int deleteSysNoticeUserRelById(String snyrNoticeId)
+    {
+        return sysNoticeUserRelMapper.deleteSysNoticeUserRelById(snyrNoticeId);
+    }
+}

+ 8 - 6
tianhu-system/src/main/resources/mapper/system/SysNoticeMapper.xml

@@ -18,10 +18,11 @@
         <result property="messageStatus"    column="message_status"    />
         <result property="messageCode"    column="message_code"    />
         <result property="remark"    column="remark"    />
+        <result property="createTime"     column="create_time"    />
     </resultMap>
 
     <sql id="selectSysNoticeVo">
-        select notice_id, company_id, table_id, notice_title, notice_type, type, status, message_send, work_type, message_id, message_status, message_code, remark from sys_notice
+        select notice_id, company_id, table_id, notice_title, notice_type, type, status, message_send, work_type, message_id, message_status, message_code, remark, create_time from sys_notice
     </sql>
 
     <select id="selectNoticeList" parameterType="SysNotice" resultMap="SysNoticeResult">
@@ -47,8 +48,7 @@
     </select>
 
     <insert id="insertNotice" parameterType="SysNotice">
-        insert into sys_notice
-        <trim prefix="(" suffix=")" suffixOverrides=",">
+        insert into sys_notice(
             <if test="noticeId != null">notice_id,</if>
             <if test="companyId != null">company_id,</if>
             <if test="tableId != null">table_id,</if>
@@ -62,8 +62,9 @@
             <if test="messageStatus != null">message_status,</if>
             <if test="messageCode != null">message_code,</if>
             <if test="remark != null">remark,</if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            create_time
+        )
+        )values(
             <if test="noticeId != null">#{noticeId},</if>
             <if test="companyId != null">#{companyId},</if>
             <if test="tableId != null">#{tableId},</if>
@@ -77,7 +78,8 @@
             <if test="messageStatus != null">#{messageStatus},</if>
             <if test="messageCode != null">#{messageCode},</if>
             <if test="remark != null">#{remark},</if>
-        </trim>
+            sysdate()
+        )
     </insert>
 
     <update id="updateNotice" parameterType="SysNotice">

+ 63 - 0
tianhu-system/src/main/resources/mapper/system/SysNoticeUserRelMapper.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.tianhu.system.mapper.SysNoticeUserRelMapper">
+
+    <resultMap type="SysNoticeUserRel" id="SysNoticeUserRelResult">
+        <result property="snyrNoticeId"    column="snyr_notice_id"    />
+        <result property="snyrUserId"    column="snyr_user_id"    />
+        <result property="snyrUserStatus"    column="snyr_user_status"    />
+    </resultMap>
+
+    <sql id="selectSysNoticeUserRelVo">
+        select snyr_notice_id, snyr_user_id, snyr_user_status from sys_notice_user_rel
+    </sql>
+
+    <select id="selectSysNoticeUserRelList" parameterType="SysNoticeUserRel" resultMap="SysNoticeUserRelResult">
+        <include refid="selectSysNoticeUserRelVo"/>
+        <where>
+            <if test="snyrUserStatus != null  and snyrUserStatus != ''"> and snyr_user_status = #{snyrUserStatus}</if>
+        </where>
+    </select>
+
+    <select id="selectSysNoticeUserRelById" parameterType="String" resultMap="SysNoticeUserRelResult">
+        <include refid="selectSysNoticeUserRelVo"/>
+        where snyr_notice_id = #{snyrNoticeId}
+    </select>
+
+    <insert id="insertSysNoticeUserRel" parameterType="SysNoticeUserRel">
+        insert into sys_notice_user_rel
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="snyrNoticeId != null">snyr_notice_id,</if>
+            <if test="snyrUserId != null">snyr_user_id,</if>
+            <if test="snyrUserStatus != null">snyr_user_status,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="snyrNoticeId != null">#{snyrNoticeId},</if>
+            <if test="snyrUserId != null">#{snyrUserId},</if>
+            <if test="snyrUserStatus != null">#{snyrUserStatus},</if>
+        </trim>
+    </insert>
+
+    <update id="updateSysNoticeUserRel" parameterType="SysNoticeUserRel">
+        update sys_notice_user_rel
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="snyrUserId != null">snyr_user_id = #{snyrUserId},</if>
+            <if test="snyrUserStatus != null">snyr_user_status = #{snyrUserStatus},</if>
+        </trim>
+        where snyr_notice_id = #{snyrNoticeId}
+    </update>
+
+    <delete id="deleteSysNoticeUserRelById" parameterType="String">
+        delete from sys_notice_user_rel where snyr_notice_id = #{snyrNoticeId}
+    </delete>
+
+    <delete id="deleteSysNoticeUserRelByIds" parameterType="String">
+        delete from sys_notice_user_rel where snyr_notice_id in
+        <foreach item="snyrNoticeId" collection="array" open="(" separator="," close=")">
+            #{snyrNoticeId}
+        </foreach>
+    </delete>
+
+</mapper>