Ver Fonte

消息通知接口处理

QAQ 陈 há 4 meses atrás
pai
commit
c45e7ba452

+ 23 - 0
zhsw-common/src/main/java/com/rongwei/zhsw/system/dao/SysNotifyAnnounceUserDao.java

@@ -0,0 +1,23 @@
+package com.rongwei.zhsw.system.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.zhsw.system.domain.SwNotificationAnnouncementDo;
+import com.rongwe.zhsw.system.domain.SysNotifyAnnounceUserDo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 用户消息Dao接口
+ */
+@Mapper
+public interface SysNotifyAnnounceUserDao extends BaseMapper<SysNotifyAnnounceUserDo> {
+
+    List<SysNotifyAnnounceUserDo> selectUserNotifyData(@Param("usernumber") String usernumber, @Param("openid") String openid);
+    
+    int updateReadStatus(@Param("id") String id, @Param("account") String account, 
+                        @Param("deKey") String deKey, @Param("openId") String openId);
+                        
+    int updateReadStatusAll(@Param("account") String account, @Param("deKey") String deKey, @Param("openId") String openId);
+}

+ 10 - 0
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/SysNotifyAnnounceUserService.java

@@ -0,0 +1,10 @@
+package com.rongwei.zhsw.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.zhsw.system.domain.SysNotifyAnnounceUserDo;
+
+/**
+ * 用户消息Service接口
+ */
+public interface SysNotifyAnnounceUserService extends IService<SysNotifyAnnounceUserDo> {
+}

+ 14 - 0
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SysNotifyAnnounceUserServiceImpl.java

@@ -0,0 +1,14 @@
+package com.rongwei.zhsw.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.zhsw.system.dao.SysNotifyAnnounceUserDao;
+import com.rongwe.zhsw.system.domain.SysNotifyAnnounceUserDo;
+import com.rongwei.zhsw.system.service.SysNotifyAnnounceUserService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 用户消息Service实现类
+ */
+@Service
+public class SysNotifyAnnounceUserServiceImpl extends ServiceImpl<SysNotifyAnnounceUserDao, SysNotifyAnnounceUserDo> implements SysNotifyAnnounceUserService {
+}

+ 4 - 0
zhsw-common/src/main/java/com/rongwei/zhsw/system/wechat/AccountService.java

@@ -2,6 +2,7 @@ package com.rongwei.zhsw.system.wechat;
 
 import com.rongwe.zhsw.system.vo.AccountBindVo;
 import com.rongwe.zhsw.system.vo.AccountUnbindVo;
+import com.rongwe.zhsw.system.vo.ReadStatusVo;
 import com.rongwei.rwcommon.base.R;
 
 /**
@@ -22,4 +23,7 @@ public interface AccountService {
 
     R setDefaultAccount(AccountUnbindVo accountUnbindVo);
 
+    R updateReadStatus(ReadStatusVo readStatusVo);
+
+    R updateReadStatusAll(ReadStatusVo readStatusVo);
 }

+ 41 - 8
zhsw-common/src/main/java/com/rongwei/zhsw/system/wechat/impl/AccountServiceImpl.java

@@ -2,14 +2,8 @@ package com.rongwei.zhsw.system.wechat.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.rongwe.zhsw.system.domain.SwBillManagementUnpaidDo;
-import com.rongwe.zhsw.system.domain.SwNotificationAnnouncementDo;
-import com.rongwe.zhsw.system.domain.SwUserManagementDo;
-import com.rongwe.zhsw.system.domain.SwUserWechatDo;
-import com.rongwe.zhsw.system.vo.AccountBindVo;
-import com.rongwe.zhsw.system.vo.AccountUnbindVo;
-import com.rongwe.zhsw.system.vo.SwUserManagementVo;
-import com.rongwe.zhsw.system.vo.WeChatHomePageVo;
+import com.rongwe.zhsw.system.domain.*;
+import com.rongwe.zhsw.system.vo.*;
 import com.rongwei.rwcommon.base.BaseDo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.base.exception.CustomException;
@@ -17,6 +11,7 @@ import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.rwcommonentity.commonservers.domain.TenantDo;
 import com.rongwei.zhsw.system.dao.CommonBusinessDao;
 import com.rongwei.zhsw.system.dao.SwNotificationAnnouncementDao;
+import com.rongwei.zhsw.system.dao.SysNotifyAnnounceUserDao;
 import com.rongwei.zhsw.system.service.impl.SwBillManagementUnpaidServiceImpl;
 import com.rongwei.zhsw.system.service.impl.SwUserManagementServiceImpl;
 import com.rongwei.zhsw.system.service.impl.SwUserWechatServiceImpl;
@@ -57,6 +52,8 @@ public class AccountServiceImpl implements AccountService {
     private SwNotificationAnnouncementDao swNotificationAnnouncementDao;
     @Autowired
     private CommonBusinessDao commonBusinessDao;
+    @Autowired
+    private SysNotifyAnnounceUserDao sysNotifyAnnounceUserDao;
 
     @Override
     public R bind(AccountBindVo accountBindVo) {
@@ -145,6 +142,12 @@ public class AccountServiceImpl implements AccountService {
         weChatHomePageVo.setDuFees(outstandingBills.stream().map(SwBillManagementUnpaidDo::getActualdue).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
         List<SwNotificationAnnouncementDo> swNotificationAnnouncementDos = swNotificationAnnouncementDao.selectShowData();
         weChatHomePageVo.setSwNotificationAnnouncementDos(swNotificationAnnouncementDos);
+        //获取微信标识
+        String openId = WeChatUtils.getCurrentWeChatOpenId();
+        //调用selectUserNotifyData方法获取用户消息列表
+        List<SysNotifyAnnounceUserDo> sysNotifyAnnounceUserDos = sysNotifyAnnounceUserDao.selectUserNotifyData(accountNumber, openId);
+        weChatHomePageVo.setSysNotifyAnnounceUserDos(sysNotifyAnnounceUserDos);
+
         return R.ok(weChatHomePageVo);
     }
 
@@ -221,4 +224,34 @@ public class AccountServiceImpl implements AccountService {
         return R.ok();
     }
 
+    @Override
+    public R updateReadStatus(ReadStatusVo readStatusVo) {
+        //获取微信标识
+        String openId = WeChatUtils.getCurrentWeChatOpenId();
+
+        // 获取参数
+        String id = readStatusVo.getId();
+        String account = readStatusVo.getAccount();
+        String deKey = readStatusVo.getDeKey();
+
+        // 更新消息读取状态
+        sysNotifyAnnounceUserDao.updateReadStatus(id, account, deKey, openId);
+        return R.ok("更新成功");
+    }
+
+    @Override
+    public R updateReadStatusAll(ReadStatusVo readStatusVo) {
+        //获取微信标识
+        String openId = WeChatUtils.getCurrentWeChatOpenId();
+        
+        // 获取参数
+        String account = readStatusVo.getAccount();
+        String deKey = readStatusVo.getDeKey();
+        
+        // 更新所有消息读取状态
+        sysNotifyAnnounceUserDao.updateReadStatusAll(account, deKey, openId);
+        
+        return R.ok("更新成功");
+    }
+
 }

+ 49 - 0
zhsw-common/src/main/resources/mybatis/zhsw/SysNotifyAnnounceUserDao.xml

@@ -0,0 +1,49 @@
+<?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.rongwei.zhsw.system.dao.SysNotifyAnnounceUserDao">
+    <select id="selectUserNotifyData" resultType="com.rongwe.zhsw.system.domain.SysNotifyAnnounceUserDo">
+        SELECT
+            *
+        FROM
+            sys_notify_announce_user
+        WHERE
+            DELETED = '0'
+        <if test="usernumber != null and usernumber != ''">
+            AND RECIPIENTID = #{usernumber}
+        </if>
+        <if test="openid != null and openid != ''">
+            AND REMARK = #{openid}
+        </if>
+        ORDER BY
+            CREATEDATE DESC
+    </select>
+
+    <update id="updateReadStatus">
+        UPDATE
+            ${deKey}.sys_notify_announce_user
+        SET
+            READSTATE = '1',
+            READTIME = NOW(),
+            MODIFYDATE = NOW()
+        WHERE
+            ID = #{id}
+            AND RECIPIENTID = #{account}
+            AND REMARK = #{openId}
+            AND DELETED = '0'
+    </update>
+
+    <update id="updateReadStatusAll">
+        UPDATE
+            ${deKey}.sys_notify_announce_user
+        SET
+            READSTATE = '1',
+            READTIME = NOW(),
+            MODIFYDATE = NOW()
+        WHERE
+            RECIPIENTID = #{account}
+            AND REMARK = #{openId}
+            AND DELETED = '0'
+    </update>
+</mapper>

+ 99 - 0
zhsw-entity/src/main/java/com/rongwe/zhsw/system/domain/SysNotifyAnnounceUserDo.java

@@ -0,0 +1,99 @@
+package com.rongwe.zhsw.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+import java.sql.Date;
+
+/**
+ * 用户消息表
+ *
+ * @TableName sys_notify_announce_user
+ */
+@TableName(value = "sys_notify_announce_user")
+@Data
+public class SysNotifyAnnounceUserDo extends BaseDo {
+    /**
+     * 主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 通知公告主键ID
+     */
+    private String announceid;
+
+    /**
+     * 阅读状态数据字典 readstate:1 已读;2 未读
+     */
+    private String readstate;
+
+    /**
+     * 阅读时间
+     */
+    private Date readtime;
+
+    /**
+     * 接收用户户号
+     */
+    private String recipientid;
+
+    /**
+     * 租户ID
+     */
+    private String tenantid;
+
+    /**
+     * 通知标题
+     */
+    private String title;
+    /**
+     * 通知内容
+     */
+    private String roption;
+
+    /**
+     * 是否删除Y/NROPTION
+     */
+    private String deleted;
+
+    /**
+     * 微信标识openid
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private Date createdate;
+
+    /**
+     * 创建用户ID
+     */
+    private String createuserid;
+
+    /**
+     * 修改日期
+     */
+    private Date modifydate;
+
+    /**
+     * 修改用户ID
+     */
+    private String modifyuserid;
+
+    /**
+     * 创建人名称
+     */
+    private String createusername;
+
+    /**
+     * 修改人名称
+     */
+    private String modifyusername;
+
+
+}

+ 16 - 0
zhsw-entity/src/main/java/com/rongwe/zhsw/system/vo/ReadStatusVo.java

@@ -0,0 +1,16 @@
+package com.rongwe.zhsw.system.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * ReadStatusVo class
+ *
+ */
+@Data
+public class ReadStatusVo {
+    private String id;
+    private String account;
+    private String deKey;
+}

+ 4 - 1
zhsw-entity/src/main/java/com/rongwe/zhsw/system/vo/WeChatHomePageVo.java

@@ -3,6 +3,7 @@ package com.rongwe.zhsw.system.vo;
 import com.rongwe.zhsw.system.domain.SwBillManagementUnpaidDo;
 import com.rongwe.zhsw.system.domain.SwNotificationAnnouncementDo;
 import com.rongwe.zhsw.system.domain.SwUserManagementDo;
+import com.rongwe.zhsw.system.domain.SysNotifyAnnounceUserDo;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -21,6 +22,8 @@ public class WeChatHomePageVo extends SwUserManagementDo {
     private BigDecimal duFees;
     //用水量
     private BigDecimal waterConsumption;
-
+    //公告
     private List<SwNotificationAnnouncementDo> swNotificationAnnouncementDos;
+    //用户消息
+    private List<SysNotifyAnnounceUserDo> sysNotifyAnnounceUserDos;
 }

+ 13 - 0
zhsw-server/src/main/java/com/rongwei/zhsw/system/controller/weChat/AccountController.java

@@ -2,6 +2,7 @@ package com.rongwei.zhsw.system.controller.weChat;
 
 import com.rongwe.zhsw.system.vo.AccountBindVo;
 import com.rongwe.zhsw.system.vo.AccountUnbindVo;
+import com.rongwe.zhsw.system.vo.ReadStatusVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.zhsw.system.service.impl.SwBillManagementUnpaidServiceImpl;
 import com.rongwei.zhsw.system.wechat.AccountService;
@@ -40,6 +41,18 @@ public class AccountController {
         return accountService.info(accountNumber);
     }
 
+    //修改用户消息已读状态
+    @PostMapping("/readStatus")
+    private R updateReadStatus(@RequestBody ReadStatusVo readStatusVo) {
+        return accountService.updateReadStatus(readStatusVo);
+    }
+
+    //全部消息已读
+    @PostMapping("/readStatusAll")
+    private R updateReadStatusAll(@RequestBody ReadStatusVo readStatusVo) {
+        return accountService.updateReadStatusAll(readStatusVo);
+    }
+
     @GetMapping("/list")
     private R info() {
         return accountService.list();