From 5dedf6c30f0864ae7c4fd3c47c74b057f2360156 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Tue, 03 Sep 2024 10:07:54 +0800
Subject: [PATCH] 小程序开发

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeApplyMapper.xml               |  208 ++
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java                                 |   30 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/wechat/miniapp/service/WeixinMaService.java                  |   14 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeJoinMapper.xml                |  196 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticePartyMapper.xml               |  184 +
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotNewsMapper.java                             |   72 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeJoin.json                        |   15 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeParty.json                       |   13 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatPersonalDTO.java                            |   58 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/controller/wechat/PaHotNewsWechatController.java          |  146 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeHandle.json                      |   15 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeParty.java                         |  108 +
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatLoginDTO.java                               |   63 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/PaAccountMapper.java                       |    8 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotVideo.json                                 |    9 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeModeBO.java                        |   17 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotVideoMapper.java                            |   64 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitWeChatCountDTO.java                         |   19 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotVideoMapper.xml                         |  161 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeJoin.java                          |  120 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeSysMapper.xml                 |  178 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeShortMapper.xml               |  175 +
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotNewsBO.java                                  |   17 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/xml/PaAccountMapper.xml                    |   23 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeMode.java                          |   89 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeApply.java                         |  132 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeApplyMapper.java                  |   64 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeApply.json                       |   17 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeSysMapper.java                    |   64 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeApplyBO.java                       |   17 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaUserService.java                            |   87 
 dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/dto/WechatBindCaseDTO.java                           |   40 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticePartyMapper.java                  |   64 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotVideo.java                                   |   84 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeModeMapper.java                   |   64 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeMode.json                        |   11 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotVideoService.java                              |  133 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeSysBO.java                         |   17 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtAccountWebController.java            |    1 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeHandle.java                        |  120 +
 dyh-service/dyh-cust/src/main/java/cn/huge/module/aop/LogAop.java                                              |   57 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeShortBO.java                       |   17 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/wechat/CtUnitWechatController.java         |  176 +
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotVideoBO.java                                 |   17 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/service/NoticePartyService.java                    |  133 +
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotNews.json                                  |   12 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotNewsMapper.xml                          |  203 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeHandleMapper.xml              |  196 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeHandleMapper.java                 |   64 
 dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/constant/NoticeBaseConsts.java                       |   51 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaAccountService.java                         |  140 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/dto/NoticeHandleDTO.java                    |   40 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeJoinMapper.java                   |   64 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeShort.json                       |   13 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatEmpowerDTO.java                             |   46 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/controller/wechat/NoticePartyWechatController.java |  178 +
 dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/IdUtils.java                                      |   23 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotNewsService.java                               |  144 +
 dyh-service/dyh-base/src/main/java/cn/huge/module/oper/dto/SeCustWechatDTO.java                                |   83 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/aop/LogAop.java                                               |   57 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUnitMapper.xml                       |   31 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaUserWechatController.java         |  115 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeShort.java                         |  101 +
 dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotNews.java                                    |  102 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeJoinBO.java                        |   17 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaAccountWechatController.java      |  150 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeShortMapper.java                  |   64 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java                            |   30 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeModeMapper.xml                |  163 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticePartyBO.java                       |   17 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeSys.json                         |   12 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeHandleBO.java                      |   17 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeSys.java                           |  102 +
 73 files changed, 5,475 insertions(+), 77 deletions(-)

diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/IdUtils.java b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/IdUtils.java
index 644eac2..5b44650 100644
--- a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/IdUtils.java
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/IdUtils.java
@@ -100,6 +100,29 @@
             return false;
         }
     }
+
+    /**
+     * 获取时间Id,后四位常量
+     * @return String
+     */
+    public synchronized static String getNewTimeId(){
+        String  timeId = getNowTime() + (COUNT_NUM++);
+        if(COUNT_NUM > 99999){
+            COUNT_NUM = 10000;
+        }
+        timeId=timeId.substring(2, timeId.length());
+        return timeId;
+    }
+
+    /**
+     * 获取时间Id,后四位常量
+     * @return String
+     */
+    public synchronized static String getNowTime(){
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+        String nowTime = sdf.format(new Date());
+        return nowTime;
+    }
 }
 /**
  * -------------------_ooOoo_-------------------
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/constant/NoticeBaseConsts.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/constant/NoticeBaseConsts.java
new file mode 100644
index 0000000..85e2878
--- /dev/null
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/constant/NoticeBaseConsts.java
@@ -0,0 +1,51 @@
+package cn.huge.module.mediate.constant;
+
+/**
+ * @title: 消息通知相关常量类
+ * @description: 消息通知相关常量类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2021-11-05 16:51:48
+ * @version: 1.0.0
+ */
+public class NoticeBaseConsts {
+
+    /**
+     * 消息类型,1:系统通知,2:平台公告
+     */
+    public static final String NOTICE_TYPE_1 = "1";
+    public static final String NOTICE_TYPE_2 = "2";
+
+    /**
+     * 已读状态,1:未读(默认值),2:已读
+     */
+    public static final String READ_STATUS_1 = "1";
+    public static final String READ_STATUS_2 = "2";
+
+    /**
+     * 模板类型,1:调解预约模板
+     */
+    public static final String MODE_TYPE_1 = "1";
+}
+/**
+ * -------------------_ooOoo_-------------------
+ * ------------------o8888888o------------------
+ * ------------------88" . "88------------------
+ * ------------------(| -_- |)------------------
+ * ------------------O\  =  /O------------------
+ * ---------------____/`---'\____---------------
+ * -------------.'  \\|     |//  `.-------------
+ * ------------/  \\|||  :  |||//  \------------
+ * -----------/  _||||| -:- |||||-  \-----------
+ * -----------|   | \\\  -  /// |   |-----------
+ * -----------| \_|  ''\---/''  |   |-----------
+ * -----------\  .-\__  `-`  ___/-. /-----------
+ * ---------___`. .'  /--.--\  `. . __----------
+ * ------."" '<  `.___\_<|>_/___.'  >'"".-------
+ * -----| | :  `- \`.;`\ _ /`;.`/ - ` : | |-----
+ * -----\  \ `-.   \_ __\ /__ _/   .-` /  /-----
+ * ======`-.____`-.___\_____/___.-`____.-'======
+ * -------------------`=---='
+ * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ * ---------佛祖保佑---hugeinfo---永无BUG----------
+ */
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/dto/WechatBindCaseDTO.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/dto/WechatBindCaseDTO.java
new file mode 100644
index 0000000..804c65c
--- /dev/null
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/mediate/dto/WechatBindCaseDTO.java
@@ -0,0 +1,40 @@
+package cn.huge.module.mediate.dto;
+
+import lombok.Data;
+
+/**
+ * @title: 当事人小程序-注册绑定已有案件数据传输对象
+ * @description: 当事人小程序-注册绑定已有案件数据传输对象
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-03-11 11:43:25
+ * @version: 1.0.0
+ */
+@Data
+public class WechatBindCaseDTO {
+
+    /**
+     * 用户编号
+     */
+    private String userId;
+
+    /**
+     * 用户姓名
+     */
+    private String trueName;
+
+    /**
+     * 用户手机号码
+     */
+    private String mobile;
+
+    /**
+     * 用户身份证号码
+     */
+    private String idcard;
+
+    /**
+     * 客户编号
+     */
+    private String custId;
+}
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/oper/dto/SeCustWechatDTO.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/oper/dto/SeCustWechatDTO.java
new file mode 100644
index 0000000..110f0a8
--- /dev/null
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/oper/dto/SeCustWechatDTO.java
@@ -0,0 +1,83 @@
+package cn.huge.module.oper.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 客户微信小程序配置数据传输对象
+ * @description: 客户微信小程序配置数据传输对象
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-04-12 15:28:22
+ * @version 1.0.0
+ */
+@Data
+public class SeCustWechatDTO {
+
+    /**
+    * 客户微信小程序信息编号
+    */
+    private String id;
+
+    /**
+    * 客户编号
+    */
+    private String custId;
+
+    /**
+    * 小程序主体id
+    */
+    private String mainId;
+
+    /**
+    * 小程序主体名称
+    */
+    private String mainName;
+
+    /**
+    * 小程序主体登录账号
+    */
+    private String mainAcc;
+
+    /**
+    * 小程序主体登录密码
+    */
+    private String mainPower;
+
+    /**
+    * 小程序appid
+    */
+    private String appid;
+
+    /**
+    * 小程序secret
+    */
+    private String secret;
+
+    /**
+    * 小程序token
+    */
+    private String token;
+
+    /**
+    * 小程序aeskey
+    */
+    private String aeskey;
+
+    /**
+    * 小程序msgDataFormat
+    */
+    private String msgDataFormat;
+
+    /**
+    * 创建时间
+    */
+    private Date createTime;
+
+    /**
+    * 状态时间
+    */
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/aop/LogAop.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/aop/LogAop.java
new file mode 100644
index 0000000..55f5771
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/aop/LogAop.java
@@ -0,0 +1,57 @@
+package cn.huge.module.aop;
+
+import cn.huge.base.common.utils.ObjectUtils;
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhouxiantao
+ * @create 2024-08-30 11:46
+ */
+@Component
+@Aspect
+@Slf4j
+public class LogAop {
+    @Around("execution(* cn.huge.module.*.controller.*.*.*(..))")
+    public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
+        long starttime = System.currentTimeMillis();
+        Object[] objs = joinPoint.getArgs();
+        try{
+            log.info("start to {} {}", joinPoint.getSignature().getName(), JSON.toJSONString(objs));
+        }catch (Exception e){
+            log.info("start to {} 参数不能转成字符串,忽略不处理", joinPoint.getSignature().getName());
+        }
+        Object result = joinPoint.proceed(objs);
+        long endtime = System.currentTimeMillis();
+        try {
+            String resultJson = JSON.toJSONString(result);
+            if(ObjectUtils.isNotEmpty(result) && resultJson.length() > 1000) {
+                log.info("finish to {} 日志过长不打印 {}ms", joinPoint.getSignature().getName(),endtime-starttime);
+            }else {
+                log.info("finish to {} {} {}ms", joinPoint.getSignature().getName(), resultJson,endtime-starttime);
+            }
+        }catch (Exception e){
+            log.info("finish to {} 不能转成字符串,忽略不处理 {}ms", joinPoint.getSignature().getName(),endtime-starttime);
+        }
+        return result;
+    }
+
+    @Around("execution(* cn.huge.module.*.dao.mapper.*.*(..))")
+    public Object aroundAdviceDao(ProceedingJoinPoint joinPoint) throws Throwable {
+        long starttime = System.currentTimeMillis();
+        Object[] objs = joinPoint.getArgs();
+        Object result = joinPoint.proceed(objs);
+        long endtime = System.currentTimeMillis();
+        Long times = endtime-starttime;
+        if(times > 2000){
+            log.info("Executing sql consumes time more than 1s {} ,{}ms", joinPoint.getSignature().getName(),endtime-starttime);
+        }else{
+            log.info("Executing sql consumes time {} ,{}ms", joinPoint.getSignature().getName(),endtime-starttime);
+        }
+        return result;
+    }
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtAccountWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtAccountWebController.java
index 3b2cd74..2abecc2 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtAccountWebController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtAccountWebController.java
@@ -21,6 +21,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/wechat/CtUnitWechatController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/wechat/CtUnitWechatController.java
new file mode 100644
index 0000000..dc669fd
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/wechat/CtUnitWechatController.java
@@ -0,0 +1,176 @@
+package cn.huge.module.ctuser.controller.wechat;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.module.ctuser.domain.po.CtUnit;
+import cn.huge.module.ctuser.service.CtUnitService;
+import cn.huge.module.ctuser.service.CtUserService;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 客户组织信息表接口api-微服务调用
+ * @description: 客户组织信息表接口api-微服务调用
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-08-19 20:04:19
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/wechat/ctUnit")
+public class CtUnitWechatController {
+
+    @Autowired(required = false)
+    private HttpServletRequest request;
+
+    @Autowired
+    private CtUnitService service;
+
+    /**
+     * 获取请求URL参数
+     * @return Map<String, Object>
+     */
+    private Map<String, Object> getParameter() {
+        Map<String, Object> terms = Maps.newHashMap();
+        String keyword = request.getParameter("keyword");
+        if (StringUtils.isNotBlank(keyword)){
+            terms.put("keyword", keyword);
+        }
+        // 组织地址省
+        String prov = request.getParameter("prov");
+        if (StringUtils.isNotBlank(prov)){
+            terms.put("prov", prov);
+        }
+        // 组织地址省名称
+        String provName = request.getParameter("provName");
+        if (StringUtils.isNotBlank(provName)){
+            terms.put("provName", provName);
+        }
+        // 组织地址市
+        String city = request.getParameter("city");
+        if (StringUtils.isNotBlank(city)){
+            terms.put("city", city);
+        }
+        // 组织地址市名称
+        String cityName = request.getParameter("cityName");
+        if (StringUtils.isNotBlank(cityName)){
+            terms.put("cityName", cityName);
+        }
+        // 组织地址区
+        String area = request.getParameter("area");
+        if (StringUtils.isNotBlank(area)){
+            terms.put("area", area);
+        }
+        // 组织地址区名称
+        String areaName = request.getParameter("areaName");
+        if (StringUtils.isNotBlank(areaName)){
+            terms.put("areaName", areaName);
+        }
+        // 组织地址街道
+        String road = request.getParameter("road");
+        if (StringUtils.isNotBlank(road)){
+            terms.put("road", road);
+        }
+        // 组织地址街道名称
+        String roadName = request.getParameter("roadName");
+        if (StringUtils.isNotBlank(roadName)){
+            terms.put("roadName", roadName);
+        }
+        // 组织地址社区
+        String village = request.getParameter("village");
+        if (StringUtils.isNotBlank(village)){
+            terms.put("village", village);
+        }
+        // 组织地址社区名称
+        String villageName = request.getParameter("villageName");
+        if (StringUtils.isNotBlank(villageName)){
+            terms.put("villageName", villageName);
+        }
+        return terms;
+    }
+
+    /**
+     * 统计机构数量
+     * @url {ctx}/api/wechat/ctUnit/countUnit
+     * @return Object
+     */
+    @GetMapping("/countUnit")
+    public Object countUnit() {
+        try {
+            return ReturnSucUtils.getRepInfo(service.wechatCountUnit());
+        } catch (Exception e) {
+            log.error("Controller接口[CtUnitWechatController.countUnit]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+     * 综治中心查询
+     * @url {ctx}/api/wechat/ctUnit/pageZzQuery
+     * @return Object
+     */
+    @GetMapping("/pageZzQuery")
+    public Object pageZzQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
+        try {
+            Map<String, Object> terms = getParameter();
+            terms.put("unitType",1);
+            Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
+            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+            Page<CtUnit> ctUnitPage = service.pageQuery(pageRequest, terms);
+            return ReturnSucUtils.getRepInfo( "处理成功", ctUnitPage);
+        } catch (Exception e) {
+            log.error("Controller接口[CtUnitWechatController.pageZzQuery]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+
+    /**
+     * 调解组织查询
+     * @url {ctx}/api/wechat/ctUnit/pageZzQuery
+     * @return Object
+     */
+    @GetMapping("/pageTjQuery")
+    public Object pageTjQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
+        try {
+            Map<String, Object> terms = getParameter();
+            List<Integer> unitTypes = Arrays.asList(2,3,4,5);
+            terms.put("unitTypes",unitTypes);
+            Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
+            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+            Page<CtUnit> ctUnitPage = service.pageQuery(pageRequest, terms);
+            return ReturnSucUtils.getRepInfo( "处理成功", ctUnitPage);
+        } catch (Exception e) {
+            log.error("Controller接口[CtUnitWechatController.pageTjQuery]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+     * 组织详情
+     * @url {ctx}/api/wechat/ctUnit/getById
+     * @return Object
+     */
+    @GetMapping("/getById")
+    public Object getById(@RequestParam(value = "id") String id) {
+        try {
+            return ReturnSucUtils.getRepInfo(service.getById(id));
+        } catch (Exception e) {
+            log.error("Controller接口[CtUnitWechatController.getById]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUnitMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUnitMapper.xml
index 98833ad..6c6718d 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUnitMapper.xml
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dao/mapper/xml/CtUnitMapper.xml
@@ -46,6 +46,12 @@
             <result property="custId" column="cust_id"/>
             <result property="createTime" column="create_time"/>
             <result property="updateTime" column="update_time"/>
+            <result property="postalCode" column="postal_code"/>
+            <result property="telephone" column="telephone"/>
+            <result property="workTimeWeek" column="work_time_week"/>
+            <result property="workTimeAm" column="work_time_am"/>
+            <result property="workTimePm" column="work_time_pm"/>
+
     </resultMap>
     <!-- 表 -->
     <sql id='table-name'>dyh_ct_unit</sql>
@@ -85,7 +91,12 @@
         delete_status,
         cust_id,
         create_time,
-        update_time
+        update_time,
+        postal_code,
+        telephone,
+        work_time_week,
+        work_time_am,
+        work_time_pm
     </sql>
     <!-- 更新实体字段 -->
     <sql id="set-part">
@@ -122,12 +133,22 @@
             <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
             <if test="entity.custId != null">cust_id = #{entity.custId},</if>
             <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
-            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime},</if>
+            <if test="entity.postalCode != null">postal_code = #{entity.postalCode},</if>
+            <if test="entity.telephone != null">telephone = #{entity.telephone},</if>
+            <if test="entity.workTimeWeek != null">work_time_week = #{entity.workTimeWeek},</if>
+            <if test="entity.workTimeAm != null">work_time_am = #{entity.workTimeAm},</if>
+            <if test="entity.workTimePm != null">work_time_pm = #{entity.workTimePm},</if>
+
+
     </sql>
     <!-- 条件 -->
     <sql id="where-part">
         <if test="terms != null">
             <where>
+                <if test="terms.keyword != null and terms.keyword !=''">
+                    and unit_name like CONCAT('%', #{terms.keyword}, '%')
+                </if>
                 <if test="terms.id != null and terms.id !=''">
                     and id = #{terms.id}
                 </if>
@@ -146,6 +167,12 @@
                 <if test="terms.unitType != null and terms.unitType !=''">
                     and unit_type = #{terms.unitType}
                 </if>
+                <if test="terms.unitTypes != null and terms.unitTypes.size > 0 ">
+                    and unit_type in
+                    <foreach item="unitType" collection="terms.unitTypes" separator="," open="(" close=")" index="">
+                        #{unitType}
+                    </foreach>
+                </if>
                 <if test="terms.unitCode != null and terms.unitCode !=''">
                     and unit_code = #{terms.unitCode}
                 </if>
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java
index d5f1cd2..895a3d5 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtUnit.java
@@ -233,6 +233,36 @@
     private Date updateTime;
 
     /**
+     * 邮政编码
+     */
+    @TableField(value = "postal_code")
+    private String postalCode;
+
+    /**
+     * 联系电话
+     */
+    @TableField(value = "telephone")
+    private String telephone;
+
+    /**
+     * 办公时间,周
+     */
+    @TableField(value = "work_time_week")
+    private String workTimeWeek;
+
+    /**
+     * 办公时间,上午
+     */
+    @TableField(value = "work_time_am")
+    private String workTimeAm;
+
+    /**
+     * 办公时间,下午
+     */
+    @TableField(value = "work_time_pm")
+    private String workTimePm;
+
+    /**
      * 子部门
      */
     @TableField(exist = false)
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitWeChatCountDTO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitWeChatCountDTO.java
new file mode 100644
index 0000000..5403d3c
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitWeChatCountDTO.java
@@ -0,0 +1,19 @@
+package cn.huge.module.ctuser.dto;
+
+import lombok.Data;
+
+/**
+ * @author zhouxiantao
+ * @create 2024-08-30 9:25
+ */
+@Data
+public class CtUnitWeChatCountDTO {
+    /**
+     * 综治数量
+     */
+    private Integer zzUnitNum;
+    /**
+     * 调解组织数量
+     */
+    private Integer tzUnitNum;
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
index 617011c..6f83f64 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
@@ -3,12 +3,14 @@
 import cn.huge.base.common.exception.ServiceException;
 import cn.huge.base.common.utils.DateUtils;
 import cn.huge.base.common.utils.IdUtils;
+import cn.huge.base.common.utils.ObjectUtils;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
 import cn.huge.module.constant.BaseConsts;
 import cn.huge.module.ctuser.dao.mapper.CtUnitMapper;
 import cn.huge.module.ctuser.domain.po.CtDept;
 import cn.huge.module.ctuser.domain.po.CtUnit;
 import cn.huge.module.ctuser.domain.po.CtUser;
+import cn.huge.module.ctuser.dto.CtUnitWeChatCountDTO;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.collections.CollectionUtils;
@@ -21,10 +23,7 @@
 import org.springframework.data.domain.PageRequest;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -271,4 +270,27 @@
     public void updateTerms(CtUnit ctUnit) {
         mapper.updateTerms(ctUnit);
     }
+
+    /**
+     * 小程序统计机构数量
+     * */
+    public CtUnitWeChatCountDTO wechatCountUnit(){
+        CtUnitWeChatCountDTO ctUnitWeChatCountDTO = new CtUnitWeChatCountDTO();
+        QueryWrapper<CtUnit> unitQueryWrapper = new QueryWrapper<>();
+        unitQueryWrapper.eq("unit_type", 1);
+        Integer zzUnitNum = mapper.selectCount(unitQueryWrapper);
+        if(ObjectUtils.isEmpty(zzUnitNum)){
+            zzUnitNum = 0;
+        }
+        ctUnitWeChatCountDTO.setZzUnitNum(zzUnitNum);
+        List<Integer> unitTypeList = Arrays.asList(2,3,4,5);
+        QueryWrapper<CtUnit> unitQueryWrapper1 = new QueryWrapper<>();
+        unitQueryWrapper1.in("unit_type", unitTypeList);
+        Integer tzUnitNum = mapper.selectCount(unitQueryWrapper1);
+        if(ObjectUtils.isEmpty(tzUnitNum)){
+            tzUnitNum = 0;
+        }
+        ctUnitWeChatCountDTO.setTzUnitNum(tzUnitNum);
+        return ctUnitWeChatCountDTO;
+    }
 }
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaAccountWechatController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaAccountWechatController.java
new file mode 100644
index 0000000..857491d
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaAccountWechatController.java
@@ -0,0 +1,150 @@
+package cn.huge.module.pauser.controller.wechat;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.module.pauser.dto.WeChatEmpowerDTO;
+import cn.huge.module.pauser.service.PaAccountService;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * @title: 公众用户账号表接口api-wechat端
+ * @description: 公众用户账号表接口api-wechat端
+ * @company: hugeinfo
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/wechat/paAccount")
+public class PaAccountWechatController {
+
+    @Autowired(required = false)
+    private HttpServletRequest request;
+
+    @Autowired
+    private PaAccountService service;
+
+    /**
+    * 获取请求URL参数
+    * @return Map<String, Object>
+    */
+    private Map<String, Object> getParameter(){
+        Map<String, Object> terms = Maps.newHashMap();
+        // 账号编号
+        String id = request.getParameter("id");
+        if (StringUtils.isNotBlank(id)){
+            terms.put("id", id);
+        }
+        // 当事人编号
+        String userId = request.getParameter("userId");
+        if (StringUtils.isNotBlank(userId)){
+            terms.put("userId", userId);
+        }
+        // 帐号类型,1:平台web端,2:平台小程序
+        String accType = request.getParameter("accType");
+        if (StringUtils.isNotBlank(accType)){
+            terms.put("accType", accType);
+        }
+        // 身份唯一标识(存储唯一标识,比如账号、邮箱、手机号、第三方获取的唯一标识等)
+        String acc = request.getParameter("acc");
+        if (StringUtils.isNotBlank(acc)){
+            terms.put("acc", acc);
+        }
+        // 授权凭证(比如密码 、第三方登录的token、授权账号等)
+        String cipher = request.getParameter("cipher");
+        if (StringUtils.isNotBlank(cipher)){
+            terms.put("cipher", cipher);
+        }
+        // 授权凭证明文
+        String cipherOpen = request.getParameter("cipherOpen");
+        if (StringUtils.isNotBlank(cipherOpen)){
+            terms.put("cipherOpen", cipherOpen);
+        }
+        // 密码最新更新时间
+        String cipherTime = request.getParameter("cipherTime");
+        if (StringUtils.isNotBlank(cipherTime)){
+            terms.put("cipherTime", cipherTime);
+        }
+        // 最新登录时间
+        String loginTime = request.getParameter("loginTime");
+        if (StringUtils.isNotBlank(loginTime)){
+            terms.put("loginTime", loginTime);
+        }
+        // 限制登录时间(密码错误次数超过限制,默认30分钟)
+        String limitTime = request.getParameter("limitTime");
+        if (StringUtils.isNotBlank(limitTime)){
+            terms.put("limitTime", limitTime);
+        }
+        // 删除状态,0:未删除,1:已删除
+        String deleteStatus = request.getParameter("deleteStatus");
+        if (StringUtils.isNotBlank(deleteStatus)){
+            terms.put("deleteStatus", deleteStatus);
+        }
+        // 客户编号
+        String custId = request.getParameter("custId");
+        if (StringUtils.isNotBlank(custId)){
+            terms.put("custId", custId);
+        }
+        // 创建时间区间
+        String createStart = request.getParameter("createStart");
+        String createEnd = request.getParameter("createEnd");
+        if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+            terms.put("createStart", createStart);
+            terms.put("createEnd", createEnd);
+        }
+        // 更新时间区间
+        String updateStart = request.getParameter("updateStart");
+        String updateEnd = request.getParameter("updateEnd");
+        if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
+            terms.put("updateStart", updateStart);
+            terms.put("updateEnd", updateEnd);
+        }
+        return terms;
+    }
+
+
+    /**
+     * 当事人小程序-微信用户授权
+     * url: {ctx}/api/weChat/paAccount/empower
+     * type: post
+     */
+    @PostMapping(value = "/empower")
+    public Object empower(@RequestBody WeChatEmpowerDTO weChatEmpowerDTO) {
+        if (StringUtils.isBlank(weChatEmpowerDTO.getCode())) {
+            return ReturnSucUtils.getRepInfo("code不能为空!");
+        }
+        try {
+            return ReturnSucUtils.getRepInfo(service.wechatEmpower(weChatEmpowerDTO));
+        } catch (Exception e) {
+            log.error("Controller接口[PaAccountWechatController.empower]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
+        }
+    }
+
+    /**
+     * 当事人小程序-微信用户授权获取手机号码
+     * url: {ctx}/api/wechat/paAccount/getUserPhone
+     * type: post
+     */
+    @PostMapping(value = "/getUserPhone")
+    public Object getUserPhone(@RequestBody WeChatEmpowerDTO weChatEmpowerDTO) {
+        if (StringUtils.isBlank(weChatEmpowerDTO.getCode())) {
+            return ReturnSucUtils.getRepInfo("code不能为空!");
+        }
+        try {
+            return ReturnSucUtils.getRepInfo(service.wechatGetPhone(weChatEmpowerDTO));
+        } catch (Exception e) {
+            log.error("Controller接口[WeChatPaAccountController.wechatGetPhone]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
+        }
+    }
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaUserWechatController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaUserWechatController.java
index 8af644b..f364bdb 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaUserWechatController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/controller/wechat/PaUserWechatController.java
@@ -1,7 +1,8 @@
-package cn.huge.module.pauser.controller.web;
+package cn.huge.module.pauser.controller.wechat;
 
 import cn.huge.base.common.utils.ReturnFailUtils;
 import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.base.config.CurrentUser;
 import cn.huge.module.pauser.domain.po.PaUser;
 import cn.huge.module.pauser.service.PaUserService;
 import com.google.common.collect.Maps;
@@ -15,16 +16,11 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
- * @title: 公众用户表接口api-web端
- * @description: 公众用户表接口api-web端
+ * @title: 公众用户表接口api-wechat端
+ * @description: 公众用户表接口api-wechat端
  * @company: hugeinfo
- * @author: liyj
- * @time: 2024-08-19 20:04:19
- * @version: 1.0.0
  */
 @Slf4j
 @RestController
@@ -190,85 +186,74 @@
         return terms;
     }
 
+
     /**
-    * 条件查询多个
-    * @url {ctx}/api/web/paUser/listQuery
-    * @return Object
-    */
-    @GetMapping("/listQuery")
-    public Object listQuery() {
+     * 当事人小程序-个人中心
+     * url: {ctx}/api/wechat/paUser/personal
+     * type: post
+     */
+    @GetMapping(value = "/personal")
+    public Object personal(@CurrentUser String userId) {
         try {
-            Map<String, Object> terms = getParameter();
-            return ReturnSucUtils.getRepInfo(service.listTerms(terms));
+            return ReturnSucUtils.getRepInfo(service.wechatPersonal(userId));
         } catch (Exception e) {
-            return ReturnFailUtils.getRepInfo();
+            log.error("Controller接口[PaUserWechatController.personal]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
         }
     }
 
     /**
-    * 条件分页查询
-    * @url {ctx}/api/web/paUser/pageQuery
-    * @param page 页码
-    * @param size 每页数量
-    * @return Object
-    */
-    @GetMapping("/pageQuery")
-    public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
+     * 当事人小程序-查询当前登录人个人信息
+     * url: {ctx}/api/wechat/paUser/getUserInfo
+     * type: post
+     */
+    @GetMapping(value = "/getUserInfo")
+    public Object getUserInfo(@CurrentUser String userId) {
         try {
-            Map<String, Object> terms = getParameter();
-            Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
-            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
-            Page<PaUser> paUserPage = service.pageQuery(pageRequest, terms);
-            return ReturnSucUtils.getRepInfo( "处理成功", paUserPage);
+            PaUser paUser = service.getById(userId);
+            return ReturnSucUtils.getRepInfo(paUser);
         } catch (Exception e) {
-            return ReturnFailUtils.getRepInfo();
+            log.error("Controller接口[PaUserWechatController.getUserInfo]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
         }
     }
 
     /**
-    * 根据编号查询单个
-    * @url {ctx}/api/web/paUser/getById
-    * @param id 主键编号
-    * @return Object
-    */
-    @GetMapping("/getById")
-    public Object getById(@RequestParam(value = "id") String id) {
+     * 当事人小程序-完善资料
+     * url: {ctx}/api/wechat/paUser/perfectInfo
+     * type: post
+     */
+    @PostMapping(value = "/perfectInfo")
+    public Object perfectInfo(@CurrentUser String userId, @RequestBody PaUser paUser) {
         try {
-            return ReturnSucUtils.getRepInfo(service.getById(id));
-        } catch (Exception e) {
-            return ReturnFailUtils.getRepInfo();
-        }
-    }
-
-    /**
-    * 根据主键单个
-    * @url {ctx}/api/web/paUser/deleteById
-    * @param id 主键编号
-    * @return Object
-    */
-    @GetMapping("/deleteById")
-    public Object deleteById(@RequestParam(value = "id") String id) {
-        try {
-            service.removeById(id);
+            paUser.setId(userId);
+            service.perfectInfo(paUser);
             return ReturnSucUtils.getRepInfo();
         } catch (Exception e) {
-            return ReturnFailUtils.getRepInfo();
+            log.error("Controller接口[PaUserWechatController.perfectInfo]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
         }
     }
 
     /**
-    * 新增或更新对象
-    * @url {ctx}/api/web/paUser/savePaUser
-    * @param paUser 实体对象
-    * @return Object
-    */
-    @PostMapping("/savePaUser")
-    public Object savePaUser(@RequestBody PaUser paUser) {
+     * 当事人小程序-实名认证
+     * url: {ctx}/api/weChat/paUser/realAuth
+     * type: post
+     */
+    @PostMapping(value = "/realAuth")
+    public Object realAuth(@CurrentUser String userId, @RequestBody PaUser paUser) {
         try {
-            service.savePaUser(paUser);
-            return ReturnSucUtils.getRepInfo();
+            paUser.setId(userId);
+            service.wechatRealAuth(paUser);
+            Map<String, Object> result = Maps.newHashMap();
+            result.put("userId", paUser.getId());
+            result.put("trueName", paUser.getTrueName());
+            result.put("realStatus", paUser.getRealStatus());
+//            result.put("faceStatus", paUser.getFaceStatus());
+            return ReturnSucUtils.getRepInfo(result);
         } catch (Exception e) {
-            return ReturnFailUtils.getRepInfo();
+            log.error("Controller接口[PaUserWechatController.realAuth]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
         }
     }
 
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/PaAccountMapper.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/PaAccountMapper.java
index c3b8429..ea6a6da 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/PaAccountMapper.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/PaAccountMapper.java
@@ -1,6 +1,7 @@
 package cn.huge.module.pauser.dao.mapper;
 
 import cn.huge.module.pauser.domain.po.PaAccount;
+import cn.huge.module.oper.dto.SeCustWechatDTO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.data.domain.PageRequest;
@@ -61,4 +62,11 @@
     */
     List<PaAccount> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
 
+    /**
+     * 根据appid查询小程序配置
+     * @param appid 小程序appid
+     * @return SeCustWechatDTO
+     */
+    SeCustWechatDTO getSeCustWechatByAppid(@Param("appid") String appid);
+
 }
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/xml/PaAccountMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/xml/PaAccountMapper.xml
index 31c9463..6e45fad 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/xml/PaAccountMapper.xml
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dao/mapper/xml/PaAccountMapper.xml
@@ -175,4 +175,27 @@
         limit #{page.offset}, #{page.size}
     </select>
 
+    <!-- SeCustWechatDTO结果集 -->
+    <resultMap id="seCustWechatDTO" type="cn.huge.module.oper.dto.SeCustWechatDTO">
+        <result property="id" column="id"/>
+        <result property="custId" column="cust_id"/>
+        <result property="mainId" column="main_id"/>
+        <result property="mainName" column="main_name"/>
+        <result property="mainAcc" column="main_acc"/>
+        <result property="mainPower" column="main_power"/>
+        <result property="appid" column="appid"/>
+        <result property="secret" column="secret"/>
+        <result property="token" column="token"/>
+        <result property="aeskey" column="aeskey"/>
+        <result property="msgDataFormat" column="msg_data_format"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 根据appid查询小程序配置 -->
+    <select id="getSeCustWechatByAppid" resultMap="seCustWechatDTO">
+        SELECT
+            *
+        FROM dyh_se_cust_wechat
+        WHERE appid = #{appid}
+    </select>
 </mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatEmpowerDTO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatEmpowerDTO.java
new file mode 100644
index 0000000..616e56b
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatEmpowerDTO.java
@@ -0,0 +1,46 @@
+package cn.huge.module.pauser.dto;
+
+import lombok.Data;
+
+/**
+ * @title: 微信授权登录数据传输类
+ * @description: 微信授权登录数据传输类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-02-22 15:24:51
+ * @version: 1.0.0
+ */
+@Data
+public class WeChatEmpowerDTO {
+
+    /**
+     * 小程序appid
+     */
+    private String appid;
+
+    /**
+     * 小程序code
+     */
+    private String code;
+
+    /**
+     * 手机号码
+     */
+    private String mobile;
+
+    /**
+     * 用户头像
+     */
+    private String avatar;
+
+    /**
+     * 用户加密信息
+     */
+    String encryptedData;
+
+    /**
+     * 加密算法的初始向量
+     */
+    String ivStr;
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatLoginDTO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatLoginDTO.java
new file mode 100644
index 0000000..789f3ac
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatLoginDTO.java
@@ -0,0 +1,63 @@
+package cn.huge.module.pauser.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 微信小程序登录后返回前端用户实体类
+ * @description: 微信小程序登录后返回前端用户实体类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-02-22 15:24:51
+ * @version: 1.0.0
+ */
+@Data
+public class WeChatLoginDTO {
+
+    /**
+     * JWT token
+     */
+    private String token;
+
+    /**
+     * 微信sessionKey
+     */
+    private String sessionKey;
+
+    /**
+     * 微信openId
+     */
+    private String openId;
+
+    /**
+     * 用户编号
+     */
+    private String userId;
+
+    /**
+     * 用户名称
+     */
+    private String trueName;
+
+    /**
+     * 上一次登录时间
+     */
+    private Date lastLoginTime;
+
+    /**
+     * 实名认证状态,1:通过,0:未通过(默认)
+     */
+    private Integer realStatus;
+
+    /**
+     * 人脸认证状态,1:已认证,0:未认证(默认)
+     */
+    private Integer faceStatus;
+
+    /**
+     * 多码合一,用户注册状态,0:未注册,1:已注册
+     */
+    private String state;
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatPersonalDTO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatPersonalDTO.java
new file mode 100644
index 0000000..8705928
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/dto/WeChatPersonalDTO.java
@@ -0,0 +1,58 @@
+package cn.huge.module.pauser.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 微信小程序个人中心数据传输类
+ * @description: 微信小程序个人中心数据传输类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-02-22 15:24:51
+ * @version: 1.0.0
+ */
+@Data
+public class WeChatPersonalDTO {
+
+    /**
+     * 用户编号
+     */
+    private String userId;
+
+    /**
+     * 用户名称
+     */
+    private String trueName;
+
+    /**
+     * 用户头像
+     */
+    private String avatar;
+
+    /**
+     * 实名认证状态,1:通过,99:未通过(默认)
+     */
+    private Integer realStatus;
+
+    /**
+     * 人脸认证状态,1:已认证,99:未认证(默认)
+     */
+    private Integer faceStatus;
+
+    /**
+     * 我的消息数量
+     */
+    private Integer msgCount;
+
+    /**
+     * 反馈意见数量
+     */
+    private Integer opinionCount;
+    /**
+     * 最新登录时间
+     */
+    private Date loginTime;
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaAccountService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaAccountService.java
index 20a6a8a..7d261fc 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaAccountService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaAccountService.java
@@ -1,22 +1,33 @@
 package cn.huge.module.pauser.service;
 
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import cn.huge.base.common.exception.ServiceException;
-import cn.huge.base.common.utils.DateUtils;
-import cn.huge.base.common.utils.IdUtils;
+import cn.huge.base.common.utils.*;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.constant.BaseConsts;
+import cn.huge.module.cust.constant.UserBaseConsts;
 import cn.huge.module.pauser.dao.mapper.PaAccountMapper;
 import cn.huge.module.pauser.domain.po.PaAccount;
+import cn.huge.module.pauser.domain.po.PaUser;
+import cn.huge.module.oper.dto.SeCustWechatDTO;
+import cn.huge.module.pauser.dto.WeChatEmpowerDTO;
+import cn.huge.module.pauser.dto.WeChatLoginDTO;
+import cn.huge.module.utils.JwtUtils;
+import cn.huge.module.wechat.miniapp.service.WeixinMaService;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Maps;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.DigestUtils;
 
-import javax.annotation.PostConstruct;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -39,6 +50,15 @@
 
     @Autowired
     private UtilsClientImpl utilsClient;
+
+    @Autowired
+    private WeixinMaService weixinMaService;
+
+    @Autowired
+    private WxMaService wxMaService;
+
+    @Autowired
+    private PaUserService paUserService;
 
     /**
     * 更新对象
@@ -130,4 +150,116 @@
         }
     }
 
+    /**
+     * 当事人小程序-微信用户授权
+     * @param weChatEmpowerDTO 微信用户授权信息
+     * @return WeChatLoginDTO
+     */
+    public WeChatLoginDTO wechatEmpower(WeChatEmpowerDTO weChatEmpowerDTO) {
+        try{
+            Date nowDate = new Date();
+            WeChatLoginDTO weChatLoginDTO = new WeChatLoginDTO();
+            SeCustWechatDTO seCustWechatDTO = mapper.getSeCustWechatByAppid(weChatEmpowerDTO.getAppid());
+            weixinMaService.createConfig(seCustWechatDTO);
+            WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(weChatEmpowerDTO.getCode());
+            weChatLoginDTO.setSessionKey(session.getSessionKey());
+            weChatLoginDTO.setOpenId(session.getOpenid());
+            PaUser paUser = null;
+            PaAccount account = this.getByTypeAndAcc(UserBaseConsts.ACC_TYPE_2, session.getOpenid(), seCustWechatDTO.getCustId());
+            // 是否新注册
+            if (ObjectUtils.isEmpty(account)) {
+                weChatLoginDTO.setLastLoginTime(nowDate);
+                // 新建用户信息
+                paUser = new PaUser();
+                paUser.setId(utilsClient.getNewTimeId());
+                paUser.setAvatar(weChatEmpowerDTO.getAvatar());
+                paUser.setRealStatus(UserBaseConsts.REAL_STATUS_0);
+//                paUser.setFaceStatus(UserBaseConsts.REAL_STATUS_0);
+                paUser.setStatus(UserBaseConsts.USER_STATUS_1);
+                paUser.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+                paUser.setCustId(seCustWechatDTO.getCustId());
+                paUser.setCreateTime(nowDate);
+                paUser.setUpdateTime(nowDate);
+                paUserService.save(paUser);
+                // 新增账号信息
+                account = new PaAccount();
+                account.setId(utilsClient.getNewTimeId());
+                account.setUserId(paUser.getId());
+                account.setAccType(UserBaseConsts.ACC_TYPE_2);
+                account.setAcc(session.getOpenid());
+                account.setCipher(DigestUtils.md5DigestAsHex(session.getOpenid().getBytes()));
+                account.setCipherOpen(session.getOpenid());
+                account.setLoginTime(nowDate);
+                account.setCustId(seCustWechatDTO.getCustId());
+                account.setCreateTime(nowDate);
+                account.setUpdateTime(nowDate);
+                mapper.insert(account);
+            }else {
+                weChatLoginDTO.setLastLoginTime(account.getLoginTime());
+                // 更新登录时间
+                account.setLoginTime(nowDate);
+                mapper.updatePaAccount(account);
+                // 获取用户信息
+                paUser = paUserService.getById(account.getUserId());
+            }
+            // 封装用户信息
+            weChatLoginDTO.setUserId(paUser.getId());
+            weChatLoginDTO.setTrueName(paUser.getTrueName());
+            weChatLoginDTO.setRealStatus(paUser.getRealStatus());
+//            weChatLoginDTO.setFaceStatus(paUser.getFaceStatus());
+            //生成JWT
+            String token = JwtUtils.buildJWT(account.getCustId(), account.getUserId());
+            weChatLoginDTO.setToken(token);
+            return weChatLoginDTO;
+        }catch (Exception e){
+            log.error("service方法[PaAccountService.wechatEmpower]调用异常:"+e, e);
+            throw new ServiceException("PaAccountService.wechatEmpower", e);
+        }
+    }
+
+    /**
+     * 通过账号类型和授权凭证查询
+     * @param accType 账户类型
+     * @param acc 账号
+     * @param custId 客户编号
+     * @return PaAccount
+     */
+    public PaAccount getByTypeAndAcc(Integer accType, String acc, String custId){
+        QueryWrapper<PaAccount> paAccountQueryWrapper = new QueryWrapper<>();
+        paAccountQueryWrapper.eq("acc_type", accType).eq("acc", acc).eq("cust_id", custId);
+        PaAccount paAccount = mapper.selectOne(paAccountQueryWrapper);
+        return paAccount;
+    }
+
+    /**
+     * 当事人小程序-获取手机号码
+     * @param weChatEmpowerDTO 请求信息
+     * @return String
+     */
+    public String wechatGetPhone(WeChatEmpowerDTO weChatEmpowerDTO) {
+        try{
+            SeCustWechatDTO seCustWechatDTO = mapper.getSeCustWechatByAppid(weChatEmpowerDTO.getAppid());
+            weixinMaService.createConfig(seCustWechatDTO);
+            String accessToken = wxMaService.getAccessToken();
+            String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token="+accessToken;
+            Map<String, String> map = Maps.newHashMap();
+            map.put("code", weChatEmpowerDTO.getCode());
+            JsonMapper jsonMapper = new JsonMapper();
+            String jsonStr = jsonMapper.toJson(map);
+            String result = HttpClientUtils.httpPostRaw(url, jsonStr, null, null);
+            JSONObject resultJson = JSONObject.parseObject(new String(result));
+            int errcode = resultJson.getIntValue("errcode");
+            if (errcode == 0){
+                JSONObject phoneInfoJson = resultJson.getJSONObject("phone_info");
+                String phoneNumber = phoneInfoJson.getString("phoneNumber");
+                return phoneNumber;
+            }else {
+                throw new ServiceException("errcode:"+errcode+";errmsg:"+resultJson.getIntValue("errmsg"));
+            }
+        }catch (Exception e){
+            log.error("service方法[PaAccountService.wechatGetPhone]调用异常:"+e, e);
+            throw new ServiceException("PaAccountService.wechatGetPhone", e);
+        }
+    }
+
 }
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaUserService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaUserService.java
index fc692a4..598c800 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaUserService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/pauser/service/PaUserService.java
@@ -3,10 +3,18 @@
 import cn.huge.base.common.exception.ServiceException;
 import cn.huge.base.common.utils.DateUtils;
 import cn.huge.base.common.utils.IdUtils;
+import cn.huge.base.common.utils.ObjectUtils;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.cust.constant.UserBaseConsts;
+import cn.huge.module.mediate.dto.WechatBindCaseDTO;
+import cn.huge.module.pauser.dao.mapper.PaAccountMapper;
 import cn.huge.module.pauser.dao.mapper.PaUserMapper;
+import cn.huge.module.pauser.domain.po.PaAccount;
 import cn.huge.module.pauser.domain.po.PaUser;
+import cn.huge.module.pauser.dto.WeChatPersonalDTO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import lombok.extern.slf4j.Slf4j;
@@ -39,6 +47,9 @@
 
     @Autowired
     private UtilsClientImpl utilsClient;
+
+    @Autowired
+    private PaAccountMapper paAccountMapper;
 
     /**
     * 更新对象
@@ -130,4 +141,80 @@
         }
     }
 
+    /**
+     * 当事人小程序-个人中心
+     * @param userId 用户编号
+     * @return WeChatPersonalDTO
+     */
+    public WeChatPersonalDTO wechatPersonal(String userId){
+        WeChatPersonalDTO weChatPersonalDTO = new WeChatPersonalDTO();
+        PaUser paUser = this.getById(userId);
+        BeanUtils.copyProperties(paUser, weChatPersonalDTO);
+        weChatPersonalDTO.setUserId(paUser.getId());
+        // TODO: 2022/4/13 我的消息
+        weChatPersonalDTO.setMsgCount(0);
+        // TODO: 2022/4/13 反馈意见
+        weChatPersonalDTO.setOpinionCount(0);
+
+        QueryWrapper<PaAccount> paAccountWrapper = new QueryWrapper<>();
+        paAccountWrapper.eq("user_id", userId);
+        PaAccount paAccount = paAccountMapper.selectOne(paAccountWrapper);
+        if(ObjectUtils.isNotEmpty(paAccount)){
+            weChatPersonalDTO.setLoginTime(paAccount.getLoginTime());
+        }
+
+        return weChatPersonalDTO;
+    }
+
+    /**
+     * 当事人小程序-完善资料
+     * @param paUser 用户信息
+     */
+    public void perfectInfo(PaUser paUser){
+        try{
+            Date nowDate = new Date();
+            paUser.setStatus(UserBaseConsts.USER_STATUS_1);
+            paUser.setUpdateTime(nowDate);
+            mapper.updatePaUser(paUser);
+            // 绑定案件
+//            WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO();
+//            wechatBindCaseDTO.setUserId(paUser.getId());
+//            wechatBindCaseDTO.setMobile(paUser.getMobile());
+//            wechatBindCaseDTO.setTrueName(paUser.getTrueName());
+//            wechatBindCaseDTO.setIdcard(paUser.getIdcard());
+//            wechatBindCaseDTO.setCustId(paUser.getCustId());
+//            mediateClient.bindCase(wechatBindCaseDTO);
+        }catch (Exception e){
+            log.error("service方法[PaUserService.perfectInfo]调用异常:"+e, e);
+            throw new ServiceException("PaUserService.perfectInfo", e);
+        }
+    }
+
+    /**
+     * 当事人小程序-实名认证
+     * @param paUser 用户信息
+     */
+    public void wechatRealAuth(PaUser paUser){
+        try{
+            Date nowDate = new Date();
+            paUser.setRealStatus(UserBaseConsts.REAL_STATUS_1);
+//            paUser.setFaceStatus(UserBaseConsts.FACE_STATUS_1);
+            paUser.setStatus(UserBaseConsts.USER_STATUS_1);
+            paUser.setUpdateTime(nowDate);
+            mapper.updatePaUser(paUser);
+            // 绑定案件
+//            WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO();
+//            wechatBindCaseDTO.setUserId(paUser.getId());
+//            wechatBindCaseDTO.setMobile(paUser.getMobile());
+//            wechatBindCaseDTO.setTrueName(paUser.getTrueName());
+//            wechatBindCaseDTO.setIdcard(paUser.getIdcard());
+//            wechatBindCaseDTO.setCustId(paUser.getCustId());
+//            mediateClient.bindCase(wechatBindCaseDTO);
+        }catch (Exception e){
+            log.error("service方法[PaUserService.wechatRealAuth]调用异常:"+e, e);
+            throw new ServiceException("PaUserService.wechatRealAuth", e);
+        }
+    }
+
+
 }
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/wechat/miniapp/service/WeixinMaService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/wechat/miniapp/service/WeixinMaService.java
index dc7f284..63dc303 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/wechat/miniapp/service/WeixinMaService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/wechat/miniapp/service/WeixinMaService.java
@@ -4,13 +4,12 @@
 import cn.binarywang.wx.miniapp.bean.WxMaMessage;
 import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
 import cn.binarywang.wx.miniapp.message.WxMaMessageRouter;
+import cn.huge.module.oper.dto.SeCustWechatDTO;
 import cn.huge.module.wechat.miniapp.handler.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
-import javax.annotation.PostConstruct;
 
 /**
  * @title: 小程序服务
@@ -65,6 +64,17 @@
 //        this.refreshRouter();
 //    }
 
+    public void createConfig(SeCustWechatDTO seCustWechatDTO) {
+        final WxMaInMemoryConfig config = new WxMaInMemoryConfig();
+        config.setAppid(seCustWechatDTO.getAppid());// 设置微信公众号的appid
+        config.setSecret(seCustWechatDTO.getSecret());// 设置微信公众号的app corpSecret
+        config.setToken(seCustWechatDTO.getToken());// 设置微信公众号的token
+        config.setAesKey(seCustWechatDTO.getAeskey());// 设置消息加解密密钥
+        super.setWxMaConfig(config);
+
+        this.refreshRouter();
+    }
+
     private void refreshRouter() {
         final WxMaMessageRouter newRouter = new WxMaMessageRouter(this);
 
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/controller/wechat/NoticePartyWechatController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/controller/wechat/NoticePartyWechatController.java
new file mode 100644
index 0000000..8670b45
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/controller/wechat/NoticePartyWechatController.java
@@ -0,0 +1,178 @@
+package cn.huge.module.notice.controller.wechat;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.base.config.CurrentUser;
+import cn.huge.module.mediate.constant.NoticeBaseConsts;
+import cn.huge.module.notice.domain.po.NoticeParty;
+import cn.huge.module.notice.service.NoticePartyService;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @title: 当事人消息通知表接口api
+ * @description: 当事人消息通知表接口api
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:34
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/wechat/noticeParty")
+public class NoticePartyWechatController {
+
+    @Autowired(required = false)
+    private HttpServletRequest request;
+
+    @Autowired
+    private NoticePartyService service;
+
+    /**
+    * 获取请求URL参数
+    * @return Map<String, Object>
+    */
+    private Map<String, Object> getParameter(){
+        Map<String, Object> terms = Maps.newHashMap();
+        // 我申请的消息通知编号
+        String id = request.getParameter("id");
+        if (StringUtils.isNotBlank(id)){
+            terms.put("id", id);
+        }
+        // 纠纷编号
+        String caseId = request.getParameter("caseId");
+        if (StringUtils.isNotBlank(caseId)){
+            terms.put("caseId", caseId);
+        }
+        // 消息类型,1:系统通知,2:平台公告
+        String noticeType = request.getParameter("noticeType");
+        if (StringUtils.isNotBlank(noticeType)){
+            terms.put("noticeType", noticeType);
+        }
+        // 标题
+        String title = request.getParameter("title");
+        if (StringUtils.isNotBlank(title)){
+            terms.put("title", title);
+        }
+        // 消息内容
+        String content = request.getParameter("content");
+        if (StringUtils.isNotBlank(content)){
+            terms.put("content", content);
+        }
+        // 接收人编号
+        String userId = request.getParameter("userId");
+        if (StringUtils.isNotBlank(userId)){
+            terms.put("userId", userId);
+        }
+        // 接收人名称
+        String userName = request.getParameter("userName");
+        if (StringUtils.isNotBlank(userName)){
+            terms.put("userName", userName);
+        }
+        // 跳转url
+        String visitUrl = request.getParameter("visitUrl");
+        if (StringUtils.isNotBlank(visitUrl)){
+            terms.put("visitUrl", visitUrl);
+        }
+        // 已读状态,1:未读(默认值),2:已读
+        String readStatus = request.getParameter("readStatus");
+        if (StringUtils.isNotBlank(readStatus)){
+            terms.put("readStatus", readStatus);
+        }
+        // 阅读时间
+        String readTime = request.getParameter("readTime");
+        if (StringUtils.isNotBlank(readTime)){
+            terms.put("readTime", readTime);
+        }
+        // 删除状态,1:未删除(默认值),99:已删除
+        String deleteStatus = request.getParameter("deleteStatus");
+        if (StringUtils.isNotBlank(deleteStatus)){
+            terms.put("deleteStatus", deleteStatus);
+        }
+        // 客户编号
+        String custId = request.getParameter("custId");
+        if (StringUtils.isNotBlank(custId)){
+            terms.put("custId", custId);
+        }
+        // 创建时间区间
+        String createStart = request.getParameter("createStart");
+        String createEnd = request.getParameter("createEnd");
+        if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+            terms.put("createStart", createStart);
+            terms.put("createEnd", createEnd);
+        }
+        // 更新时间区间
+        String updateStart = request.getParameter("updateStart");
+        String updateEnd = request.getParameter("updateEnd");
+        if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
+            terms.put("updateStart", updateStart);
+            terms.put("updateEnd", updateEnd);
+        }
+        return terms;
+    }
+
+
+    /**
+     * 我的消息-分页查询
+     * @url {ctx}/api/weChat/noticeParty/pageMyNotice
+     * @param page 页码
+     * @param size 每页数量
+     * @param readStatus 每页数量
+     * @return Object
+     */
+    @GetMapping("/pageMyNotice")
+    public Object pageMyNotice(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size,
+                               @RequestParam(value = "readStatus") String readStatus, @CurrentUser String userId) {
+        try {
+            Map<String, Object> terms = getParameter();
+            terms.put("userId", userId);
+            terms.put("readStatus", readStatus);
+            Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
+            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+            Page<NoticeParty> noticePartyPage = service.pageQuery(pageRequest, terms);
+            return ReturnSucUtils.getRepInfo( "处理成功", noticePartyPage);
+        } catch (Exception e) {
+            log.error("Controller接口[NoticePartyController.pageMyNotice]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 我的消息-阅读消息
+     * @url {ctx}/api/weChat/noticeParty/readNotice
+     * @param id 消息编号
+     * @param userId
+     * @return
+     */
+    @GetMapping("/readNotice")
+    public Object readNotice(@RequestParam(value = "id") String id, @CurrentUser String userId) {
+        try {
+            Date nowDate = new Date();
+            NoticeParty noticeParty = new NoticeParty();
+            noticeParty.setReadStatus(NoticeBaseConsts.READ_STATUS_2);
+            noticeParty.setReadTime(nowDate);
+            noticeParty.setUpdateTime(nowDate);
+            noticeParty.setId(id);
+            service.updateNoticeParty(noticeParty);
+            return ReturnSucUtils.getRepInfo( );
+        } catch (Exception e) {
+            log.error("Controller接口[NoticePartyController.readNotice]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
+        }
+    }
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeApplyMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeApplyMapper.java
new file mode 100644
index 0000000..fbfc310
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeApplyMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.notice.dao.mapper;
+
+import cn.huge.module.notice.domain.po.NoticeApply;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 我申请的消息通知表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-11-24 10:34:32
+* @version 1.0.0
+*/
+@Repository
+public interface NoticeApplyMapper extends BaseMapper<NoticeApply>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateNoticeApply(@Param("entity") NoticeApply entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateNoticeApplyTerms(@Param("entity") NoticeApply entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteNoticeApply(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<NoticeApply>
+    */
+    List<NoticeApply> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<NoticeApply>
+    */
+    List<NoticeApply> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeHandleMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeHandleMapper.java
new file mode 100644
index 0000000..b95e253
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeHandleMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.notice.dao.mapper;
+
+import cn.huge.module.notice.domain.po.NoticeHandle;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 我负责的消息通知表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-11-24 10:34:33
+* @version 1.0.0
+*/
+@Repository
+public interface NoticeHandleMapper extends BaseMapper<NoticeHandle>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateNoticeHandle(@Param("entity") NoticeHandle entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateNoticeHandleTerms(@Param("entity") NoticeHandle entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteNoticeHandle(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<NoticeHandle>
+    */
+    List<NoticeHandle> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<NoticeHandle>
+    */
+    List<NoticeHandle> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeJoinMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeJoinMapper.java
new file mode 100644
index 0000000..9caeb66
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeJoinMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.notice.dao.mapper;
+
+import cn.huge.module.notice.domain.po.NoticeJoin;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 我参与的消息通知表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-11-24 10:34:34
+* @version 1.0.0
+*/
+@Repository
+public interface NoticeJoinMapper extends BaseMapper<NoticeJoin>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateNoticeJoin(@Param("entity") NoticeJoin entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateNoticeJoinTerms(@Param("entity") NoticeJoin entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteNoticeJoin(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<NoticeJoin>
+    */
+    List<NoticeJoin> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<NoticeJoin>
+    */
+    List<NoticeJoin> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeModeMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeModeMapper.java
new file mode 100644
index 0000000..37c35e7
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeModeMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.notice.dao.mapper;
+
+import cn.huge.module.notice.domain.po.NoticeMode;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 短信通知模板表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-11-24 10:34:34
+* @version 1.0.0
+*/
+@Repository
+public interface NoticeModeMapper extends BaseMapper<NoticeMode>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateNoticeMode(@Param("entity") NoticeMode entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateNoticeModeTerms(@Param("entity") NoticeMode entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteNoticeMode(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<NoticeMode>
+    */
+    List<NoticeMode> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<NoticeMode>
+    */
+    List<NoticeMode> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticePartyMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticePartyMapper.java
new file mode 100644
index 0000000..f4c1c02
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticePartyMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.notice.dao.mapper;
+
+import cn.huge.module.notice.domain.po.NoticeParty;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 当事人消息通知表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-11-24 10:34:34
+* @version 1.0.0
+*/
+@Repository
+public interface NoticePartyMapper extends BaseMapper<NoticeParty>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateNoticeParty(@Param("entity") NoticeParty entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateNoticePartyTerms(@Param("entity") NoticeParty entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteNoticeParty(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<NoticeParty>
+    */
+    List<NoticeParty> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<NoticeParty>
+    */
+    List<NoticeParty> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeShortMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeShortMapper.java
new file mode 100644
index 0000000..7136561
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeShortMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.notice.dao.mapper;
+
+import cn.huge.module.notice.domain.po.NoticeShort;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 短信通知表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-11-24 10:34:35
+* @version 1.0.0
+*/
+@Repository
+public interface NoticeShortMapper extends BaseMapper<NoticeShort>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateNoticeShort(@Param("entity") NoticeShort entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateNoticeShortTerms(@Param("entity") NoticeShort entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteNoticeShort(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<NoticeShort>
+    */
+    List<NoticeShort> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<NoticeShort>
+    */
+    List<NoticeShort> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeSysMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeSysMapper.java
new file mode 100644
index 0000000..4fe87e5
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/NoticeSysMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.notice.dao.mapper;
+
+import cn.huge.module.notice.domain.po.NoticeSys;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 系统公告消息通知表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-11-24 10:34:35
+* @version 1.0.0
+*/
+@Repository
+public interface NoticeSysMapper extends BaseMapper<NoticeSys>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateNoticeSys(@Param("entity") NoticeSys entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateNoticeSysTerms(@Param("entity") NoticeSys entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteNoticeSys(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<NoticeSys>
+    */
+    List<NoticeSys> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<NoticeSys>
+    */
+    List<NoticeSys> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeApplyMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeApplyMapper.xml
new file mode 100644
index 0000000..f9bbe8b
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeApplyMapper.xml
@@ -0,0 +1,208 @@
+<?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">
+<!-- 
+ * @title: 我申请的消息通知表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-11-24 10:34:32
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.notice.dao.mapper.NoticeApplyMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.notice.domain.po.NoticeApply">
+            <result property="id" column="id"/>
+            <result property="caseId" column="case_id"/>
+            <result property="taskId" column="task_id"/>
+            <result property="title" column="title"/>
+            <result property="applyType" column="apply_type"/>
+            <result property="applyTime" column="apply_time"/>
+            <result property="applyReason" column="apply_reason"/>
+            <result property="helpNames" column="help_names"/>
+            <result property="applyStatus" column="apply_status"/>
+            <result property="userId" column="user_id"/>
+            <result property="userName" column="user_name"/>
+            <result property="visitUrl" column="visit_url"/>
+            <result property="readStatus" column="read_status"/>
+            <result property="readTime" column="read_time"/>
+            <result property="deleteStatus" column="delete_status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_notice_apply</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        case_id,
+        task_id,
+        title,
+        apply_type,
+        apply_time,
+        apply_reason,
+        help_names,
+        apply_status,
+        user_id,
+        user_name,
+        visit_url,
+        read_status,
+        read_time,
+        delete_status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
+            <if test="entity.taskId != null">task_id = #{entity.taskId},</if>
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.applyType != null">apply_type = #{entity.applyType},</if>
+            <if test="entity.applyTime != null">apply_time = #{entity.applyTime},</if>
+            <if test="entity.applyReason != null">apply_reason = #{entity.applyReason},</if>
+            <if test="entity.helpNames != null">help_names = #{entity.helpNames},</if>
+            <if test="entity.applyStatus != null">apply_status = #{entity.applyStatus},</if>
+            <if test="entity.userId != null">user_id = #{entity.userId},</if>
+            <if test="entity.userName != null">user_name = #{entity.userName},</if>
+            <if test="entity.visitUrl != null">visit_url = #{entity.visitUrl},</if>
+            <if test="entity.readStatus != null">read_status = #{entity.readStatus},</if>
+            <if test="entity.readTime != null">read_time = #{entity.readTime},</if>
+            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.caseId != null and terms.caseId !=''">
+                    and case_id = #{terms.caseId}
+                </if>
+                <if test="terms.taskId != null and terms.taskId !=''">
+                    and task_id = #{terms.taskId}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.applyType != null and terms.applyType !=''">
+                    and apply_type = #{terms.applyType}
+                </if>
+                <if test="terms.applyTime != null and terms.applyTime !=''">
+                    and apply_time = #{terms.applyTime}
+                </if>
+                <if test="terms.applyReason != null and terms.applyReason !=''">
+                    and apply_reason = #{terms.applyReason}
+                </if>
+                <if test="terms.helpNames != null and terms.helpNames !=''">
+                    and help_names = #{terms.helpNames}
+                </if>
+                <if test="terms.applyStatus != null and terms.applyStatus !=''">
+                    and apply_status = #{terms.applyStatus}
+                </if>
+                <if test="terms.userId != null and terms.userId !=''">
+                    and user_id = #{terms.userId}
+                </if>
+                <if test="terms.userName != null and terms.userName !=''">
+                    and user_name = #{terms.userName}
+                </if>
+                <if test="terms.visitUrl != null and terms.visitUrl !=''">
+                    and visit_url = #{terms.visitUrl}
+                </if>
+                <if test="terms.readStatus != null and terms.readStatus !=''">
+                    and read_status = #{terms.readStatus}
+                </if>
+                <if test="terms.readTime != null and terms.readTime !=''">
+                    and read_time = #{terms.readTime}
+                </if>
+                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+                    and delete_status = '1'
+                </if>
+                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+                    and delete_status = #{terms.deleteStatus}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateNoticeApply">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateNoticeApplyTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteNoticeApply">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeHandleMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeHandleMapper.xml
new file mode 100644
index 0000000..c35cd06
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeHandleMapper.xml
@@ -0,0 +1,196 @@
+<?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">
+<!-- 
+ * @title: 我负责的消息通知表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-11-24 10:34:33
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.notice.dao.mapper.NoticeHandleMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.notice.domain.po.NoticeHandle">
+            <result property="id" column="id"/>
+            <result property="caseId" column="case_id"/>
+            <result property="taskId" column="task_id"/>
+            <result property="title" column="title"/>
+            <result property="taskName" column="task_name"/>
+            <result property="taskTime" column="task_time"/>
+            <result property="expireTime" column="expire_time"/>
+            <result property="userId" column="user_id"/>
+            <result property="userName" column="user_name"/>
+            <result property="visitUrl" column="visit_url"/>
+            <result property="readStatus" column="read_status"/>
+            <result property="readTime" column="read_time"/>
+            <result property="deleteStatus" column="delete_status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_notice_handle</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        case_id,
+        task_id,
+        title,
+        task_name,
+        task_time,
+        expire_time,
+        user_id,
+        user_name,
+        visit_url,
+        read_status,
+        read_time,
+        delete_status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
+            <if test="entity.taskId != null">task_id = #{entity.taskId},</if>
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.taskName != null">task_name = #{entity.taskName},</if>
+            <if test="entity.taskTime != null">task_time = #{entity.taskTime},</if>
+            <if test="entity.expireTime != null">expire_time = #{entity.expireTime},</if>
+            <if test="entity.userId != null">user_id = #{entity.userId},</if>
+            <if test="entity.userName != null">user_name = #{entity.userName},</if>
+            <if test="entity.visitUrl != null">visit_url = #{entity.visitUrl},</if>
+            <if test="entity.readStatus != null">read_status = #{entity.readStatus},</if>
+            <if test="entity.readTime != null">read_time = #{entity.readTime},</if>
+            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.caseId != null and terms.caseId !=''">
+                    and case_id = #{terms.caseId}
+                </if>
+                <if test="terms.taskId != null and terms.taskId !=''">
+                    and task_id = #{terms.taskId}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.taskName != null and terms.taskName !=''">
+                    and task_name = #{terms.taskName}
+                </if>
+                <if test="terms.taskTime != null and terms.taskTime !=''">
+                    and task_time = #{terms.taskTime}
+                </if>
+                <if test="terms.expireTime != null and terms.expireTime !=''">
+                    and expire_time = #{terms.expireTime}
+                </if>
+                <if test="terms.userId != null and terms.userId !=''">
+                    and user_id = #{terms.userId}
+                </if>
+                <if test="terms.userName != null and terms.userName !=''">
+                    and user_name = #{terms.userName}
+                </if>
+                <if test="terms.visitUrl != null and terms.visitUrl !=''">
+                    and visit_url = #{terms.visitUrl}
+                </if>
+                <if test="terms.readStatus != null and terms.readStatus !=''">
+                    and read_status = #{terms.readStatus}
+                </if>
+                <if test="terms.readTime != null and terms.readTime !=''">
+                    and read_time = #{terms.readTime}
+                </if>
+                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+                    and delete_status = '1'
+                </if>
+                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+                    and delete_status = #{terms.deleteStatus}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateNoticeHandle">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateNoticeHandleTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteNoticeHandle">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeJoinMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeJoinMapper.xml
new file mode 100644
index 0000000..680a7ad
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeJoinMapper.xml
@@ -0,0 +1,196 @@
+<?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">
+<!-- 
+ * @title: 我参与的消息通知表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-11-24 10:34:34
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.notice.dao.mapper.NoticeJoinMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.notice.domain.po.NoticeJoin">
+            <result property="id" column="id"/>
+            <result property="taskId" column="task_id"/>
+            <result property="caseId" column="case_id"/>
+            <result property="title" column="title"/>
+            <result property="taskName" column="task_name"/>
+            <result property="taskTime" column="task_time"/>
+            <result property="expireTime" column="expire_time"/>
+            <result property="userId" column="user_id"/>
+            <result property="userName" column="user_name"/>
+            <result property="visitUrl" column="visit_url"/>
+            <result property="readStatus" column="read_status"/>
+            <result property="readTime" column="read_time"/>
+            <result property="deleteStatus" column="delete_status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_notice_join</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        task_id,
+        case_id,
+        title,
+        task_name,
+        task_time,
+        expire_time,
+        user_id,
+        user_name,
+        visit_url,
+        read_status,
+        read_time,
+        delete_status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.taskId != null">task_id = #{entity.taskId},</if>
+            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.taskName != null">task_name = #{entity.taskName},</if>
+            <if test="entity.taskTime != null">task_time = #{entity.taskTime},</if>
+            <if test="entity.expireTime != null">expire_time = #{entity.expireTime},</if>
+            <if test="entity.userId != null">user_id = #{entity.userId},</if>
+            <if test="entity.userName != null">user_name = #{entity.userName},</if>
+            <if test="entity.visitUrl != null">visit_url = #{entity.visitUrl},</if>
+            <if test="entity.readStatus != null">read_status = #{entity.readStatus},</if>
+            <if test="entity.readTime != null">read_time = #{entity.readTime},</if>
+            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.taskId != null and terms.taskId !=''">
+                    and task_id = #{terms.taskId}
+                </if>
+                <if test="terms.caseId != null and terms.caseId !=''">
+                    and case_id = #{terms.caseId}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.taskName != null and terms.taskName !=''">
+                    and task_name = #{terms.taskName}
+                </if>
+                <if test="terms.taskTime != null and terms.taskTime !=''">
+                    and task_time = #{terms.taskTime}
+                </if>
+                <if test="terms.expireTime != null and terms.expireTime !=''">
+                    and expire_time = #{terms.expireTime}
+                </if>
+                <if test="terms.userId != null and terms.userId !=''">
+                    and user_id = #{terms.userId}
+                </if>
+                <if test="terms.userName != null and terms.userName !=''">
+                    and user_name = #{terms.userName}
+                </if>
+                <if test="terms.visitUrl != null and terms.visitUrl !=''">
+                    and visit_url = #{terms.visitUrl}
+                </if>
+                <if test="terms.readStatus != null and terms.readStatus !=''">
+                    and read_status = #{terms.readStatus}
+                </if>
+                <if test="terms.readTime != null and terms.readTime !=''">
+                    and read_time = #{terms.readTime}
+                </if>
+                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+                    and delete_status = '1'
+                </if>
+                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+                    and delete_status = #{terms.deleteStatus}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateNoticeJoin">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateNoticeJoinTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteNoticeJoin">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeModeMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeModeMapper.xml
new file mode 100644
index 0000000..af16452
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeModeMapper.xml
@@ -0,0 +1,163 @@
+<?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">
+<!-- 
+ * @title: 短信通知模板表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-11-24 10:34:34
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.notice.dao.mapper.NoticeModeMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.notice.domain.po.NoticeMode">
+            <result property="id" column="id"/>
+            <result property="modeTyep" column="mode_tyep"/>
+            <result property="name" column="name"/>
+            <result property="noticeTypeName" column="notice_type_name"/>
+            <result property="content" column="content"/>
+            <result property="userId" column="user_id"/>
+            <result property="userMobile" column="user_mobile"/>
+            <result property="userName" column="user_name"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_notice_mode</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        mode_tyep,
+        name,
+        notice_type_name,
+        content,
+        user_id,
+        user_mobile,
+        user_name,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.modeTyep != null">mode_tyep = #{entity.modeTyep},</if>
+            <if test="entity.name != null">name = #{entity.name},</if>
+            <if test="entity.noticeTypeName != null">notice_type_name = #{entity.noticeTypeName},</if>
+            <if test="entity.content != null">content = #{entity.content},</if>
+            <if test="entity.userId != null">user_id = #{entity.userId},</if>
+            <if test="entity.userMobile != null">user_mobile = #{entity.userMobile},</if>
+            <if test="entity.userName != null">user_name = #{entity.userName},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.modeTyep != null and terms.modeTyep !=''">
+                    and mode_tyep = #{terms.modeTyep}
+                </if>
+                <if test="terms.name != null and terms.name !=''">
+                    and name = #{terms.name}
+                </if>
+                <if test="terms.noticeTypeName != null and terms.noticeTypeName !=''">
+                    and notice_type_name = #{terms.noticeTypeName}
+                </if>
+                <if test="terms.content != null and terms.content !=''">
+                    and content = #{terms.content}
+                </if>
+                <if test="terms.userId != null and terms.userId !=''">
+                    and user_id = #{terms.userId}
+                </if>
+                <if test="terms.userMobile != null and terms.userMobile !=''">
+                    and user_mobile = #{terms.userMobile}
+                </if>
+                <if test="terms.userName != null and terms.userName !=''">
+                    and user_name = #{terms.userName}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateNoticeMode">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateNoticeModeTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteNoticeMode">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticePartyMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticePartyMapper.xml
new file mode 100644
index 0000000..f123b74
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticePartyMapper.xml
@@ -0,0 +1,184 @@
+<?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">
+<!-- 
+ * @title: 当事人消息通知表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-11-24 10:34:34
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.notice.dao.mapper.NoticePartyMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.notice.domain.po.NoticeParty">
+            <result property="id" column="id"/>
+            <result property="caseId" column="case_id"/>
+            <result property="noticeType" column="notice_type"/>
+            <result property="title" column="title"/>
+            <result property="content" column="content"/>
+            <result property="userId" column="user_id"/>
+            <result property="userName" column="user_name"/>
+            <result property="visitUrl" column="visit_url"/>
+            <result property="readStatus" column="read_status"/>
+            <result property="readTime" column="read_time"/>
+            <result property="deleteStatus" column="delete_status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_notice_party</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        case_id,
+        notice_type,
+        title,
+        content,
+        user_id,
+        user_name,
+        visit_url,
+        read_status,
+        read_time,
+        delete_status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
+            <if test="entity.noticeType != null">notice_type = #{entity.noticeType},</if>
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.content != null">content = #{entity.content},</if>
+            <if test="entity.userId != null">user_id = #{entity.userId},</if>
+            <if test="entity.userName != null">user_name = #{entity.userName},</if>
+            <if test="entity.visitUrl != null">visit_url = #{entity.visitUrl},</if>
+            <if test="entity.readStatus != null">read_status = #{entity.readStatus},</if>
+            <if test="entity.readTime != null">read_time = #{entity.readTime},</if>
+            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.caseId != null and terms.caseId !=''">
+                    and case_id = #{terms.caseId}
+                </if>
+                <if test="terms.noticeType != null and terms.noticeType !=''">
+                    and notice_type = #{terms.noticeType}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.content != null and terms.content !=''">
+                    and content = #{terms.content}
+                </if>
+                <if test="terms.userId != null and terms.userId !=''">
+                    and user_id = #{terms.userId}
+                </if>
+                <if test="terms.userName != null and terms.userName !=''">
+                    and user_name = #{terms.userName}
+                </if>
+                <if test="terms.visitUrl != null and terms.visitUrl !=''">
+                    and visit_url = #{terms.visitUrl}
+                </if>
+                <if test="terms.readStatus != null and terms.readStatus !=''">
+                    and read_status = #{terms.readStatus}
+                </if>
+                <if test="terms.readTime != null and terms.readTime !=''">
+                    and read_time = #{terms.readTime}
+                </if>
+                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+                    and delete_status = '1'
+                </if>
+                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+                    and delete_status = #{terms.deleteStatus}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateNoticeParty">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateNoticePartyTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteNoticeParty">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeShortMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeShortMapper.xml
new file mode 100644
index 0000000..a8ce794
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeShortMapper.xml
@@ -0,0 +1,175 @@
+<?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">
+<!-- 
+ * @title: 短信通知表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-11-24 10:34:35
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.notice.dao.mapper.NoticeShortMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.notice.domain.po.NoticeShort">
+            <result property="id" column="id"/>
+            <result property="caseId" column="case_id"/>
+            <result property="noticeType" column="notice_type"/>
+            <result property="noticeTypeName" column="notice_type_name"/>
+            <result property="title" column="title"/>
+            <result property="content" column="content"/>
+            <result property="userId" column="user_id"/>
+            <result property="userMobile" column="user_mobile"/>
+            <result property="userName" column="user_name"/>
+            <result property="status" column="status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_notice_short</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        case_id,
+        notice_type,
+        notice_type_name,
+        title,
+        content,
+        user_id,
+        user_mobile,
+        user_name,
+        status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
+            <if test="entity.noticeType != null">notice_type = #{entity.noticeType},</if>
+            <if test="entity.noticeTypeName != null">notice_type_name = #{entity.noticeTypeName},</if>
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.content != null">content = #{entity.content},</if>
+            <if test="entity.userId != null">user_id = #{entity.userId},</if>
+            <if test="entity.userMobile != null">user_mobile = #{entity.userMobile},</if>
+            <if test="entity.userName != null">user_name = #{entity.userName},</if>
+            <if test="entity.status != null">status = #{entity.status},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.caseId != null and terms.caseId !=''">
+                    and case_id = #{terms.caseId}
+                </if>
+                <if test="terms.noticeType != null and terms.noticeType !=''">
+                    and notice_type = #{terms.noticeType}
+                </if>
+                <if test="terms.noticeTypeName != null and terms.noticeTypeName !=''">
+                    and notice_type_name = #{terms.noticeTypeName}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.content != null and terms.content !=''">
+                    and content = #{terms.content}
+                </if>
+                <if test="terms.userId != null and terms.userId !=''">
+                    and user_id = #{terms.userId}
+                </if>
+                <if test="terms.userMobile != null and terms.userMobile !=''">
+                    and user_mobile = #{terms.userMobile}
+                </if>
+                <if test="terms.userName != null and terms.userName !=''">
+                    and user_name = #{terms.userName}
+                </if>
+                <if test="terms.status != null and terms.status !=''">
+                    and status = #{terms.status}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateNoticeShort">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateNoticeShortTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteNoticeShort">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeSysMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeSysMapper.xml
new file mode 100644
index 0000000..f7ba317
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/dao/mapper/xml/NoticeSysMapper.xml
@@ -0,0 +1,178 @@
+<?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">
+<!-- 
+ * @title: 系统公告消息通知表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-11-24 10:34:35
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.notice.dao.mapper.NoticeSysMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.notice.domain.po.NoticeSys">
+            <result property="id" column="id"/>
+            <result property="caseId" column="case_id"/>
+            <result property="title" column="title"/>
+            <result property="content" column="content"/>
+            <result property="userId" column="user_id"/>
+            <result property="userName" column="user_name"/>
+            <result property="visitUrl" column="visit_url"/>
+            <result property="readStatus" column="read_status"/>
+            <result property="readTime" column="read_time"/>
+            <result property="deleteStatus" column="delete_status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_notice_sys</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        case_id,
+        title,
+        content,
+        user_id,
+        user_name,
+        visit_url,
+        read_status,
+        read_time,
+        delete_status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.content != null">content = #{entity.content},</if>
+            <if test="entity.userId != null">user_id = #{entity.userId},</if>
+            <if test="entity.userName != null">user_name = #{entity.userName},</if>
+            <if test="entity.visitUrl != null">visit_url = #{entity.visitUrl},</if>
+            <if test="entity.readStatus != null">read_status = #{entity.readStatus},</if>
+            <if test="entity.readTime != null">read_time = #{entity.readTime},</if>
+            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.caseId != null and terms.caseId !=''">
+                    and case_id = #{terms.caseId}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.content != null and terms.content !=''">
+                    and content = #{terms.content}
+                </if>
+                <if test="terms.userId != null and terms.userId !=''">
+                    and user_id = #{terms.userId}
+                </if>
+                <if test="terms.userName != null and terms.userName !=''">
+                    and user_name = #{terms.userName}
+                </if>
+                <if test="terms.visitUrl != null and terms.visitUrl !=''">
+                    and visit_url = #{terms.visitUrl}
+                </if>
+                <if test="terms.readStatus != null and terms.readStatus !=''">
+                    and read_status = #{terms.readStatus}
+                </if>
+                <if test="terms.readTime != null and terms.readTime !=''">
+                    and read_time = #{terms.readTime}
+                </if>
+                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+                    and delete_status = '1'
+                </if>
+                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+                    and delete_status = #{terms.deleteStatus}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateNoticeSys">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateNoticeSysTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteNoticeSys">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeApplyBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeApplyBO.java
new file mode 100644
index 0000000..c42ab7f
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeApplyBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.notice.domain.bo;
+
+import cn.huge.module.notice.domain.po.NoticeApply;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+/**
+ * @title: 我申请的消息通知表
+ * @description: 我申请的消息通知表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:32
+ * @version: 1.0.0
+ * @see NoticeApply
+ */
+public class NoticeApplyBO extends NoticeApply {
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeHandleBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeHandleBO.java
new file mode 100644
index 0000000..06f1ac7
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeHandleBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.notice.domain.bo;
+
+import cn.huge.module.notice.domain.po.NoticeHandle;
+
+/**
+ * @title: 我负责的消息通知表
+ * @description: 我负责的消息通知表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:33
+ * @version: 1.0.0
+ * @see NoticeHandle
+ */
+public class NoticeHandleBO extends NoticeHandle {
+
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeJoinBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeJoinBO.java
new file mode 100644
index 0000000..80804ca
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeJoinBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.notice.domain.bo;
+
+import cn.huge.module.notice.domain.po.NoticeJoin;
+
+/**
+ * @title: 我参与的消息通知表
+ * @description: 我参与的消息通知表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:34
+ * @version: 1.0.0
+ * @see NoticeJoin
+ */
+public class NoticeJoinBO extends NoticeJoin {
+
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeModeBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeModeBO.java
new file mode 100644
index 0000000..0806852
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeModeBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.notice.domain.bo;
+
+import cn.huge.module.notice.domain.po.NoticeMode;
+
+/**
+ * @title: 短信通知模板表
+ * @description: 短信通知模板表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:34
+ * @version: 1.0.0
+ * @see NoticeMode
+ */
+public class NoticeModeBO extends NoticeMode {
+
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticePartyBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticePartyBO.java
new file mode 100644
index 0000000..af2af71
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticePartyBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.notice.domain.bo;
+
+import cn.huge.module.notice.domain.po.NoticeParty;
+
+/**
+ * @title: 当事人消息通知表
+ * @description: 当事人消息通知表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:34
+ * @version: 1.0.0
+ * @see NoticeParty
+ */
+public class NoticePartyBO extends NoticeParty {
+
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeShortBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeShortBO.java
new file mode 100644
index 0000000..667eae3
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeShortBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.notice.domain.bo;
+
+import cn.huge.module.notice.domain.po.NoticeShort;
+
+/**
+ * @title: 短信通知表
+ * @description: 短信通知表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:35
+ * @version: 1.0.0
+ * @see NoticeShort
+ */
+public class NoticeShortBO extends NoticeShort {
+
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeSysBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeSysBO.java
new file mode 100644
index 0000000..61f319e
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/bo/NoticeSysBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.notice.domain.bo;
+
+import cn.huge.module.notice.domain.po.NoticeSys;
+
+/**
+ * @title: 系统公告消息通知表
+ * @description: 系统公告消息通知表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:35
+ * @version: 1.0.0
+ * @see NoticeSys
+ */
+public class NoticeSysBO extends NoticeSys {
+
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/dto/NoticeHandleDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/dto/NoticeHandleDTO.java
new file mode 100644
index 0000000..2499a5d
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/dto/NoticeHandleDTO.java
@@ -0,0 +1,40 @@
+package cn.huge.module.notice.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 我负责的消息通知表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:33
+ * @version 1.0.0
+ */
+@Data
+public class NoticeHandleDTO {
+
+    /**
+    * 纠纷编号
+    */
+    @TableField(value = "case_id")
+    private String caseId;
+
+    /**
+    * 任务编号
+    */
+    @TableField(value = "task_id")
+    private String taskId;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeApply.json b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeApply.json
new file mode 100644
index 0000000..f587897
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeApply.json
@@ -0,0 +1,17 @@
+{
+    "id": "我申请的消息通知编号",
+    "caseId": "纠纷编号",
+    "taskId": "任务编号",
+    "title": "标题",
+    "applyType": "申请类型",
+    "applyTime": "申请时间",
+    "applyReason": "申请理由",
+    "helpNames": "协助名单,多个用,隔开",
+    "applyStatus": "申请进度",
+    "userId": "接收人编号",
+    "userName": "接收人名称",
+    "visitUrl": "跳转url",
+    "readStatus": "已读状态,1:未读(默认值),2:已读",
+    "readTime": "阅读时间",
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeHandle.json b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeHandle.json
new file mode 100644
index 0000000..547dd64
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeHandle.json
@@ -0,0 +1,15 @@
+{
+    "id": "我负责的消息通知编号",
+    "caseId": "纠纷编号",
+    "taskId": "任务编号",
+    "title": "标题",
+    "taskName": "任务名称",
+    "taskTime": "任务下达时间",
+    "expireTime": "任务到期时间",
+    "userId": "接收人编号",
+    "userName": "接收人名称",
+    "visitUrl": "跳转url",
+    "readStatus": "已读状态,1:未读(默认值),2:已读",
+    "readTime": "阅读时间",
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeJoin.json b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeJoin.json
new file mode 100644
index 0000000..4833414
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeJoin.json
@@ -0,0 +1,15 @@
+{
+    "id": "我参与的消息通知编号",
+    "taskId": "任务编号",
+    "caseId": "纠纷编号",
+    "title": "标题",
+    "taskName": "任务名称",
+    "taskTime": "任务下达时间",
+    "expireTime": "任务到期时间",
+    "userId": "接收人编号",
+    "userName": "接收人名称",
+    "visitUrl": "跳转url",
+    "readStatus": "已读状态,1:未读(默认值),2:已读",
+    "readTime": "阅读时间",
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeMode.json b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeMode.json
new file mode 100644
index 0000000..cc43c43
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeMode.json
@@ -0,0 +1,11 @@
+{
+    "id": "短信通知模板编号",
+    "modeTyep": "模板类型,1:调解预约模板",
+    "name": "模板名称",
+    "noticeTypeName": "通知类型名称",
+    "content": "模板内容",
+    "userId": "操作人编号",
+    "userMobile": "操作人手机号码",
+    "userName": "操作人名称",
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeParty.json b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeParty.json
new file mode 100644
index 0000000..382ee04
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeParty.json
@@ -0,0 +1,13 @@
+{
+    "id": "我申请的消息通知编号",
+    "caseId": "纠纷编号",
+    "noticeType": "消息类型,1:系统通知,2:平台公告",
+    "title": "标题",
+    "content": "消息内容",
+    "userId": "接收人编号",
+    "userName": "接收人名称",
+    "visitUrl": "跳转url",
+    "readStatus": "已读状态,1:未读(默认值),2:已读",
+    "readTime": "阅读时间",
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeShort.json b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeShort.json
new file mode 100644
index 0000000..e60d3c6
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeShort.json
@@ -0,0 +1,13 @@
+{
+    "id": "短信通知表编号",
+    "caseId": "案件编号",
+    "noticeType": "通消息类型,1:系统通知,2:平台公告",
+    "noticeTypeName": "通知类型名称",
+    "title": "标题",
+    "content": "内容",
+    "userId": "接收人编号",
+    "userMobile": "接收人手机号码",
+    "userName": "接收人名称",
+    "status": 0,
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeSys.json b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeSys.json
new file mode 100644
index 0000000..434016c
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/json/NoticeSys.json
@@ -0,0 +1,12 @@
+{
+    "id": "系统公告消息通知编号",
+    "caseId": "纠纷编号",
+    "title": "标题",
+    "content": "内容",
+    "userId": "接收人编号",
+    "userName": "接收人名称",
+    "visitUrl": "跳转url",
+    "readStatus": "已读状态,1:未读(默认值),2:已读",
+    "readTime": "阅读时间",
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeApply.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeApply.java
new file mode 100644
index 0000000..e08136f
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeApply.java
@@ -0,0 +1,132 @@
+package cn.huge.module.notice.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 我申请的消息通知表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:32
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_notice_apply")
+@Data
+public class NoticeApply {
+
+    /**
+    * 我申请的消息通知编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 纠纷编号
+    */
+    @TableField(value = "case_id")
+    private String caseId;
+
+    /**
+    * 任务编号
+    */
+    @TableField(value = "task_id")
+    private String taskId;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 申请类型
+    */
+    @TableField(value = "apply_type")
+    private String applyType;
+
+    /**
+    * 申请时间
+    */
+    @TableField(value = "apply_time")
+    private Date applyTime;
+
+    /**
+    * 申请理由
+    */
+    @TableField(value = "apply_reason")
+    private String applyReason;
+
+    /**
+    * 协助名单,多个用,隔开
+    */
+    @TableField(value = "help_names")
+    private String helpNames;
+
+    /**
+    * 申请进度
+    */
+    @TableField(value = "apply_status")
+    private String applyStatus;
+
+    /**
+    * 接收人编号
+    */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+    * 接收人名称
+    */
+    @TableField(value = "user_name")
+    private String userName;
+
+    /**
+    * 跳转url
+    */
+    @TableField(value = "visit_url")
+    private String visitUrl;
+
+    /**
+    * 已读状态,1:未读(默认值),2:已读
+    */
+    @TableField(value = "read_status")
+    private String readStatus;
+
+    /**
+    * 阅读时间
+    */
+    @TableField(value = "read_time")
+    private Date readTime;
+
+    /**
+    * 删除状态,1:未删除(默认值),99:已删除
+    */
+    @TableLogic
+    @TableField(value = "delete_status")
+    private String deleteStatus;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeHandle.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeHandle.java
new file mode 100644
index 0000000..58f6405
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeHandle.java
@@ -0,0 +1,120 @@
+package cn.huge.module.notice.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 我负责的消息通知表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:33
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_notice_handle")
+@Data
+public class NoticeHandle {
+
+    /**
+    * 我负责的消息通知编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 纠纷编号
+    */
+    @TableField(value = "case_id")
+    private String caseId;
+
+    /**
+    * 任务编号
+    */
+    @TableField(value = "task_id")
+    private String taskId;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 任务名称
+    */
+    @TableField(value = "task_name")
+    private String taskName;
+
+    /**
+    * 任务下达时间
+    */
+    @TableField(value = "task_time")
+    private Date taskTime;
+
+    /**
+    * 任务到期时间
+    */
+    @TableField(value = "expire_time")
+    private Date expireTime;
+
+    /**
+    * 接收人编号
+    */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+    * 接收人名称
+    */
+    @TableField(value = "user_name")
+    private String userName;
+
+    /**
+    * 跳转url
+    */
+    @TableField(value = "visit_url")
+    private String visitUrl;
+
+    /**
+    * 已读状态,1:未读(默认值),2:已读
+    */
+    @TableField(value = "read_status")
+    private String readStatus;
+
+    /**
+    * 阅读时间
+    */
+    @TableField(value = "read_time")
+    private Date readTime;
+
+    /**
+    * 删除状态,1:未删除(默认值),99:已删除
+    */
+    @TableLogic
+    @TableField(value = "delete_status")
+    private String deleteStatus;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeJoin.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeJoin.java
new file mode 100644
index 0000000..2a0f44a
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeJoin.java
@@ -0,0 +1,120 @@
+package cn.huge.module.notice.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 我参与的消息通知表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:34
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_notice_join")
+@Data
+public class NoticeJoin {
+
+    /**
+    * 我参与的消息通知编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 任务编号
+    */
+    @TableField(value = "task_id")
+    private String taskId;
+
+    /**
+    * 纠纷编号
+    */
+    @TableField(value = "case_id")
+    private String caseId;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 任务名称
+    */
+    @TableField(value = "task_name")
+    private String taskName;
+
+    /**
+    * 任务下达时间
+    */
+    @TableField(value = "task_time")
+    private Date taskTime;
+
+    /**
+    * 任务到期时间
+    */
+    @TableField(value = "expire_time")
+    private Date expireTime;
+
+    /**
+    * 接收人编号
+    */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+    * 接收人名称
+    */
+    @TableField(value = "user_name")
+    private String userName;
+
+    /**
+    * 跳转url
+    */
+    @TableField(value = "visit_url")
+    private String visitUrl;
+
+    /**
+    * 已读状态,1:未读(默认值),2:已读
+    */
+    @TableField(value = "read_status")
+    private String readStatus;
+
+    /**
+    * 阅读时间
+    */
+    @TableField(value = "read_time")
+    private Date readTime;
+
+    /**
+    * 删除状态,1:未删除(默认值),99:已删除
+    */
+    @TableLogic
+    @TableField(value = "delete_status")
+    private String deleteStatus;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeMode.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeMode.java
new file mode 100644
index 0000000..29046dd
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeMode.java
@@ -0,0 +1,89 @@
+package cn.huge.module.notice.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 短信通知模板表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:34
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_notice_mode")
+@Data
+public class NoticeMode {
+
+    /**
+    * 短信通知模板编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 模板类型,1:调解预约模板
+    */
+    @TableField(value = "mode_tyep")
+    private String modeTyep;
+
+    /**
+    * 模板名称
+    */
+    @TableField(value = "name")
+    private String name;
+
+    /**
+    * 通知类型名称
+    */
+    @TableField(value = "notice_type_name")
+    private String noticeTypeName;
+
+    /**
+    * 模板内容
+    */
+    @TableField(value = "content")
+    private String content;
+
+    /**
+    * 操作人编号
+    */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+    * 操作人手机号码
+    */
+    @TableField(value = "user_mobile")
+    private String userMobile;
+
+    /**
+    * 操作人名称
+    */
+    @TableField(value = "user_name")
+    private String userName;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeParty.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeParty.java
new file mode 100644
index 0000000..81dc898
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeParty.java
@@ -0,0 +1,108 @@
+package cn.huge.module.notice.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 当事人消息通知表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:34
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_notice_party")
+@Data
+public class NoticeParty {
+
+    /**
+    * 我申请的消息通知编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 纠纷编号
+    */
+    @TableField(value = "case_id")
+    private String caseId;
+
+    /**
+    * 消息类型,1:系统通知,2:平台公告
+    */
+    @TableField(value = "notice_type")
+    private String noticeType;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 消息内容
+    */
+    @TableField(value = "content")
+    private String content;
+
+    /**
+    * 接收人编号
+    */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+    * 接收人名称
+    */
+    @TableField(value = "user_name")
+    private String userName;
+
+    /**
+    * 跳转url
+    */
+    @TableField(value = "visit_url")
+    private String visitUrl;
+
+    /**
+    * 已读状态,1:未读(默认值),2:已读
+    */
+    @TableField(value = "read_status")
+    private String readStatus;
+
+    /**
+    * 阅读时间
+    */
+    @TableField(value = "read_time")
+    private Date readTime;
+
+    /**
+    * 删除状态,1:未删除(默认值),99:已删除
+    */
+    @TableLogic
+    @TableField(value = "delete_status")
+    private String deleteStatus;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeShort.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeShort.java
new file mode 100644
index 0000000..be1f4d2
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeShort.java
@@ -0,0 +1,101 @@
+package cn.huge.module.notice.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 短信通知表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:35
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_notice_short")
+@Data
+public class NoticeShort {
+
+    /**
+    * 短信通知表编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 案件编号
+    */
+    @TableField(value = "case_id")
+    private String caseId;
+
+    /**
+    * 通消息类型,1:系统通知,2:平台公告
+    */
+    @TableField(value = "notice_type")
+    private String noticeType;
+
+    /**
+    * 通知类型名称
+    */
+    @TableField(value = "notice_type_name")
+    private String noticeTypeName;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 内容
+    */
+    @TableField(value = "content")
+    private String content;
+
+    /**
+    * 接收人编号
+    */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+    * 接收人手机号码
+    */
+    @TableField(value = "user_mobile")
+    private String userMobile;
+
+    /**
+    * 接收人名称
+    */
+    @TableField(value = "user_name")
+    private String userName;
+
+    /**
+    * 状态,1:发送成功,2:发送失败
+    */
+    @TableField(value = "status")
+    private Integer status;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeSys.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeSys.java
new file mode 100644
index 0000000..11c8120
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/domain/po/NoticeSys.java
@@ -0,0 +1,102 @@
+package cn.huge.module.notice.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 系统公告消息通知表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-11-24 10:34:35
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_notice_sys")
+@Data
+public class NoticeSys {
+
+    /**
+    * 系统公告消息通知编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 纠纷编号
+    */
+    @TableField(value = "case_id")
+    private String caseId;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 内容
+    */
+    @TableField(value = "content")
+    private String content;
+
+    /**
+    * 接收人编号
+    */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+    * 接收人名称
+    */
+    @TableField(value = "user_name")
+    private String userName;
+
+    /**
+    * 跳转url
+    */
+    @TableField(value = "visit_url")
+    private String visitUrl;
+
+    /**
+    * 已读状态,1:未读(默认值),2:已读
+    */
+    @TableField(value = "read_status")
+    private String readStatus;
+
+    /**
+    * 阅读时间
+    */
+    @TableField(value = "read_time")
+    private Date readTime;
+
+    /**
+    * 删除状态,1:未删除(默认值),99:已删除
+    */
+    @TableLogic
+    @TableField(value = "delete_status")
+    private String deleteStatus;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/service/NoticePartyService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/service/NoticePartyService.java
new file mode 100644
index 0000000..75a1484
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/notice/service/NoticePartyService.java
@@ -0,0 +1,133 @@
+package cn.huge.module.notice.service;
+
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.notice.dao.mapper.NoticePartyMapper;
+import cn.huge.module.notice.domain.po.NoticeParty;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 当事人消息通知表业务逻辑处理
+ * @Description JPA的单表数据查询以由BaseService完成
+ * @company hugeinfo
+ * @author liyj
+ * @Time 2022-11-24 10:34:34
+ * @version 1.0.0
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class NoticePartyService extends ServiceImpl<NoticePartyMapper, NoticeParty>{
+
+    @Autowired
+    private NoticePartyMapper mapper;
+
+    @Autowired
+    private UtilsClientImpl utilsClient;
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    public void updateNoticeParty(NoticeParty entity){
+        try{
+            mapper.updateNoticeParty(entity);
+        }catch (Exception e){
+            log.error("service方法[NoticePartyService.updateNoticeParty]调用异常:"+e, e);
+            throw new ServiceException("NoticePartyService.updateNoticeParty", e);
+        }
+    }
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    public void updateNoticePartyTerms(NoticeParty entity, Map<String, Object> terms){
+        try{
+            mapper.updateNoticePartyTerms(entity, terms);
+        }catch (Exception e){
+            log.error("service方法[NoticePartyService.updateNoticePartyTerms]调用异常:"+e, e);
+            throw new ServiceException("NoticePartyService.updateNoticePartyTerms", e);
+        }
+    }
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    public void deleteNoticeParty(String id){
+        try{
+            mapper.deleteNoticeParty(id);
+        }catch (Exception e){
+            log.error("service方法[NoticePartyService.deleteNoticeParty]调用异常:"+e, e);
+            throw new ServiceException("NoticePartyService.deleteNoticeParty", e);
+        }
+    }
+
+    /**
+    * 按条件查询
+    * @param terms 条件
+    * @return List
+    */
+    public List<NoticeParty> listTerms(Map<String, Object> terms){
+        return mapper.listTerms(terms);
+    }
+
+    /**
+    * 按条件统计
+    * @param terms 条件
+    * @return long
+    */
+    public long countTerms(Map<String, Object> terms){
+        return mapper.countTerms(terms);
+    }
+
+    /**
+    * 按条件分页查询
+    * @param page 分页对象
+    * @param terms 条件
+    * @return Page
+    */
+    public Page<NoticeParty> pageQuery(PageRequest page, Map<String, Object> terms){
+        long total = mapper.countTerms(terms);
+        List<NoticeParty> content = mapper.pageTerms(page, terms);
+        return new PageImpl<NoticeParty>(content, page, total);
+    }
+
+    /**
+    * 新增或更新对象
+    * @param noticeParty 实体对象
+    */
+    public void saveNoticeParty(NoticeParty noticeParty){
+        try{
+            Date nowDate = new Date();
+            // 判断是否新增
+            if (IdUtils.checkNewId(noticeParty.getId())){
+                noticeParty.setId(utilsClient.getNewTimeId());
+                noticeParty.setCreateTime(nowDate);
+            }
+            noticeParty.setUpdateTime(nowDate);
+            this.saveOrUpdate(noticeParty);
+        }catch (Exception e){
+            log.error("service方法[NoticePartyService.saveNoticeParty]调用异常:"+e, e);
+            throw new ServiceException("NoticePartyService.saveNoticeParty", e);
+        }
+    }
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/aop/LogAop.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/aop/LogAop.java
new file mode 100644
index 0000000..55f5771
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/aop/LogAop.java
@@ -0,0 +1,57 @@
+package cn.huge.module.aop;
+
+import cn.huge.base.common.utils.ObjectUtils;
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhouxiantao
+ * @create 2024-08-30 11:46
+ */
+@Component
+@Aspect
+@Slf4j
+public class LogAop {
+    @Around("execution(* cn.huge.module.*.controller.*.*.*(..))")
+    public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
+        long starttime = System.currentTimeMillis();
+        Object[] objs = joinPoint.getArgs();
+        try{
+            log.info("start to {} {}", joinPoint.getSignature().getName(), JSON.toJSONString(objs));
+        }catch (Exception e){
+            log.info("start to {} 参数不能转成字符串,忽略不处理", joinPoint.getSignature().getName());
+        }
+        Object result = joinPoint.proceed(objs);
+        long endtime = System.currentTimeMillis();
+        try {
+            String resultJson = JSON.toJSONString(result);
+            if(ObjectUtils.isNotEmpty(result) && resultJson.length() > 1000) {
+                log.info("finish to {} 日志过长不打印 {}ms", joinPoint.getSignature().getName(),endtime-starttime);
+            }else {
+                log.info("finish to {} {} {}ms", joinPoint.getSignature().getName(), resultJson,endtime-starttime);
+            }
+        }catch (Exception e){
+            log.info("finish to {} 不能转成字符串,忽略不处理 {}ms", joinPoint.getSignature().getName(),endtime-starttime);
+        }
+        return result;
+    }
+
+    @Around("execution(* cn.huge.module.*.dao.mapper.*.*(..))")
+    public Object aroundAdviceDao(ProceedingJoinPoint joinPoint) throws Throwable {
+        long starttime = System.currentTimeMillis();
+        Object[] objs = joinPoint.getArgs();
+        Object result = joinPoint.proceed(objs);
+        long endtime = System.currentTimeMillis();
+        Long times = endtime-starttime;
+        if(times > 2000){
+            log.info("Executing sql consumes time more than 1s {} ,{}ms", joinPoint.getSignature().getName(),endtime-starttime);
+        }else{
+            log.info("Executing sql consumes time {} ,{}ms", joinPoint.getSignature().getName(),endtime-starttime);
+        }
+        return result;
+    }
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/controller/wechat/PaHotNewsWechatController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/controller/wechat/PaHotNewsWechatController.java
new file mode 100644
index 0000000..541b060
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/controller/wechat/PaHotNewsWechatController.java
@@ -0,0 +1,146 @@
+package cn.huge.module.hot.controller.wechat;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.module.hot.domain.po.HotNews;
+import cn.huge.module.hot.domain.po.HotVideo;
+import cn.huge.module.hot.service.HotNewsService;
+import cn.huge.module.hot.service.HotVideoService;
+import cn.huge.module.oper.dto.SeCustWechatDTO;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 热门资讯表接口api
+ * @description: 热门资讯表接口api
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-04-29 10:12:39
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/wechat/paHotNews")
+public class PaHotNewsWechatController {
+
+    @Autowired(required = false)
+    private HttpServletRequest request;
+
+    @Autowired
+    private HotNewsService service;
+    @Autowired
+    private HotVideoService hotVideoService;
+
+    /**
+    * 获取请求URL参数
+    * @return Map<String, Object>
+    */
+    private Map<String, Object> getParameter(){
+        Map<String, Object> terms = Maps.newHashMap();
+        // 热门视频编号
+        String id = request.getParameter("id");
+        if (StringUtils.isNotBlank(id)){
+            terms.put("id", id);
+        }
+        // 关键词
+        String keyword = request.getParameter("keyword");
+        if (StringUtils.isNotBlank(keyword)){
+            terms.put("keyword", keyword);
+        }
+        // 标题
+        String title = request.getParameter("title");
+        if (StringUtils.isNotBlank(title)){
+            terms.put("title", title);
+        }
+        // 内容
+        String content = request.getParameter("content");
+        if (StringUtils.isNotBlank(content)){
+            terms.put("content", content);
+        }
+        // 来源
+        String source = request.getParameter("source");
+        if (StringUtils.isNotBlank(source)){
+            terms.put("source", source);
+        }
+        // 查看连接
+        String showUrl = request.getParameter("showUrl");
+        if (StringUtils.isNotBlank(showUrl)){
+            terms.put("showUrl", showUrl);
+        }
+        // 发布时间
+        String pushTime = request.getParameter("pushTime");
+        if (StringUtils.isNotBlank(pushTime)){
+            terms.put("pushTime", pushTime);
+        }
+        // 播放量
+        String playNum = request.getParameter("playNum");
+        if (StringUtils.isNotBlank(playNum)){
+            terms.put("playNum", playNum);
+        }
+        // 点赞量
+        String goodNum = request.getParameter("goodNum");
+        if (StringUtils.isNotBlank(goodNum)){
+            terms.put("goodNum", goodNum);
+        }
+        // 删除状态,1:未删除,2已删除
+        String deleteStatus = request.getParameter("deleteStatus");
+        if (StringUtils.isNotBlank(deleteStatus)){
+            terms.put("deleteStatus", deleteStatus);
+        }
+        // 客户编号
+        String custId = request.getParameter("custId");
+        if (StringUtils.isNotBlank(custId)){
+            terms.put("custId", custId);
+        }
+        // 创建时间区间
+        String createStart = request.getParameter("createStart");
+        String createEnd = request.getParameter("createEnd");
+        if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+            terms.put("createStart", createStart);
+            terms.put("createEnd", createEnd);
+        }
+        // 更新时间区间
+        String updateStart = request.getParameter("updateStart");
+        String updateEnd = request.getParameter("updateEnd");
+        if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
+            terms.put("updateStart", updateStart);
+            terms.put("updateEnd", updateEnd);
+        }
+        return terms;
+    }
+
+    /**
+    * 当事人小程序-首页-查询热门资讯
+    * @url {ctx}/api/weChat/paHotNews/listShow
+    * @return Object
+    */
+    @GetMapping("/listShow")
+    public Object listShow(@RequestParam(value = "appid") String appid) {
+        try {
+            SeCustWechatDTO seCustWechatDTO = service.getSeCustWechatByAppid(appid);
+            // TODO: 2022/4/29 条件
+            Map<String, Object> result = Maps.newHashMap();
+            Map<String, Object> terms = getParameter();
+            terms.put("custId", seCustWechatDTO.getCustId());
+            List<HotNews> hotNewsList = service.listTerms(terms);
+            result.put("hotNewsList", hotNewsList);
+            List<HotVideo> hotVideoList = hotVideoService.listTerms(terms);
+            result.put("hotVideoList", hotVideoList);
+            return ReturnSucUtils.getRepInfo(result);
+        } catch (Exception e) {
+            log.error("Controller接口[HotNewsController.listQuery]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotNewsMapper.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotNewsMapper.java
new file mode 100644
index 0000000..da1ba08
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotNewsMapper.java
@@ -0,0 +1,72 @@
+package cn.huge.module.hot.dao.mapper;
+
+import cn.huge.module.hot.domain.po.HotNews;
+import cn.huge.module.oper.dto.SeCustWechatDTO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 热门资讯表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-04-29 10:12:39
+* @version 1.0.0
+*/
+@Repository
+public interface HotNewsMapper extends BaseMapper<HotNews>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateHotNews(@Param("entity") HotNews entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateHotNewsTerms(@Param("entity") HotNews entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteHotNews(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<HotNews>
+    */
+    List<HotNews> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<HotNews>
+    */
+    List<HotNews> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+    /**
+     * 根据appid查询小程序配置
+     * @param appid 小程序appid
+     * @return SeCustWechatDTO
+     */
+    SeCustWechatDTO getSeCustWechatByAppid(@Param("appid") String appid);
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotVideoMapper.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotVideoMapper.java
new file mode 100644
index 0000000..3d712a1
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/HotVideoMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.hot.dao.mapper;
+
+import cn.huge.module.hot.domain.po.HotVideo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 热门视频表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2022-04-29 10:12:38
+* @version 1.0.0
+*/
+@Repository
+public interface HotVideoMapper extends BaseMapper<HotVideo>{
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    void updateHotVideo(@Param("entity") HotVideo entity);
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    void updateHotVideoTerms(@Param("entity") HotVideo entity, @Param("terms") Map<String, Object> terms);
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    void deleteHotVideo(@Param("id") String id);
+
+    /**
+    * 按条件查询结果集
+    * @param terms 查询条件集合
+    * @return List<HotVideo>
+    */
+    List<HotVideo> listTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体总数
+    * @param terms 查询条件集合
+    * @return long
+    */
+    long countTerms(@Param("terms") Map<String, Object> terms);
+
+    /**
+    * 按条件查询实体分页结果集
+    * @param page 分页对象
+    * @param terms 查询条件集合
+    * @return List<HotVideo>
+    */
+    List<HotVideo> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotNewsMapper.xml b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotNewsMapper.xml
new file mode 100644
index 0000000..00603d3
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotNewsMapper.xml
@@ -0,0 +1,203 @@
+<?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">
+<!-- 
+ * @title: 热门资讯表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-04-29 10:12:39
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.hot.dao.mapper.HotNewsMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.hot.domain.po.HotNews">
+            <result property="id" column="id"/>
+            <result property="keyword" column="keyword"/>
+            <result property="title" column="title"/>
+            <result property="content" column="content"/>
+            <result property="source" column="source"/>
+            <result property="showUrl" column="show_url"/>
+            <result property="pushTime" column="push_time"/>
+            <result property="playNum" column="play_num"/>
+            <result property="goodNum" column="good_num"/>
+            <result property="deleteStatus" column="delete_status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_hot_news</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        keyword,
+        title,
+        content,
+        source,
+        show_url,
+        push_time,
+        play_num,
+        good_num,
+        delete_status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.keyword != null">keyword = #{entity.keyword},</if>
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.content != null">content = #{entity.content},</if>
+            <if test="entity.source != null">source = #{entity.source},</if>
+            <if test="entity.showUrl != null">show_url = #{entity.showUrl},</if>
+            <if test="entity.pushTime != null">push_time = #{entity.pushTime},</if>
+            <if test="entity.playNum != null">play_num = #{entity.playNum},</if>
+            <if test="entity.goodNum != null">good_num = #{entity.goodNum},</if>
+            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.keyword != null and terms.keyword !=''">
+                    and keyword = #{terms.keyword}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.content != null and terms.content !=''">
+                    and content = #{terms.content}
+                </if>
+                <if test="terms.source != null and terms.source !=''">
+                    and source = #{terms.source}
+                </if>
+                <if test="terms.showUrl != null and terms.showUrl !=''">
+                    and show_url = #{terms.showUrl}
+                </if>
+                <if test="terms.pushTime != null and terms.pushTime !=''">
+                    and push_time = #{terms.pushTime}
+                </if>
+                <if test="terms.playNum != null and terms.playNum !=''">
+                    and play_num = #{terms.playNum}
+                </if>
+                <if test="terms.goodNum != null and terms.goodNum !=''">
+                    and good_num = #{terms.goodNum}
+                </if>
+                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+                    and delete_status = 0
+                </if>
+                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+                    and delete_status = #{terms.deleteStatus}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateHotNews">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateHotNewsTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteHotNews">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        order by push_time desc
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+    <!-- SeCustWechatDTO结果集 -->
+    <resultMap id="seCustWechatDTO" type="cn.huge.module.oper.dto.SeCustWechatDTO">
+        <result property="id" column="id"/>
+        <result property="custId" column="cust_id"/>
+        <result property="mainId" column="main_id"/>
+        <result property="mainName" column="main_name"/>
+        <result property="mainAcc" column="main_acc"/>
+        <result property="mainPower" column="main_power"/>
+        <result property="appid" column="appid"/>
+        <result property="secret" column="secret"/>
+        <result property="token" column="token"/>
+        <result property="aeskey" column="aeskey"/>
+        <result property="msgDataFormat" column="msg_data_format"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 根据appid查询小程序配置 -->
+    <select id="getSeCustWechatByAppid" resultMap="seCustWechatDTO">
+        SELECT
+            *
+        FROM dyh_se_cust_wechat
+        WHERE appid = #{appid}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotVideoMapper.xml b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotVideoMapper.xml
new file mode 100644
index 0000000..1b6c3d7
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/dao/mapper/xml/HotVideoMapper.xml
@@ -0,0 +1,161 @@
+<?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">
+<!-- 
+ * @title: 热门视频表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2022-04-29 10:12:38
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.hot.dao.mapper.HotVideoMapper">
+    <!-- 结果集 -->
+    <resultMap id="dataResult" type="cn.huge.module.hot.domain.po.HotVideo">
+            <result property="id" column="id"/>
+            <result property="title" column="title"/>
+            <result property="showUrl" column="show_url"/>
+            <result property="pushTime" column="push_time"/>
+            <result property="playNum" column="play_num"/>
+            <result property="goodNum" column="good_num"/>
+            <result property="deleteStatus" column="delete_status"/>
+            <result property="custId" column="cust_id"/>
+            <result property="createTime" column="create_time"/>
+            <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <!-- 表 -->
+    <sql id='table-name'>dyh_hot_video</sql>
+    <!-- 字段 -->
+    <sql id="column-part">
+        id,
+        title,
+        show_url,
+        push_time,
+        play_num,
+        good_num,
+        delete_status,
+        cust_id,
+        create_time,
+        update_time
+    </sql>
+    <!-- 更新实体字段 -->
+    <sql id="set-part">
+            <if test="entity.title != null">title = #{entity.title},</if>
+            <if test="entity.showUrl != null">show_url = #{entity.showUrl},</if>
+            <if test="entity.pushTime != null">push_time = #{entity.pushTime},</if>
+            <if test="entity.playNum != null">play_num = #{entity.playNum},</if>
+            <if test="entity.goodNum != null">good_num = #{entity.goodNum},</if>
+            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
+            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+    </sql>
+    <!-- 条件 -->
+    <sql id="where-part">
+        <if test="terms != null">
+            <where>
+                <if test="terms.id != null and terms.id !=''">
+                    and id = #{terms.id}
+                </if>
+                <if test="terms.title != null and terms.title !=''">
+                    and title = #{terms.title}
+                </if>
+                <if test="terms.showUrl != null and terms.showUrl !=''">
+                    and show_url = #{terms.showUrl}
+                </if>
+                <if test="terms.pushTime != null and terms.pushTime !=''">
+                    and push_time = #{terms.pushTime}
+                </if>
+                <if test="terms.playNum != null and terms.playNum !=''">
+                    and play_num = #{terms.playNum}
+                </if>
+                <if test="terms.goodNum != null and terms.goodNum !=''">
+                    and good_num = #{terms.goodNum}
+                </if>
+                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+                    and delete_status = 0
+                </if>
+                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+                    and delete_status = #{terms.deleteStatus}
+                </if>
+                <if test="terms.custId != null and terms.custId !=''">
+                    and cust_id = #{terms.custId}
+                </if>
+                <if test="terms.createTime != null and terms.createTime !=''">
+                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.updateTime != null and terms.updateTime !=''">
+                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+                </if>
+                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+                </if>
+            </where>
+        </if>
+    </sql>
+    <!-- 更新对象 -->
+    <update id="updateHotVideo">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <where>
+            id = #{entity.id}
+        </where>
+    </update>
+    <!-- 条件更新对象 -->
+    <update id="updateHotVideoTerms">
+        update
+        <include refid="table-name"/>
+        <set>
+            <include refid="set-part"/>
+        </set>
+        <include refid="where-part"/>
+    </update>
+    <!--  根据编号物理删除  -->
+    <delete id="deleteHotVideo">
+        delete from
+        <include refid="table-name" />
+        where id = #{id}
+    </delete>
+    <!--  根据条件查询  -->
+    <select id="listTerms" resultMap="dataResult">
+        select
+        <include refid="column-part"/>
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        order by push_time desc
+    </select>
+    <!--  根据条件统计  -->
+    <select id="countTerms" resultType="java.lang.Long">
+        select
+        COUNT(1)
+        from
+        <include refid="table-name" />
+        <include refid="where-part"/>
+    </select>
+    <!--  根据条件分页查询  -->
+    <select id="pageTerms" resultMap="dataResult">
+        SELECT
+        <include refid="column-part"/>
+        FROM
+        <include refid="table-name" />
+        <include refid="where-part"/>
+        <if test="page.sort != null">
+            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+                isnull(${s.property}), ${s.property} ${s.direction}
+            </foreach>
+        </if>
+        <if test="page.sort == null">
+            order by isnull(create_time), create_time desc
+        </if>
+        limit #{page.offset}, #{page.size}
+    </select>
+
+</mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotNewsBO.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotNewsBO.java
new file mode 100644
index 0000000..16d9525
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotNewsBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.hot.domain.bo;
+
+import cn.huge.module.hot.domain.po.HotNews;
+
+/**
+ * @title: 热门资讯表
+ * @description: 热门资讯表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-04-29 10:12:39
+ * @version: 1.0.0
+ * @see HotNews
+ */
+public class HotNewsBO extends HotNews {
+
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotVideoBO.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotVideoBO.java
new file mode 100644
index 0000000..30b64a9
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/bo/HotVideoBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.hot.domain.bo;
+
+import cn.huge.module.hot.domain.po.HotVideo;
+
+/**
+ * @title: 热门视频表
+ * @description: 热门视频表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2022-04-29 10:12:38
+ * @version: 1.0.0
+ * @see HotVideo
+ */
+public class HotVideoBO extends HotVideo {
+
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotNews.json b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotNews.json
new file mode 100644
index 0000000..95f8462
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotNews.json
@@ -0,0 +1,12 @@
+{
+    "id": "热门视频编号",
+    "keyword": "关键词",
+    "title": "标题",
+    "content": "内容",
+    "source": "来源",
+    "showUrl": "查看连接",
+    "pushTime": "发布时间",
+    "playNum": 0,
+    "goodNum": 0,
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotVideo.json b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotVideo.json
new file mode 100644
index 0000000..b34e483
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/json/HotVideo.json
@@ -0,0 +1,9 @@
+{
+    "id": "热门视频编号",
+    "title": "标题",
+    "showUrl": "查看连接",
+    "pushTime": "发布时间",
+    "playNum": 0,
+    "goodNum": 0,
+    "custId": "客户编号",
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotNews.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotNews.java
new file mode 100644
index 0000000..88caecc
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotNews.java
@@ -0,0 +1,102 @@
+package cn.huge.module.hot.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 热门资讯表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-04-29 10:12:39
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_hot_news")
+@Data
+public class HotNews {
+
+    /**
+    * 热门视频编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 关键词
+    */
+    @TableField(value = "keyword")
+    private String keyword;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 内容
+    */
+    @TableField(value = "content")
+    private String content;
+
+    /**
+    * 来源
+    */
+    @TableField(value = "source")
+    private String source;
+
+    /**
+    * 查看连接
+    */
+    @TableField(value = "show_url")
+    private String showUrl;
+
+    /**
+    * 发布时间
+    */
+    @TableField(value = "push_time")
+    private Date pushTime;
+
+    /**
+    * 播放量
+    */
+    @TableField(value = "play_num")
+    private Integer playNum;
+
+    /**
+    * 点赞量
+    */
+    @TableField(value = "good_num")
+    private Integer goodNum;
+
+    /**
+     * 删除状态,0:未删除,1已删除
+     */
+    @TableLogic(value = "0",delval = "1")
+    @TableField(value = "delete_status")
+    private Integer deleteStatus;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotVideo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotVideo.java
new file mode 100644
index 0000000..8518675
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/domain/po/HotVideo.java
@@ -0,0 +1,84 @@
+package cn.huge.module.hot.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 热门视频表
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2022-04-29 10:12:38
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_hot_video")
+@Data
+public class HotVideo {
+
+    /**
+    * 热门视频编号
+    */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+    * 标题
+    */
+    @TableField(value = "title")
+    private String title;
+
+    /**
+    * 查看连接
+    */
+    @TableField(value = "show_url")
+    private String showUrl;
+
+    /**
+    * 发布时间
+    */
+    @TableField(value = "push_time")
+    private Date pushTime;
+
+    /**
+    * 播放量
+    */
+    @TableField(value = "play_num")
+    private Integer playNum;
+
+    /**
+    * 点赞量
+    */
+    @TableField(value = "good_num")
+    private Integer goodNum;
+
+    /**
+    * 删除状态,0:未删除,1已删除
+    */
+    @TableLogic(value = "0",delval = "1")
+    @TableField(value = "delete_status")
+    private Integer deleteStatus;
+
+    /**
+    * 客户编号
+    */
+    @TableField(value = "cust_id")
+    private String custId;
+
+    /**
+    * 创建时间
+    */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotNewsService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotNewsService.java
new file mode 100644
index 0000000..e59938a
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotNewsService.java
@@ -0,0 +1,144 @@
+package cn.huge.module.hot.service;
+
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.hot.dao.mapper.HotNewsMapper;
+import cn.huge.module.hot.domain.po.HotNews;
+import cn.huge.module.oper.dto.SeCustWechatDTO;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 热门资讯表业务逻辑处理
+ * @Description JPA的单表数据查询以由BaseService完成
+ * @company hugeinfo
+ * @author liyj
+ * @Time 2022-04-29 10:12:39
+ * @version 1.0.0
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class HotNewsService extends ServiceImpl<HotNewsMapper, HotNews>{
+
+    @Autowired
+    private HotNewsMapper mapper;
+
+    @Autowired
+    private UtilsClientImpl utilsClient;
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    public void updateHotNews(HotNews entity){
+        try{
+            mapper.updateHotNews(entity);
+        }catch (Exception e){
+            log.error("service方法[HotNewsService.updateHotNews]调用异常:"+e, e);
+            throw new ServiceException("HotNewsService.updateHotNews", e);
+        }
+    }
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    public void updateHotNewsTerms(HotNews entity, Map<String, Object> terms){
+        try{
+            mapper.updateHotNewsTerms(entity, terms);
+        }catch (Exception e){
+            log.error("service方法[HotNewsService.updateHotNewsTerms]调用异常:"+e, e);
+            throw new ServiceException("HotNewsService.updateHotNewsTerms", e);
+        }
+    }
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    public void deleteHotNews(String id){
+        try{
+            mapper.deleteHotNews(id);
+        }catch (Exception e){
+            log.error("service方法[HotNewsService.deleteHotNews]调用异常:"+e, e);
+            throw new ServiceException("HotNewsService.deleteHotNews", e);
+        }
+    }
+
+    /**
+    * 按条件查询
+    * @param terms 条件
+    * @return List
+    */
+    public List<HotNews> listTerms(Map<String, Object> terms){
+        return mapper.listTerms(terms);
+    }
+
+    /**
+    * 按条件统计
+    * @param terms 条件
+    * @return long
+    */
+    public long countTerms(Map<String, Object> terms){
+        return mapper.countTerms(terms);
+    }
+
+    /**
+    * 按条件分页查询
+    * @param page 分页对象
+    * @param terms 条件
+    * @return Page
+    */
+    public Page<HotNews> pageQuery(PageRequest page, Map<String, Object> terms){
+        long total = mapper.countTerms(terms);
+        List<HotNews> content = mapper.pageTerms(page, terms);
+        return new PageImpl<HotNews>(content, page, total);
+    }
+
+    /**
+    * 新增或更新对象
+    * @param hotNews 实体对象
+    */
+    public void saveHotNews(HotNews hotNews){
+        try{
+            Date nowDate = new Date();
+            // 判断是否新增
+            if (IdUtils.checkNewId(hotNews.getId())){
+                hotNews.setId(utilsClient.getNewTimeId());
+                hotNews.setCreateTime(nowDate);
+            }
+            hotNews.setUpdateTime(nowDate);
+            this.saveOrUpdate(hotNews);
+        }catch (Exception e){
+            log.error("service方法[HotNewsService.saveHotNews]调用异常:"+e, e);
+            throw new ServiceException("HotNewsService.saveHotNews", e);
+        }
+    }
+
+    /**
+     * 根据appid查询小程序配置
+     * @param appid 小程序appid
+     * @return SeCustWechatDTO
+     */
+    public SeCustWechatDTO getSeCustWechatByAppid(@Param("appid") String appid){
+        return mapper.getSeCustWechatByAppid(appid);
+    }
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotVideoService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotVideoService.java
new file mode 100644
index 0000000..8f234d5
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/hot/service/HotVideoService.java
@@ -0,0 +1,133 @@
+package cn.huge.module.hot.service;
+
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.hot.dao.mapper.HotVideoMapper;
+import cn.huge.module.hot.domain.po.HotVideo;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 热门视频表业务逻辑处理
+ * @Description JPA的单表数据查询以由BaseService完成
+ * @company hugeinfo
+ * @author liyj
+ * @Time 2022-04-29 10:12:38
+ * @version 1.0.0
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class HotVideoService extends ServiceImpl<HotVideoMapper, HotVideo>{
+
+    @Autowired
+    private HotVideoMapper mapper;
+
+    @Autowired
+    private UtilsClientImpl utilsClient;
+
+    /**
+    * 更新对象
+    * @param entity 对象
+    */
+    public void updateHotVideo(HotVideo entity){
+        try{
+            mapper.updateHotVideo(entity);
+        }catch (Exception e){
+            log.error("service方法[HotVideoService.updateHotVideo]调用异常:"+e, e);
+            throw new ServiceException("HotVideoService.updateHotVideo", e);
+        }
+    }
+
+    /**
+    * 条件更新对象
+    * @param entity 对象
+    * @param terms 条件
+    */
+    public void updateHotVideoTerms(HotVideo entity, Map<String, Object> terms){
+        try{
+            mapper.updateHotVideoTerms(entity, terms);
+        }catch (Exception e){
+            log.error("service方法[HotVideoService.updateHotVideoTerms]调用异常:"+e, e);
+            throw new ServiceException("HotVideoService.updateHotVideoTerms", e);
+        }
+    }
+
+    /**
+    * 根据编号物理删除
+    * @param id 查询条件集合
+    */
+    public void deleteHotVideo(String id){
+        try{
+            mapper.deleteHotVideo(id);
+        }catch (Exception e){
+            log.error("service方法[HotVideoService.deleteHotVideo]调用异常:"+e, e);
+            throw new ServiceException("HotVideoService.deleteHotVideo", e);
+        }
+    }
+
+    /**
+    * 按条件查询
+    * @param terms 条件
+    * @return List
+    */
+    public List<HotVideo> listTerms(Map<String, Object> terms){
+        return mapper.listTerms(terms);
+    }
+
+    /**
+    * 按条件统计
+    * @param terms 条件
+    * @return long
+    */
+    public long countTerms(Map<String, Object> terms){
+        return mapper.countTerms(terms);
+    }
+
+    /**
+    * 按条件分页查询
+    * @param page 分页对象
+    * @param terms 条件
+    * @return Page
+    */
+    public Page<HotVideo> pageQuery(PageRequest page, Map<String, Object> terms){
+        long total = mapper.countTerms(terms);
+        List<HotVideo> content = mapper.pageTerms(page, terms);
+        return new PageImpl<HotVideo>(content, page, total);
+    }
+
+    /**
+    * 新增或更新对象
+    * @param hotVideo 实体对象
+    */
+    public void saveHotVideo(HotVideo hotVideo){
+        try{
+            Date nowDate = new Date();
+            // 判断是否新增
+            if (IdUtils.checkNewId(hotVideo.getId())){
+                hotVideo.setId(utilsClient.getNewTimeId());
+                hotVideo.setCreateTime(nowDate);
+            }
+            hotVideo.setUpdateTime(nowDate);
+            this.saveOrUpdate(hotVideo);
+        }catch (Exception e){
+            log.error("service方法[HotVideoService.saveHotVideo]调用异常:"+e, e);
+            throw new ServiceException("HotVideoService.saveHotVideo", e);
+        }
+    }
+
+}

--
Gitblit v1.8.0